From db901a560003ad36c5ac1211b8ff0ed97c6256cb Mon Sep 17 00:00:00 2001 From: Ciaran Date: Sat, 28 Jan 2017 18:58:37 +0000 Subject: [PATCH 001/407] Fixes SWS bleedout timer Bleedout timer has been broken for some time, this finally fixes it. --- f/simplewoundingsystem/fn_LifeTick.sqf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/f/simplewoundingsystem/fn_LifeTick.sqf b/f/simplewoundingsystem/fn_LifeTick.sqf index 9accea718..4ea2a37a5 100644 --- a/f/simplewoundingsystem/fn_LifeTick.sqf +++ b/f/simplewoundingsystem/fn_LifeTick.sqf @@ -31,22 +31,22 @@ while {alive _unit} do // stops units from not being able to first aid. _unit setdamage 0.26; }; - if(_downed || _bleeding) then - { - // blood loss - _unit setVariable ["f_wound_blood",_blood - 0.6 max 0]; - if(damage _unit < 0.251) then { _unit setDamage 0.251}; - if(getBleedingRemaining _unit <= 0) then { _unit setBleedingRemaining 10;}; - if(_downed && {animationstate _unit != [_unit] call f_fnc_GetAnimation)} && !{(["heal",animationstate _unit] call bis_fnc_inString)) then + if(_downed || _bleeding) then + { + // blood loss + _unit setVariable ["f_wound_blood",(_blood - (0.6 -(random 0.1))) max 0]; + if(damage _unit < 0.251) then {_unit setDamage 0.251}; + if(getBleedingRemaining _unit <= 0) then {_unit setBleedingRemaining 10;}; + if(_downed && {(animationstate _unit != [_unit] call f_fnc_GetAnimation)} && !(["heal",animationstate _unit] call bis_fnc_inString)) then { _unit playMove ""; _unit switchmove ([_unit] call f_fnc_GetAnimation); }; - } + } else { // blood regens. - _unit setVariable ["f_wound_blood",_blood + 0.6 min 100]; + _unit setVariable ["f_wound_blood",(_blood + 1) min 100]; }; if(_blood <= 0) then { From a5e6fc8c09c5f967cd6594e8d2ac625a3b2e4a7b Mon Sep 17 00:00:00 2001 From: Ciaran Date: Sat, 28 Jan 2017 19:33:24 +0000 Subject: [PATCH 002/407] Fixes formatting on SWS bleedout timer fix --- f/simplewoundingsystem/fn_LifeTick.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/simplewoundingsystem/fn_LifeTick.sqf b/f/simplewoundingsystem/fn_LifeTick.sqf index 4ea2a37a5..5c4a7556c 100644 --- a/f/simplewoundingsystem/fn_LifeTick.sqf +++ b/f/simplewoundingsystem/fn_LifeTick.sqf @@ -37,7 +37,7 @@ while {alive _unit} do _unit setVariable ["f_wound_blood",(_blood - (0.6 -(random 0.1))) max 0]; if(damage _unit < 0.251) then {_unit setDamage 0.251}; if(getBleedingRemaining _unit <= 0) then {_unit setBleedingRemaining 10;}; - if(_downed && {(animationstate _unit != [_unit] call f_fnc_GetAnimation)} && !(["heal",animationstate _unit] call bis_fnc_inString)) then + if(_downed && {animationstate _unit != [_unit] call f_fnc_GetAnimation} && {!(["heal",animationstate _unit] call bis_fnc_inString)}) then { _unit playMove ""; _unit switchmove ([_unit] call f_fnc_GetAnimation); From 1c57c9b050c0c41d921a6469c8de38cbaed8ac84 Mon Sep 17 00:00:00 2001 From: Ciaran Date: Sat, 28 Jan 2017 21:03:52 +0000 Subject: [PATCH 003/407] Fixes SWS bleedout timer (#789) * Fixes SWS bleedout timer Bleedout timer has been broken for some time, this finally fixes it. * Fixes formatting on SWS bleedout timer fix --- f/simplewoundingsystem/fn_LifeTick.sqf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/f/simplewoundingsystem/fn_LifeTick.sqf b/f/simplewoundingsystem/fn_LifeTick.sqf index 9accea718..5c4a7556c 100644 --- a/f/simplewoundingsystem/fn_LifeTick.sqf +++ b/f/simplewoundingsystem/fn_LifeTick.sqf @@ -31,22 +31,22 @@ while {alive _unit} do // stops units from not being able to first aid. _unit setdamage 0.26; }; - if(_downed || _bleeding) then - { - // blood loss - _unit setVariable ["f_wound_blood",_blood - 0.6 max 0]; - if(damage _unit < 0.251) then { _unit setDamage 0.251}; - if(getBleedingRemaining _unit <= 0) then { _unit setBleedingRemaining 10;}; - if(_downed && {animationstate _unit != [_unit] call f_fnc_GetAnimation)} && !{(["heal",animationstate _unit] call bis_fnc_inString)) then + if(_downed || _bleeding) then + { + // blood loss + _unit setVariable ["f_wound_blood",(_blood - (0.6 -(random 0.1))) max 0]; + if(damage _unit < 0.251) then {_unit setDamage 0.251}; + if(getBleedingRemaining _unit <= 0) then {_unit setBleedingRemaining 10;}; + if(_downed && {animationstate _unit != [_unit] call f_fnc_GetAnimation} && {!(["heal",animationstate _unit] call bis_fnc_inString)}) then { _unit playMove ""; _unit switchmove ([_unit] call f_fnc_GetAnimation); }; - } + } else { // blood regens. - _unit setVariable ["f_wound_blood",_blood + 0.6 min 100]; + _unit setVariable ["f_wound_blood",(_blood + 1) min 100]; }; if(_blood <= 0) then { From 4275ea8a5cfb8cf7ea462e6b1488652dad7b5a5c Mon Sep 17 00:00:00 2001 From: costno Date: Thu, 23 Feb 2017 17:41:38 -0500 Subject: [PATCH 004/407] FA Template cloning All changes are in line with current FA template. --- README.md | 1474 +- description.ext | 16 +- init.sqf | 14 +- loadLogo.jpg | Bin 3811 -> 9351 bytes mission.sqm | 65650 ++++++++++++------------ overviewLogo.jpg | Bin 5365 -> 10460 bytes ws_fnc/AI/fn_addWaypoint.sqf | 139 + ws_fnc/AI/fn_bettervehicle.sqf | 98 + ws_fnc/AI/fn_createGarrison.sqf | 188 + ws_fnc/AI/fn_createGroup.sqf | 105 + ws_fnc/AI/fn_createVehicle.sqf | 179 + ws_fnc/AI/fn_enterBuilding.sqf | 122 + ws_fnc/AI/fn_setAIMode.sqf | 77 + ws_fnc/AI/fn_setInsidePos.sqf | 60 + ws_fnc/AI/fn_taskAmbush.sqf | 118 + ws_fnc/AI/fn_taskArtilleryFire.sqf | 124 + ws_fnc/AI/fn_taskConvoy.sqf | 171 + ws_fnc/AI/fn_taskCrew.sqf | 56 + ws_fnc/AI/fn_taskDefend.sqf | 126 + ws_fnc/AI/fn_taskLand.sqf | 140 + ws_fnc/Dbg/fn_clipboardcode.sqf | 11 + ws_fnc/Dbg/fn_copypos.sqf | 3 + ws_fnc/Dbg/fn_countUnits.sqf | 9 + ws_fnc/Dbg/fn_debugText.sqf | 16 + ws_fnc/Dbg/fn_debugTriggers.sqf | 44 + ws_fnc/Dbg/fn_typecheck.sqf | 30 + ws_fnc/README.md | 21 + ws_fnc/Tools/fn_checkHC.sqf | 23 + ws_fnc/Tools/fn_collectBuildings.sqf | 65 + ws_fnc/Tools/fn_collectMarkers.sqf | 37 + ws_fnc/Tools/fn_collectObjects.sqf | 36 + ws_fnc/Tools/fn_collectObjectsNum.sqf | 50 + ws_fnc/Tools/fn_gamecheck.sqf | 26 + ws_fnc/Tools/fn_isWallInDir.sqf | 40 + ws_fnc/Tools/fn_listPlayers.sqf | 21 + ws_fnc/Tools/fn_loadVehicle.sqf | 172 + ws_fnc/Tools/fn_nearPlayer.sqf | 32 + ws_fnc/Tools/fn_selectRandom.sqf | 17 + ws_fnc/Tools/fn_setGVar.sqf | 43 + ws_fnc/Tools/fn_showFPS.sqf | 22 + ws_fnc/cache/fn_cInit.sqf | 83 + ws_fnc/cache/fn_cTracker.sqf | 64 + ws_fnc/cache/fn_gCache.sqf | 42 + ws_fnc/cache/fn_gUncache.sqf | 26 + ws_fnc/config.hpp | 90 + ws_fnc/description.ext | 4 + ws_fnc/effects/fn_createCAS.sqf | 41 + ws_fnc/effects/fn_createLightning.sqf | 31 + ws_fnc/effects/fn_createOrdnance.sqf | 39 + ws_fnc/effects/fn_createTripflare.sqf | 40 + ws_fnc/getPos/fn_NearestLandPos.sqf | 38 + ws_fnc/getPos/fn_NearestRoadPos.sqf | 40 + ws_fnc/getPos/fn_getBpos.sqf | 48 + ws_fnc/getPos/fn_getEPos.sqf | 29 + ws_fnc/getPos/fn_getPos.sqf | 134 + ws_fnc/getPos/fn_getPosInArea.sqf | 84 + ws_fnc/misc/fn_attachChem.sqf | 47 + ws_fnc/misc/fn_attachIR.sqf | 44 + ws_fnc/misc/fn_attachLight.sqf | 40 + ws_fnc/misc/fn_broadcast.sqf | 32 + ws_fnc/misc/fn_showIntro.sqf | 32 + ws_fnc/misc/fn_switchLights.sqf | 54 + ws_fnc/ws_fnc_init.sqf | 75 + 63 files changed, 36431 insertions(+), 34301 deletions(-) create mode 100644 ws_fnc/AI/fn_addWaypoint.sqf create mode 100644 ws_fnc/AI/fn_bettervehicle.sqf create mode 100644 ws_fnc/AI/fn_createGarrison.sqf create mode 100644 ws_fnc/AI/fn_createGroup.sqf create mode 100644 ws_fnc/AI/fn_createVehicle.sqf create mode 100644 ws_fnc/AI/fn_enterBuilding.sqf create mode 100644 ws_fnc/AI/fn_setAIMode.sqf create mode 100644 ws_fnc/AI/fn_setInsidePos.sqf create mode 100644 ws_fnc/AI/fn_taskAmbush.sqf create mode 100644 ws_fnc/AI/fn_taskArtilleryFire.sqf create mode 100644 ws_fnc/AI/fn_taskConvoy.sqf create mode 100644 ws_fnc/AI/fn_taskCrew.sqf create mode 100644 ws_fnc/AI/fn_taskDefend.sqf create mode 100644 ws_fnc/AI/fn_taskLand.sqf create mode 100644 ws_fnc/Dbg/fn_clipboardcode.sqf create mode 100644 ws_fnc/Dbg/fn_copypos.sqf create mode 100644 ws_fnc/Dbg/fn_countUnits.sqf create mode 100644 ws_fnc/Dbg/fn_debugText.sqf create mode 100644 ws_fnc/Dbg/fn_debugTriggers.sqf create mode 100644 ws_fnc/Dbg/fn_typecheck.sqf create mode 100644 ws_fnc/README.md create mode 100644 ws_fnc/Tools/fn_checkHC.sqf create mode 100644 ws_fnc/Tools/fn_collectBuildings.sqf create mode 100644 ws_fnc/Tools/fn_collectMarkers.sqf create mode 100644 ws_fnc/Tools/fn_collectObjects.sqf create mode 100644 ws_fnc/Tools/fn_collectObjectsNum.sqf create mode 100644 ws_fnc/Tools/fn_gamecheck.sqf create mode 100644 ws_fnc/Tools/fn_isWallInDir.sqf create mode 100644 ws_fnc/Tools/fn_listPlayers.sqf create mode 100644 ws_fnc/Tools/fn_loadVehicle.sqf create mode 100644 ws_fnc/Tools/fn_nearPlayer.sqf create mode 100644 ws_fnc/Tools/fn_selectRandom.sqf create mode 100644 ws_fnc/Tools/fn_setGVar.sqf create mode 100644 ws_fnc/Tools/fn_showFPS.sqf create mode 100644 ws_fnc/cache/fn_cInit.sqf create mode 100644 ws_fnc/cache/fn_cTracker.sqf create mode 100644 ws_fnc/cache/fn_gCache.sqf create mode 100644 ws_fnc/cache/fn_gUncache.sqf create mode 100644 ws_fnc/config.hpp create mode 100644 ws_fnc/description.ext create mode 100644 ws_fnc/effects/fn_createCAS.sqf create mode 100644 ws_fnc/effects/fn_createLightning.sqf create mode 100644 ws_fnc/effects/fn_createOrdnance.sqf create mode 100644 ws_fnc/effects/fn_createTripflare.sqf create mode 100644 ws_fnc/getPos/fn_NearestLandPos.sqf create mode 100644 ws_fnc/getPos/fn_NearestRoadPos.sqf create mode 100644 ws_fnc/getPos/fn_getBpos.sqf create mode 100644 ws_fnc/getPos/fn_getEPos.sqf create mode 100644 ws_fnc/getPos/fn_getPos.sqf create mode 100644 ws_fnc/getPos/fn_getPosInArea.sqf create mode 100644 ws_fnc/misc/fn_attachChem.sqf create mode 100644 ws_fnc/misc/fn_attachIR.sqf create mode 100644 ws_fnc/misc/fn_attachLight.sqf create mode 100644 ws_fnc/misc/fn_broadcast.sqf create mode 100644 ws_fnc/misc/fn_showIntro.sqf create mode 100644 ws_fnc/misc/fn_switchLights.sqf create mode 100644 ws_fnc/ws_fnc_init.sqf diff --git a/README.md b/README.md index 2729ddbaa..04e7ac960 100644 --- a/README.md +++ b/README.md @@ -1,1458 +1,16 @@ -# F3 README # - -* Version: 3-4-1 -* Codebase: https://github.com/ferstaberinde/F3 -* Developer: Please see credits section below. -* Publishers: Fer (alanr@ferstaberinde.com) -* Description: MP mission framework for Arma 3. - - - -## README CONTENTS ## - -01. VERSION HISTORY -02. CREDITS -03. COPYRIGHT STATEMENT -04. TERMS OF USE -05. LEGAL DISCLAIMER -06. DISTRIBUTING SIMULATION CONTENT CREATED WITH THE SOFTWARE -07. SUPPORT INFORMATION -08. INSTALLATION -09. NOTES -10. CHANGE HISTORY - - - -## 01. VERSION HISTORY ## - -### F3 Version History ### - -Version | Date | Notes - -* 3-4-1 | 19 JUL 2016 | Patch release - Various improvements (see change history). -* 3-4-0 | 13 JUL 2016 | Patch release - APEX support and various improvements (see change history). -* 3-4-0 RC1 | 04 JUL 2016 | Internal release - APEX support and various improvements (see change history). -* 3-3-0 | 25 APR 2015 | Patch release - Various improvements (see change history). -* 3-3-0 RC2 | 18 APR 2015 | Internal release - Various improvements (see change history). -* 3-3-0 RC1 | 08 APR 2015 | Internal release - Various improvements (see change history). -* 3-2-2 | 20 FEB 2015 | Patch release - Various improvements (see change history). -* 3-2-1 | 06 DEC 2014 | Patch release - Bug fix (see change history). -* 3-2-0 | 15 NOV 2014 | Patch release - Various improvements (see change history). -* 3-2-0 RC2 | 06 NOV 2014 | Internal release - Various improvements (see change history). -* 3-2-0 RC1 | 24 OCT 2014 | Internal release - Various improvements (see change history). -* 3-1-2 | 12 SEP 2014 | Patch release - Bug fix (see change history). -* 3-1-1 | 26 JUL 2014 | Patch release - Various improvements (see change history). -* 3-1-1 RC1 | 23 JUL 2014 | Internal release - Various improvements (see change history). -* 3-1-0 | 17 JUN 2014 | Patch release - Various improvements (see change history). -* 3-1-0 RC6 | 16 JUN 2014 | Internal release - Various improvements (see change history). -* 3-1-0 RC5 | 11 JUN 2014 | Internal release - Various improvements (see change history). -* 3-1-0 RC4 | 03 JUN 2014 | Internal release - Various improvements (see change history). -* 3-1-0 RC3 | 29 MAY 2014 | Internal release - Various improvements (see change history). -* 3-1-0 RC2 | 28 MAY 2014 | Internal release - Various improvements (see change history). -* 3-1-0 RC1 | 24 MAY 2014 | Internal release - Various improvements (see change history). -* 3-0-9A | 12 FEB 2014 | Patch release - Various improvements (see change history). -* 3-0-9 | 09 FEB 2014 | Patch release - Various improvements (see change history). -* 3-0-8 | 28 DEC 2013 | Patch release - Various improvements (see change history). -* 3-0-7 | 14 SEP 2013 | Patch release - Various improvements (see change history). -* 3-0-6 | 20 AUG 2013 | Patch release - Various improvements (see change history). -* 3-0-5 | 17 AUG 2013 | Patch release - Various improvements (see change history). -* 3-0-4 | 08 AUG 2013 | Patch release - Various improvements (see change history). -* 3-0-3 | 25 JUN 2013 | Patch release - Various improvements (see change history). -* 3-0-2 | 25 MAR 2013 | Patch release - Various improvements (see change history). -* 3-0-1 | 17 MAR 2013 | Patch release - Various improvements (see change history). -* 3-0-0 | 10 MAR 2013 | First alpha release to community (see change history). - -### F2 Version History ### - -Version | Date | Notes - -* 2-7-1 | 16 FEB 2013 | Patch release - Various improvements (see change history). -* 2-7-0 | 15 DEC 2012 | Patch release - Various improvements (see change history). -* 2-6-1 | 02 JUL 2012 | Patch release - Various improvements (see change history). -* 2-6-0 | 07 JUN 2012 | Patch release - Various improvements (see change history). -* 2-5-0 | 24 JAN 2012 | Patch release - Various improvements (see change history). -* 2-4-5 | 16 SEP 2010 | Patch release - Various improvements (see change history). -* 2-4-4 | 16 SEP 2010 | Patch release - Various improvements (see change history). -* 2-4-3 | 11 SEP 2010 | Patch release - Various improvements (see change history). -* 2-4-2 | 01 SEP 2010 | Patch release - Various improvements (see change history). -* 2-4-1 | 11 JUL 2010 | Patch release - Various improvements (see change history). -* 2-4-0 | Internal | Patch release - Various improvements (see change history). -* 2-3-3 | Internal | Patch release - Various improvements (see change history). -* 2-3-2 | 17 MAY 2010 | Patch release - Various improvements (see change history). -* 2-3-1 | 20 APR 2010 | Patch release - Various improvements (see change history). -* 2-3-0 | 12 APR 2010 | Patch release - Various improvements (see change history). -* 2-2-5 | 27 FEB 2010 | Patch release - Various improvements (see change history). -* 2-2-4 | 30 JAN 2010 | Patch release - Various improvements (see change history). -* 2-2-3 | 07 JAN 2010 | Patch release - Various improvements (see change history). -* 2-2-2 | 27 DEC 2009 | Patch release - Various improvements (see change history). -* 2-2-1 | 21 DEC 2009 | Patch release - Various improvements (see change history). -* 2-2-0 | 07 DEC 2009 | Patch release - Various improvements (see change history). -* 2-2-0 RC1 | 07 DEC 2009 | Patch release - Various improvements (see change history). -* 2-1-3 | 25 NOV 2009 | Patch release - Various improvements (see change history). -* 2-1-2 | 02 NOV 2009 | Patch release - Various improvements (see change history). -* 2-1-1 | 20 OCT 2009 | Patch release - Various improvements (see change history). -* 2-1-0 | 06 OCT 2009 | Patch release - Various improvements (see change history). -* 2-1-0 RC1 | 06 OCT 2009 | Special release (see change history). -* 2-0-5 | 30 SEP 2009 | Patch release - Various improvements (see change history). -* 2-0-4 | 09 SEP 2009 | Patch release - Various improvements (see change history). -* 2-0-3 | 24 AUG 2009 | Patch release - Various improvements (see change history). -* 2-0-2 | 24 AUG 2009 | Patch release - Various improvements (see change history). -* 2-0-1 | 26 JUL 2009 | First beta release to community (see change history). -* 2-0-0 | 12 JUL 2009 | First beta release to ShackTactical (see change history). - -### BAS f Version History ### - -Version | Date | Notes - -* 1-4-2 | 13 MAR 2009 | Patch release - Various improvements (see change history). -* 1-4-1 | 13 FEB 2009 | Patch release - Various improvements (see change history). -* 1-4-0 | 03 FEB 2009 | Patch release - Various improvements (see change history). -* 1-3-2 | 18 JAN 2009 | Patch release - Various improvements (see change history). -* 1-3-1 | 08 JAN 2009 | Patch release - Various improvements (see change history). -* 1-3 | 03 JAN 2009 | Patch release - Various improvements (see change history). -* 1-2 | 18 DEC 2008 | Patch release - Various improvements (see change history). -* 1-1C | 19 MAY 2008 | Patch release - Various improvements (see change history). -* 1-1B | 29 APR 2008 | Special release (see change history). -* 1-1A | 03 APR 2008 | Special release (see change history). -* 1-1 | 21 MAR 2008 | Patch release - Various improvements (see change history). -* 1-0-9B | 07 FEB 2008 | Patch release - Various improvements (see change history). -* 1-0-9A | 19 JAN 2008 | Patch release - Various improvements (see change history). -* 1-0-9 | 12 JAN 2008 | Patch release - Various improvements (see change history). -* 1-0-8 | 26 DEC 2007 | Patch release - Various improvements (see change history). -* 1-0-7 | 24 DEC 2007 | Patch release - Various improvements (see change history). -* 1-0-6 | 27 OCT 2007 | Patch release - Various improvements (see change history). -* 1-0-5 | 15 OCT 2007 | Patch release - Various improvements (see change history). -* 1-0-4 | 19 AUG 2007 | Patch release - Various improvements (see change history). -* 1-0-3A | 25 JUL 2007 | Patch release - Various improvements (see change history). -* 1-0-3 | 25 JUL 2007 | Patch release - Various improvements (see change history). -* 1-0-2 | 19 JUL 2007 | Patch release - Various improvements (see change history). -* 1-0-1 | 28 JUN 2007 | Patch release - Various improvements (see change history). -* 1-0 | 24 JUN 2007 | Patch release - Various improvements (see change history). -* 0-0-31 | 07 JUN 2007 | Patch release - Various improvements (see change history). -* 0-0-30 | 24 MAY 2007 | Patch release - Various improvements (see change history). -* 0-0-29 | 17 MAY 2007 | Patch release - Various improvements (see change history). -* 0-0-28 | 07 MAY 2007 | Patch release - Various improvements (see change history). -* 0-0-27 | 05 MAY 2007 | Consolidated build for release. -* 0-0-26 | 05 MAY 2007 | Patch release - Various improvements (see change history). -* 0-0-25 | 12 APR 2007 | Added Kegetys Spectator Script for ArmA components. -* 0-0-24 | 28 MAR 2007 | Patch release - corrected manual (fixes error with MP Ending Controller). -* 0-0-23 | 07 MAR 2007 | First beta release - with corrected manual (missing UPS and Anti-TK components). -* 0-0-22 | 22 FEB 2007 | First beta release candidate - with corrected manual (missing UPS and Anti-TK components). -* 0-0-21 | 19 FEB 2007 | First beta release candidate (missing UPS and Anti-TK components). -* 0-0-20 | 31 JAN 2007 | Third alpha release (moved to Sahrani, missing UPS and Anti-TK components). -* 0-0-19 | 24 JAN 2007 | Second alpha release (missing UPS and Anti-TK components). -* 0-0-18 | 12 JAN 2007 | First alpha release (missing UPS and Anti-TK components). - - - -## 02. CREDITS ## - -### F3 Credits ### - -* Contributors: Head | Harakka | Fer | Wolfenswan | Cam | turowicz | CaseMonster | Black Mamba | DarkTatka | Tigershark | cptnnick | Linux | Snippers | SuicideKing | Pasrules | darkChozo | Przemro | GeEom | JonBons | Ferrard Carson -* Documentation: Fer | Wolfenswan | Dogface | Cam | Head | cptnnick | Snippers -* Producers: Fer | Wolfenswan -* Special Thanks: Arctor | BasterActual | batboyx2 | cptnnick | Dogface | Draakon | Landyacht | Linux | nolux | Pabstmirror | Zerith | Bear | JonBons | Poulern | Chairborn | captainblaffer | Boarnoah | CostNo -* Special thanks to everyone at: Folk ARPS | Basterd ArmA | Black sh33p | Bourbon Warfare | Phantactical | Pointfire | Project Awesome | Team One Tactical | The Company - -### F2 Credits ### - -* Contributors: Headspace | kevb0 | Lor | Ricardo | Wolf | ViperMaul | Xiathorn | zx64 | Norrin | white angel | Fer | Strango | beta | Mike84 | b3rt | Henk | Redkid | Macolik | kungtotte | Tigershark | LoneStar | Nullkigan | Harakka | Wolfenswan | DarkTatka | Black Mamba | Head | Mike -* Documentation: Fer | Messiah2 | Xiathorn -* Producers: Fer -* Special Thanks: Dancingcuban | Firebird | Stranglove | Ferrard Carson | Bodge -* Special thanks to everyone at: ShackTactical | Folk | ARPS | Folk ARPS - -### BAS f Credits ### - -* Contributors: Fer | Kronzky | Rom | Raedor | Kegetys | eJay | burningtrees | Redkid Joker | Headspace | ViperMaul | zx64 | kevb0 | Mandoble | Red Barron | Jaxobs | Awoihjaweohr | FLEXCopMNPD | Jefke -* Translators: Donnervogel | Serclaes | Messiah2 | Gaia | FireflyPL | Kanotson | Varry | W0lle | Nikita Kaspersky | Rainbow | JanMasterson -* Documentation: Fer | Kegetys | Serclaes | Messiah2 -* Producers: Fer -* Special Thanks: Dux | kevb0 | Tigershark | Dslyecxi | Rhodite | Opteryx | henk | bluedingo | broileri | Fullforce | Tyger -* Special thanks to everyone at: TimeZone Warriors | ShackTactical - - -## 03. COPYRIGHT STATEMENT ## - -F3 is composed of many components. Each component is (c) 2007/2008/2009/2010/2011/2012/2013/2014/2015/2016 its respective contributor(s). All rights reserved. - - - -## 04. TERMS OF USE ## - -F3 (hereafter 'Software') contains files to be used in the PC simulator "Arma 3". To use the Software you must agree to the following conditions of use: - -1. The term 'Software' specifically excludes the file 'mission.sqm'. - -2. The contributors of individual components of the Software (hereafter 'The Contributors') grant to you a personal, non-exclusive license to use the Software for the purpose of designing, developing, testing, and distributing non-commercial simulation content for ArmA 3. - -3. The commercial exploitation of any game content created using the Software without written permission from The Contributors is expressly prohibited. - -4. Reverse-engineering, or other conversion of the Software for use with any game except ArmA 3 without written permission from The Contributors is expressly prohibited. - -5. The Software may only be re-distributed in its entirety, complete with this "ReadMe" document. - - - -## 05. LEGAL DISCLAIMER ## - -The Software is distributed without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. The Software is not an official addon or tool. Use of the Software (in whole or in part) is entirely at your own risk. - - - -## 06. DISTRIBUTING SIMULATION CONTENT CREATED WITH THE SOFTWARE ## - -Please note that you do NOT require permission from The Contributors to distribute simulation content (e.g. missions) created with the Software. However, The Contributors do ask that you credit the Software in any release documentation. - - - -## 07. SUPPORT INFORMATION ## - -The online manual can be found at: - -* http://www.ferstaberinde.com/f3/EN/ (English language version) - - - -## 08. INSTALLATION ## - -To begin using the Software, move the F3.VR folder into one of the following directories: - -* \My Documents\Arma 3\MPMissions\ -* \My Documents\Arma 3 Other Profiles\YourPlayerName\MPMissions\ - -Access the online manual (see SUPPORT INFORMATION above) and follow the instructions contained therein. - - - -## 09. NOTES ## - -We hope you will enjoy making and updating missions for Arma 3 with F3! - -Fer :) (alanr@ferstaberinde.com) (on behalf of all F3 / F2 / BAS f contributors) - - - -## 10. CHANGE HISTORY ## - -### F3 Change History ### - -Version | Date - -3-4-1 | 19 JUL 2016 - -* Added F3 Gendarmerie component, with support for this added to: - * Briefing Template component. - * F3 Folk ARPS Assign Gear Script component. - * F3 Folk ARPS Group Markers component. - * F3 Folk ARPS Group IDs component. -* Updated F3 Folk ARPS Assign Gear Script component: - * Various minor fixes. -* Updated F3 Folk ARPS Platoons component: - * Fixed issues with order of Syndikat slots. -* Updated Insignia component: - * Automatically supports mission-maker placed Pacific units (NATO and CSAT). -* Updated Mission Header component documentation. - -3-4-0 | 13 JUL 2016 - -* Updated Assign Gear component: - * Implemented new Folk ARPS 2016 loadout options. - * Added support for the Syndikat faction. - * Added support for the NATO Pacific faction. - * Added support for the CSAT Pacific faction. - * Pilots can now repair vehicles (via the new trait command). - * Vehicle and crate loadouts now split into separate files per faction. - * All IF checks now compare the faction to an array of possible factions. - * Strings such as 'aaf', 'nato' etc. can now be used when forcing a specific faction loadout (instead of a precise faction string such as 'ind_f'). -* Updated Assign AI Gear component: - * Added support for the Syndikat faction. - * All factions are now processed unless specifically excluded. - * Non-recognised units keep their default gear. -* Updated Admin Briefing component: - * Added support for the Syndikat faction. - * NATO and CSAT Pacific factions see default NATO and CSAT breifings. - * Component checks against BIS factions -* Updated F3 Folk ARPS Platoons component: - * Changed OrBat to Folk ARPS 2015 pattern: - * Infantry squads now: SL, medic and 2 x 6-man FTs. - * Mechanised squads now: SL, medic, 1 x 6-man FT and 1 x IFV (with crew). - * Added a pre-placed Syndikat platoon with attachments. - * Ranks of units adjusted to allow correct leadership when merging groups - * JTAC CAS elements now virtual. - * Removed pre-placed 'reserved for JIP' groups. -* Updated F3 Folk ARPS Group IDs component: - * Moved group name definitions to the group object in EDEN editor. - * Added support for the Syndikat faction. -* Updated F3 Folk ARPS Group Markers component: - * Component now gets group names from group object in EDEN editor. - * Added support for the Syndikat faction. - * NATO and CSAT Pacific factions are shown the default NATO and CSAT markers. - * Changed switch structure to several IF-checks (making it easier to show the same marker to several units / factions - you only need to add a string) -* Updated F3 Spectator Script component: - * Fix spectator jumping on keyboard input. -* Updated Insignia component: - * Added new insignia patches for NATO and CSAT Pacific factions. - * Script variable toggles NATO / CSAT factions between Altis and Tanoa patches. - * Script variable can also enable CSAT urban patches. -* Updated Naming your mission and Loading Screen components: - * Moved some settings from description.ext to the EDEN editor: - * Mission name. - * Author name. - * Mission load and overview screen texts and pictures. -* Updated Medical Systems Support component: - * Fixed: SWS would on occasion not properly immobilise downed players. -* Updated Mission Conditions Selector component: - * Pre-defined conditions now integrate time and atmospheric options. - * Parameters allow overrides for fog and wind settings. - * Pre-defined condtions adapt to support dawn/dusk on Altis and Tanoa. - * Added "Use mission settings" option to mission conditions parameter. -* Updated Mute Orders and Reports component: - * Muting now only applies to playable AI units. -* Updated PreMount component: - * Removed pre-placed modules (component can still be used via script). -* Updated Radio Systems Support component: - * Added support for defaulting ACRE2 radios to a starting channel. - * TFR fix and radio designation changes: - * Long range default is now ch1. - * Short range radio (5km) to replace backpackRadios for weapons team leader (assistant) except the sniper's spotter. - * Vehicle teams expected to use vehicle radios for long range comms. - * Removed support for ACRE1. -* Updated Zeus Support component: - * Pre-Placed ZEUS units assign F3 AI Skill to created units. -* Various optimisations: - * ACRE2 (Radio Systems Support component). - * fn_setAISkill now exits without an error message if AI skills are not set. - * Group IDs component. - * Insignia component. - * Move CfgFunctions F3 definitions into its own hpp file. - * Parameters system now works in singleplayer editor and has been made slightly faster. - * Re-ordered the init.sqf file code blocks. -* Removed UAV Recharging component. - -3-4-0 RC1 | 04 JUL 2016 - -* Please see change history for release v3-4-0. - -3-3-0 | 25 APR 2015 - -* Updated Admin Briefing component: - * New: Allows control of safe start component. - * Restructured Zeus options (less clutter). -* Updated Assign AI Gear component: - * New variable: _defaultclass (applied to unit if no corresponding class was found). - * Added designated marksman type. -* Updated AI Caching component: - * Fixed: Uncaching would sometimes place group members too high. -* Updated AI Skill Selector component: - * Now exclusively server-side. - * Re-adjusted skill levels: "high" is slightly easier, "low" more difficult. - * Changed comments deactivating F3 SetAISkill parameter in description.ext to comment-blocks for convenience. - * No longer sets skill for "endurance" as it's not supported in A3. - * Reduced random range to +/- 0.08. - * Increased initial sleep to 2 seconds, removed unnecessary sleeps elsewhere. -* Updated Briefing Template component: - * Removed scripted task examples (in-editor module feature preferable). - * Added briefing for dedicated Zeus. -* Updated F3 Folk ARPS Assign Gear component: - * Changed primary weapon for CSAT "ar" to Zafir. - * New gear type: "dm" (designated marksman) for all factions with corresponding kit. - * Added bipods to all factons (given to "ar", "mmgg" and "sn" by default). - * "hatg" now uses mobile Titan launcher. - * Equipped all "mmgg" with the new DLC MMGs. Old MMGs classnames are commented out in the assign gear file. - * Changed CSAT vests: new medium is TacVest Khaki -* Updated F3 Folk ARPS Platoons component: - * Changed placement of platoons to better support smaller maps. - * Updated ranks of AAF CO, DC and SLs to match other factions. -* Updated F3 Spectator Script component: - * Identified and fixed possible sFPS issue. - * Improved Freecam handling. - * Added mute key (P) for spectator. -* Updated Join Group Action component: - * Action appears/disappears with less "lag". - * No more action spam in certain situations (e.g. entering a vehicle). -* Updated Name Tags component: - * Shows tag for unit under cursorTarget in 28m (modifiable), always shows tags for units within 10m (modifiable). Latter can be toggled off in briefing menu. - * Moved all related global variables from init.sqf into f_nametags.sqf - * Tweaked visuals (smaller default font, colors etc.). - * Name tags are now automatically activated if component is enabled. - * Improved tags for units in vehicles: recognizes non-specialist crew and pilots, only shows effective commander on distance to avoid clutter. -* Updated ORBAT Notes component: - * Better distinction between crew roles. -* Updated Radio Systems Support component (ACRE2): - * Updated to the latest API (removing un-neccesary code). - * Adds support for the newer radios. - * Checks if players have enough free inventory space for radios and provides an action if not. - * Hotfix for acre_api_fnc_isInitialized ignoring itemRadio. -* Updated Safe Start component: - * New: Player vehicles can't be damaged until safe start is done. - * f_safety.sqf is now a function (f_fnc_safety). -* Updated Zeus Support component: - * Zeus assigned using f_fnc_zeusInit automatically applies AI Skill Selector values to created units if latter component is enabled. - * Streamlined Zeus Support in Admin Briefing component. - -3-3-0 RC2 | 18 APR 2015 - -* Please see change history for release v3-3-0. - -3-3-0 RC1 | 08 APR 2015 - -* Please see change history for release v3-3-0. - -3-2-2 | 20 FEB 2015 - -* Added F3 Assign Gear AI component: - * Loops through present or selection of AI and re-equips them with corresponding F3 gear. -* Updated Loading Screen component: - * Added entry for overviewPicture and default logo. - * Changed default logos for loadScreen and overviewPicture to JPEG. -* Updated F3 Briefing Template component: - * Increased font size of headlines for better readability. -* Updated F3 Folk ARPS Assign Gear Script component: - * Loadout setting can now be over-written on a per unit-type basis. - * Optional faction input is now always lowered. -* Updated F3 Spectator Script component: - * Rediced performance impact of tags. - * Fixed issues with JIP players. - * Fixed issue where TFR spectators sound as if they are underwater. - * Fixed tag colors. -* Updated Radio Systems Support component: - * ACRE2: Improved frequency assignment. -* Updated Medical Systems Support component: - * SWS: various fixes. - * AGM: improved item-converter and re-balanced item assignment. -* Updated AI Skill Selector component: - * Tweaked default skill levels: medium and low slightly better. - * Tweaked default skillSet: non-aiming skills higher by default. - * Merged randomUp and randomDown into one variable. - * Improved impact on network traffic: only sets skill where unit is local - * fn_setAISkill can now be called with only the unit as argument -* Updated F3 PreMount component - * Only ignores vehicles if locked state is exactly 2. -* Updated F3 Zeus Support - * fn_zeusInit automatically detects if F3 AI Skill Selector component is active and uses it on new units. -* Updated AI Caching component: - * New variables f_var_cacheRun and f_var_cacheSleep to easier control component behavior during runtime. - * Can now pass aggressiveness directly to f_fnc_gCache as optional param to override global value. -* Fixed AI Caching component: - * Infantry would not disable simulation properly on aggressiveness 1 and 2. -* Fixed ORBAT Notes and Name Tags components: - * Fixed issue where the number of cargo seats in a vehicle would not be calculated correctly. -* Fixed F3 Mission Conditions Selector: - * Default overcast values would occasionally cause rain. - -3-2-1 | 06 DEC 2014 - -* Updated Radio Systems Support component: - * Switched linkItem to addItem for ACRE2. -* Fixed F3 Spectator Script component: - * Fixed incompatiblity with most recent Arma 3 update. - -3-2-0 | 15 NOV 2014 - -* Added Insignia component. - * Includes insignia for NATO, AAF, CSAT and CSAT urban uniforms. -* Added Loadout Notes component. - * Displays loadout section in the briefing, with player weapons and items at mission start. -* Added UAV Recharging component: - * Allows recharging of backpack-carried UAVs using laserdesignator batteries. -* Added Zeus Support component: - * Adds functions to give hosts easier access to Zeus using the debug console. - * Can be invoked from Admin briefing and F3 Spectator Script. -* Updated F3 Common Local Variables - * Removed optional looping (bloat). - * Removed automatic broadcasting to reduce impact on network. -* Updated F3 Spectator Script: - * New UI. - * Freecam. - * Revised unit list with groups. - * Map Markers. - * Now with context map clicking: in freecam you are moved above the select unit, in chase/first person camera selects the unit as the observed unit. - * Camera Marker. - * Tracers on map. - * Minor edit to LocalGroupMarkers allowing you define faction (used to show other factions group markers for everyone, old style still compatible). -* Updated Fireteam Member Markers component: - * Fireteam member markers re-colour after joining a new group using the Join Group Action component. -* Updated F3 Folk ARPS Platoons component: - * Changed NATO and CSAT TH1 and TH2 helicopters to Huron and Taru. - * Added TH1 element for FIA (civilian M-900). -* Updated Folk ARPS Assign Gear Script component: - * Faction can now be forced using an optional third parameter. - * Added support for faction-specific crates. - * Added GPS for medics. - * Improved order of execution to avoid locality issues. - * Improved comments in the script files. - * Disables BI gear randomization by default to prevent overriding of F3 gear randomisation. -* Updated Medical Systems Support (F3 Simple Wounding System): - * Extra FAKs added to player loadouts (controlled via variable in init.sqf file). - * Reduced network traffic. - * Various bug fixes. -* Updated Name Tags component: - * Fixed driver position not properly displaying seat values. - * Added new variable f_nametags_shadows to govern the outline of the displayed nametags (default is 2). -* Updated Radio Systems Support component: - * Added support for ACRE2. -* Updated Safe Start component: - * Now sleeps for 60 real seconds (instead of in-game seconds). - * Runs almost exclusively server-side and broadcasts notifications and disabled safety to all clients. - * Now disables player vehicle weapons as well. - * Reduced duration of "X minutes remaining" note to 10 seconds. -* Fixed E&E Check component: - * Component would activate ending/code even if all tracked units were killed. - -3-2-0 RC2 | 06 NOV 2014 - -* Please see change history for release v3-2-0. - -3-2-0 RC1 | 24 OCT 2014 - -* Please see change history for release v3-2-0. - -3-1-2 | 12 SEP 2014 - -* Fix for Mission Conditions Selector component. - -3-1-1 | 26 JUL 2014 - -* Added Medical Systems Support component: - * Incorporates F3 Simple Wounding System - * Adds support for AGM medical supplies. -* Updated AI Caching component: - * Workaround for vehicles being frozen if moving and cached at the same time. - * Caching completely run server side using global commands. - * New variable to set aggressiveness of caching. -* Updated F3 Folk ARPS Platoons component: - * Added Heavy MG attachment. - * Added Heavy AT attachment. - * Added Mortar attachment. - * Added Medium SAM attachment. - * Added Heavy SAM attachment. - * Added Sniper Team attachment. - * Attachments are now led by the spotter. -* Updated F3 Folk ARPS Assign Gear component: - * Tweaked MAT loadouts (gunner now starts with rocket in tube). - * Added support for unit types in new attachments. -* Updated F3 Folk ARPS Assign Gear Clothing component: - * Component allows units to wear uniforms from any side or faction. - * Added new FIA uniforms, made various other tweaks. - * Changed CSAT small bag to correct camo. -* Updated F3 Folk ARPS Group IDs component: added support for unit types in new attachments. -* Updated F3 Folk ARPS Group Markers component: added support for unit types in new attachments. -* Updated F3 Spectator Script: - * Revised code to reduce load on CPU. - * Virtual men no longer have visible name tags. -* Updated Name Tags component: - * Height above unit determined by stance. - * Offset for passenger name tags fixed. -* Updated ORBAT Notes component: - * Now lists all groups with playable units (not just player groups). - * Highlights player group (highlight colour determined by side). -* Updated Radio Systems Support component: - * Improved support for spectators in TFR. - * Other minor tweaks. -* Fixed Mission Conditions component: - * Lightning set correctly. - * All Intel values in editor set to manual/0. -* Fixed PreMount component: - * Fixed issue where component would not slot turrets properly for vehicles with multiple turrets. - -3-1-1 RC1 | 23 JUL 2014 - -* Please see change history for release v3-1-1. - -3-1-0 | 17 JUN 2014 - -* Please change history for internal releases v3-1-0 RC1 through v3-1-0 RC6. - -3-1-0 RC6 | 16 JUN 2014 - -* Added Admin Briefing component: - * Lists endings and allows admin to invoke them by clicking a link. -* Updated E&E Check component: - * Allows passing of side instead of array. - * Groups/units are now passed as an array of strings to prevent script-errors. - * Optional boolean (last parameter): toggle if to check playable units only (default: true). -* Updated the F3 Simple Wounding System component: - * Made the release action created on yourself so its always around. - * Tweaked SetDowned. - * Added longer delay before system starts to allow for desync'd players.. -* Updated F3 Spectator Script component: - * Modified the freecam to use correct height in follow-mode. -* Fixed typo in AI Skill Selector component. -* Fixed error in Radio Systems Support component. - -3-1-0 RC5 | 11 JUN 2014 - -* Added Radio Systems Support component (replaces ACRE support component): - * Supports ACRE and TFR systems via single mission parameter. - * All radios cleared to avoid duplication of radio items. - * Optional: radio frequencies split based on unit's side. - * Spectator chat correctly handled for all players. - * Radios assigned based on assignGear calls (from unit init). - * ACRE only: vehicles filled with radios, depending on size. - * New component works separately from the F3 Folk ARPS Assign Gear Script component for locality purposes. -* Updated Fireteam Member Markers component: - * Team colours are now assigned in arrays at top of script (easier to modify, same functionality). -* Updated Join Group Action component: new notifications. -* Updated ORBAT Notes component: - * ORBAT lists vehicles, crew and any loaded elements. - * ORBAT lists individual medics (under their element leader). -* Fixed F3 Spectator Script component: - * Fixed issues for players joining into spectator mode during a no-respawn mission. - * Fixed various tags and camera issues. -* Fixed several components for use with JIP/respawn: - * Fireteam Member Markers component. - * F3 Folk ARPS Group Markers component (specifically for specialist markers). - * Join Group Action component. - -3-1-0 RC4 | 03 JUN 2014 - -* Fixed AI Skill Selector component: removed references to precursor component. -* Fixed F3 Folk ARPS Platoons component: incorrect group names for some FIA groups. -* Fixed F3 Folk ARPS Assign Gear Clothing component: incorrect uniforms for FIA drivers. -* Fixed F3 Simple Wounding System component: typo with variable name. -* Fixed F3 Spectator Script component: tags and camera issues. - -3-1-0 RC3 | 29 MAY 2014 - -* Updated F3 Folk ARPS Platoons component: - * Added CO/DC driver (repair) slots (all factions). - * Added UAV Operator slots to FIA. -* Updated MapClick Teleport component: added HALO option. -* Updated Mission Conditions Selector component: - * Night option now features full moon. - * Other options adjusted (better dawn/dusk etc.). -* Fixed ReadMe File Template component: removed ArmA 2 references. -* Fixed F3 Folk ARPS Assign Gear Script component: incomplete lists of classes in headers. -* Fixed F3 Spectator Script component: minor issues. -* Fixed F3 Simple Wounding System component: minor issues. - -3-1-0 RC2 | 28 MAY 2014 - -* Updated F3 Folk ARPS Platoons component: - * Ground vehicle drivers and selected helicopter crew members are now able to repair vehicles. - * Ground vehicle commanders have rangefinders. - * Fixed AAF DC group assignment. -* Updated Safe Start component: - * Changed frequency and duration of notifications. - * Changed name of parameter variable. -* Fixed ACRE Support component: script path(s). -* Fixed Debug Mode component: string paths (several were still referring to f\common) -* Fixed F3 Folk ARPS Assign Gear Script component: - * Removed blank between assignGear and ; in unit INIT lines. - * Removed nul = for unit INIT assignGear call. -* Fixed F3 Folk ARPS JIP Reinforcement Options component: paths (were still referring to f\common). -* Fixed F3 Folk ARPS Group Markers component: markers work for JIP players. -* Fixed Mission Conditions Selector component: issue with overcast implementation. -* Fixed PreMount component: - * Fixed incorrect function calls in modules for CSAT. - * Made more robust. -* Fixed E&E and Casualties Cap components: ensured code spawned happens globally. -* Fixed SP Editor issues (various). - -3-1-0 RC1 | 24 MAY 2014 - -* Restructured folders and files: - * Nearly all components now rest within their own sub-folder. -* Added AI Skill Selector component: - * Replaces the old AI Skill Selector (A&D and Coop) component. - * Allows the skill levels of all three combatant sides to be set individually via mission parameters. -* Added F3 Folk ARPS Assign Gear Attachments component: - * Works with F3 Folk ARPS Assign Gear Script component. -* Added F3 Folk ARPS Assign Gear Clothes component: - * Works with F3 Folk ARPS Assign Gear Script component. -* Added F3 Simple Wounding System. -* Added F3 Premount component: - * Mission makers can quickly and easily mount multiple groups in multiple vehicles. - * Mission makers can control use of crew seats and group cohesion across vehicles. - * Pre-placed modules support easy mounting of squads from pre-placed platoons. -* Added Respawn Templates component: - * Replaces Respawn INIT component. -* Added MapClick Teleport component: - * Replaces the Mission Maker Teleport component. - * Can also be used by players in-game. - * Mission makers can restrict usage by number of uses and/or time. - * Mission makers can restrict usage to group leaders. -* Added support for OPFOR and Independent FIA platoons to following components: - * Briefing Template component. - * F3 Folk ARPS Assign Gear Script component. - * F3 Folk ARPS Group IDs component. - * F3 Folk ARPS Group Markers component. -* Updated Authorised Crew Check component: - * Now incorporates Authorised Crew Type Check component. - * Mission maker can now control access to passenger seats as well. -* Updated Buddy Team colours component: - * Fixed bug with teams that begin in vehicles. -* Updated Casualties Cap component: - * Now incorporates Casualties Cap (Advanced) components. -* Updated Dynamic View Distance component: - * Mission makers can now control view distances for vehicle passengers. -* Updated F3 Folk ARPS Assign Gear Script component: - * Backpacks parameter renamed to Loadouts. - * Added UAV operator loadout to all factions. - * Changed default AT for AAF faction to RPG32. - * Replaced all binoculars with rangefinders. - * Fixed issues with respawn and JIP. - * F3 Folk ARPS Assign Gear component is now called using f_fnc_assignGear (omitting the folk). - * Uniform types (e.g. light, crew, diver etc.) for each unit type can now assigned in the faction's assignGear file. - * Added new uniform types: ghillie suits and special forces (AAF don't have a dedicated AAF loadout, FIA use CTRG). - * Backpack loadouts have been moved into their own file. - * Attachments are now assigned as local variables, can be assigned as a per-type basis. - * Added options for handgun attachments. - * Tweaks to improve perfomance when loading vehicles with assignGear. -* Updated F3 Folk ARPS Group IDs component: - * Reworked to tidy up code and bring up to standard. -* Updated F3 Folk ARPS JIP Reinforcement Options component: - * Fixed component for respawn and JIP. - * Uses RespawnTemplate instead of a EventHandler. - * Added optional removal of old player corpses. - * Added optional enforcement of old gear. - * Added JIP menu allows joining no group or staying in old group if it still has members. -* Updated F3 Folk ARPS Platoons component: - * Added UAV operator to each CO/DC team for NATO, AAF and CSAT. -* Updated F3 Spectator Script component: - * Full sized map. - * FOV Zoom. - * Tag names for players. - * Completely overhauled camera * now much smoother. - * Revamped tags. -* Updated Mission Conditions Selector component: - * All relevant files moved to f/missionConditions. - * Split f_setMissionConditions.sqf into three files: fn_setFog, fn_setDate, fn_setWeather. - * Updated component to take advantage of BIS improvements in weather system and sychronisation. - * Updated component to allow usage of new setFog array. - * Updated component to allow smooth time transitions when changing the date. -* Update Multiplayer Ending Controller component: - * Component is now called using ["ending"] call f_fnc_mpEnd and needs only to be called on the server. - * Updated to take advantage of Arma 3 improvements. - * Component now accepts optional second parameter: true (default) displays "mission completed" type of ending, false "mission failed". -* Updated Safe Start component. - -3-0-9A | 12 FEB 2014 - -* Updated AI Caching component. - -3-0-9 | 09 FEB 2014 - -* Added AI Caching component. -* Updated F3 Folk ARPS Group Markers component: - * Functions are now defined in cfgFunctions via description.ext. - * Fixed bug where marker was frozen despite the group still having members. -* Updated F3 Folk ARPS Assign Gear Script component: - * Added uniform randomisation. - * MAT teams now use NLAWs or RPGs. - * Rifleman (AT) loadout tweaked. - * Rifleman (AT), MAT loadouts work when backpacks are disabled. - * Added mini grenades to many loadouts. - * Expanded engineer detachment. - * Split engineer role into two specialisms: demo and mines (both types have repair kits and mine detectors). - * Adjusted loadouts and outfits to reflect changes introduced in A3 1.10. -* Updated Name Tags component: - * Added optional display of unit group (defined by setGroupID / F3 Folk ARPS Group IDs component). - * Added optional feature to display distance in metres. - * Added optional feature to display type of mounted vehicle for driver/gunner/commander. - * Drawing of name tags is now its own function defined in cfgFunctions. - * Fixed issue where name tag height for units in buildings would be incorrect. - * Fixed issue where name tags would display for enemy/neutral units in vehicles. - * Misc. improvements and tweaks. -* Updated F3 Folk ARPS Platoons component: - * Added tank and attack helo groups to AAF. - * Temporarily removed JIP groups (for all factions). -* Updated Mission Conditions component to adjust fog values. -* Updated Buddy Team Colours component. -* Updated Automatic Body Removal component. -* Fixed ACRE Support component issue with spectator script. -* Misc. typo fixes in various components. - -3-0-8 | 28 DEC 2013 - -* Moved README.md to the F3 folder. -* Added BIS debug console for logged-in admins. -* Added Safe Start component. -* Added new F3 Spectator component. -* Overhauled F3 Name Tag component -* Overhauled F3 Automatic Body Removal Component -* Overhauled F3 Set AI Skill Component -* Updated Briefing Template component to reflect new faction names. -* Updated Mission Observers component to use BIS Splendid Camera. -* Updated F3 Folk ARPS Platoons component to reflect new faction names. -* Updated F3 Folk ARPS Assign Gear Script component to reflect new faction names. -* Updated F3 Folk ARPS Group IDs to reflect new faction names. -* Updated F3 Folk ARPS Assign Gear scripts to improve weight-distribution in fire teams and reduce overall weight -* Expanded F3 Folk ARPS Platoons component to include FIA platoon. -* Expanded F3 Folk ARPS Assign Gear Script component to support FIA platoon. -* Expanded F3 Folk ARPS Assign Gear Script component to offer more variety for backpacks and vests -* Expanded Briefing Template component to support FIA platoon. -* Expanded F3 Folk ARPS Group IDs to support FIA platoon. -* Expanded F3 Folk ARPS Group Markers to support FIA platoon. -* Expanded F3 Folk ARPS JIP Reinforcement Options to support FIA platoon. -* Re-enabled more weather parameter options in Mission Conditions Selector component. -* Removed now obsolete old F2 name tag component -* Removed obsolete F2 Tripwire Action entry in init.sqf -* Removed unnecessary references to Stratis in mission.sqm -* Disabled Weather synchronization in F3 Missions Conditions selector component for perfomance reasons -* Fixed minor bug in F3 Folk ARPS Platoons component. -* Fixed bugs in F3 Mission Conditions Selector introduced by A3 1.02.110.424 - -3-0-7 | 14 SEP 2013 - -* Changed default terrain to Altis. -* Added Fireteam Member Markers component. -* Added Buddy Team Colours component. -* Partially re-enabled weather parameter in Mission Conditions Selector component. -* Expanded F3 Folk ARPS Platoons component: - * INDEPENDENT platoon can now be helibourne or mechanised. - * BLUFOR platoon now has 1 x tank. - * OPFOR platoon now has 1 x tank. -* Implemented new functions-based approach to parameters, gear etc. -* Updated F3 Folk ARPS Assign Gear Script component to support new NVG classnames. -* Removed ShackTactical Fireteam Member Markers component. - -3-0-6 | 20 AUG 2013 - -* Updated Multiplayer Ending Controller component to use new BIS endings. -* Updated F3 Folk ARPS Assign Gear Script component (various fixes/changes). -* Fixed additional unsassigned variable errors. -* Removed unused files and references. - -3-0-5 | 17 AUG 2013 - -* Migrated ACRE Support component (inc. pre-set frequencies, see F3 wiki for details). -* Expanded F3 Folk ARPS Platoons component: - * BLUFOR platoon can now be helibourne or mechanised. - * OPFOR platoon can now be helibourne or mechanised. - * INDEPENDENT platoon can now be helibourne. -* Fixed additional unsassigned variable errors. -* Removed Kegetys Spectator Script component. -* Removed unused files and references. - -3-0-4 | 08 AUG 2013 - -* Fixed "no entry 'bin\config.bin/CfgWeapons.'." error. -* Fixed various unsassigned variable errors. -* Fixed medic markers in F3 Folk ARPS Group Markers component. -* Fixed time of day parameter in Mission Conditions Selector component. -* Disabled weather parameter in Mission Conditions Selector component. -* Added new options to Casualties Cap component. -* Added new options to Casualties Cap (Advanced) component. - -3-0-3 | 25 JUN 2013 - -* Quick updates to reflect key ArmA 3 Beta content and changes. -* Updated all F3 Folk ARPS components to include Green faction. -* Updated all F3 Folk ARPS components to reflect Blue/Red/Green faction names. -* Updated F3 Folk ARPS Platoons component to include new/upgraded vehicles. -* Updated ORBAT Notes component (group names are now clickable and zoom map to group marker). -* Updated F3 Folk ARPS JIP Reinforcement Options component (JIP group does not follow player). -* Updated F3 Folk ARPS JIP Reinforcement Options component (JIP option more visible). -* Fixed F3 Common Local Variables component (prevented double-counts of vehicle crew). - -3-0-2 | 25 MAR 2013 - -* Updated to reflect revised OPFOR uniform classnames. -* Updated to reflect revised name for Ifrit. -* Development of Mission Conditions Selector component (new functionality not yet enabled). - -3-0-1 | 17 MAR 2013 - -* Fixed diver attachment bug with F3 Folk ARPS Assign Gear Script component. -* Fixed ranks and typos with F3 Folk ARPS Platoons component. -* Missle cam no longer on by default in Kegetys Spectator Script component. -* Updated F3 Folk ARPS Assign Gear Script component to include backpack options by parameter (off/light/heavy). -* Updated F3 Folk ARPS Assign Gear Script component so Rifelman (AT) role has a launcher. - -3-0-0 | 10 MAR 2013 - -* Migrated Naming Your Mission component. -* Migrated Mission Header component. -* Migrated Respawn Settings component. -* Migrated Respawn INIT component. -* Migrated (and renamed) Briefing Template component. -* Migrated ReadMe File Template component. -* Migrated Debug Mode component. -* Migrated Disable Saving and Auto Saving component. -* Migrated (and renamed) F3 Common Local Variables component. -* Migrated Join Group Action component. -* Migrated Kegetys Spectator Script component. -* Migrated Mission Observers component. -* Migrated Multiplayer Ending Controller component. -* Migrated ORBAT Notes component. -* Migrated Sample Markers component. -* Migrated ShackTactical Fireteam Member Markers component. -* Migrated AI Skill Selector (A&D) component. -* Migrated AI Skill Selector (coop) component. -* Migrated Authorised Crew Check component. -* Migrated Authorised Crew Type Check component. -* Migrated Automatic Body Removal component. -* Migrated Casualties Cap component. -* Migrated Casualties Cap (Advanced) component. -* Migrated Dynamic View Distance component. -* Migrated Group E&E Check component. -* Migrated Mission Maker Teleport component. -* Migrated Name Tags component. -* Migrated (and renamed) F3 Folk ARPS Platoons component. -* Migrated (and renamed) F3 Folk ARPS Assign Gear Script component. -* Migrated (and renamed) F3 Folk ARPS Group IDs component. -* Migrated (and renamed) F3 Folk ARPS Group Markers component. -* Migrated (and renamed) F3 Folk ARPS JIP Reinforcement Options component. -* Part-migrated Mission Conditions Selector component. -* Removed Disable BIS Conversations component. -* Removed Preplaced Game Logics component. -* Removed ACRE Support component. -* Removed Automatic Body Removal (FIFO) component. -* Removed Construction Interface (COIN) Presets component. -* Removed Trip Flare component. -* Removed Gear Snippets component. -* Added Loading Screen component. - -### F2 Change History ### - -Version | Date - -2-7-1 | 16 FEB 2013 - -* Added Mission Observers component. -* Changed default setting for Backpacks mission parameter to "off". -* Changed Preplaced Game Logics component: synchronizing medic modules with every single unit is no longer required. -* Changed ACRE Support component: 148s restricted to element leaders. -* Changed Casualties Cap component to add more options (by side, by faction). -* Fixed incorrect unit names in Takistani Locals platoon. -* Fixed incorrect classnames for pilots and crew in CDF platoon. -* Fixed F2 Common Local Variables so it no longer includes the F2_Precompile_East and F2_Precompile_West units used by the CO Folk ARPS Assign Gear Script component. - -2-7-0 | 15 DEC 2012 - -* Moved development to GitHub (see: https://github.com/ferstaberinde/F2). -* Changed OA Folk build to CO Folk ARPS build. -* Updated CO Folk ARPS Platoons (USMC, CDF, NAPA, Russian Army, ChDKZ). -* Updated CO Folk ARPS Group IDs component. -* Updated CO Folk ARPS Markers component. -* Updated CO Folk ARPS Assign Gear Script component (supports new factions, backpacks default to ON, vehicle cargo presets for trucks and IFVs). -* Added CO Folk ARPS Assign Gear Script component alternative files for: US Army, ACR. -* Changed OA Briefing Template component to CO Briefing Template component (now supports ArmA2 factions). -* Updated Casualties Cap component (commented-out lines for all Folk ARPS platoons added). -* Added ORBAT Notes component. -* Added ACRE support component. -* Added Join Group Action component. -* Extended Trip Flare component (now also placeable in-game). -* Removed Norrin's Revive Respawn component. - -2-6-1 | 02 JUL 2012 - -* Fixed OA Folk Platoons. - -2-6-0 | 07 JUN 2012 - -* Updated OA Folk Platoons. -* Updated OA Folk Assign Gear Script. -* Updated OA Folk Group IDs. -* Updated OA Folk Group Markers. -* Updated Briefing File Template component. -* Updated manual: Various changes. - -2-5-0 | 24 JAN 2012 - -* Updated OA Folk Platoons. -* Updated OA Folk Assign Gear Script. -* Updated OA Folk Group IDs. -* Updated OA Folk Group Markers. -* Updated OA Folk JIP Reinforcement Options. -* Updated stringtable.xml. -* Updated manual: Various changes (EN and RU versions). - -2-4-5 | 16 SEP 2010 - -* Fixed F2 Common Local Variables component. -* Fixed Dynamic View Distance component. -* Updated manual: Various changes (EN and RU versions). - -2-4-4 | 16 SEP 2010 - -* Fixed F2 Common Local Variables component. -* Fixed Dynamic View Distance component. -* Updated manual: Various changes (EN and RU versions). - -2-4-3 | 11 SEP 2010 - -* Updated Folk Platoons component (added UN faction). -* Updated Folk Platoons component (added British Armed Forces faction). -* Updated Folk Platoons component (added TK Militia faction). -* Updated OA Folk Assign Gear component. -* Updated OA Folk Group IDs component. -* Updated OA Folk Group Markers component. -* Updated manual: Various changes (EN and RU versions). - -2-4-2 | 01 SEP 2010 - -* Updated Kegetys Spectator Script component. -* Updated Folk Platoons component (added US Army faction). -* Updated Folk Platoons component (added TK Army faction). -* Froze ArmA2 builds at v2-4-1. -* Updated manual: Various changes (EN and RU versions). - -2-4-1 | 11 JUN 2010 - -* Added OA Briefing component. -* Added OA Folk Platoons component. -* Added OA Folk Assign Gear component. -* Added OA Folk Group IDs component. -* Added OA Folk Group Markers component. -* Added OA Folk JIP Reinforcement Options component. -* Updated F2 ReadMe.txt to reflect addition of support for Operation Arrowhead. -* Updated manual: Various changes (EN and RU versions). - -2-4-0 | Internal - -* Changed the structure of F2 to the new Foundation + Builds approach. -* Updated manual: Various changes (EN and RU versions). - -2-3-3 | Internal - -* Added Folk Platoons component. -* Added Folk Assign Gear component. -* Added Folk Group IDs component. -* Added Folk Group Markers component. -* Added Folk JIP Reinforcement Options component. -* Updated manual: Various changes (EN and RU versions). - -2-3-2 | 17 MAY 2010 - -* Fixed minor bug with Respawn INIT component. - -2-3-1 | 20 APR 2010 - -* Added Respawn INIT component. -* Added description.ext.F2A2 (supports F2A2 and F2A2ST). -* Updated ShackTactical Group Markers to support JIP groups. -* Updated F2A2 ShackTactical Group Markers for ACE2 to support JIP groups. - -2-3-0 | 12 APR 2010 - -* Added JIP Reinforcement Options component. -* Added F2A2 Kegetys Spectator Script (ACE2 Addon) component. -* Updated ShackTactical Platoons (added JIP group to all platoons). -* Updated F2A2 ShackTactical Platoons for ACE2 (added JIP group to all platoons). -* Updated F2A2 ShackTactical Platoons for ACE2 (added ACE Enable Wounding). -* Updated Briefing File Template component to make it JIP-friendly. -* Updated manual: Various changes (EN and RU versions). - -2-2-5 | 27 FEB 2010 - -* Fixed F2A2 ShackTactical Group Markers for ACE2. -* Fixes for various issues with the spectator script and v1.05/ACE2. -* Added Group E&E Check component. - -2-2-4 | 30 JAN 2010 - -* Updated F2A2 ShackTactical Platoons for ACE2 (added Echo squad to all platoons). -* Updated F2A2 ShackTactical Group IDs for ACE2 (added support for Echo squad). -* Updated F2A2 ShackTactical Group Markers for ACE2 (added support for Echo squad). -* Fix for minor interface bug in spectator script and v1.05. -* Updated manual: Various changes (EN and RU versions). - -2-2-3 | 07 JAN 2010 - -* Fix for disabled keys bug in spectator script and v1.05. -* Updated F2A2 ShackTactical Assign Gear Script for ACE2 (increased medical supplies, added SMAW spotting rounds). - -2-2-2 | 27 DEC 2009 - -* Partial fix for disabled keys bug in spectator script and v1.05. -* Promoted briefings and markers in the running order of init.sqf (inc. F2A2 version). - -2-2-1 | 21 DEC 2009 - -* Changed Mission Maker Teleport to an optional component. -* Fixed seagull bug in spectator script (eliminates instant seagulls over dead bodies). -* Updated manual: Various changes (EN and RU versions). - -2-2-0 | 07 DEC 2009 - -* Added F2A2 ShackTactical Platoons for ACE2. -* Added F2A2 ShackTactical Group IDs for ACE2. -* Added F2A2 ShackTactical Group Markers for ACE2. -* Added F2A2 ShackTactical Assign Gear Script for ACE2. -* Updated manual: Various changes (EN and RU versions). - -2-2-0 RC1 | 07 DEC 2009 - -* Added F2A2 ShackTactical Platoons for ACE2. -* Added F2A2 ShackTactical Group IDs for ACE2. -* Added F2A2 ShackTactical Group Markers for ACE2. -* Added F2A2 ShackTactical Assign Gear Script for ACE2. -* Updated manual: Various changes (EN and RU versions). - -2-1-3 | 25 NOV 2009 - -* Updated Norrin's Revive Respawn to version 0.3g. -* Updated manual: Various changes (EN and RU versions). - -2-1-2 | 02 NOV 2009 - -* Added Name Tags component. -* Updated Norrin's Revive Respawn to version 0.3f. -* Updated manual: Various changes (EN and RU versions). - -2-1-1 | 20 OCT 2009 - -* Added Disable Saving and Auto Saving component. -* Removed readme file for Norrin's Revive Respawn component (now available as download from manual wiki). -* Removed rogue setGroupID and HC-related commands from Init lines of units in ShackTactical Platoons. -* Updated manual: Various changes (EN and RU versions). - -2-1-0 | 06 OCT 2009 - -* Added Norrin's Revive Respawn component. -* Updated manual: Various changes (EN and RU versions). - -2-1-0 RC1 | 06 OCT 2009 - -* Added Norrin's Revive Respawn component. -* Updated manual: Various changes (EN and RU versions). - -2-0-5 | 30 SEP 2009 - -* Added Trip Flare component. -* Added processParamsArray.sqf file. -* Updated Debug Mode component to use stringtable.xml and processParamsArray.sqf files. -* Updated AI Skill (coop) component to use processParamsArray.sqf file. -* Updated AI Skill (A&D) component to use processParamsArray.sqf file. -* Updated Debug Mode component to use processParamsArray.sqf file. -* Reinstated the 'storm' option in Mission Conditions Selector component. -* Updated stringtable.xml file. -* Updated manual to include screenshots for selected components. -* Updated manual: Various changes (EN and RU versions). - -2-0-4 | 09 SEP 2009 - -* IMPORTANT NOTE: Requires ArmA2 (beta) version 1.03.59025 or better. -* Added Construction Interface (COIN) Presets component. -* Added Mission Maker Teleport component. -* Updated Mission Conditions Selector component to work with multiple MP parameters method. -* Updated Set AI Skill (coop) component to work with multiple MP parameters method. -* Updated Set AI Skill (A&D) component to work with multiple MP parameters method. -* Updated Debug Mode component to work with multiple MP parameters method. -* Rebuilt stringtable.xml file. -* Updated manual: Various changes (EN and RU versions). - -2-0-3 | 24 AUG 2009 - -* Updated Kegetys Spectator Script component. - -2-0-2 | 24 AUG 2009 - -* Added Disable BIS Conversations component. -* Replaced stringtable.csv with stringtable.xml. -* Removed First Aid: Action pre-placed game logics from mission.sqm file (Preplaced Game Logics component). -* Updated manual: Various changes (EN and RU versions). - -2-0-1 | 26 JUL 2009 - -* Migrated Set AI Skill (coop) component from BAS f. -* Migrated Set AI Skill (A&D) component from BAS f. -* Updated Kegetys Spectator Script component. -* Updated ShackTactical Assign Gear Script component. -* Fixed bug with Preplaced Game Logics component. -* Updated manual: Various changes (EN version). - -2-0-0 | 12 JUL 2009 - -* Migrated Naming Your Mission component from BAS f. -* Migrated Mission Header component from BAS f. -* Migrated Respawn Settings component from BAS f. -* Migrated F2 Common Local Variables component from BAS f. -* Migrated Mission Conditions Selector component from BAS f. -* Migrated Debug Mode component from BAS f. -* Migrated ShackTactical Platoons component from BAS f. -* Migrated ShackTactical Group IDs component from BAS f. -* Migrated ShackTactical Group Markers component from BAS f. -* Migrated ShackTactical Fireteam Member Markers component from BAS f. -* Migrated ShackTactical Assign Gear Script component from BAS f. -* Migrated Multiplayer Ending Controller component from BAS f. -* Migrated Kegetys Spectator Script component from BAS f. -* Migrated Sample Markers component from BAS f. -* Migrated Briefing File Template component from BAS f. -* Migrated ReadMe File Template component from BAS f. -* Migrated Gear Snippets component from BAS f. -* Migrated Automatic Body Removal component from BAS f. -* Migrated Automatic Body Removal (FIFO) component from BAS f. -* Migrated Authorised Crew Check component from BAS f. -* Migrated Authorised Crew Type Check component from BAS f. -* Migrated Casualties Cap component from BAS f -* Migrated Casualties Cap (Advanced) component from BAS f -* Added Preplaced Game Logics component. -* Created online manual (EN version). - -### BAS f Change History ### - -Version | Date - -1-4-2 | 13 MAR 2009 - -* Updated Jefke's BAS Release Builder application to support the revised names for Nogovoa, Everon, Malden and Kolgujev in ACEIP (thanks to Kju). -* Updated manual: Various changes. - -1-4-1 | 13 FEB 2009 - -* Updated kevb0's Assign Gear Script to work with ACE v1.02 (thanks to kevb0). -* Updated manual: Various changes. - -1-4-0 | 03 FEB 2009 - -* Expanded ShackTac platoons to include attached MG and AT teams. -* Updated the @ShackTac_localMarker.sqf file. -* Updated the @ShackTac_setLocalMarkers.sqf file. -* Updated the ShackTac_setLocalMarkers.sqf file. -* Updated the ShackTac_setGroupIDs.sqf file (thanks to Headspace). -* Updated Kegetys Spectator Script for ArmA component (thanks to ViperMaul). -* Updated manual: Various changes. - -1-3-2 | 18 JAN 2009 - -* Updated Conditions Selector component, adding random selection option (thanks to Messiah2 and kevb0). -* Updated kevb0's Assign Gear Script (thanks to kevb0). -* Updated the French values in the stringtable.csv file (thanks to JanMasterson). -* Updated manual: Various minor changes. - -1-3-1 | 08 JAN 2009 - -* Updated Jefke's BAS Release Builder application (many thanks to Jefke). -* Fixed LDD Kyllikki: Baseline Mission File Template (FDF Version) (thanks to broileri). -* Updated manual: Various minor changes. - -1-3 | 03 JAN 2009 - -* Implemented Jefke's BAS Release Builder application (many thanks to Jefke). -* Added Configurable Playable Slots (ACE Version) component. -* Added kevb0's Assign Gear Script (thanks to kevb0). -* Added support for Afghan Village. -* Added support for ACE Islands Pack public beta v1.00 (thanks to kevb0 and Jefke) -* Added LDD Kyllikki: Baseline Mission File Template (FDF Version) (thanks to broileri). -* Updated manual: Various minor changes. - -1-2 | 18 DEC 2008 - -* Updated ShackTac platoon loadouts (thanks to FLEXCopMNPD). -* Updated Kegetys Spectator Script for ArmA component (thanks to ViperMaul). -* Added new ShackTac mission.sqm files for ACU, MARPAT D and Woodland (thanks to FLEXCopMNPD). -* Added support for South Sahrani. -* Added support for Avgani. -* Added support for Uhao. -* Added support for LDDK training island (Isla de Pollo). -* Added ShackTac f mission template folders for all supported islands. -* Removed support for ACE islands (temporarily). -* Removed support for CWR islands (temporarily). -* Updated manual: Various minor changes. - -1-1C | 19 MAY 2008 - -* Added ShackTac f (Rahmadi) mission folder template. -* Added ShackTac f (Schmalfelden) mission folder template. -* Updated guidelines on mission naming in the manual. -* Updated manual: Various minor changes. -* SPECIAL NOTE: Support for ACE islands DOES NOT INCLUDE an updated mission_ShackTac.sqm file which uses ACE USMC units, OR an updated version of the ShackTac f (Sahrani) component. You should NOT use BAS f v1-1B to make official ShackTac missions. This build is for ACE and ShackTac testing / evaluation purposes only. - -1-1B | 29 APR 2008 - -* Added support for ACE CWC Islands Pack Beta 2 (22 APR 2008). -* Added support for Schmalfelden (v0.81) (v0.81 does not work 100% correctly with f_setMissionConditions.sqf). -* Updated manual: Various minor changes. -* SPECIAL NOTE: Support for ACE islands DOES NOT INCLUDE an updated mission_ShackTac.sqm file which uses ACE USMC units, OR an updated version of the ShackTac f (Sahrani) component. You should NOT use BAS f v1-1B to make official ShackTac missions. This build is for ACE and ShackTac testing / evaluation purposes only. - -1-1A | 03 APR 2008 - -* Added support for ACE Islands Pack Private v5 (23 FEB 2008) (thanks to Jaxobs for earlier 1-0-9B port). -* Added support for ACE Everon beta (31 MAR 2008). -* Added support for ACE Palms EAF beta (16 FEB 2008) (thanks to Awoihjaweohr for help with f_setMissionConditios.sqf). -* Updated manual: Various minor changes. -* SPECIAL NOTE: Support for ACE islands DOES NOT INCLUDE an updated mission_ShackTac.sqm file which uses ACE USMC units, OR an updated version of the ShackTac f (Sahrani) component. You should NOT use BAS f v1-1A to make official ShackTac missions. This build is for ACE and ShackTac testing / evaluation purposes only. - -1-1 | 21 MAR 2008 - -* Added additional translations for new options in f_setMissionConditions.sqf file. -* Implemented updated version of kevb0's Wounding Script (thanks to kevb0). -* Added ShackTac f (Sahrani) mission folder template. -* Updated manual: Various minor changes. - -1-0-9B | 07 FEB 2008 - -* Updated 'description.ext' and 'f_woundingScriptSounds.hpp' files (thanks to burningtrees). -* Updated manual: Various, to reflect above changes (thanks to bluedingo). - -1-0-9A | 19 JAN 2008 - -* Added kevb0's Outtro Script. -* Updated kevb0's Wounding Script. -* Changed f_setMissionConditions.sqf file to use setDate command (thanks to Dslyecxi). -* Added new options to f_setMissionConditions.sqf file (thanks to Red Barron). -* Updated manual: Various, to reflect above changes. - -1-0-9 | 12 JAN 2008 - -* Updated ShackTactical briefing templates with better in-page navigation. -* Fixed file format of f_casualtiesCapAdv.sqf file (which was not DOS-friendly). -* Changed default date of missions so that nights feature a full moon. -* Added kevb0's Wounding Script. - -1-0-8 | 26 DEC 2007 - -* Added support for Winter Kolgujev (CWR Addons v0.80 released 25 DEC 2007). -* Updated manual: Various, to reflect above changes. - -1-0-7 | 24 DEC 2007 - -* Added support for Malden (CWR Mod Demo v0.36 released 24 DEC 2007). -* Updated manual: Various, to reflect above changes. - -1-0-6 | 27 OCT 2007 - -* Added ShackTactical CoC CEX Support component. -* Updated manual: Various, to reflect above changes. - -1-0-5 | 15 OCT 2007 - -* Added support for Rahmadi, United Sahrani, Porto and Sakakah Al Jawf (open beta version). -* Added the Casualties Cap (Advanced) component. -* Updated the ShackTactical Group IDs component (thanks to Messiah2 and zx64). -* Updated the MP Ending Controller component to close the Spectator Script dialog on mission end (thanks to zx64). -* Updated manual: Various, to reflect above changes. - -1-0-4 | 19 AUG 2007 - -* Added ShackTactical Group IDs component (thanks to kevb0 and zx64). -* Added smoke grenades to pre-placed SLs, FTLs and medics in the mission_ShackTac.sqm file. -* Updated manual: Various, to reflect above changes. - -1-0-3A | 25 JUL 2007 - -* Fixed missing instance of f_waitForJIP.sqf file (in the f/commom/f_spect folder). - -1-0-3 | 25 JUL 2007 - -* Variable f_var_debugMode is now always set (to 0 or 1) by the init.sqf file. -* Updated server check method in f_abrFIFO.sqf file. -* Updated server check method in f_endOnCasualtiesCap file. -* Implemented include approach for standard JIP check (see f_waitForJIP file) (thanks to zx64). -* Implemented BAS Server Logic Failsafe (thanks to zx64). -* Fixed Kegetys' Spectator Script component to work with ArmA v1.08 (thanks to ViperMaul). -* Updated ShackTactical Markers component to make radios optional. -* Updated ShackTactical Markers (Addon Version) component to make radios optional. -* Updated manual: Various, to reflect above changes. - -1-0-2 | 19 JUL 2007 - -* Integrated new Automatic Body Removal (FIFO Version) (thanks to Raedor). -* Added new common variable: f_var_men_players (thanks to Raedor). -* Added ShackTactical Markers (Addon Version) component. -* Added ShackTactical Fireteam Markers (Addon Version) component. -* Updated ShackTactical Fireteam Markers component (disabled unit names). -* Updated manual: Various, to reflect above changes. - -1-0-1 | 28 JUN 2007 - -* Doubled number of pre-placed units in the mission_ShackTactical.sqm file. -* Updated ShackTactical Markers component. -* Added ShackTactical Briefing File (Coop Version) Template component. -* Added ShackTactical Briefing File (Attack & Defend Version) Template component. -* Updated manual: Various. - -1-0 | 24 JUN 2007 - -* Updated Casualties Cap component. -* Updated manual: Various. - -0-0-31 | 07 JUN 2007 - -* Added ShackTactical: Fireteam Markers component. -* Updated Casualties Cap component to use alive command. -* Added Authorsed Crew Type component. -* Fixed German typo in the stringtable.csv file. -* Updated manual: Various, to reflect above changes. - -0-0-30 | 24 MAY 2007 - -* Added French to stringtable.csv file. -* Updated standard JIP header code in all common scripts (except Mission Conditions Selector) (thanks to Raedor). -* Updated mission_ShackTactical.sqm file to fix RPT bug (bad double magazine detection). -* Updated manual: Various, to reflect above changes. - -0-0-29 | 17 MAY 2007 - -* Implemented standard JIP header code in all common scripts (except Mission Conditions Selector) (thanks to Raedor). -* Changed Authorised Crew Check component to use 'GETOUT' command (thanks to eJay). -* Updated Casualties Cap component (now works with empty groups). - -0-0-28 | 07 MAY 2007 - -* Added Casualties Cap component. -* Made AI Skill Selector (Coop Version) component optional (moved from core). -* Added AI Skill Selector (Attack & Defend Version) component. -* Changed ShackTactical: Baseline Mission File Template component (AARs now carry MG ammo). - -0-0-27 | 05 MAY 2007 - -* Consolidated build for release. - -0-0-26 | 05 MAY 2007 - -* Added Spanish to stringtable.csv file. -* Added f_setCommonVars.sqf file (and added call in init.sqf file). -* Added f_addSetViewDistanceEHs.sqf file. -* Added f_setViewDistanceGetIn.sqf file. -* Added f_setViewDistanceGetOut.sqf file. -* Added briefing_bySide.html template. -* Added ShackTactical: Baseline Mission File Template component. -* Added ShackTactical: Markers component. -* Ammended init.sqf to include option component: Dynamic View Distance. -* Amended f_addRemoveBodyEH.sqf to use var(s) from f_setCommonVars.sqf file. -* Amended f_addRemoveBodyEH.sqf (changed names of private variables). -* Amended f_setAISkill.sqf to use var(s) from f_setCommonVars.sqf file. -* Amended f_setAISkill.sqf to set skill for all unit types (not just men). -* Changed suffix for onPlayerRespawnAsSeagull.sqs file to 'xxx'. -* Updated manual: Various, to reflect above changes. - -0-0-25 | 12 APR 2007 - -* Patch release (missing UPS and Anti-TK components). -* Added Kegetys Spectator Script for ArmA component. -* Updated manual: Revised mission folder placement and naming instructions. - -0-0-24 | 28 MAR 2007 - -* Patch release (missing UPS and Anti-TK components). -* Updated manual: Fixed error in manual which caused MP Ending Controller to fail. - -0-0-23 | 07 MAR 2007 - -* Public beta release (missing UPS and Anti-TK components). -* Updates and corrections made to manual. -* Replaced use of 'exit' with 'exitWith' throughout. -* Added 1.05 weapons and magazines to description.ext. - -0-0-22 | 23 FEB 2007 - -* Public beta release candidate (missing UPS and Anti-TK components). -* Updates and corrections made to manual. -* Update to the Russian entries in stringtable.csv. - -0-0-21 | 19 FEB 2007 - -* Public beta release candidate (missing UPS and Anti-TK components, manual not translated). -* Updates and corrections made to manual. - -0-0-20 | 31 JAN 2007 - -* Internal alpha release (missing UPS and Anti-TK components). -* Moved everything to Sahrani. -* Updates and corrections made to manual. - -0-0-19 | 24 JAN 2007 - -* Internal alpha release (missing UPS and Anti-TK components). -* Updates and corrections made to manual, inc. screenshots (from Rahmadi version). -* Included Open Office format version of manual. - -0-0-18 | 12 JAN 2007 - -* Internal alpha release (missing UPS and Anti-TK components). +# F3-Folk ARPS Mission-making Template # + +## Changes from default F3 ## + +* Wolfenswan's function library (ws_fnc) integrated +* Folk ARPS logo.jpg file included +* F3 features pre-enabled: + * Name Tags + * Automatic Body Removal + * Safe Start default set to 1 minute + * Set AI Skill for all factions - Missionmakers can remove the cases they do not need + * Pre-configured endings 1 -3 with generic titles and texts + +## Versions ## +* F3 3-4-0 +* ws_fnc 05/07/2015 \ No newline at end of file diff --git a/description.ext b/description.ext index a4fdd373f..a73dcc2cf 100644 --- a/description.ext +++ b/description.ext @@ -140,9 +140,9 @@ class Params class f_param_medical { title = "Medical System"; - values[] = {0,1,2}; - texts[] = {"Arma 3 Default","F3 Simple Wounding System","Authentic Gameplay Mod"}; - default = 0; + values[] = {0,1}; + texts[] = {"Arma 3 Default","F3 Simple Wounding System"}; + default = 1; }; // ============================================================================================ @@ -155,7 +155,7 @@ class Params title = "$STR_f_param_mission_timer"; values[] = {0,1,2,3,4,5,6,7,8,9,10,15}; texts[] = {"$STR_f_param_mission_timer_off","1","2","3","4","5","6","7","8","9","10","15"}; - default = 0; + default = 1; }; // ============================================================================================ @@ -202,7 +202,6 @@ class Params // F3 - AI Skill Selector // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -/* class f_param_AISkill_BLUFOR { title = "$STR_f_param_AISkill_BLUFOR"; @@ -210,9 +209,7 @@ class Params texts[] = {$STR_f_param_AISkill_Option0,$STR_f_param_AISkill_Option1,$STR_f_param_AISkill_Option2,$STR_f_param_AISkill_Option3}; default = 1; }; -*/ -/* class f_param_AISkill_OPFOR { title = "$STR_f_param_AISkill_OPFOR"; @@ -220,9 +217,7 @@ class Params texts[] = {$STR_f_param_AISkill_Option0,$STR_f_param_AISkill_Option1,$STR_f_param_AISkill_Option2,$STR_f_param_AISkill_Option3}; default = 1; }; -*/ -/* class f_param_AISkill_INDP { title = "$STR_f_param_AISkill_INDP"; @@ -230,7 +225,6 @@ class Params texts[] = {$STR_f_param_AISkill_Option0,$STR_f_param_AISkill_Option1,$STR_f_param_AISkill_Option2,$STR_f_param_AISkill_Option3}; default = 1; }; -*/ // ============================================================================================ @@ -364,6 +358,8 @@ class CfgRespawnTemplates class CfgFunctions { #include "f\common\functions.hpp" + + #include "ws_fnc\config.hpp" }; // ============================================================================================ diff --git a/init.sqf b/init.sqf index 1424702f2..d0b2f022e 100644 --- a/init.sqf +++ b/init.sqf @@ -136,18 +136,18 @@ f_var_cachingAggressiveness = 2; // F3 - Automatic Body Removal // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// f_var_removeBodyDelay = 180; -// f_var_removeBodyDistance = 500; -// f_var_doNotRemoveBodies = []; -// [] execVM "f\removeBody\f_addRemoveBodyEH.sqf"; +f_var_removeBodyDelay = 180; +f_var_removeBodyDistance = 500; +f_var_doNotRemoveBodies = []; +[] execVM "f\removeBody\f_addRemoveBodyEH.sqf"; // ==================================================================================== // F3 - AI Skill Selector // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// f_var_civAI = independent; // Optional: The civilian AI will use this side's settings -// [] execVM "f\setAISKill\f_setAISkill.sqf"; +f_var_civAI = independent; // Optional: The civilian AI will use this side's settings +[] execVM "f\setAISKill\f_setAISkill.sqf"; // ==================================================================================== @@ -194,7 +194,7 @@ f_var_cachingAggressiveness = 2; // F3 - Name Tags // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// [] execVM "f\nametag\f_nametags.sqf"; +[] execVM "f\nametag\f_nametags.sqf"; // ==================================================================================== diff --git a/loadLogo.jpg b/loadLogo.jpg index 17dc8c516978a8c8ad49510f85a539761506cec4..cee6a2d949044820e6aaf31ceab74ef6a1e22dc1 100644 GIT binary patch literal 9351 zcmb_ic|c5S|38^BEf{G*#kfML2%#u*a@`iUnMIw^)%2hHcZd^;Z zb-1NzFQnDdqGqPFsnJYjoSK<)e$ScduJ8Theee4ljx(KR&Uv2i^ZkClpU>xkx8Pi8 z=C`(+Z6O5(1*ic0fp8wwWfSau1cDqLAtMNalpz%b9Y_hhQvkN7?M=BUXB-!;T z;Fl{Q@GmqI9I*;C*=LBKlNDgu`>EjlPtG%C_W+NAAZK+*5uCtVJ*xAp-`|645H#h5 zEd-JJe?12r^!7Ws+|T3Wg4N4cEMEgYaC$MMa4rpk!lUHpaeVUU0r~mV3iQC3z}CX-dCtE#F^123}5 z49fIrGl=)ZO^B}(-vWQ9DU+3nPyBZ;yaZBLhR#DmlEOl0in;-Cvs30y%U`2>U znS3csAt@?N1w&F*10Tqr35HK1O#y>dQUqaC2nD}~6xEexeYJAqR1N2Y<}zv&wrTRZ#B-@0tyvD0;z z+iv&69!EUAypNtZc`7g{IOKHH+30gI=P$%wP5jrjr0YN2NKVhVbN9#0d-s3J$<50z zU_E*IOIdkEWmR>}^A}Ccuiw0V*V5X?>+1f{)7#fS@KHE2I`&!g1s$It=A{6UzqcTFqN5B&H^t*?%^%$bU4m-zN6^yxO2?Bn7Z|By|XeFr+^{7Bc(?2V>J3lLS7? z{kyX}E>utGhEeOnmpa>MLcbk!Yot6AIqE;Lmf1$aq3OL@I8-zCch?j~rCJS)ZKzXM zRz#;|v49m9?mv|cY#h4-N_!3>@%VW+AhAZ0W*F~@N_cZ_5Jj}PMdAmzevt&ntxov-Uz+BgD z77H54u#M(c1)DSEG7f6Ms^(m#DP{|uBE!g%1Hzbdr<}}&P8VO`cGzwGxp3rz*PW5R zbJ}sDn#(cX7KaanD7tRMp&6;t`|SQU#ET*^PiEtgegnCF%(a0k7~r&}U~!ouuqNdp z4{&H?!{1$l7&s&w0x=BDt%?nAZp2I|#tcX*UCv^{qeI=;;+!yQ?bfNGn$FfrlLz&E zAAeBn6YPqqw2KXbv$|);<>AoGqqpV?kQS`fCw=3zFC)?)N7O7NdC9vnEUxlYIu`Oa zsV9ab7D(3`|5i`zER{%3#nW~;WHLB*M)X-4TV#wwO0%SiMXrLNsZ{ojy=ZWs?Wi007tAHv42M+f>1f1b zq^tsK$C_~H?5&BW!5Z;w5pwN=^j6#Sr{cXSEWf(fRqyq}8KvNvKS=ZC&j#t1$goE% zxv6l44*eYCp!9~wa-W~_0rthAwtcBLZynlXLOlM1Z$i%9&80QecmFsJ=hkCvgxfzn zzR|847KbArH~zSloQ9Mxg}M2N8qEC}5!}L|vfKvR0xv}H7>9CkD38rE$j-|j#o9$# z#?QqYYQ@>2&E|gXanIvgEwBLD?Y6Mxw}XFl<=~LOohs>=Eq%chCufDj#N&Sd{Z{hu z7s+{M7!H*-az-NK zFC$+d9C{t~UDgLxwm;jW9$iMSbV4oSy9;8(^B6}PXjGKWyIw`fLymn6Q^_vOdH0B& z>)Z2&E4E?)*DFJG_~4OKbjosTUzx`K}*_hO}^qY|RJ- zPY%SMcWR=RT&A*w`o_wPi$evWmk0MW<i8BxPaRmpFdwf zy{YN?>5D|$9h;7zN}wM2;5Nr3L_#xXGY-75as)RSs?Tm4JpDLz!&$cX89K~yq0oRsk9Ifw;MeRSsvgy1sz^V+y{I?PBqfjj$Re3( zx_nVx+D`&a?20Uy*&Nhjw5vY0n2eOp!Bz!lmeQ8Uu^xvGg~q!!u9=%B7CV{kZSG2Z zc}tss`~JX$Yk}lQ8)OlE9_&MnW#*Gbbcsp*1!N{|A#!k>-O3guqUVNPvHH=#kYcB{ zMTjYKZ9e}=N6(KZ^4vvdFtwGkfK352y?~Ui4O_&RCvZ9&w!%AXi7-aw+43p>nemp$ zGSl3nNkOuR+C)J98L~+am(#bDK;+ZRz|39D2DP z8pR>hY>#LQdS7e`0N4&Gt3|zqBpyf9C((yx(>gtDk2Q?2^CcVuzIx`3+*k2|@A;z| z7Vpi*BfyaCkQb-0bvX1M;H0y36&v)@zkyCc3VbSUG23)+b5G*SNG)&bF|SX7QPH*r;f{z2{clAi_=XxTiJs6{XVjEM|nx>nKH^X-<}YHWe2}KwjeHq*{?s1Vx!cpy7GCie z7KO;9Dq>>(WDo1&YCAM-&^E|5NWF%nkqOB)Kk>eyb;{k?nO76=Yv zbKk?Lp;L)z1V>;CM}=t%S=E#%j3QinUCJU@lQ1cjNQC6x+a_U$HNN{J1qBa6-&~jO zB4fMPj02pWxt(C0a9BOKZbk4>H#^Bj7qJV{AQi(PKSo_~sK)~eW8+ZOL-xlKc%(6l zj_v^%DUx2qEYMlil{6KUDmF#S%hzY#5N)7;Bk+s9w`6WKhY&C12x#0ZLxWCz2)#H|?4K&S=(VAg~Az*rK?Dch1Dh3J3-LSG2m{>w2!yw?W^Pbx5UV( zqMQ5Zf*ZTd+ZXD`mGBbmKalo=C;+MmdQ}?&9uByo9pH-Z8Z@_(LCioU15O6WB0`Ww z(8pw4@h_J`6>JE$__y~Nsg#4LAgg2;HR+oKQK|qrcal8`qBEEWy?eb*%Ruyjj$cAY zUBjxnijmD(LxJoors#T0%q2@$k8!CJ@dN)-5NINd9ehsztWfgk!_O9Lj?Wm}3{(27 zXC7O}1+vZf0Xxg3cqUi;cgp2%Ue)r`|Wy) z8XZ8}?Vr)#ZnSHfp86Pw#s9(}v3jKR2+Y0Jsf7Y6rPzulbTL~IE)pZ53Y#6UT2RwI zuIL_a%Sjy4-W`&B_ogf2&fF61*L*7F{heFRbEA8vk7#R+k|nxl0J3eD-h+83kn-b< z)o6rJLrf8CU^BDO{kP^9f~?M!aQGA!4tXNSY_a_~Wc0FbWM$z?7AN(7IHhlDaT>@= zGpusImb@EoF4mRI6BgX=nr>Q7TY)u;J>FihT0yTA`7R$BftU5h?y5S>0%_H{t>ggr zG7e!gtWYN&9h9S6{iR#l0w<7J09mIEAT3Pyrqzz?=h4cVYa7PK507x8cdqWxFHBAI zNWJhOkzNQ=Xn$6#CC_sRbS%YN=p&&6H>=z!24n@c1f`4h#k!T9DuU0MF`xMce4Wa; zhhP@Z@-DCAjr#T`&u-~vd|wk|RI5y80wmXhLI0p|K>whuj>mSo@+g4Qh>QeT5)Brn z>L}Fb4o9A%$mNEt#XsfU!svMefkcO&=4^X>ad||+nzCrJ!6IULk~#VDl}>F@n2sf; z?ODM-PgRG1#v$HZ>=jrYW`+4_wg^d)X7!H4UI~PvJ5$gdlysx6F}{}a*R-4<@*jW= z=w@&j=w?=+o4L_{pbEa9Em3#jc}mnrG0l33@dl)8>Qfw2(-8ZM9k5wv1|72Whv==C zYoh23fd=3Ebrf2<=mwk+Ka&-X8=;S7>_ZbZsOXe8Lr^#$CzfQaWg_0aKFJJ#LuD^P zJM5UzwCZt*z&@*vg03;f)&jDiHi+rau~qumOa!%K^8j&=PQf9qAPHcvKGQgDoFfIJR?mt(Te~_^FNRY}bS9!O<$AFekaCm!!T%59O9n-Y1akf$L!zYwe^BVq z^>9##iUh<-MjxWX0ORwd$=L(w#!(WpyE4iL_(MM-(#`2(TSKLti41sYs+B$&eg zL*-~He4q-IoCwCg=?lTwqh5hIU%Q5Gk_kJRsFd+wLfBbyQ#V!UWS(PC31RohFW8fP zoxgrx>W5qI<(hw_(lpQ~bhqFTkj;S2{Zec#y$2HJC{iW@5Pu3ODhd-ScqRJq&<-9QHM}m-OyRLhIl4#ZFKCjObyN6o z!9K6VawQ4^!b=YLh$1m{_04aFPRiLEa59veLjx)!6l%3Lq} z1o)0yJi4CLJ^Y6{WatZ!?SlF!08X^(Q;!CAUjoWM(;>Ggu{PL0{Zf}h4C$CpwCap4 zn_=!HaEFuRYR(@*5p2iBuJf345N~PD;5SYAb4PjHLg-=)Z^wXsgigWV20HWuD)v)$1$Uqw?v3V^V5C!h?mOt}n?0Mz{*HmSn% z;9P_^r&un+>E?A}n>--G?M3|dxcb!AIoK{XAePy#fLNxoWyF%q(6|>I^@j-66V}LN zfDXl)U0AL+J^Qhy;ktDOK+Q~hD_b7W&l&-bqYeMW|)cQOeCY^}3YaBt9P zPJ=o%861rP_ECP(4lu@9(uWLJ;l-*pBxa1Q5lq-e`Hc&b)s%~0c`Dru+wEvV=)bd{ z5^^ffmy}Rn4@-`|#2%8sKy@Tvfl<~X#2|&$vNlr*=ircRl;zz0_oX+$I=syiuu5}} z&etd$87s7Sj8)T8)ppa`E1qt)NE%ta ziQd?N?fuH~&R)Yqs{$xj{s*UM6u>rMTU(vwZ0m~mHQ=|*sm3958yxyR z6YIT4;{K)aU7J9}&R~>BF>R!@0-18EzGaa6I6_D&!y%2Z6`@SAu8S}~?ru_)uQcVj zb{5>WIPd8%sX==NMvaa|jOyFYcw;j7x2o0&hmOKPLzLB{<|nvYo{A4iv_Q25XLR|4 zd;<9D?tN=*ao)2AKP2z*!X^XpH#?Kw<`%SvetpC-@yA8Gp1;4H5KapRxbKgElGTE_ z@l3%}Ht&cJ$koq;JJiAiYWos>Uk5OUu!d2_aNeGcEZ8UBucNhXyghNQR5 zBQh(ja=($Bm&sjtxlp1UZCNj$&^_^?b_DLmcTN-=6U>KmOHEt}>kFxeK}?^#AMZ#ApMm^yR{{vb zzwtT7BeH#lUS+^pfh`>F|2`g#RFmY#35kXJGp!N z^hsI#{RI8G@x^`Usvp43MBSX@5-wQhKjUT=xTPP0cK2cG2zn$QeGK!`X#jats1g$n zdP90qJiA703J6s$R-TK9^6PK(h7=aqu#V^=prsSG_yfSD#JkW*TbwdLSW$9Ye6_ZE zXmXv*7I!;5_i~3yhrY)}^@wnY#snF>7wK7#LnQbUj6?UZOgannOBt{1%9LnRCVAzr zD=^6`Wh)@(mEM1vSOZo{FJQ&8K_kkKkEX2*HgFPP_q+Vb(psd<4`IaG{A>@}g44VAK_nm(s3|Hjs_J@>=@yx>I@yD2^qd zSdmXav5ZW{d?s|Q+{sTqqY~EaDR=UTbOTO)KxueQslkvIV4;(dbCD5zdEnX!T2U_# z+?nTA)#sKHfh%d(^@xp%xC$Js_IHzZ=WpQOxg0IMi>6dj-Nhb{FZ?t>l$MW$N%u&T z&)h#oozi0bn^Ot~yA(KQH1O4*f>QwW923ub%=&4dxy3=0vhLq)QfuJDv~%RJ%p9mZ0d12rX z|2yB(`q53|(^y-l3|zwA(u~o{ZeLL2^b17?MR39H{wt13XX!_BBkSO0OOgm^`8vqH z^-#ru0}zEuIK5eeU*zM_WXQ*JN5=zMutOXwUQQGiz`zP*ULM>s*u66XuzLXc(~4Jw zW{5pq1deeXNzVY}`!CNTxAqi1{Usu3ueadAaKxyt{nWQc9~ICj`nzF?PPc5AVJ;3G z$04cxn)Lz-8ks3GO~o?Pv=^ABFJ7QHB+3Bw{6?}J>YecJAf9tG&tgIt ztIb{Bhke!@(lO51+DljlH>boJrcn-{K%ywApyFR$lxoVQ`6~o<_j{zd_HQK~_daUR z4%>TCW;`_(x2o&;k*CGlEzs%1lrX}&^8f~y6S@;2tUF8W{RkUu&dd=`?@W;1?(rWf z8qTe`b)$2{EoR_&7PIcXx<~IAKmO2p zJhAo_FqqY+b_Lu^3xKk$|KTu&6NaP)+CLg9{NEF8V`h5zhNvzea16SKtEp4yV4s(x zM_Un0m}#;NP+?Mr%uF)@p01-AFw?#{{zPxpQoV4W>i+a_)d>>8NL>&>Qh}%r_>5ro zSg3lzZ;0k+4Sn@iUTpUwo^Emzkwz%tye6xNH}9 zQtZgKaVNEod>gk*_nE$U(+k-)Zi3aTTgOs@JpF$_tGbzRx{Oc6WQPGq@q5CB(Az-A zp{s_#+x+V_<33rO*H5~+L+szp+))H51p|-~SyE>2&?tkMXD_pCHnblveED6US2eTI z2JBPYKwt}g8Ja8Gf+x0q8IJNT_)%K*gZ|`8vMqRB8-wdsCWQalz}Gh#qA14pf#9UU zydiqNxm1ru=-wELD-L~#6@pr!Ycl|atq$s3Dr8+K+SpCeI10?cHKG2_DO=fvBi*|) zMh$Kx+qLT~oL<3mw&p7Am1;uUubjF!&=@*g7QUpz#;yp5PCD;78|_uj7x zy+ReBKf`spD{wd*$ihEBl~Cm(30wi-;Q?a+Ko|5lLqP|(I9N7vhJ9#9bF6^d)31eJ zjsskSK9)F+W6v1P^HC1b)8^rJnwNghH}FybUIw6z6>feh@-qCRjr#z!3S0rW4ZrK3 zmIkibV6(<=gZTuTu{QR2z{Zil*_H$l8Plt~P~Y?0UL8EPS2r%{)ec8`^^hQqMrAM! zv^X5izprq0xSGP#*5>N)d3?S`boKh_>FNq}`Fz0ufuLW1T=;qeg#-Ez)U-7p(M;FO z!vFrdd|l0mzgEy~Fwliqh~;vIgO&k@YrsKwK!o>22YW>0l)l2z;%e*gut|b`cz{$N zo6qHHVPkc)@iub8@q5rV&@udKoHK8b*HZrQwMOHk_Mg91$ceKJK_!;{5k&6;Ufu0PbHsDIg@(!T-xQ#E7Gj&tJkjQ=H1D^d++{(g5Qds zzj#^vs-(2Cs=B7OuD;=Iqq42Ngv|u;sCc7)(2!C;WEIuw6G7f`5Igttxzmn z18tqJ#_|I(T(H&6O^u9ZiI3c3G&ZdX)6+%`|jzGJd+N+GsakQasrb&+F$V(EJ zOJBZU>)Nv@oYF5%4<6oUu2!2y~V)nY4$ZwaO-= zdcY8u!p+9PRqmq{uU|-S7L~h%FI{u?@svSd?MivRB{H(c_7RvPa26{z1kp*!)v3&F z;=Os1bsL}Ue-6RVXDBuMU|uqU)Nr#%!ilI7B$oKIv8|P5|G@&B3iju)ak5X>uvYL{y~zkhdoV}IcWIOu!AzBuxiyPlBcz?@sJ}+= zj8Qw0747Z_YW*S%@MinTmdONI<7pMANkd1W#B!FBcdjy#k6=ako~8vyOawzv ziC=`h;4yS+gv=Xn#%H=`@#_)vps}**L*qW7fVRM)y#zs!?G^-znFz|N^WRLQ@~dRj zG}`VQrPcm@)(!U2jptL!9@v{s^xgST8t21Xo}G|wESR|D_&#Av{U_gK{m6A~xRR;rW>%NAU=cGiC4Ya46=NnZ?T*8+1< zk(hQFrWTNe>kvG&yCb4w+&=CQ?-MC?JexfbOzV7y00Vf8BO(50@{Tbfox}*`nFv^+ zJ;~0)m@Vl+)m4XL6a;2AQMK4eJis>3Oh`o~HEq0Ee{ci>-^{G%tLsjPZR`U@{|tC6 zH9k@egQCRGi$7WRLH4^&h4)o3*PZB=b`lO-qS zxrF|hcRwXAS)Y@8Fo&7Z6D=!)aANpl2bitI)rBNsF#;-XlFA6dsagbw{I?TbJlS!A zvL%{bD#T@OtRP3ZpvpgQ>U!4DQ=2-dwop%+tv1e2EZw}@>~5*}^+LBV&u0briW7Jt zHNN_u#j?-sNqpBm^~Q+&6Jv1rNg`gnv8E&uK#QwRp{`e#-1c39J-af_DoJ=-L^-Z!SBJ87GA6gUVgL?)GN(PUeU+@!9zn}s z83e$oI4g~CyYb7IF=XxF#W>V2pFfM>ZL%9?0XpjQ{XqA4FPW^>5t$M#90cch3F3W( z!q1aVnRHLCnjsZ2lN;W5Gni#uF=+}M9msM_IkN|hmzk3q0-X_r2{e8s(H&aYfY;Yp zLB(LOIFbwIkSh|^V{Q#WP;~Pm85B=DV;-<1Ye&m6J(+lMKWyHcm$K{vuS=dC` zr&Ql({>S`}$)ch`-sS9e&r=;qHaeg2ZsUuKKa*lk4Lv(PCpW_A#gwqBU+lhncID=@ z`Nj6t*-sp4uhw|`3Hdl3K{?KntMh42k`@j{jR@bWdk-WZ ziJC1)PeyQNx0y_Qo=RbM5*3%_R}RyIWR)vURwTyA42epi;>o$R2Nz%Cvp1JWX*Bbz z*_YSvVcntyKbSuXQKUc1aeWkZVEX%3D$Y)YnWQ%pV-a-mA_wpgXsxFJqc-o?e$;a&q@AZ{wArpYNFXQusADJ>`EN)I#mMz3E>=q)}a`^6>5o$tpC`DzxiMY}=Sh>JOeO^+%BP6f? zs|>CW0Qgx2MmiHQcpA%lkFBb=+pQ9pAW%D zY;+x&v!1BzAQb0iRX8hivoseO<{|<+OVvHq-m+Wy_%fEoE`E9mf%Ml$tmzGwEOY@Q KuRkXwD)|>ltSmqP diff --git a/mission.sqm b/mission.sqm index 30e78415f..929fe6986 100644 --- a/mission.sqm +++ b/mission.sqm @@ -1,32826 +1,32824 @@ -version=52; -class EditorData -{ - moveGridStep=1; - angleGridStep=0.2617994; - scaleGridStep=1; - autoGroupingDist=10; - toggles=513; - class ItemIDProvider - { - nextID=1102; - }; - class Camera - { - pos[]={253.20601,157.21956,576.88916}; - dir[]={0.75964439,-0.27484706,0.58941227}; - up[]={0.2171492,0.96148634,0.16848733}; - aside[]={0.6130206,-2.2511813e-008,-0.79006982}; - }; -}; -binarizationWanted=0; -addons[]= -{ - "A3_Air_F_Heli_Heli_Transport_03", - "A3_Air_F_Heli_Heli_Transport_04", - "A3_Air_F_Beta_Heli_Transport_02", - "A3_Air_F_Beta_Heli_Transport_01", - "A3_Armor_F_Beta_APC_Tracked_01", - "A3_Air_F_Beta_Heli_Attack_01", - "A3_Air_F_Heli_Light_02", - "A3_Armor_F_Beta_APC_Wheeled_02", - "A3_Air_F_Beta_Heli_Attack_02", - "A3_Armor_F_EPC_MBT_01", - "A3_Armor_F_Gamma_APC_Wheeled_03", - "A3_Armor_F_Gamma_MBT_02", - "A3_Armor_F_EPB_MBT_03", - "A3_Air_F_EPB_Heli_Light_03", - "A3_Soft_F_Beta_Truck_02", - "A3_Soft_F_Beta_MRAP_03", - "A3_Soft_F_MRAP_01", - "A3_Soft_F_Beta_Truck_01", - "A3_Soft_F_MRAP_02", - "A3_Soft_F_Offroad_01", - "A3_Soft_F_Gamma_Van_01", - "A3_Weapons_F_Ammoboxes", - "A3_Air_F_Heli_Light_01", - "A3_Armor_F_Beta_APC_Wheeled_01", - "A3_Armor_F_Beta_APC_Tracked_02", - "A3_Armor_F_EPB_APC_Tracked_03", - "A3_Modules_F_Curator_Curator", - "A3_Modules_F_Supports", - "A3_Characters_F", - "A3_Static_F_Mortar_01", - "A3_Data_F_Curator_Virtual", - "A3_Characters_F_Exp", - "A3_Soft_F_Exp_Offroad_02", - "A3_Soft_F_Exp_Van_01", - "A3_Soft_F_Exp_Offroad_01", - "A3_Soft_F_Gamma_SUV_01" -}; -class AddonsMetaData -{ - class List - { - items=19; - class Item0 - { - className="A3_Air_F_Heli"; - name="Arma 3 Helicopters - Aircrafts"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item1 - { - className="A3_Air_F_Beta"; - name="Arma 3 Beta - Aircrafts"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item2 - { - className="A3_Armor_F_Beta"; - name="Arma 3 Beta - Armored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item3 - { - className="A3_Air_F"; - name="Arma 3 Alpha - Aircrafts"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item4 - { - className="A3_Armor_F_EPC"; - name="Arma 3 Win Episode - Armored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item5 - { - className="A3_Armor_F_Gamma"; - name="Arma 3 - Armored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item6 - { - className="A3_Armor_F_EPB"; - name="Arma 3 Adapt Episode - Armored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item7 - { - className="A3_Air_F_EPB"; - name="Arma 3 Adapt Episode - Aircrafts"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item8 - { - className="A3_Soft_F_Beta"; - name="Arma 3 Beta - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item9 - { - className="A3_Soft_F"; - name="Arma 3 Alpha - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item10 - { - className="A3_Soft_F_Gamma"; - name="Arma 3 - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item11 - { - className="A3_Weapons_F"; - name="Arma 3 Alpha - Weapons and Accessories"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item12 - { - className="A3_Modules_F_Curator"; - name="Arma 3 Zeus Update - Scripted Modules"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item13 - { - className="A3_Modules_F"; - name="Arma 3 Alpha - Scripted Modules"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item14 - { - className="A3_Characters_F"; - name="Arma 3 Alpha - Characters and Clothing"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item15 - { - className="A3_Static_F"; - name="Arma 3 Alpha - Turrets"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item16 - { - className="A3_Data_F_Curator"; - name="Arma 3 Zeus Update - Main Configuration"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item17 - { - className="A3_Characters_F_Exp"; - name="Arma 3 Apex - Characters and Clothing"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - class Item18 - { - className="A3_Soft_F_Exp"; - name="Arma 3 Apex - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="http://www.arma3.com"; - }; - }; -}; -randomSeed=1116085; -class ScenarioData -{ - author="*** Insert mission author name here. ***"; - overViewPicture="overviewLogo.jpg"; - onLoadMission="Made with the F3 Mission Development Framework."; - loadScreen="loadLogo.jpg"; -}; -class CustomAttributes -{ - class Category0 - { - name="Scenario"; - class Attribute0 - { - property="EnableDebugConsole"; - expression="true"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; -}; -class Mission -{ - class Intel - { - briefingName="*** Insert mission name here. ***"; - resistanceWest=0; - timeOfChanges=28800; - startWeather=0.50001526; - startWind=0.25; - startGust=0.25; - forecastWeather=0.50277799; - forecastWind=0.25; - forecastWaves=0; - forecastGust=0.25; - rainForced=1; - lightningsForced=1; - wavesForced=1; - windForced=1; - year=2035; - month=7; - day=6; - hour=8; - minute=15; - startFogDecay=0; - forecastFogDecay=0; - }; - class Entities - { - items=365; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={432.07535,8.3443718,1248.3243}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehNATO_TH1"; - }; - id=0; - type="B_Heli_Transport_03_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2379.1594,7.5924172,1254.5444}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehCSAT_TH1"; - textures="Opfor"; - }; - id=1; - type="O_Heli_Transport_04_covered_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.0298,8.5861206,617.8595}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehAAF_TH1"; - }; - id=2; - type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={432.47964,8.3443718,1220.5431}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehNATO_TH2"; - textures="Green"; - }; - id=3; - type="B_Heli_Transport_03_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={467.55972,7.1392474,1249.049}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehNATO_TH3"; - textures="Green"; - }; - id=4; - type="B_Heli_Transport_01_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={468.41714,7.1392474,1221.5109}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehNATO_TH4"; - textures="Green"; - }; - id=5; - type="B_Heli_Transport_01_F"; - }; - class Item6 - { - dataType="Object"; - class PositionInfo - { - position[]={516.71497,7.1392474,1249.255}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehNATO_TH5"; - textures="Green"; - }; - id=6; - type="B_Heli_Transport_01_F"; - }; - class Item7 - { - dataType="Object"; - class PositionInfo - { - position[]={516.78723,7.1392474,1221.2482}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehNATO_TH6"; - textures="Green"; - }; - id=7; - type="B_Heli_Transport_01_F"; - }; - class Item8 - { - dataType="Object"; - class PositionInfo - { - position[]={562.33704,7.1392474,1249.8331}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehNATO_TH7"; - }; - id=8; - type="B_Heli_Transport_01_F"; - }; - class Item9 - { - dataType="Object"; - class PositionInfo - { - position[]={563.22864,7.1392474,1222.3273}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehNATO_TH8"; - }; - id=9; - type="B_Heli_Transport_01_F"; - }; - class Item10 - { - dataType="Object"; - class PositionInfo - { - position[]={470.42007,7.4527192,1304.1699}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_AV"; - }; - id=10; - type="B_APC_Tracked_01_rcws_F"; - }; - class Item11 - { - dataType="Object"; - class PositionInfo - { - position[]={517.84583,7.4527192,1301.2305}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_BV"; - }; - id=11; - type="B_APC_Tracked_01_rcws_F"; - }; - class Item12 - { - dataType="Object"; - class PositionInfo - { - position[]={560.05579,7.4527192,1302.459}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_CV"; - }; - id=12; - type="B_APC_Tracked_01_rcws_F"; - }; - class Item13 - { - dataType="Object"; - class PositionInfo - { - position[]={431.17886,7.4527192,1304.5967}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_COV"; - }; - id=13; - type="B_APC_Tracked_01_rcws_F"; - }; - class Item14 - { - dataType="Object"; - class PositionInfo - { - position[]={431.90445,6.9319248,1193.7062}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_a"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_AH1"; - }; - id=14; - type="B_Heli_Attack_01_F"; - }; - class Item15 - { - dataType="Object"; - class PositionInfo - { - position[]={1452.1128,8.5861206,618.69836}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehAAF_TH2"; - }; - id=15; - type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; - }; - class Item16 - { - dataType="Object"; - class PositionInfo - { - position[]={1494.3599,8.5861206,619.53918}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehAAF_TH3"; - }; - id=16; - type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; - }; - class Item17 - { - dataType="Object"; - class PositionInfo - { - position[]={1535.6772,8.5861206,620.19543}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - fuel=0.29590145; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehAAF_TH4"; - }; - id=17; - type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; - }; - class Item18 - { - dataType="Object"; - class PositionInfo - { - position[]={2380.8411,7.5924172,1224.6206}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_h"",this] call f_fnc_assignGear"; - name="VehCSAT_TH2"; - textures="Opfor"; - }; - id=18; - type="O_Heli_Transport_04_covered_F"; - }; - class Item19 - { - dataType="Object"; - class PositionInfo - { - position[]={2429.5403,7.1696463,1253.569}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehCSAT_TH3"; - textures="Opfor"; - }; - id=19; - type="O_Heli_Light_02_unarmed_F"; - }; - class Item20 - { - dataType="Object"; - class PositionInfo - { - position[]={2426.9114,7.1696463,1223.8492}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehCSAT_TH4"; - textures="Opfor"; - }; - id=20; - type="O_Heli_Light_02_unarmed_F"; - }; - class Item21 - { - dataType="Object"; - class PositionInfo - { - position[]={2480.3333,7.1696463,1253.2291}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehCSAT_TH5"; - textures="Opfor"; - }; - id=21; - type="O_Heli_Light_02_unarmed_F"; - }; - class Item22 - { - dataType="Object"; - class PositionInfo - { - position[]={2477.6995,7.1696463,1223.5045}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehCSAT_TH6"; - textures="Opfor"; - }; - id=22; - type="O_Heli_Light_02_unarmed_F"; - }; - class Item23 - { - dataType="Object"; - class PositionInfo - { - position[]={2534.553,7.1696463,1253.6246}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehCSAT_TH7"; - textures="Opfor"; - }; - id=23; - type="O_Heli_Light_02_unarmed_F"; - }; - class Item24 - { - dataType="Object"; - class PositionInfo - { - position[]={2531.9211,7.1696463,1223.9039}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_m"",this] call f_fnc_assignGear"; - name="VehCSAT_TH8"; - textures="Opfor"; - }; - id=24; - type="O_Heli_Light_02_unarmed_F"; - }; - class Item25 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.1594,7.5568428,1301.3188}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_COV"; - textures="Hex"; - }; - id=25; - type="O_APC_Wheeled_02_rcws_F"; - }; - class Item26 - { - dataType="Object"; - class PositionInfo - { - position[]={2423.8577,7.5568428,1301.0942}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_AV"; - textures="Hex"; - }; - id=26; - type="O_APC_Wheeled_02_rcws_F"; - }; - class Item27 - { - dataType="Object"; - class PositionInfo - { - position[]={2475.9973,7.5568428,1300.3062}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_BV"; - textures="Hex"; - }; - id=27; - type="O_APC_Wheeled_02_rcws_F"; - }; - class Item28 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.1165,7.5568428,1300.1157}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_CV"; - textures="Hex"; - }; - id=28; - type="O_APC_Wheeled_02_rcws_F"; - }; - class Item29 - { - dataType="Object"; - class PositionInfo - { - position[]={2382.634,8.0559025,1193.7076}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_a"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_AH1"; - textures="Opfor"; - }; - id=29; - type="O_Heli_Attack_02_black_F"; - }; - class Item30 - { - dataType="Object"; - class PositionInfo - { - position[]={516.48157,7.5372982,1279.7227}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_TNK1"; - }; - id=30; - type="B_MBT_01_TUSK_F"; - }; - class Item31 - { - dataType="Object"; - class PositionInfo - { - position[]={1408.4087,7.6142888,675.24231}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehAAF_COV"; - }; - id=31; - type="I_APC_Wheeled_03_cannon_F"; - }; - class Item32 - { - dataType="Object"; - class PositionInfo - { - position[]={1453.1089,7.6142888,674.10168}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehAAF_AV"; - }; - id=32; - type="I_APC_Wheeled_03_cannon_F"; - }; - class Item33 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9253,7.6142888,674.16711}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehAAF_BV"; - }; - id=33; - type="I_APC_Wheeled_03_cannon_F"; - }; - class Item34 - { - dataType="Object"; - class PositionInfo - { - position[]={1535.4771,7.6142888,674.45129}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehAAF_CV"; - }; - id=34; - type="I_APC_Wheeled_03_cannon_F"; - }; - class Item35 - { - dataType="Object"; - class PositionInfo - { - position[]={2477.0383,7.1897745,1274.8247}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_TNK1"; - textures="Hex"; - }; - id=35; - type="O_MBT_02_cannon_F"; - }; - class Item36 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9966,7.5486078,650.39954}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehAAF_TNK1"; - }; - id=36; - type="I_MBT_03_cannon_F"; - }; - class Item37 - { - dataType="Object"; - class PositionInfo - { - position[]={1408.8267,6.5310755,586.50305}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_a"",this] call f_fnc_assignGear"; - name="VehAAF_AH1"; - }; - id=37; - type="I_Heli_light_03_F"; - }; - class Item38 - { - dataType="Object"; - class PositionInfo - { - position[]={1451.1421,7.3817043,777.82239}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehAAF_TR1"; - }; - id=38; - type="I_Truck_02_transport_F"; - }; - class Item39 - { - dataType="Object"; - class PositionInfo - { - position[]={1496.5581,7.3817043,777.77649}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehAAF_TR2"; - }; - id=39; - type="I_Truck_02_transport_F"; - }; - class Item40 - { - dataType="Object"; - class PositionInfo - { - position[]={1538.6558,7.3817043,777.95032}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehAAF_TR3"; - }; - id=40; - type="I_Truck_02_transport_F"; - }; - class Item41 - { - dataType="Object"; - class PositionInfo - { - position[]={1403.2681,6.8319178,763.35657}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehAAF_CAR1"; - }; - id=41; - type="I_MRAP_03_F"; - }; - class Item42 - { - dataType="Object"; - class PositionInfo - { - position[]={421.47964,7.2059455,1371.2716}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehNato_CAR1"; - }; - id=42; - type="B_MRAP_01_F"; - }; - class Item43 - { - dataType="Object"; - class PositionInfo - { - position[]={473.05093,7.2247906,1387.7373}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehNato_TR1"; - }; - id=43; - type="B_Truck_01_transport_F"; - }; - class Item44 - { - dataType="Object"; - class PositionInfo - { - position[]={518.69934,7.2247906,1386.2725}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehNato_TR2"; - }; - id=44; - type="B_Truck_01_transport_F"; - }; - class Item45 - { - dataType="Object"; - class PositionInfo - { - position[]={559.82141,7.2247906,1387.9121}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehNato_TR3"; - }; - id=45; - type="B_Truck_01_transport_F"; - }; - class Item46 - { - dataType="Object"; - class PositionInfo - { - position[]={2371.9885,7.4435053,1377.9761}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehCSAT_CAR1"; - textures="Hex"; - }; - id=46; - type="O_MRAP_02_F"; - }; - class Item47 - { - dataType="Object"; - class PositionInfo - { - position[]={2427.5139,7.3817043,1393.5962}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehCSAT_TR1"; - }; - id=47; - type="O_Truck_02_transport_F"; - }; - class Item48 - { - dataType="Object"; - class PositionInfo - { - position[]={2475.7581,7.3817043,1392.978}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehCSAT_TR2"; - }; - id=48; - type="O_Truck_02_transport_F"; - }; - class Item49 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.4778,7.3817043,1393.0493}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehCSAT_TR3"; - }; - id=49; - type="O_Truck_02_transport_F"; - }; - class Item50 - { - dataType="Object"; - class PositionInfo - { - position[]={616.46912,6.6115026,726.53906}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehFIA_CAR4"; - textures="Guerilla_07"; - }; - id=50; - type="B_G_Offroad_01_F"; - }; - class Item51 - { - dataType="Object"; - class PositionInfo - { - position[]={440.55112,6.6115026,757.85254}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehFIA_CAR1"; - textures="Guerilla_07"; - }; - id=51; - type="B_G_Offroad_01_F"; - }; - class Item52 - { - dataType="Object"; - class PositionInfo - { - position[]={440.63022,6.7971687,735.33008}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehFIA_CAR2"; - textures="Guerilla_07"; - }; - id=52; - type="B_G_Offroad_01_F"; - atlOffset=0.18566608; - }; - class Item53 - { - dataType="Object"; - class PositionInfo - { - position[]={615.70349,6.6115026,749.10645}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehFIA_CAR3"; - textures="Guerilla_07"; - }; - id=53; - type="B_G_Offroad_01_F"; - }; - class Item54 - { - dataType="Object"; - class PositionInfo - { - position[]={481.93588,6.8716264,771.92865}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehFIA_TR1"; - textures="Guerilla_04"; - }; - id=54; - type="B_G_Van_01_transport_F"; - }; - class Item55 - { - dataType="Object"; - class PositionInfo - { - position[]={489.83334,6.8716264,767.43549}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehFIA_TR2"; - textures="Guerilla_04"; - }; - id=55; - type="B_G_Van_01_transport_F"; - }; - class Item56 - { - dataType="Object"; - class PositionInfo - { - position[]={525.84607,6.8716264,772.71674}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehFIA_TR3"; - textures="Guerilla_04"; - }; - id=56; - type="B_G_Van_01_transport_F"; - }; - class Item57 - { - dataType="Object"; - class PositionInfo - { - position[]={1403.5269,6.8319178,734.76477}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehAAF_CAR2"; - }; - id=57; - type="I_MRAP_03_F"; - }; - class Item58 - { - dataType="Object"; - class PositionInfo - { - position[]={2372.0071,7.4435053,1350.3169}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehCSAT_CAR2"; - textures="Hex"; - }; - id=58; - type="O_MRAP_02_F"; - }; - class Item59 - { - dataType="Object"; - class PositionInfo - { - position[]={421.11832,7.2059455,1351.5773}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehNato_CAR2"; - }; - id=59; - type="B_MRAP_01_F"; - }; - class Item60 - { - dataType="Object"; - class PositionInfo - { - position[]={1451.3696,5.8924227,765.56165}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; - name="CrateAAF_A"; - }; - id=60; - type="I_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_NLAW_F"",""arifle_Mk20_F"",""LMG_Mk200_F""],[1,2,1]],[[""9Rnd_45ACP_Mag"",""30Rnd_9x21_Mag"",""20Rnd_762x51_Mag"",""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareYellow_F"",""UGL_FlareGreen_F""],[6,6,6,24,3,6,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator_03"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_blk""],[1,10,2,1]],[[""B_FieldPack_oli""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item61 - { - dataType="Object"; - class PositionInfo - { - position[]={1494.562,5.8924227,766.11731}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; - name="CrateAAF_B"; - }; - id=61; - type="I_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_NLAW_F"",""arifle_Mk20_F"",""LMG_Mk200_F""],[1,2,1]],[[""9Rnd_45ACP_Mag"",""30Rnd_9x21_Mag"",""20Rnd_762x51_Mag"",""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareYellow_F"",""UGL_FlareGreen_F""],[6,6,6,24,3,6,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator_03"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_blk""],[1,10,2,1]],[[""B_FieldPack_oli""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item62 - { - dataType="Object"; - class PositionInfo - { - position[]={1539.1606,5.8924227,766.32043}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; - name="CrateAAF_C"; - }; - id=62; - type="I_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_NLAW_F"",""arifle_Mk20_F"",""LMG_Mk200_F""],[1,2,1]],[[""9Rnd_45ACP_Mag"",""30Rnd_9x21_Mag"",""20Rnd_762x51_Mag"",""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareYellow_F"",""UGL_FlareGreen_F""],[6,6,6,24,3,6,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator_03"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_blk""],[1,10,2,1]],[[""B_FieldPack_oli""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item63 - { - dataType="Object"; - class PositionInfo - { - position[]={466.2482,5.8924227,1380.1455}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; - name="CrateNATO_A"; - }; - id=63; - type="B_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_NLAW_F"",""arifle_MX_F"",""arifle_MX_SW_F""],[1,2,1]],[[""30Rnd_65x39_caseless_mag"",""16Rnd_9x21_Mag"",""30Rnd_45ACP_Mag_SMG_01"",""20Rnd_762x51_Mag"",""100Rnd_65x39_caseless_mag"",""1Rnd_HE_Grenade_shell"",""3Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,6,6,6,3,1,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator"",""FirstAidKit"",""acc_flashlight"",""bipod_01_F_blk""],[1,10,2,1]],[[""B_Kitbag_mcamo""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item64 - { - dataType="Object"; - class PositionInfo - { - position[]={518.9884,5.8924227,1379.6846}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; - name="CrateNATO_B"; - }; - id=64; - type="B_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_NLAW_F"",""arifle_MX_F"",""arifle_MX_SW_F""],[1,2,1]],[[""30Rnd_65x39_caseless_mag"",""16Rnd_9x21_Mag"",""30Rnd_45ACP_Mag_SMG_01"",""20Rnd_762x51_Mag"",""100Rnd_65x39_caseless_mag"",""1Rnd_HE_Grenade_shell"",""3Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,6,6,6,3,1,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator"",""FirstAidKit"",""acc_flashlight"",""bipod_01_F_blk""],[1,10,2,1]],[[""B_Kitbag_mcamo""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item65 - { - dataType="Object"; - class PositionInfo - { - position[]={562.05286,5.8924227,1379.9961}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; - name="CrateNATO_C"; - }; - id=65; - type="B_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_NLAW_F"",""arifle_MX_F"",""arifle_MX_SW_F""],[1,2,1]],[[""30Rnd_65x39_caseless_mag"",""16Rnd_9x21_Mag"",""30Rnd_45ACP_Mag_SMG_01"",""20Rnd_762x51_Mag"",""100Rnd_65x39_caseless_mag"",""1Rnd_HE_Grenade_shell"",""3Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,6,6,6,3,1,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator"",""FirstAidKit"",""acc_flashlight"",""bipod_01_F_blk""],[1,10,2,1]],[[""B_Kitbag_mcamo""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item66 - { - dataType="Object"; - class PositionInfo - { - position[]={2424.8733,5.8924227,1386.2729}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; - name="CrateCSAT_A"; - }; - id=66; - type="O_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_Katiba_F"",""LMG_Zafir_F""],[1,2,1]],[[""16Rnd_9x21_Mag"",""30Rnd_65x39_caseless_green"",""10Rnd_762x54_Mag"",""150Rnd_762x54_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeRed_Grenade_shell"",""Chemlight_red"",""RPG32_F"",""RPG32_HE_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellRed"",""UGL_FlareYellow_F"",""UGL_FlareRed_F"",""30Rnd_9x21_Mag_SMG_02""],[6,24,12,4,6,2,2,6,3,1,2,6,6,2,2,2,2,6]],[[""Laserdesignator_02"",""FirstAidKit"",""acc_flashlight"",""bipod_02_F_blk""],[1,10,2,1]],[[""B_FieldPack_ocamo""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item67 - { - dataType="Object"; - class PositionInfo - { - position[]={2476.925,5.8924227,1386.394}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; - name="CrateCSAT_B"; - }; - id=67; - type="O_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_Katiba_F"",""LMG_Zafir_F""],[1,2,1]],[[""16Rnd_9x21_Mag"",""30Rnd_65x39_caseless_green"",""10Rnd_762x54_Mag"",""150Rnd_762x54_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeRed_Grenade_shell"",""Chemlight_red"",""RPG32_F"",""RPG32_HE_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellRed"",""UGL_FlareYellow_F"",""UGL_FlareRed_F"",""30Rnd_9x21_Mag_SMG_02""],[6,24,12,4,6,2,2,6,3,1,2,6,6,2,2,2,2,6]],[[""Laserdesignator_02"",""FirstAidKit"",""acc_flashlight"",""bipod_02_F_blk""],[1,10,2,1]],[[""B_FieldPack_ocamo""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item68 - { - dataType="Object"; - class PositionInfo - { - position[]={2530.9124,5.8924227,1385.6392}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; - name="CrateCSAT_C"; - }; - id=68; - type="O_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_Katiba_F"",""LMG_Zafir_F""],[1,2,1]],[[""16Rnd_9x21_Mag"",""30Rnd_65x39_caseless_green"",""10Rnd_762x54_Mag"",""150Rnd_762x54_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeRed_Grenade_shell"",""Chemlight_red"",""RPG32_F"",""RPG32_HE_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellRed"",""UGL_FlareYellow_F"",""UGL_FlareRed_F"",""30Rnd_9x21_Mag_SMG_02""],[6,24,12,4,6,2,2,6,3,1,2,6,6,2,2,2,2,6]],[[""Laserdesignator_02"",""FirstAidKit"",""acc_flashlight"",""bipod_02_F_blk""],[1,10,2,1]],[[""B_FieldPack_ocamo""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item69 - { - dataType="Object"; - class PositionInfo - { - position[]={483.80991,5.8924227,764.7207}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; - name="CrateFIA_A"; - }; - id=69; - type="IG_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item70 - { - dataType="Object"; - class PositionInfo - { - position[]={525.81873,5.8924227,765.85156}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; - name="CrateFIA_B"; - }; - id=70; - type="IG_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item71 - { - dataType="Object"; - class PositionInfo - { - position[]={565.77478,5.8924227,764.64355}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; - name="CrateFIA_C"; - }; - id=71; - type="IG_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item72 - { - dataType="Object"; - class PositionInfo - { - position[]={604.48376,5.6047058,625.62299}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_l"",this] call f_fnc_assignGear"; - name="VehFIA_TH1"; - textures="Elliptical"; - }; - id=72; - type="C_Heli_Light_01_civil_F"; - }; - class Item73 - { - dataType="Object"; - class PositionInfo - { - position[]={430.91617,7.4626956,1278.9102}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_IFV1"; - }; - id=73; - type="B_APC_Wheeled_01_cannon_F"; - }; - class Item74 - { - dataType="Object"; - class PositionInfo - { - position[]={470.5939,7.4626956,1279.0977}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehNATO_IFV2"; - }; - id=74; - type="B_APC_Wheeled_01_cannon_F"; - }; - class Item75 - { - dataType="Object"; - class PositionInfo - { - position[]={635.25696,7.2059455,1365.7882}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehNato_CAR3"; - }; - id=75; - type="B_MRAP_01_F"; - }; - class Item76 - { - dataType="Object"; - class PositionInfo - { - position[]={634.94348,7.2059455,1342.8126}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehNato_CAR4"; - }; - id=76; - type="B_MRAP_01_F"; - }; - class Item77 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.4866,7.392787,1275.9663}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_IFV1"; - textures="Hex"; - }; - id=77; - type="O_APC_Tracked_02_cannon_F"; - }; - class Item78 - { - dataType="Object"; - class PositionInfo - { - position[]={2426.5959,7.392787,1276.311}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehCSAT_IFV2"; - textures="Hex"; - }; - id=78; - type="O_APC_Tracked_02_cannon_F"; - }; - class Item79 - { - dataType="Object"; - class PositionInfo - { - position[]={2610.7737,7.4435053,1367.3921}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehCSAT_CAR3"; - textures="Hex"; - }; - id=79; - type="O_MRAP_02_F"; - }; - class Item80 - { - dataType="Object"; - class PositionInfo - { - position[]={2610.9114,7.4435053,1342.0503}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehCSAT_CAR4"; - textures="Hex"; - }; - id=80; - type="O_MRAP_02_F"; - }; - class Item81 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.1245,7.6859746,652.05188}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehAAF_IFV1"; - }; - id=81; - type="I_APC_tracked_03_cannon_F"; - atlOffset=0.19695234; - }; - class Item82 - { - dataType="Object"; - class PositionInfo - { - position[]={1452.3257,7.4890223,649.7052}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; - name="VehAAF_IFV2"; - }; - id=82; - type="I_APC_tracked_03_cannon_F"; - }; - class Item83 - { - dataType="Object"; - class PositionInfo - { - position[]={1611.853,6.8319178,753.23547}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehAAF_CAR3"; - }; - id=83; - type="I_MRAP_03_F"; - }; - class Item84 - { - dataType="Object"; - class PositionInfo - { - position[]={1613.3022,6.8319178,725.57043}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehAAF_CAR4"; - }; - id=84; - type="I_MRAP_03_F"; - }; - class Item85 - { - dataType="Object"; - class PositionInfo - { - position[]={448.18198,7.1644082,686.50494}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear"; - name="VehFIA_IFV1"; - textures="Guerilla_07"; - }; - id=85; - type="B_G_Offroad_01_armed_F"; - }; - class Item86 - { - dataType="Object"; - class PositionInfo - { - position[]={482.90561,7.1644082,686.42194}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear"; - name="VehFIA_IFV2"; - textures="Guerilla_07"; - }; - id=86; - type="B_G_Offroad_01_armed_F"; - }; - class Item87 - { - dataType="Object"; - class PositionInfo - { - position[]={535.95642,6.8716264,767.56049}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehFIA_TR4"; - textures="Guerilla_04"; - }; - id=87; - type="B_G_Van_01_transport_F"; - }; - class Item88 - { - dataType="Object"; - class PositionInfo - { - position[]={566.30212,6.8716264,772.56244}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehFIA_TR5"; - textures="Guerilla_04"; - }; - id=88; - type="B_G_Van_01_transport_F"; - }; - class Item89 - { - dataType="Object"; - class PositionInfo - { - position[]={575.16443,6.8716264,767.05365}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehFIA_TR6"; - textures="Guerilla_04"; - }; - id=89; - type="B_G_Van_01_transport_F"; - }; - class Item90 - { - dataType="Logic"; - class PositionInfo - { - position[]={2281.6389,5.3882694,729.50195}; - }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; - id=106; - type="ModuleCurator_F"; - atlOffset=0.38826942; - class CustomAttributes - { - class Attribute0 - { - property="ModuleCurator_F_Owner"; - expression="_this setVariable ['Owner',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="F3_Zeus"; - }; - }; - }; - class Attribute1 - { - property="ModuleCurator_F_Forced"; - expression="_this setVariable ['Forced',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - class Attribute2 - { - property="ModuleCurator_F_Name"; - expression="_this setVariable ['Name',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute3 - { - property="ModuleInfo"; - expression="false"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=1; - }; - }; - }; - class Attribute4 - { - property="ModuleCurator_F_Addons"; - expression="_this setVariable ['Addons',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=2; - }; - }; - }; - nAttributes=5; - }; - }; - class Item91 - { - dataType="Logic"; - class PositionInfo - { - position[]={2282.2229,5.3580265,718.42773}; - }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; - id=107; - type="ModuleCurator_F"; - atlOffset=0.3580265; - class CustomAttributes - { - class Attribute0 - { - property="ModuleCurator_F_Owner"; - expression="_this setVariable ['Owner',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="F3_Zeus_1"; - }; - }; - }; - class Attribute1 - { - property="ModuleCurator_F_Forced"; - expression="_this setVariable ['Forced',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - class Attribute2 - { - property="ModuleCurator_F_Name"; - expression="_this setVariable ['Name',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute3 - { - property="ModuleInfo"; - expression="false"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=1; - }; - }; - }; - class Attribute4 - { - property="ModuleCurator_F_Addons"; - expression="_this setVariable ['Addons',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=2; - }; - }; - }; - nAttributes=5; - }; - }; - class Item92 - { - dataType="Logic"; - class PositionInfo - { - position[]={2282.3342,5.6426582,707.78223}; - }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; - id=108; - type="ModuleCurator_F"; - atlOffset=0.64265823; - class CustomAttributes - { - class Attribute0 - { - property="ModuleCurator_F_Owner"; - expression="_this setVariable ['Owner',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="F3_Zeus_2"; - }; - }; - }; - class Attribute1 - { - property="ModuleCurator_F_Forced"; - expression="_this setVariable ['Forced',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - class Attribute2 - { - property="ModuleCurator_F_Name"; - expression="_this setVariable ['Name',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute3 - { - property="ModuleInfo"; - expression="false"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=1; - }; - }; - }; - class Attribute4 - { - property="ModuleCurator_F_Addons"; - expression="_this setVariable ['Addons',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=2; - }; - }; - }; - nAttributes=5; - }; - }; - class Item93 - { - dataType="Logic"; - class PositionInfo - { - position[]={2284.1614,6.0756798,697.16992}; - }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; - id=109; - type="ModuleCurator_F"; - atlOffset=1.0756798; - class CustomAttributes - { - class Attribute0 - { - property="ModuleCurator_F_Owner"; - expression="_this setVariable ['Owner',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="F3_Zeus_3"; - }; - }; - }; - class Attribute1 - { - property="ModuleCurator_F_Forced"; - expression="_this setVariable ['Forced',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - class Attribute2 - { - property="ModuleCurator_F_Name"; - expression="_this setVariable ['Name',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute3 - { - property="ModuleInfo"; - expression="false"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=1; - }; - }; - }; - class Attribute4 - { - property="ModuleCurator_F_Addons"; - expression="_this setVariable ['Addons',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=2; - }; - }; - }; - nAttributes=5; - }; - }; - class Item94 - { - dataType="Logic"; - class PositionInfo - { - position[]={411.01968,5,1370.0654}; - }; - id=110; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item95 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={408.35269,5.0014391,1364.9382}; - }; - side="West"; - flags=6; - class Attributes - { - }; - id=115; - type="B_Soldier_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=115; - item1=114; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=113; - }; - class Item96 - { - dataType="Object"; - class PositionInfo - { - position[]={408.35269,5.7216258,1364.8878}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=114; - type="B_Mortar_01_F"; - }; - class Item97 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={413.13589,5.0014391,1363.7788}; - }; - side="West"; - flags=6; - class Attributes - { - }; - id=118; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={413.13589,5.0014391,1363.7788}; - }; - side="West"; - flags=4; - class Attributes - { - }; - id=119; - type="B_Helipilot_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=118; - item1=117; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=119; - item1=117; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=116; - }; - class Item98 - { - dataType="Object"; - class PositionInfo - { - position[]={413.13589,6.4002423,1363.7296}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=117; - type="B_Heli_Light_01_armed_F"; - }; - class Item99 - { - dataType="Logic"; - class PositionInfo - { - position[]={429.65366,5.4784107,754.7207}; - }; - id=120; - type="SupportRequester"; - atlOffset=0.47841072; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item100 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={427.57455,5.3587284,749.52301}; - }; - side="West"; - flags=2; - class Attributes - { - }; - id=125; - type="B_Soldier_F"; - atlOffset=0.35728931; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=125; - item1=124; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=123; - atlOffset=0.35728931; - }; - class Item101 - { - dataType="Object"; - class PositionInfo - { - position[]={427.57455,6.0789151,749.47266}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - }; - id=124; - type="B_Mortar_01_F"; - atlOffset=0.35728931; - }; - class Item102 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={431.92221,5.3898754,748.29926}; - }; - side="West"; - flags=2; - class Attributes - { - }; - id=128; - type="B_Helipilot_F"; - atlOffset=0.38843632; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={431.92221,5.3898754,748.29926}; - }; - side="West"; - class Attributes - { - }; - id=129; - type="B_Helipilot_F"; - atlOffset=0.38843632; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=128; - item1=127; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=129; - item1=127; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=126; - atlOffset=0.38843632; - }; - class Item103 - { - dataType="Object"; - class PositionInfo - { - position[]={431.92221,6.7886786,748.25006}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - }; - id=127; - type="B_Heli_Light_01_armed_F"; - atlOffset=0.38843632; - }; - class Item104 - { - dataType="Logic"; - class PositionInfo - { - position[]={430.49057,5.8319387,730.8916}; - }; - id=130; - type="SupportRequester"; - atlOffset=0.83193874; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item105 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={428.43491,5.7404861,725.74664}; - }; - side="West"; - flags=2; - class Attributes - { - }; - id=135; - type="B_Soldier_F"; - atlOffset=0.73904705; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=135; - item1=134; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=133; - atlOffset=0.73904705; - }; - class Item106 - { - dataType="Object"; - class PositionInfo - { - position[]={428.43491,6.4606729,725.69629}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - }; - id=134; - type="B_Mortar_01_F"; - atlOffset=0.73904705; - }; - class Item107 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={432.80014,5.5899277,724.50336}; - }; - side="West"; - flags=2; - class Attributes - { - }; - id=138; - type="B_Helipilot_F"; - atlOffset=0.58848858; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={432.80014,5.5899277,724.50336}; - }; - side="West"; - class Attributes - { - }; - id=139; - type="B_Helipilot_F"; - atlOffset=0.58848858; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=138; - item1=137; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=139; - item1=137; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=136; - atlOffset=0.58848858; - }; - class Item108 - { - dataType="Object"; - class PositionInfo - { - position[]={432.80014,6.9887309,724.45416}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - }; - id=137; - type="B_Heli_Light_01_armed_F"; - atlOffset=0.58848858; - }; - class Item109 - { - dataType="Logic"; - class PositionInfo - { - position[]={2352.8674,5,1375.1069}; - }; - id=140; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item110 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2355.2317,5.0014391,1368.4746}; - }; - side="East"; - flags=6; - class Attributes - { - }; - id=145; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2355.2317,5.0014391,1368.4746}; - }; - side="East"; - flags=4; - class Attributes - { - }; - id=146; - type="O_helipilot_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=145; - item1=144; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=146; - item1=144; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=143; - }; - class Item111 - { - dataType="Object"; - class PositionInfo - { - position[]={2355.2317,7.1696463,1368.314}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - textures="Opfor"; - }; - id=144; - type="O_Heli_Light_02_v2_F"; - }; - class Item112 - { - dataType="Group"; - side="East"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2350.7874,5.0014391,1368.7529}; - }; - side="East"; - flags=6; - class Attributes - { - }; - id=149; - type="O_Soldier_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=149; - item1=148; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=147; - }; - class Item113 - { - dataType="Object"; - class PositionInfo - { - position[]={2350.7874,5.7216258,1368.7026}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=148; - type="O_Mortar_01_F"; - }; - class Item114 - { - dataType="Logic"; - class PositionInfo - { - position[]={2353.8879,5,1349.772}; - }; - id=150; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item115 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2356.1008,5.0014391,1343.0537}; - }; - side="East"; - flags=6; - class Attributes - { - }; - id=155; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2356.1008,5.0014391,1343.0537}; - }; - side="East"; - flags=4; - class Attributes - { - }; - id=156; - type="O_helipilot_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=155; - item1=154; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=156; - item1=154; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=153; - }; - class Item116 - { - dataType="Object"; - class PositionInfo - { - position[]={2356.1008,7.1696463,1342.8931}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - textures="Opfor"; - }; - id=154; - type="O_Heli_Light_02_v2_F"; - }; - class Item117 - { - dataType="Group"; - side="East"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2351.9036,5.0014391,1343.4551}; - }; - side="East"; - flags=6; - class Attributes - { - }; - id=159; - type="O_Soldier_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=159; - item1=158; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=157; - }; - class Item118 - { - dataType="Object"; - class PositionInfo - { - position[]={2351.9036,5.7216258,1343.4048}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=158; - type="O_Mortar_01_F"; - }; - class Item119 - { - dataType="Logic"; - class PositionInfo - { - position[]={1384.1157,5,761.96008}; - }; - id=160; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item120 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1386.1177,5.0014391,755.87048}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=165; - type="I_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1386.1177,5.0014391,755.87048}; - }; - side="Independent"; - flags=4; - class Attributes - { - }; - id=166; - type="I_helipilot_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=165; - item1=164; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=166; - item1=164; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=163; - }; - class Item121 - { - dataType="Object"; - class PositionInfo - { - position[]={1386.1177,6.5310755,755.82043}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=164; - type="I_Heli_light_03_F"; - }; - class Item122 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1382.0044,5.0014391,755.89136}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=169; - type="I_soldier_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=169; - item1=168; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=167; - }; - class Item123 - { - dataType="Object"; - class PositionInfo - { - position[]={1382.0044,5.7216258,755.84094}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=168; - type="I_Mortar_01_F"; - }; - class Item124 - { - dataType="Logic"; - class PositionInfo - { - position[]={1384.5522,5,732.03235}; - }; - id=170; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item125 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1386.6372,5.0014391,725.99646}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=175; - type="I_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1386.6372,5.0014391,725.99646}; - }; - side="Independent"; - flags=4; - class Attributes - { - }; - id=176; - type="I_helipilot_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=175; - item1=174; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=176; - item1=174; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=173; - }; - class Item126 - { - dataType="Object"; - class PositionInfo - { - position[]={1386.6372,6.5310755,725.94641}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=174; - type="I_Heli_light_03_F"; - }; - class Item127 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1382.479,5.0014391,725.98999}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=179; - type="I_soldier_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=179; - item1=178; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=177; - }; - class Item128 - { - dataType="Object"; - class PositionInfo - { - position[]={1382.479,5.7216258,725.93958}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=178; - type="I_Mortar_01_F"; - }; - class Item129 - { - dataType="Logic"; - class PositionInfo - { - position[]={411.24136,5,1347.6611}; - }; - id=180; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item130 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={409.20523,5.0014391,1342.4988}; - }; - side="West"; - flags=6; - class Attributes - { - }; - id=185; - type="B_Soldier_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=185; - item1=184; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=183; - }; - class Item131 - { - dataType="Object"; - class PositionInfo - { - position[]={409.20523,5.7216258,1342.4484}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=184; - type="B_Mortar_01_F"; - }; - class Item132 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={413.58804,5.0014391,1341.3022}; - }; - side="West"; - flags=6; - class Attributes - { - }; - id=188; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={413.58804,5.0014391,1341.3022}; - }; - side="West"; - flags=4; - class Attributes - { - }; - id=189; - type="B_Helipilot_F"; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=188; - item1=187; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=189; - item1=187; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=186; - }; - class Item133 - { - dataType="Object"; - class PositionInfo - { - position[]={413.58804,6.4002423,1341.2531}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=187; - type="B_Heli_Light_01_armed_F"; - }; - class Item134 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={425.25861,5.0014391,1363.5155}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="COLONEL"; - init="[""co"",this] call f_fnc_assignGear;"; - name="UnitNATO_CO"; - description="NATO Commander"; - isPlayable=1; - }; - id=191; - type="B_officer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={430.25861,5.0014391,1361.8661}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitNATO_CO_JTAC"; - description="NATO JTAC"; - isPlayable=1; - }; - id=192; - type="B_officer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={420.25861,5.0014391,1361.8661}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitNATO_CO_UAV"; - description="NATO UAV Operator"; - isPlayable=1; - }; - id=193; - type="B_soldier_UAV_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={435.25861,5.0014391,1359.1268}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitNATO_CO_M"; - description="NATO Medic"; - isPlayable=1; - }; - id=194; - type="B_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpNATO_CO"; - }; - id=190; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO CO -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item135 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={430.38492,5.0014391,1351.1897}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="MAJOR"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitNATO_DC"; - description="NATO Deputy Commander"; - isPlayable=1; - }; - id=196; - type="B_officer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={435.38492,5.0014391,1349.5393}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitNATO_DC_JTAC"; - description="NATO JTAC"; - isPlayable=1; - }; - id=197; - type="B_officer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={425.38492,5.0014391,1349.5393}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitNATO_DC_UAV"; - description="NATO UAV Operator"; - isPlayable=1; - }; - id=198; - type="B_soldier_UAV_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={440.38492,5.0014391,1346.8}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitNATO_DC_M"; - description="NATO Medic"; - isPlayable=1; - }; - id=199; - type="B_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpNATO_DC"; - }; - id=195; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO DC -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item136 - { - dataType="Group"; - side="West"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={431.17886,5.0014391,1304.6467}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitNATO_COV_C"; - description="NATO Command Vehicle Commander"; - isPlayable=1; - }; - id=201; - type="B_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={431.17886,5.0014391,1304.6467}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitNATO_COV_G"; - description="NATO Command Vehicle Gunner"; - isPlayable=1; - }; - id=202; - type="B_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={431.17886,5.0014391,1304.6467}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitNATO_COV_D"; - description="NATO Command Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=203; - type="B_crew_F"; - }; - }; - class Attributes - { - name="GrpNATO_COV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=201; - item1=13; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=202; - item1=13; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=203; - item1=13; - class CustomData - { - role=1; - }; - }; - }; - }; - id=200; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO COV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item137 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={469.71011,5.0014391,1372.1106}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitNATO_ASL_SL"; - description="NATO Alpha Squad Leader"; - isPlayable=1; - }; - id=205; - type="B_Soldier_SL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={474.71011,5.0014391,1370.4602}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitNATO_ASL_M"; - description="NATO Alpha Medic"; - isPlayable=1; - }; - id=206; - type="B_medic_F"; - }; - }; - class Attributes - { - name="GrpNATO_ASL"; - }; - id=204; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO ASL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item138 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={469.50504,5.0014391,1350.5276}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitNATO_A1_FTL"; - description="NATO Alpha 1 Fire Team Leader"; - isPlayable=1; - }; - id=208; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={474.50504,5.0014391,1348.8772}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A1_AR1"; - description="NATO Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=209; - type="B_soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={464.50504,5.0014391,1348.8772}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A1_AR2"; - description="NATO Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=210; - type="B_soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={479.50504,5.0014391,1346.1379}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitNATO_A1_AT"; - description="NATO Alpha 1 Assaultman (AT)"; - isPlayable=1; - }; - id=211; - type="B_soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={459.50504,5.0014391,1346.1379}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A1_R1"; - description="NATO Alpha 1 Rifleman"; - isPlayable=1; - }; - id=212; - type="B_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={484.50504,5.0014391,1341.5911}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A1_R2"; - description="NATO Alpha 1 Rifleman"; - isPlayable=1; - }; - id=213; - type="B_Soldier_F"; - }; - }; - class Attributes - { - name="GrpNATO_A1"; - }; - id=207; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO A1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item139 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={469.71109,5.0014391,1326.9739}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitNATO_A2_FTL"; - description="NATO Alpha 2 Fire Team Leader"; - isPlayable=1; - }; - id=215; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={474.71109,5.0014391,1325.3235}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A2_AR1"; - description="NATO Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=216; - type="B_soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={464.71109,5.0014391,1325.3235}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A2_AR2"; - description="NATO Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=217; - type="B_soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={479.71109,5.0014391,1322.5842}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitNATO_A2_AT"; - description="NATO Alpha 2 Assaultman (AT)"; - isPlayable=1; - }; - id=218; - type="B_soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={459.71109,5.0014391,1322.5842}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A2_R1"; - description="NATO Alpha 2 Rifleman"; - isPlayable=1; - }; - id=219; - type="B_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={484.71109,5.0014391,1318.0374}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_A2_R2"; - description="NATO Alpha 2 Rifleman"; - isPlayable=1; - }; - id=220; - type="B_Soldier_F"; - }; - }; - class Attributes - { - name="GrpNATO_A2"; - }; - id=214; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO A2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item140 - { - dataType="Group"; - side="West"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={470.42007,5.0014391,1304.22}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitNATO_AV_C"; - description="NATO Alpha Vehicle Commander"; - isPlayable=1; - }; - id=222; - type="B_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={470.42007,5.0014391,1304.22}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitNATO_AV_G"; - description="NATO Alpha Vehicle Gunner"; - isPlayable=1; - }; - id=223; - type="B_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={470.42007,5.0014391,1304.22}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitNATO_AV_D"; - description="NATO Alpha Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=224; - type="B_crew_F"; - }; - }; - class Attributes - { - name="GrpNATO_AV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=222; - item1=10; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=223; - item1=10; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=224; - item1=10; - class CustomData - { - role=1; - }; - }; - }; - }; - id=221; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO AV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item141 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={515.86633,5.0014391,1371.6272}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitNATO_BSL_SL"; - description="NATO Bravo Squad Leader"; - isPlayable=1; - }; - id=226; - type="B_Soldier_SL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={520.86633,5.0014391,1369.9768}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitNATO_BSL_M"; - description="NATO Bravo Medic"; - isPlayable=1; - }; - id=227; - type="B_medic_F"; - }; - }; - class Attributes - { - name="GrpNATO_BSL"; - }; - id=225; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO BSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item142 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={515.87219,5.0014391,1349.8528}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitNATO_B1_FTL"; - description="NATO Bravo 1 Fire Team Leader"; - isPlayable=1; - }; - id=229; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={520.87219,5.0014391,1348.2024}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B1_AR1"; - description="NATO Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=230; - type="B_soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={510.87222,5.0014391,1348.2024}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B1_AR2"; - description="NATO Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=231; - type="B_soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={525.87219,5.0014391,1345.4631}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitNATO_B1_AT"; - description="NATO Bravo 1 Assaultman (AT)"; - isPlayable=1; - }; - id=232; - type="B_soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={505.87222,5.0014391,1345.4631}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B1_R1"; - description="NATO Bravo 1 Rifleman"; - isPlayable=1; - }; - id=233; - type="B_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={530.87219,5.0014391,1340.9163}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B1_R2"; - description="NATO Bravo 1 Rifleman"; - isPlayable=1; - }; - id=234; - type="B_Soldier_F"; - }; - }; - class Attributes - { - name="GrpNATO_B1"; - }; - id=228; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO B1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item143 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={515.69153,5.0014391,1326.2991}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitNATO_B2_FTL"; - description="NATO Bravo 2 Fire Team Leader"; - isPlayable=1; - }; - id=236; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={520.69153,5.0014391,1324.6487}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B2_AR1"; - description="NATO Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=237; - type="B_soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={510.69156,5.0014391,1324.6487}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B2_AR2"; - description="NATO Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=238; - type="B_soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={525.69153,5.0014391,1321.9094}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitNATO_B2_AT"; - description="NATO Bravo 2 Assaultman (AT)"; - isPlayable=1; - }; - id=239; - type="B_soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={505.69156,5.0014391,1321.9094}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B2_R1"; - description="NATO Bravo 2 Rifleman"; - isPlayable=1; - }; - id=240; - type="B_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={530.69153,5.0014391,1317.3625}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_B2_R2"; - description="NATO Bravo 2 Rifleman"; - isPlayable=1; - }; - id=241; - type="B_Soldier_F"; - }; - }; - class Attributes - { - name="GrpNATO_B2"; - }; - id=235; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO B2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item144 - { - dataType="Group"; - side="West"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={517.84583,5.0014391,1301.2805}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitNATO_BV_C"; - description="NATO Bravo Vehicle Commander"; - isPlayable=1; - }; - id=243; - type="B_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={517.84583,5.0014391,1301.2805}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitNATO_BV_G"; - description="NATO Bravo Vehicle Gunner"; - isPlayable=1; - }; - id=244; - type="B_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={517.84583,5.0014391,1301.2805}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitNATO_BV_D"; - description="NATO Bravo Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=245; - type="B_crew_F"; - }; - }; - class Attributes - { - name="GrpNATO_BV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=243; - item1=11; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=244; - item1=11; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=245; - item1=11; - class CustomData - { - role=1; - }; - }; - }; - }; - id=242; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO BV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item145 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={558.87317,5.0014391,1372.5715}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitNATO_CSL_SL"; - description="NATO Charlie Squad Leader"; - isPlayable=1; - }; - id=247; - type="B_Soldier_SL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={563.87317,5.0014391,1370.9231}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitNATO_CSL_M"; - description="NATO Charlie Medic"; - isPlayable=1; - }; - id=248; - type="B_medic_F"; - }; - }; - class Attributes - { - name="GrpNATO_CSL"; - }; - id=246; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO CSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item146 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={558.73254,5.0014391,1350.0002}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitNATO_C1_FTL"; - description="NATO Charlie 1 Fire Team Leader"; - isPlayable=1; - }; - id=250; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={563.73254,5.0014391,1348.3499}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C1_AR1"; - description="NATO Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=251; - type="B_soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={553.73254,5.0014391,1348.3499}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C1_AR2"; - description="NATO Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=252; - type="B_soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={568.73254,5.0014391,1345.6106}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitNATO_C1_AT"; - description="NATO Charlie 1 Assaultman (AT)"; - isPlayable=1; - }; - id=253; - type="B_soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={548.73254,5.0014391,1345.6106}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C1_R1"; - description="NATO Charlie 1 Rifleman"; - isPlayable=1; - }; - id=254; - type="B_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={573.73254,5.0014391,1341.0637}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C1_R2"; - description="NATO Charlie 1 Rifleman"; - isPlayable=1; - }; - id=255; - type="B_Soldier_F"; - }; - }; - class Attributes - { - name="GrpNATO_C1"; - }; - id=249; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO C1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item147 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={559.41809,5.0014391,1326.5735}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitNATO_C2_FTL"; - description="NATO Charlie 2 Fire Team Leader"; - isPlayable=1; - }; - id=257; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={564.41809,5.0014391,1324.9231}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C2_AR1"; - description="NATO Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=258; - type="B_soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={554.41809,5.0014391,1324.9231}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C2_AR2"; - description="NATO Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=259; - type="B_soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={569.41809,5.0014391,1322.1838}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitNATO_C2_AT"; - description="NATO Charlie 2 Assaultman (AT)"; - isPlayable=1; - }; - id=260; - type="B_soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={549.41809,5.0014391,1322.1838}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C2_R1"; - description="NATO Charlie 2 Rifleman"; - isPlayable=1; - }; - id=261; - type="B_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={574.41809,5.0014391,1317.636}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitNATO_C2_R2"; - description="NATO Charlie 2 Rifleman"; - isPlayable=1; - }; - id=262; - type="B_Soldier_F"; - }; - }; - class Attributes - { - name="GrpNATO_C2"; - }; - id=256; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO C2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item148 - { - dataType="Group"; - side="West"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={560.05579,5.0014391,1302.509}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitNATO_CV_C"; - description="NATO Charlie Vehicle Commander"; - isPlayable=1; - }; - id=264; - type="B_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={560.05579,5.0014391,1302.509}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitNATO_CV_G"; - description="NATO Charlie Vehicle Gunner"; - isPlayable=1; - }; - id=265; - type="B_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={560.05579,5.0014391,1302.509}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitNATO_CV_D"; - description="NATO Charlie Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=266; - type="B_crew_F"; - }; - }; - class Attributes - { - name="GrpNATO_CV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=264; - item1=12; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=265; - item1=12; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=266; - item1=12; - class CustomData - { - role=1; - }; - }; - }; - }; - id=263; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO CV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item149 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.67786,5.0014391,1372.7942}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitNATO_MMG1_AG"; - description="NATO Medium MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=268; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.67786,5.0014391,1371.1438}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitNATO_MMG1_G"; - description="NATO Medium MG Team 1 Gunner"; - isPlayable=1; - }; - id=269; - type="B_soldier_AR_F"; - }; - }; - class Attributes - { - name="GrpNATO_MMG1"; - }; - id=267; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO MMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item150 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.31165,5.0014391,1361.0022}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitNATO_MMG2_AG"; - description="NATO Medium MG Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=271; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.31165,5.0014391,1359.3518}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitNATO_MMG2_G"; - description="NATO Medium MG Team 2 Gunner"; - isPlayable=1; - }; - id=272; - type="B_soldier_AR_F"; - }; - }; - class Attributes - { - name="GrpNATO_MMG2"; - }; - id=270; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO MMG2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item151 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.51672,5.0014391,1349.5032}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MAT1_AG"; - description="NATO Medium AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=274; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.51672,5.0372052,1347.8528}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear; "; - name="UnitNATO_MAT1_G"; - description="NATO Medium AT Team 1 Gunner"; - isPlayable=1; - }; - id=275; - type="B_soldier_AT_F"; - atlOffset=0.035766125; - }; - }; - class Attributes - { - name="GrpNATO_MAT1"; - }; - id=273; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO MAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item152 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.82825,5.0014391,1337.9661}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MAT2_AG"; - description="NATO Medium AT Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=277; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.82825,5.0014391,1336.3157}; - }; - side="West"; - flags=4; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear; "; - name="UnitNATO_MAT2_G"; - description="NATO Medium AT Team 2 Gunner"; - isPlayable=1; - }; - id=278; - type="B_soldier_AT_F"; - }; - }; - class Attributes - { - name="GrpNATO_MAT2"; - }; - id=276; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO MAT2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item153 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.53235,5.0014391,1325.4583}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hmgag"",this] call f_fnc_assignGear; "; - name="UnitNATO_HMG1_AG"; - description="NATO Heavy MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=280; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.53235,5.0014391,1323.8079}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hmgg"",this] call f_fnc_assignGear; "; - name="UnitNATO_HMG1_G"; - description="NATO Heavy MG Team 1 Gunner"; - isPlayable=1; - }; - id=281; - type="B_support_MG_F"; - }; - }; - class Attributes - { - name="GrpNATO_HMG1"; - }; - id=279; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO HMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item154 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.42981,5.0014391,1314.5901}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitNATO_HAT1_AG"; - description="NATO Heavy AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=283; - type="B_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.42981,5.0014391,1312.9397}; - }; - side="West"; - flags=4; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""hatg"",this] call f_fnc_assignGear; "; - name="UnitNATO_HAT1_G"; - description="NATO Heavy AT Team 1 Gunner"; - isPlayable=1; - }; - id=284; - type="B_soldier_AT_F"; - }; - }; - class Attributes - { - name="GrpNATO_HAT1"; - }; - id=282; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO HAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item155 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.72571,5.5986366,1302.717}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MTR1_AG"; - description="NATO Mortar Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=286; - type="B_support_AMort_F"; - atlOffset=0.59719753; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.72571,5.6381588,1301.0667}; - }; - side="West"; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""mtrg"",this] call f_fnc_assignGear; "; - name="UnitNATO_MTR1_G"; - description="NATO Mortar Team 1 Gunner"; - isPlayable=1; - }; - id=287; - type="B_support_Mort_F"; - atlOffset=0.6367197; - }; - }; - class Attributes - { - name="GrpNATO_MTR1"; - }; - id=285; - atlOffset=0.59719753; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO MTR1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item156 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.65149,5.7161484,1290.2786}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MSAM1_AG"; - description="NATO Medium SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=289; - type="B_soldier_AAA_F"; - atlOffset=0.71470928; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.65149,5.791913,1288.6282}; - }; - side="West"; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""msamg"",this] call f_fnc_assignGear; "; - name="UnitNATO_MSAM1_G"; - description="NATO Medium SAM Team 1 Gunner"; - isPlayable=1; - }; - id=290; - type="B_soldier_AA_F"; - atlOffset=0.79047394; - }; - }; - class Attributes - { - name="GrpNATO_MSAM1"; - }; - id=288; - atlOffset=0.71470928; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO MSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item157 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.7384,5.7222595,1277.7756}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitNATO_HSAM1_AG"; - description="NATO Heavy SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=292; - type="B_soldier_AAA_F"; - atlOffset=0.72082043; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.7384,5.7153502,1276.1252}; - }; - side="West"; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""hsamg"",this] call f_fnc_assignGear; "; - name="UnitNATO_HSAM1_G"; - description="NATO Heavy SAM Team 1 Gunner"; - isPlayable=1; - }; - id=293; - type="B_soldier_AA_F"; - atlOffset=0.71391106; - }; - }; - class Attributes - { - name="GrpNATO_HSAM1"; - }; - id=291; - atlOffset=0.72082043; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO HSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item158 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.7384,5.6523895,1266.6995}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""sp"",this] call f_fnc_assignGear; "; - name="UnitNATO_ST1_SP"; - description="NATO Sniper Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=295; - type="B_spotter_F"; - atlOffset=0.65095043; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.7384,5.6546535,1265.0491}; - }; - side="West"; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""sn"",this] call f_fnc_assignGear; "; - name="UnitNATO_ST1_SN"; - description="NATO Sniper Team 1 Sniper"; - isPlayable=1; - }; - id=296; - type="B_sniper_F"; - atlOffset=0.65321445; - }; - }; - class Attributes - { - name="GrpNATO_ST1"; - }; - id=294; - atlOffset=0.65095043; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO ST1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item159 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.41223,5.2708397,1254.4338}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitNATO_ENG1_FTL"; - description="NATO Engineer Team 1 Leader (Demo)"; - isPlayable=1; - }; - id=298; - type="B_engineer_F"; - atlOffset=0.2694006; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.41223,5.1099253,1252.7834}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitNATO_ENG1_A1"; - description="NATO Engineer Team 1 Assistant (Demo)"; - isPlayable=1; - }; - id=299; - type="B_engineer_F"; - atlOffset=0.10848618; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={616.41223,5.3070717,1252.7834}; - }; - side="West"; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitNATO_ENG1_A2"; - description="NATO Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=300; - type="B_engineer_F"; - atlOffset=0.30563259; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={631.41223,5.0951824,1250.0442}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitNATO_ENG1_A3"; - description="NATO Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=301; - type="B_engineer_F"; - atlOffset=0.093743324; - }; - }; - class Attributes - { - name="GrpNATO_ENG1"; - }; - id=297; - atlOffset=0.2694006; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO ENG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item160 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={621.09973,5.0014391,1240.26}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitNATO_DT1_TL"; - description="NATO Diver Team 1 Team Leader"; - isPlayable=1; - }; - id=303; - type="B_diver_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={626.09973,5.0014391,1238.6096}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitNATO_DT1_D1"; - description="NATO Diver Team 1 Diver"; - isPlayable=1; - }; - id=304; - type="B_diver_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={616.09973,5.0014391,1238.6096}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitNATO_DT1_D2"; - description="NATO Diver Team 1 Diver"; - isPlayable=1; - }; - id=305; - type="B_diver_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={631.09973,5.0014391,1235.8704}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitNATO_DT1_D3"; - description="NATO Diver Team 1 Diver"; - isPlayable=1; - }; - id=306; - type="B_diver_F"; - }; - }; - class Attributes - { - name="GrpNATO_DT1"; - }; - id=302; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO DT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item161 - { - dataType="Group"; - side="West"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={430.91617,5.0014391,1278.9602}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitNATO_IFV1_C"; - description="NATO IFV 1 Commander"; - isPlayable=1; - }; - id=308; - type="B_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={430.91617,5.0014391,1278.9602}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitNATO_IFV1_G"; - description="NATO IFV 1 Gunner"; - isPlayable=1; - }; - id=309; - type="B_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={430.91617,5.0014391,1278.9602}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitNATO_IFV1_D"; - description="NATO IFV 1 Driver (Repair)"; - isPlayable=1; - }; - id=310; - type="B_crew_F"; - }; - }; - class Attributes - { - name="GrpNATO_IFV1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=308; - item1=73; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=309; - item1=73; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=310; - item1=73; - class CustomData - { - role=1; - }; - }; - }; - }; - id=307; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO IFV1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item162 - { - dataType="Group"; - side="West"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={470.5939,5.0014391,1279.1477}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitNATO_IFV2_C"; - description="NATO IFV 2 Commander"; - isPlayable=1; - }; - id=312; - type="B_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={470.5939,5.0014391,1279.1477}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitNATO_IFV2_G"; - description="NATO IFV 2 Gunner"; - isPlayable=1; - }; - id=313; - type="B_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={470.5939,5.0014391,1279.1477}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitNATO_IFV2_D"; - description="NATO IFV 2 Driver (Repair)"; - isPlayable=1; - }; - id=314; - type="B_crew_F"; - }; - }; - class Attributes - { - name="GrpNATO_IFV2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=312; - item1=74; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=313; - item1=74; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=314; - item1=74; - class CustomData - { - role=1; - }; - }; - }; - }; - id=311; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO IFV2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item163 - { - dataType="Group"; - side="West"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={516.48157,5.0014391,1279.7727}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TNK1_C"; - description="NATO Tank 1 Commander"; - isPlayable=1; - }; - id=316; - type="B_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={516.48157,5.0014391,1279.7727}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitNATO_TNK1_G"; - description="NATO Tank 1 Gunner"; - isPlayable=1; - }; - id=317; - type="B_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={516.48157,5.0014391,1279.7727}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitNATO_TNK1_D"; - description="NATO Tank 1 Driver (Repair)"; - isPlayable=1; - }; - id=318; - type="B_crew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TNK1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=316; - item1=30; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=317; - item1=30; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=318; - item1=30; - class CustomData - { - role=1; - }; - }; - }; - }; - id=315; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TNK1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item164 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={432.07535,5.0014391,1248.4297}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH1_P"; - description="NATO Transport Helo 1 Pilot"; - isPlayable=1; - }; - id=320; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={432.07535,5.0014391,1248.4297}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH1_CP"; - description="NATO Transport Helo 1 Co-Pilot"; - isPlayable=1; - }; - id=321; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={432.07535,5.0014391,1248.4297}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH1_G1"; - description="NATO Transport Helo 1 Crew Chief (Repair)"; - isPlayable=1; - }; - id=322; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={432.07535,5.0014391,1248.4297}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH1_G2"; - description="NATO Transport Helo 1 Gunner"; - isPlayable=1; - }; - id=323; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=320; - item1=0; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=321; - item1=0; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=322; - item1=0; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=323; - item1=0; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=319; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item165 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={432.47964,5.0014391,1220.6484}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH2_P"; - description="NATO Transport Helo 2 Pilot"; - isPlayable=1; - }; - id=325; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={432.47964,5.0014391,1220.6484}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH2_CP"; - description="NATO Transport Helo 2 Co-Pilot"; - isPlayable=1; - }; - id=326; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={432.47964,5.0014391,1220.6484}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH2_G1"; - description="NATO Transport Helo 2 Crew Chief (Repair)"; - isPlayable=1; - }; - id=327; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={432.47964,5.0014391,1220.6484}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH2_G2"; - description="NATO Transport Helo 2 Gunner"; - isPlayable=1; - }; - id=328; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=325; - item1=3; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=326; - item1=3; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=327; - item1=3; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=328; - item1=3; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=324; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item166 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={467.55972,5.0014391,1249.0986}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH3_P"; - description="NATO Transport Helo 3 Pilot"; - isPlayable=1; - }; - id=330; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={467.55972,5.0014391,1249.0986}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH3_CP"; - description="NATO Transport Helo 3 Co-Pilot"; - isPlayable=1; - }; - id=331; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={467.55972,5.0014391,1249.0986}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH3_G1"; - description="NATO Transport Helo 3 Crew Chief (Repair)"; - isPlayable=1; - }; - id=332; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={467.55972,5.0014391,1249.0986}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH3_G2"; - description="NATO Transport Helo 3 Gunner"; - isPlayable=1; - }; - id=333; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH3"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=330; - item1=4; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=331; - item1=4; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=332; - item1=4; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=333; - item1=4; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=329; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH3 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item167 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={468.41714,5.0014391,1221.5605}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH4_P"; - description="NATO Transport Helo 4 Pilot"; - isPlayable=1; - }; - id=335; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={468.41714,5.0014391,1221.5605}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH4_CP"; - description="NATO Transport Helo 4 Co-Pilot"; - isPlayable=1; - }; - id=336; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={468.41714,5.0014391,1221.5605}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH4_G1"; - description="NATO Transport Helo 4 Crew Chief (Repair)"; - isPlayable=1; - }; - id=337; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={468.41714,5.0014391,1221.5605}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH4_G2"; - description="NATO Transport Helo 4 Gunner"; - isPlayable=1; - }; - id=338; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH4"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=335; - item1=5; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=336; - item1=5; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=337; - item1=5; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=338; - item1=5; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=334; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH4 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item168 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={516.71497,5.0014391,1249.3047}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH5_P"; - description="NATO Transport Helo 5 Pilot"; - isPlayable=1; - }; - id=340; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={516.71497,5.0014391,1249.3047}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH5_CP"; - description="NATO Transport Helo 5 Co-Pilot"; - isPlayable=1; - }; - id=341; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={516.71497,5.0014391,1249.3047}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH5_G1"; - description="NATO Transport Helo 5 Crew Chief (Repair)"; - isPlayable=1; - }; - id=342; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={516.71497,5.0014391,1249.3047}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH5_G2"; - description="NATO Transport Helo 5 Gunner"; - isPlayable=1; - }; - id=343; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH5"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=340; - item1=6; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=341; - item1=6; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=342; - item1=6; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=343; - item1=6; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=339; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH5 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item169 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={516.78723,5.0014391,1221.2979}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH6_P"; - description="NATO Transport Helo 6 Pilot"; - isPlayable=1; - }; - id=345; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={516.78723,5.0014391,1221.2979}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH6_CP"; - description="NATO Transport Helo 6 Co-Pilot"; - isPlayable=1; - }; - id=346; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={516.78723,5.0014391,1221.2979}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH6_G1"; - description="NATO Transport Helo 6 Crew Chief (Repair)"; - isPlayable=1; - }; - id=347; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={516.78723,5.0014391,1221.2979}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH6_G2"; - description="NATO Transport Helo 6 Gunner"; - isPlayable=1; - }; - id=348; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH6"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=345; - item1=7; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=346; - item1=7; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=347; - item1=7; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=348; - item1=7; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=344; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH6 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item170 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={562.33704,5.0014391,1249.8828}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH7_P"; - description="NATO Transport Helo 7 Pilot"; - isPlayable=1; - }; - id=350; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={562.33704,5.0014391,1249.8828}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH7_CP"; - description="NATO Transport Helo 7 Co-Pilot"; - isPlayable=1; - }; - id=351; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={562.33704,5.0014391,1249.8828}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH7_G1"; - description="NATO Transport Helo 7 Crew Chief (Repair)"; - isPlayable=1; - }; - id=352; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={562.33704,5.0014391,1249.8828}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH7_G2"; - description="NATO Transport Helo 7 Gunner"; - isPlayable=1; - }; - id=353; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH7"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=350; - item1=8; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=351; - item1=8; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=352; - item1=8; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=353; - item1=8; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=349; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH7 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item171 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={563.22864,5.0014391,1222.377}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH8_P"; - description="NATO Transport Helo 8 Pilot"; - isPlayable=1; - }; - id=355; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={563.22864,5.0014391,1222.377}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH8_CP"; - description="NATO Transport Helo 8 Co-Pilot"; - isPlayable=1; - }; - id=356; - type="B_Helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={563.22864,5.0014391,1222.377}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH8_G1"; - description="NATO Transport Helo 8 Crew Chief (Repair)"; - isPlayable=1; - }; - id=357; - type="B_helicrew_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={563.22864,5.0014391,1222.377}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitNATO_TH8_G2"; - description="NATO Transport Helo 8 Gunner"; - isPlayable=1; - }; - id=358; - type="B_helicrew_F"; - }; - }; - class Attributes - { - name="GrpNATO_TH8"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=355; - item1=9; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=356; - item1=9; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=357; - item1=9; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=358; - item1=9; - class CustomData - { - role=2; - turretPath[]={2}; - }; - }; - }; - }; - id=354; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO TH8 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item172 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={431.90445,5.0014391,1193.7559}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitNATO_AH1_P"; - description="NATO Attack Helo 1 Pilot"; - isPlayable=1; - }; - id=360; - type="B_Helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={431.90445,5.0014391,1193.7559}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitNATO_AH1_CP"; - description="NATO Attack Helo 1 Gunner (Repair)"; - isPlayable=1; - }; - id=361; - type="B_Helipilot_F"; - }; - }; - class Attributes - { - name="GrpNATO_AH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=360; - item1=14; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=361; - item1=14; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=359; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="NATO AH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item173 - { - dataType="Group"; - side="East"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2379.9329,5.0014391,1377.0327}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="COLONEL"; - lock="UNLOCKED"; - init="[""co"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CO"; - description="CSAT Commander"; - isPlayable=1; - }; - id=368; - type="O_officer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2384.9329,5.0014391,1375.3823}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CO_JTAC"; - description="CSAT JTAC"; - isPlayable=1; - }; - id=369; - type="O_officer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2374.9329,5.0014391,1375.3823}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CO_UAV"; - description="CSAT UAV Operator"; - isPlayable=1; - }; - id=370; - type="O_soldier_UAV_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2389.9329,5.0014391,1372.6421}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CO_M"; - description="CSAT Medic"; - isPlayable=1; - }; - id=371; - type="O_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_CO"; - }; - id=367; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT CO -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item174 - { - dataType="Group"; - side="East"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.3215,5.0014391,1352.3208}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="MAJOR"; - lock="UNLOCKED"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_DC"; - description="CSAT Deputy Commander"; - isPlayable=1; - }; - id=373; - type="O_officer_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2386.3215,5.0014391,1350.6694}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitCSAT_DC_JTAC"; - description="CSAT JTAC"; - isPlayable=1; - }; - id=374; - type="O_officer_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2376.3215,5.0014391,1350.6694}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitCSAT_DC_UAV"; - description="CSAT UAV Operator"; - isPlayable=1; - }; - id=375; - type="O_soldier_UAV_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2391.3215,5.0014391,1347.9312}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitCSAT_DC_M"; - description="CSAT Medic"; - isPlayable=1; - }; - id=376; - type="O_medic_F"; - }; - }; - class Attributes - { - name="GrpCSAT_DC"; - }; - id=372; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT DC -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item175 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.1594,5.0014391,1301.3689}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_COV_C"; - description="CSAT Command Vehicle Commander"; - isPlayable=1; - }; - id=378; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.1594,5.0014391,1301.3689}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_COV_G"; - description="CSAT Command Vehicle Gunner"; - isPlayable=1; - }; - id=379; - type="O_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.1594,5.0014391,1301.3689}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitCSAT_COV_D"; - description="CSAT Command Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=380; - type="O_crew_F"; - }; - }; - class Attributes - { - name="GrpCSAT_COV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=378; - item1=25; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=379; - item1=25; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=380; - item1=25; - class CustomData - { - role=1; - }; - }; - }; - }; - id=377; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT COV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item176 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2423.9153,5.0014391,1376.146}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - lock="UNLOCKED"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_ASL_SL"; - description="CSAT Alpha Squad Leader"; - isPlayable=1; - }; - id=382; - type="O_Soldier_SL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2428.9153,5.0014391,1374.4956}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitCSAT_ASL_M"; - description="CSAT Alpha Medic"; - isPlayable=1; - }; - id=383; - type="O_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_ASL"; - }; - id=381; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT ASL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item177 - { - dataType="Group"; - side="East"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2424.97,5.0014391,1350.8052}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - lock="UNLOCKED"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A1_FTL"; - description="CSAT Alpha 1 Fire Team Leader"; - isPlayable=1; - }; - id=385; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2429.97,5.0014391,1349.1548}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A1_AR1"; - description="CSAT Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=386; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2419.97,5.0014391,1349.1548}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A1_AR2"; - description="CSAT Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=387; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2434.97,5.0014391,1346.4155}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A1_AT"; - description="CSAT Alpha 1 Assaultman (AT)"; - isPlayable=1; - }; - id=388; - type="O_Soldier_LAT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={2414.97,5.0014391,1346.4155}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A1_R1"; - description="CSAT Alpha 1 Rifleman"; - isPlayable=1; - }; - id=389; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={2439.97,5.0014391,1341.8687}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A1_R2"; - description="CSAT Alpha 1 Rifleman"; - isPlayable=1; - }; - id=390; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_A1"; - }; - id=384; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT A1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item178 - { - dataType="Group"; - side="East"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2425.2102,5.0014391,1324.6548}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - lock="UNLOCKED"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A2_FTL"; - description="CSAT Alpha 2 Fire Team Leader"; - isPlayable=1; - }; - id=392; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2430.2102,5.0014391,1323.0046}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A2_AR1"; - description="CSAT Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=393; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2420.2102,5.0014391,1323.0046}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A2_AR2"; - description="CSAT Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=394; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2435.2102,5.0014391,1320.2654}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A2_AT"; - description="CSAT Alpha 2 Assaultman (AT)"; - isPlayable=1; - }; - id=395; - type="O_Soldier_LAT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={2415.2102,5.0014391,1320.2654}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A2_R1"; - description="CSAT Alpha 2 Rifleman"; - isPlayable=1; - }; - id=396; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={2440.2102,5.0014391,1315.7175}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_A2_R2"; - description="CSAT Alpha 2 Rifleman"; - isPlayable=1; - }; - id=397; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_A2"; - }; - id=391; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT A2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item179 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2423.8577,5.0014391,1301.1443}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_AV_C"; - description="CSAT Alpha Vehicle Commander"; - isPlayable=1; - }; - id=399; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2423.8577,5.0014391,1301.1443}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_AV_G"; - description="CSAT Alpha Vehicle Gunner"; - isPlayable=1; - }; - id=400; - type="O_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2423.8577,5.0014391,1301.1443}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitCSAT_AV_D"; - description="CSAT Alpha Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=401; - type="O_crew_F"; - }; - }; - class Attributes - { - name="GrpCSAT_AV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=399; - item1=26; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=400; - item1=26; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=401; - item1=26; - class CustomData - { - role=1; - }; - }; - }; - }; - id=398; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT AV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item180 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2475.7698,5.0014391,1376.0884}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - lock="UNLOCKED"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_BSL_SL"; - description="CSAT Bravo Squad Leader"; - isPlayable=1; - }; - id=403; - type="O_Soldier_SL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2480.7698,5.0014391,1374.438}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitCSAT_BSL_M"; - description="CSAT Bravo Medic"; - isPlayable=1; - }; - id=404; - type="O_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_BSL"; - }; - id=402; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT BSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item181 - { - dataType="Group"; - side="East"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2476.9465,5.0014391,1350.1851}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - lock="UNLOCKED"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B1_FTL"; - description="CSAT Bravo 1 Fire Team Leader"; - isPlayable=1; - }; - id=406; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2481.9465,5.0014391,1348.5347}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B1_AR1"; - description="CSAT Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=407; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2471.9465,5.0014391,1348.5347}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B1_AR2"; - description="CSAT Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=408; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.05; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2486.9465,5.0014391,1345.7944}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B1_AT"; - description="CSAT Bravo 1 Assaultman (AT)"; - isPlayable=1; - }; - id=409; - type="O_Soldier_LAT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={2466.9465,5.0014391,1345.7944}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B1_R1"; - description="CSAT Bravo 1 Rifleman"; - isPlayable=1; - }; - id=410; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={2491.9465,5.0014391,1341.2485}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B1_R2"; - description="CSAT Bravo 1 Rifleman"; - isPlayable=1; - }; - id=411; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_B1"; - }; - id=405; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT B1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item182 - { - dataType="Group"; - side="East"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2476.4866,5.0014391,1323.9839}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - lock="UNLOCKED"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B2_FTL"; - description="CSAT Bravo 2 Fire Team Leader"; - isPlayable=1; - }; - id=413; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2481.4866,5.0014391,1322.3337}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B2_AR1"; - description="CSAT Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=414; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2471.4866,5.0014391,1322.3337}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B2_AR2"; - description="CSAT Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=415; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2486.4866,5.0014391,1319.5945}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B2_AT"; - description="CSAT Bravo 2 Assaultman (AT)"; - isPlayable=1; - }; - id=416; - type="O_Soldier_LAT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={2466.4866,5.0014391,1319.5945}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B2_R1"; - description="CSAT Bravo 2 Rifleman"; - isPlayable=1; - }; - id=417; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={2491.4866,5.0014391,1315.0476}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_B2_R2"; - description="CSAT Bravo 2 Rifleman"; - isPlayable=1; - }; - id=418; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.05; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_B2"; - }; - id=412; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT B2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item183 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2475.9973,5.0014391,1300.3562}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_BV_C"; - description="CSAT Bravo Vehicle Commander"; - isPlayable=1; - }; - id=420; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2475.9973,5.0014391,1300.3562}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_BV_G"; - description="CSAT Bravo Vehicle Gunner"; - isPlayable=1; - }; - id=421; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2475.9973,5.0014391,1300.3562}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitCSAT_BV_D"; - description="CSAT Bravo Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=422; - type="O_crew_F"; - }; - }; - class Attributes - { - name="GrpCSAT_BV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=420; - item1=27; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=421; - item1=27; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=422; - item1=27; - class CustomData - { - role=1; - }; - }; - }; - }; - id=419; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT BV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item184 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.0129,5.0014391,1376.1772}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - lock="UNLOCKED"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CSL_SL"; - description="CSAT Charlie Squad Leader"; - isPlayable=1; - }; - id=424; - type="O_Soldier_SL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2534.0129,5.0014391,1374.5269}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CSL_M"; - description="CSAT Charlie Medic"; - isPlayable=1; - }; - id=425; - type="O_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_CSL"; - }; - id=423; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT CSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item185 - { - dataType="Group"; - side="East"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.8049,5.0014391,1350.1948}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - lock="UNLOCKED"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C1_FTL"; - description="CSAT Charlie 1 Fire Team Leader"; - isPlayable=1; - }; - id=427; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2534.8049,5.0014391,1348.5444}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C1_AR1"; - description="CSAT Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=428; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2524.8049,5.0014391,1348.5444}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C1_AR2"; - description="CSAT Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=429; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2539.8049,5.0014391,1345.8052}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C1_AT"; - description="CSAT Charlie 1 Assaultman (AT)"; - isPlayable=1; - }; - id=430; - type="O_Soldier_LAT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={2519.8049,5.0014391,1345.8052}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C1_R1"; - description="CSAT Charlie 1 Rifleman"; - isPlayable=1; - }; - id=431; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={2544.8049,5.0014391,1341.2583}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C1_R2"; - description="CSAT Charlie 1 Rifleman"; - isPlayable=1; - }; - id=432; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.05; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_C1"; - }; - id=426; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT C1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item186 - { - dataType="Group"; - side="East"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.5588,5.0014391,1324.356}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - lock="UNLOCKED"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C2_FTL"; - description="CSAT Charlie 2 Fire Team Leader"; - isPlayable=1; - }; - id=434; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2534.5588,5.0014391,1322.7058}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C2_AR1"; - description="CSAT Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=435; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2524.5588,5.0014391,1322.7058}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - lock="UNLOCKED"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C2_AR2"; - description="CSAT Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=436; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2539.5588,5.0014391,1319.9666}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C2_AT"; - description="CSAT Charlie 2 Assaultman (AT)"; - isPlayable=1; - }; - id=437; - type="O_Soldier_LAT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={2519.5588,5.0014391,1319.9666}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C2_R1"; - description="CSAT Charlie 2 Rifleman"; - isPlayable=1; - }; - id=438; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={2544.5588,5.0014391,1315.4197}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitCSAT_C2_R2"; - description="CSAT Charlie 2 Rifleman"; - isPlayable=1; - }; - id=439; - type="O_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_C2"; - }; - id=433; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT C2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item187 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.1165,5.0014391,1300.1658}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CV_C"; - description="CSAT Charlie Vehicle Commander"; - isPlayable=1; - }; - id=441; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.1165,5.0014391,1300.1658}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CV_G"; - description="CSAT Charlie Vehicle Gunner"; - isPlayable=1; - }; - id=442; - type="O_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.1165,5.0014391,1300.1658}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CV_D"; - description="CSAT Charlie Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=443; - type="O_crew_F"; - }; - }; - class Attributes - { - name="GrpCSAT_CV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=441; - item1=28; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; - item0=442; - item1=28; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=443; - item1=28; - class CustomData - { - role=1; - }; - }; - }; - }; - id=440; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT CV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item188 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.7317,5.0014391,1375.5728}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MMG1_AG"; - description="CSAT Medium MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=445; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.7317,5.0014391,1373.9224}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MMG1_G"; - description="CSAT Medium MG Team 1 Gunner"; - isPlayable=1; - }; - id=446; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_MMG1"; - }; - id=444; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT MMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item189 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.9475,5.0014391,1361.355}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - lock="UNLOCKED"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MMG2_AG"; - description="CSAT Medium MG Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=448; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.9475,5.0014391,1359.7046}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - lock="UNLOCKED"; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MMG2_G"; - description="CSAT Medium MG Team 2 Gunner"; - isPlayable=1; - }; - id=449; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_MMG2"; - }; - id=447; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT MMG2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item190 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.6252,5.0014391,1349.7603}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MAT1_AG"; - description="CSAT Medium AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=451; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.6252,5.0014391,1348.1099}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MAT1_G"; - description="CSAT Medium AT Team 1 Gunner"; - isPlayable=1; - }; - id=452; - type="O_Soldier_AT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_MAT1"; - }; - id=450; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT MAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item191 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2596.1155,5.0014391,1336.8003}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_MAT2_AG"; - description="CSAT Medium AT Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=454; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2601.1155,5.0014391,1335.1499}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MAT2_G"; - description="CSAT Medium AT Team 2 Gunner"; - isPlayable=1; - }; - id=455; - type="O_Soldier_AT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_MAT2"; - }; - id=453; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT MAT2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item192 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.8782,5.0014391,1324.9253}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hmgag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_HMG1_AG"; - description="CSAT Heavy MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=457; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.8782,5.0014391,1323.2751}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hmgg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_HMG1_G"; - description="CSAT Heavy MG Team 1 Gunner"; - isPlayable=1; - }; - id=458; - type="O_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_HMG1"; - }; - id=456; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT HMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item193 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.6624,5.0014391,1312.0134}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_HAT1_AG"; - description="CSAT Heavy AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=460; - type="O_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.6624,5.0014391,1310.363}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hatg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_HAT1_G"; - description="CSAT Heavy AT Team 1 Gunner"; - isPlayable=1; - }; - id=461; - type="O_Soldier_AT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_HAT1"; - }; - id=459; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT HAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item194 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.7024,5.0014391,1300.0876}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_MTR1_AG"; - description="CSAT Mortar Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=463; - type="O_support_AMort_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.7024,5.0014391,1298.4373}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mtrg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MTR1_G"; - description="CSAT Mortar Team 1 Gunner"; - isPlayable=1; - }; - id=464; - type="O_support_Mort_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_MTR1"; - }; - id=462; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT MTR1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item195 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2596.1624,5.0014391,1288.1716}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_MSAM1_AG"; - description="CSAT Medium SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=466; - type="O_Soldier_AAA_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2601.1624,5.0014391,1286.5212}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""msamg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MSAM1_G"; - description="CSAT Medium SAM Team 1 Gunner"; - isPlayable=1; - }; - id=467; - type="O_Soldier_AA_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_MSAM1"; - }; - id=465; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT MSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item196 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2596.0227,5.0014391,1274.8455}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_HSAM1_AG"; - description="CSAT Heavy SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=469; - type="O_Soldier_AAA_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2601.0227,5.0014391,1273.196}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hsamg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_HSAM1_G"; - description="CSAT Heavy SAM Team 1 Gunner"; - isPlayable=1; - }; - id=470; - type="O_Soldier_AA_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_HSAM1"; - }; - id=468; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT HSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item197 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.8958,5.0014391,1263.8103}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""sp"",this] call f_fnc_assignGear; "; - name="UnitCSAT_ST1_SP"; - description="CSAT Sniper Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=472; - type="O_spotter_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.8958,5.0014391,1262.1599}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""sn"",this] call f_fnc_assignGear;"; - name="UnitCSAT_ST1_SN"; - description="CSAT Sniper Team 1 Sniper"; - isPlayable=1; - }; - id=473; - type="O_sniper_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_ST1"; - }; - id=471; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT ST1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item198 - { - dataType="Group"; - side="East"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2596.345,5.0014391,1251.0388}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitCSAT_ENG1_FTL"; - description="CSAT Engineer Team 1 Leader (Demo)"; - isPlayable=1; - }; - id=475; - type="O_engineer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2601.345,5.0014391,1249.3884}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitCSAT_ENG1_A1"; - description="CSAT Engineer Team 1 Assistant (Demo)"; - isPlayable=1; - }; - id=476; - type="O_engineer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2591.345,5.0014391,1249.3884}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitCSAT_ENG1_A2"; - description="CSAT Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=477; - type="O_engineer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2606.345,5.0014391,1246.6492}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitCSAT_ENG1_A3"; - description="CSAT Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=478; - type="O_engineer_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_ENG1"; - }; - id=474; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT ENG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item199 - { - dataType="Group"; - side="East"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2595.7639,5.0014391,1237.9285}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitCSAT_DT1_TL"; - description="CSAT Diver Team 1 Team Leader"; - isPlayable=1; - }; - id=480; - type="O_diver_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2600.7639,5.0014391,1236.2791}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitCSAT_DT1_D1"; - description="CSAT Diver Team 1 Diver"; - isPlayable=1; - }; - id=481; - type="O_diver_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2590.7639,5.0014391,1236.2791}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitCSAT_DT1_D2"; - description="CSAT Diver Team 1 Diver"; - isPlayable=1; - }; - id=482; - type="O_diver_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={2605.7639,5.0014391,1233.5398}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitCSAT_DT1_D3"; - description="CSAT Diver Team 1 Diver"; - isPlayable=1; - }; - id=483; - type="O_diver_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_DT1"; - }; - id=479; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT DT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item200 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.4866,5.0014391,1276.0164}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_IFV1_C"; - description="CSAT IFV 1 Commander"; - isPlayable=1; - }; - id=485; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.4866,5.0014391,1276.0164}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_IFV1_G"; - description="CSAT IFV 1 Gunner"; - isPlayable=1; - }; - id=486; - type="O_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.4866,5.0014391,1276.0164}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitCSAT_IFV1_D"; - description="CSAT IFV 1 Driver (Repair)"; - isPlayable=1; - }; - id=487; - type="O_crew_F"; - }; - }; - class Attributes - { - name="GrpCSAT_IFV1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=485; - item1=77; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=486; - item1=77; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=487; - item1=77; - class CustomData - { - role=1; - }; - }; - }; - }; - id=484; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT IFV1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item201 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2426.5959,5.0014391,1276.3611}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_IFV2_C"; - description="CSAT IFV 2 Commander"; - isPlayable=1; - }; - id=489; - type="O_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2426.5959,5.0014391,1276.3611}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_IFV2_G"; - description="CSAT IFV2 Gunner"; - isPlayable=1; - }; - id=490; - type="O_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2426.5959,5.0014391,1276.3611}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitCSAT_IFV2_D"; - description="CSAT IFV 2 Driver (Repair)"; - isPlayable=1; - }; - id=491; - type="O_crew_F"; - }; - }; - class Attributes - { - name="GrpCSAT_IFV2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=489; - item1=78; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=490; - item1=78; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=491; - item1=78; - class CustomData - { - role=1; - }; - }; - }; - }; - id=488; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT IFV2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item202 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2477.0383,5.0014391,1274.8718}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TNK1_C"; - description="CSAT Tank 1 Commander"; - isPlayable=1; - }; - id=493; - type="O_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2477.0383,5.0014391,1274.8718}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TNK1_G"; - description="CSAT Tank 1 Gunner"; - isPlayable=1; - }; - id=494; - type="O_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2477.0383,5.0014391,1274.8718}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TNK1_D"; - description="CSAT Tank 1 Driver (Repair)"; - isPlayable=1; - }; - id=495; - type="O_crew_F"; - }; - }; - class Attributes - { - name="GrpCSAT_TNK1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=493; - item1=35; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=494; - item1=35; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=495; - item1=35; - class CustomData - { - role=1; - }; - }; - }; - }; - id=492; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TNK1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item203 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2379.1594,5.0014391,1254.6062}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH1_P"; - description="CSAT Transport Helo 1 Pilot"; - isPlayable=1; - }; - id=497; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2379.1594,5.0014391,1254.6062}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH1_CP"; - description="CSAT Transport Helo 1 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=498; - type="O_helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2379.1594,5.0014391,1254.6062}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH1_LM"; - description="CSAT Transport Helo 1 Loadmaster"; - isPlayable=1; - }; - id=499; - type="O_helicrew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_TH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=497; - item1=1; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=498; - item1=1; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=499; - item1=1; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - }; - }; - id=496; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item204 - { - dataType="Group"; - side="East"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2380.8411,5.0014391,1224.6824}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH2_P"; - description="CSAT Transport Helo 2 Pilot"; - isPlayable=1; - }; - id=501; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2380.8411,5.0014391,1224.6824}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH2_CP"; - description="CSAT Transport Helo 2 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=502; - type="O_helipilot_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={2380.8411,5.0014391,1224.6824}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""pc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH2_LM"; - description="CSAT Transport Helo 2 Loadmaster"; - isPlayable=1; - }; - id=503; - type="O_helicrew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpCSAT_TH2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=501; - item1=18; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=502; - item1=18; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=503; - item1=18; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - }; - }; - id=500; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item205 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2429.5403,5.0014391,1253.7297}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH3_P"; - description="CSAT Transport Helo 3 Pilot"; - isPlayable=1; - }; - id=505; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2429.5403,5.0014391,1253.7297}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH3_CP"; - description="CSAT Transport Helo 3 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=506; - type="O_helipilot_F"; - }; - }; - class Attributes - { - name="GrpCSAT_TH3"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=505; - item1=19; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=506; - item1=19; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=504; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH3 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item206 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2426.9114,5.0014391,1224.01}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH4_P"; - description="CSAT Transport Helo 4 Pilot"; - isPlayable=1; - }; - id=508; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2426.9114,5.0014391,1224.01}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH4_CP"; - description="CSAT Transport Helo 4 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=509; - type="O_helipilot_F"; - }; - }; - class Attributes - { - name="GrpCSAT_TH4"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=508; - item1=20; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=509; - item1=20; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=507; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH4 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item207 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2480.3333,5.0014391,1253.3899}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH5_P"; - description="CSAT Transport Helo 5 Pilot"; - isPlayable=1; - }; - id=511; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2480.3333,5.0014391,1253.3899}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH5_CP"; - description="CSAT Transport Helo 5 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=512; - type="O_helipilot_F"; - }; - }; - class Attributes - { - name="GrpCSAT_TH5"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=511; - item1=21; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=512; - item1=21; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=510; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH5 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item208 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2477.6995,5.0014391,1223.6653}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH6_P"; - description="CSAT Transport Helo 6 Pilot"; - isPlayable=1; - }; - id=514; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2477.6995,5.0014391,1223.6653}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH6_CP"; - description="CSAT Transport Helo 6 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=515; - type="O_helipilot_F"; - }; - }; - class Attributes - { - name="GrpCSAT_TH6"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=514; - item1=22; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=515; - item1=22; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=513; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH6 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item209 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2534.553,5.0014391,1253.7854}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH7_P"; - description="CSAT Transport Helo 7 Pilot"; - isPlayable=1; - }; - id=517; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2534.553,5.0014391,1253.7854}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH7_CP"; - description="CSAT Transport Helo 7 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=518; - type="O_helipilot_F"; - }; - }; - class Attributes - { - name="GrpCSAT_TH7"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=517; - item1=23; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=518; - item1=23; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=516; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH7 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item210 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2531.9211,5.0014391,1224.0647}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH8_P"; - description="CSAT Transport Helo 8 Pilot"; - isPlayable=1; - }; - id=520; - type="O_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2531.9211,5.0014391,1224.0647}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_TH8_CP"; - description="CSAT Transport Helo 8 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=521; - type="O_helipilot_F"; - }; - }; - class Attributes - { - name="GrpCSAT_TH8"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=520; - item1=24; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=521; - item1=24; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=519; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT TH8 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item211 - { - dataType="Group"; - side="East"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2382.634,5.0014391,1193.7566}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitCSAT_AH1_P"; - description="CSAT Attack Helo 1 Pilot"; - isPlayable=1; - }; - id=523; - type="O_helipilot_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={2382.634,5.0014391,1193.7566}; - }; - side="East"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_AH1_CP"; - description="CSAT Attack Helo 1 Gunner (Repair)"; - isPlayable=1; - }; - id=524; - type="O_helipilot_F"; - }; - }; - class Attributes - { - name="GrpCSAT_AH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=523; - item1=29; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=524; - item1=29; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=522; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="CSAT AH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item212 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.1733,5.0014391,765.03137}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="COLONEL"; - init="[""co"",this] call f_fnc_assignGear;"; - name="UnitAAF_CO"; - description="AAF Commander"; - isPlayable=1; - }; - id=531; - type="I_officer_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1414.1733,5.0014391,763.38098}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitAAF_CO_JTAC"; - description="AAF Forward Observer"; - isPlayable=1; - }; - id=532; - type="I_officer_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1404.1733,5.0014391,763.38098}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitAAF_CO_UAV"; - description="AAF UAV Operator"; - isPlayable=1; - }; - id=533; - type="I_soldier_UAV_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1419.1733,5.0014391,760.64172}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitAAF_CO_M"; - description="AAF Medic"; - isPlayable=1; - }; - id=534; - type="I_medic_F"; - }; - }; - class Attributes - { - name="GrpAAF_CO"; - }; - id=530; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF CO -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item213 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.4722,5.0014391,735.45129}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="MAJOR"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitAAF_DC"; - description="AAF Deputy Commander"; - isPlayable=1; - }; - id=536; - type="I_officer_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1414.4722,5.0014391,733.8009}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitAAF_DC_JTAC"; - description="AAF Forward Observer"; - isPlayable=1; - }; - id=537; - type="I_officer_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1404.4722,5.0014391,733.8009}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitAAF_DC_UAV"; - description="AAF UAV Operator"; - isPlayable=1; - }; - id=538; - type="I_soldier_UAV_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1419.4722,5.0014391,731.06165}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitAAF_DC_M"; - description="AAF Medic"; - isPlayable=1; - }; - id=539; - type="I_medic_F"; - }; - }; - class Attributes - { - name="GrpAAF_DC"; - init="DC"; - }; - id=535; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF DC -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item214 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1408.4087,5.0014391,675.29236}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitAAF_COV_C"; - description="AAF Command Vehicle Commander"; - isPlayable=1; - }; - id=541; - type="I_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1408.4087,5.0014391,675.29236}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitAAF_COV_G"; - description="AAF Command Vehicle Gunner"; - isPlayable=1; - }; - id=542; - type="I_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1408.4087,5.0014391,675.29236}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitAAF_COV_D"; - description="AAF Command Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=543; - type="I_crew_F"; - }; - }; - class Attributes - { - name="GrpAAF_COV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=541; - item1=31; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=542; - item1=31; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=543; - item1=31; - class CustomData - { - role=1; - }; - }; - }; - }; - id=540; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF COV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item215 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1450.0649,5.0014391,763.6593}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitAAF_ASL_SL"; - description="AAF Alpha Squad Leader"; - isPlayable=1; - }; - id=545; - type="I_Soldier_SL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1455.0649,5.0014391,762.00891}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitAAF_ASL_M"; - description="AAF Alpha Medic"; - isPlayable=1; - }; - id=546; - type="I_medic_F"; - }; - }; - class Attributes - { - name="GrpAAF_ASL"; - }; - id=544; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF ASL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item216 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1451.0005,5.0014391,736.37317}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitAAF_A1_FTL"; - description="AAF Alpha 1 Fire Team Leader"; - isPlayable=1; - }; - id=548; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1456.0005,5.0014391,734.72278}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A1_AR1"; - description="AAF Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=549; - type="I_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1446.0005,5.0014391,734.72278}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A1_AR2"; - description="AAF Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=550; - type="I_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1461.0005,5.0014391,731.9845}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitAAF_A1_AT"; - description="AAF Alpha 1 Assaultman (AT)"; - isPlayable=1; - }; - id=551; - type="I_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1441.0005,5.0014391,731.9845}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A1_R1"; - description="AAF Alpha 1 Rifleman"; - isPlayable=1; - }; - id=552; - type="I_soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1466.0005,5.0014391,727.43665}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A1_R2"; - description="AAF Alpha 1 Rifleman"; - isPlayable=1; - }; - id=553; - type="I_soldier_F"; - }; - }; - class Attributes - { - name="GrpAAF_A1"; - }; - id=547; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF A1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item217 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1450.7368,5.0014391,710.55286}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitAAF_A2_FTL"; - description="AAF Alpha 2 Fire Team Leader"; - isPlayable=1; - }; - id=555; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1455.7368,5.0014391,708.90247}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A2_AR1"; - description="AAF Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=556; - type="I_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1445.7368,5.0014391,708.90247}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A2_AR2"; - description="AAF Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=557; - type="I_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1460.7368,5.0014391,706.16321}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitAAF_A2_AT"; - description="AAF Alpha 2 Assaultman (AT)"; - isPlayable=1; - }; - id=558; - type="I_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1440.7368,5.0014391,706.16321}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A2_R1"; - description="AAF Alpha 2 Rifleman"; - isPlayable=1; - }; - id=559; - type="I_soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1465.7368,5.0014391,701.61731}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_A2_R2"; - description="AAF Alpha 2 Rifleman"; - isPlayable=1; - }; - id=560; - type="I_soldier_F"; - }; - }; - class Attributes - { - name="GrpAAF_A2"; - }; - id=554; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF A2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item218 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1453.1089,5.0014391,674.15173}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitAAF_AV_C"; - description="AAF Alpha Vehicle Commander"; - isPlayable=1; - }; - id=562; - type="I_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1453.1089,5.0014391,674.15173}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitAAF_AV_G"; - description="AAF Alpha Vehicle Gunner"; - isPlayable=1; - }; - id=563; - type="I_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1453.1089,5.0014391,674.15173}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitAAF_AV_D"; - description="AAF Alpha Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=564; - type="I_crew_F"; - }; - }; - class Attributes - { - name="GrpAAF_AV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=562; - item1=32; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=563; - item1=32; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=564; - item1=32; - class CustomData - { - role=1; - }; - }; - }; - }; - id=561; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF AV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item219 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.1655,5.0014391,763.75696}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitAAF_BSL_SL"; - description="AAF Bravo Squad Leader"; - isPlayable=1; - }; - id=566; - type="I_Soldier_SL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1498.1655,5.0014391,762.10657}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitAAF_BSL_M"; - description="AAF Bravo Medic"; - isPlayable=1; - }; - id=567; - type="I_medic_F"; - }; - }; - class Attributes - { - name="GrpAAF_BSL"; - }; - id=565; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF BSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item220 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.4175,5.0014391,736.32141}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitAAF_B1_FTL"; - description="AAF Bravo 1 Fire Team Leader"; - isPlayable=1; - }; - id=569; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1498.4175,5.0014391,734.67102}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B1_AR1"; - description="AAF Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=570; - type="I_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1488.4175,5.0014391,734.67102}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B1_AR2"; - description="AAF Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=571; - type="I_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1503.4175,5.0014391,731.93176}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitAAF_B1_AT"; - description="AAF Bravo 1 Assaultman (AT)"; - isPlayable=1; - }; - id=572; - type="I_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1483.4175,5.0014391,731.93176}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B1_R1"; - description="AAF Bravo 1 Rifleman"; - isPlayable=1; - }; - id=573; - type="I_soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1508.4175,5.0014391,727.38489}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B1_R2"; - description="AAF Bravo 1 Rifleman"; - isPlayable=1; - }; - id=574; - type="I_soldier_F"; - }; - }; - class Attributes - { - name="GrpAAF_B1"; - }; - id=568; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF B1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item221 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.1011,5.0014391,710.02844}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitAAF_B2_FTL"; - description="AAF Bravo 2 Fire Team Leader"; - isPlayable=1; - }; - id=576; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1498.1011,5.0014391,708.37903}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B2_AR1"; - description="AAF Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=577; - type="I_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1488.1011,5.0014391,708.37903}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B2_AR2"; - description="AAF Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=578; - type="I_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1503.1011,5.0014391,705.63879}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitAAF_B2_AT"; - description="AAF Bravo 2 Assaultman (AT)"; - isPlayable=1; - }; - id=579; - type="I_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1483.1011,5.0014391,705.63879}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B2_R1"; - description="AAF Bravo 2 Rifleman"; - isPlayable=1; - }; - id=580; - type="I_soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1508.1011,5.0014391,701.09192}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_B2_R2"; - description="AAF Bravo 2 Rifleman"; - isPlayable=1; - }; - id=581; - type="I_soldier_F"; - }; - }; - class Attributes - { - name="GrpAAF_B2"; - }; - id=575; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF B2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item222 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9253,5.0014391,674.21716}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitAAF_BV_C"; - description="AAF Bravo Vehicle Commander"; - isPlayable=1; - }; - id=583; - type="I_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9253,5.0014391,674.21716}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitAAF_BV_G"; - description="AAF Bravo Vehicle Gunner"; - isPlayable=1; - }; - id=584; - type="I_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9253,5.0014391,674.21716}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitAAF_BV_D"; - description="AAF Bravo Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=585; - type="I_crew_F"; - }; - }; - class Attributes - { - name="GrpAAF_BV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=583; - item1=33; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=584; - item1=33; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=585; - item1=33; - class CustomData - { - role=1; - }; - }; - }; - }; - id=582; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF BV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item223 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1536.0054,5.0014391,763.23743}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitAAF_CSL_SL"; - description="AAF Charlie Squad Leader"; - isPlayable=1; - }; - id=587; - type="I_Soldier_SL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1541.0054,5.0014391,761.58704}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitAAF_CSL_M"; - description="AAF Charlie Medic"; - isPlayable=1; - }; - id=588; - type="I_medic_F"; - }; - }; - class Attributes - { - name="GrpAAF_CSL"; - }; - id=586; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF CSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item224 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1536.6616,5.0014391,734.91907}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitAAF_C1_FTL"; - description="AAF Charlie 1 Fire Team Leader"; - isPlayable=1; - }; - id=590; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1541.6616,5.0014391,733.26868}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C1_AR1"; - description="AAF Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=591; - type="I_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1531.6616,5.0014391,733.26868}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C1_AR2"; - description="AAF Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=592; - type="I_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1546.6616,5.0014391,730.52942}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitAAF_C1_AT"; - description="AAF Charlie 1 Assaultman (AT)"; - isPlayable=1; - }; - id=593; - type="I_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1526.6616,5.0014391,730.52942}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C1_R1"; - description="AAF Charlie 1 Rifleman"; - isPlayable=1; - }; - id=594; - type="I_soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1551.6616,5.0014391,725.98254}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C1_R2"; - description="AAF Charlie 1 Rifleman"; - isPlayable=1; - }; - id=595; - type="I_soldier_F"; - }; - }; - class Attributes - { - name="GrpAAF_C1"; - }; - id=589; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF C1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item225 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1536.3423,5.0014391,709.98157}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitAAF_C2_FTL"; - description="AAF Charlie 2 Fire Team Leader"; - isPlayable=1; - }; - id=597; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1541.3423,5.0014391,708.3302}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C2_AR1"; - description="AAF Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=598; - type="I_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1531.3423,5.0014391,708.3302}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C2_AR2"; - description="AAF Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=599; - type="I_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1546.3423,5.0014391,705.59192}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitAAF_C2_AT"; - description="AAF Charlie 2 Assaultman (AT)"; - isPlayable=1; - }; - id=600; - type="I_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1526.3423,5.0014391,705.59192}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C2_R1"; - description="AAF Charlie 2 Rifleman"; - isPlayable=1; - }; - id=601; - type="I_soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1551.3423,5.0014391,701.04504}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitAAF_C2_R2"; - description="AAF Charlie 2 Rifleman"; - isPlayable=1; - }; - id=602; - type="I_soldier_F"; - }; - }; - class Attributes - { - name="GrpAAF_C2"; - }; - id=596; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF C2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item226 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1535.4771,5.0014391,674.50134}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitAAF_CV_C"; - description="AAF Charlie Vehicle Commander"; - isPlayable=1; - }; - id=604; - type="I_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1535.4771,5.0014391,674.50134}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitAAF_CV_G"; - description="AAF Charlie Vehicle Gunner"; - isPlayable=1; - }; - id=605; - type="I_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1535.4771,5.0014391,674.50134}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitAAF_CV_D"; - description="AAF Charlie Vehicle Driver (Repair)"; - isPlayable=1; - }; - id=606; - type="I_crew_F"; - }; - }; - class Attributes - { - name="GrpAAF_CV"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=604; - item1=34; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=605; - item1=34; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=606; - item1=34; - class CustomData - { - role=1; - }; - }; - }; - }; - id=603; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF CV -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item227 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.4077,5.0014391,761.87903}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitAAF_MMG1_AG"; - description="AAF Medium MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=608; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.4077,5.0014391,760.22864}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitAAF_MMG1_G"; - description="AAF Medium MG Team 1 Gunner"; - isPlayable=1; - }; - id=609; - type="I_Soldier_AR_F"; - }; - }; - class Attributes - { - name="GrpAAF_MMG1"; - }; - id=607; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF MMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item228 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.4331,5.0014391,747.13684}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitAAF_MMG2_AG"; - description="AAF Medium MG Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=611; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.4331,5.0014391,745.48645}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitAAF_MMG2_G"; - description="AAF Medium MG Team 2 Gunner"; - isPlayable=1; - }; - id=612; - type="I_Soldier_AR_F"; - }; - }; - class Attributes - { - name="GrpAAF_MMG2"; - }; - id=610; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF MMG2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item229 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.5386,5.0014391,733.86145}; - angles[]={0,0.030932644,0}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MAT1_AG"; - description="AAF Medium AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=614; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.5386,5.0014391,732.21106}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear; "; - name="UnitAAF_MAT1_G"; - description="AAF Medium AT Team 1 Gunner"; - isPlayable=1; - }; - id=615; - type="I_Soldier_AT_F"; - }; - }; - class Attributes - { - name="GrpAAF_MAT1"; - }; - id=613; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF MAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item230 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.9575,5.0014391,722.32629}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MAT2_AG"; - description="AAF Medium AT Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=617; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.9575,5.0014391,720.6759}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear; "; - name="UnitAAF_MAT2_G"; - description="AAF Medium AT Team 2 Gunner"; - isPlayable=1; - }; - id=618; - type="I_Soldier_AT_F"; - }; - }; - class Attributes - { - name="GrpAAF_MAT2"; - }; - id=616; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF MAT2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item231 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.9038,5.0014391,709.20618}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hmgag"",this] call f_fnc_assignGear; "; - name="UnitAAF_HMG1_AG"; - description="AAF Heavy MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=620; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.9038,5.0014391,707.55579}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hmgg"",this] call f_fnc_assignGear; "; - name="UnitAAF_HMG1_G"; - description="AAF Heavy MG Team 1 Gunner"; - isPlayable=1; - }; - id=621; - type="I_support_MG_F"; - }; - }; - class Attributes - { - name="GrpAAF_HMG1"; - }; - id=619; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF HMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item232 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.8901,5.0014391,697.82727}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitAAF_HAT1_AG"; - description="AAF Heavy AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=623; - type="I_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.8901,5.0014391,696.17688}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hatg"",this] call f_fnc_assignGear; "; - name="UnitAAF_HAT1_G"; - description="AAF Heavy AT Team 1 Gunner"; - isPlayable=1; - }; - id=624; - type="I_Soldier_AT_F"; - }; - }; - class Attributes - { - name="GrpAAF_HAT1"; - }; - id=622; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF HAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item233 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.8911,5.0014391,685.70813}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MTR1_AG"; - description="AAF Mortar Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=626; - type="I_support_AMort_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.8911,5.0014391,684.05774}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mtrg"",this] call f_fnc_assignGear; "; - name="UnitAAF_MTR1_G"; - description="AAF Mortar Team 1 Gunner"; - isPlayable=1; - }; - id=627; - type="I_support_Mort_F"; - }; - }; - class Attributes - { - name="GrpAAF_MTR1"; - }; - id=625; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF MTR1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item234 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.6802,5.0014391,673.71008}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MSAM1_AG"; - description="AAF Medium SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=629; - type="I_Soldier_AAA_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.6802,5.0014391,672.05969}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""msamg"",this] call f_fnc_assignGear; "; - name="UnitAAF_MSAM1_G"; - description="AAF Medium SAM Team 1 Gunner"; - isPlayable=1; - }; - id=630; - type="I_Soldier_AA_F"; - }; - }; - class Attributes - { - name="GrpAAF_MSAM1"; - }; - id=628; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF MSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item235 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1594.856,5.0014391,660.52844}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitAAF_HSAM1_AG"; - description="AAF Heavy SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=632; - type="I_Soldier_AAA_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1599.856,5.0014391,658.87805}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hsamg"",this] call f_fnc_assignGear; "; - name="UnitAAF_HSAM1_G"; - description="AAF Heavy SAM Team 1 Gunner"; - isPlayable=1; - }; - id=633; - type="I_Soldier_AA_F"; - }; - }; - class Attributes - { - name="GrpAAF_HSAM1"; - }; - id=631; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF HSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item236 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1595.2114,5.0014391,649.46985}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""sp"",this] call f_fnc_assignGear; "; - name="UnitAAF_ST1_SP"; - description="AAF Sniper Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=635; - type="I_Spotter_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1600.2114,5.0014391,647.81946}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""sn"",this] call f_fnc_assignGear; "; - name="UnitAAF_ST1_SN"; - description="AAF Sniper Team 1 Sniper"; - isPlayable=1; - }; - id=636; - type="I_Sniper_F"; - }; - }; - class Attributes - { - name="GrpAAF_ST1"; - }; - id=634; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF ST1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item237 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1595.6235,5.0014391,636.34192}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""eng"",this] call f_fnc_assignGear; "; - name="UnitAAF_ENG1_FTL"; - description="AAF Engineer Team 1 Leader (Demo)"; - isPlayable=1; - }; - id=638; - type="I_engineer_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1600.6235,5.0014391,634.6925}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""eng"",this] call f_fnc_assignGear; "; - name="UnitAAF_ENG1_A1"; - description="AAF Engineer Team 1 Assistant (Demo)"; - isPlayable=1; - }; - id=639; - type="I_engineer_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1590.6235,5.0014391,634.6925}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear; "; - name="UnitAAF_ENG1_A2"; - description="AAF Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=640; - type="I_engineer_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1605.6235,5.0014391,631.95227}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear; "; - name="UnitAAF_ENG1_A3"; - description="AAF Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=641; - type="I_engineer_F"; - }; - }; - class Attributes - { - name="GrpAAF_ENG1"; - }; - id=637; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF ENG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item238 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1596.231,5.0014391,623.49915}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitAAF_DT1_TL"; - description="AAF Diver Team 1 Team Leader"; - isPlayable=1; - }; - id=643; - type="I_diver_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1601.231,5.0014391,621.84875}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitAAF_DT1_D1"; - description="AAF Diver Team 1 Diver"; - isPlayable=1; - }; - id=644; - type="I_diver_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1591.231,5.0014391,621.84875}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitAAF_DT1_D2"; - description="AAF Diver Team 1 Diver"; - isPlayable=1; - }; - id=645; - type="I_diver_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1606.231,5.0014391,619.1095}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""div"",this] call f_fnc_assignGear "; - name="UnitAAF_DT1_D3"; - description="AAF Diver Team 1 Diver"; - isPlayable=1; - }; - id=646; - type="I_diver_F"; - }; - }; - class Attributes - { - name="GrpAAF_DT1"; - }; - id=642; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF DT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item239 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.1245,5.1983914,652.10193}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitAAF_IFV1_C"; - description="AAF IFV 1 Commander"; - isPlayable=1; - }; - id=648; - type="I_crew_F"; - atlOffset=0.19695234; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.1245,5.1983914,652.10193}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitAAF_IFV1_G"; - description="AAF IFV 1 Gunner"; - isPlayable=1; - }; - id=649; - type="I_crew_F"; - atlOffset=0.19695234; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.1245,5.1983914,652.10193}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitAAF_IFV1_D"; - description="AAF IFV 1 Driver (Repair)"; - isPlayable=1; - }; - id=650; - type="I_crew_F"; - atlOffset=0.19695234; - }; - }; - class Attributes - { - name="GrpAAF_IFV1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=648; - item1=81; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=649; - item1=81; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=650; - item1=81; - class CustomData - { - role=1; - }; - }; - }; - }; - id=647; - atlOffset=0.19695234; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF IFV1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item240 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1452.3257,5.0014391,649.75525}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitAAF_IFV2_C"; - description="AAF IFV 2 Commander"; - isPlayable=1; - }; - id=652; - type="I_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1452.3257,5.0014391,649.75525}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitAAF_IFV2_G"; - description="AAF IFV 2 Gunner"; - isPlayable=1; - }; - id=653; - type="I_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1452.3257,5.0014391,649.75525}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitAAF_IFV2_D"; - description="AAF IFV 2 Driver (Repair)"; - isPlayable=1; - }; - id=654; - type="I_crew_F"; - }; - }; - class Attributes - { - name="GrpAAF_IFV2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=652; - item1=82; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=653; - item1=82; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=654; - item1=82; - class CustomData - { - role=1; - }; - }; - }; - }; - id=651; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF IFV2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item241 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=3; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9966,5.0014391,650.44958}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitAAF_TNK1_C"; - description="AAF Tank 1 Commander"; - isPlayable=1; - }; - id=656; - type="I_crew_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9966,5.0014391,650.44958}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitAAF_TNK1_G"; - description="AAF Tank 1 Gunner"; - isPlayable=1; - }; - id=657; - type="I_crew_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1493.9966,5.0014391,650.44958}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitAAF_TNK1_D"; - description="AAF Tank 1 Driver (Repair)"; - isPlayable=1; - }; - id=658; - type="I_crew_F"; - }; - }; - class Attributes - { - name="GrpAAF_TNK1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=3; - }; - class Links - { - items=3; - class Item0 - { - linkID=0; - item0=656; - item1=36; - class CustomData - { - role=2; - turretPath[]={0,0}; - }; - }; - class Item1 - { - linkID=1; - item0=657; - item1=36; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=658; - item1=36; - class CustomData - { - role=1; - }; - }; - }; - }; - id=655; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF TNK1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item242 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.0298,5.0014391,617.91455}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH1_P"; - description="AAF Transport Helo 1 Pilot"; - isPlayable=1; - }; - id=660; - type="I_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1409.0298,5.0014391,617.91455}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH1_CP"; - description="AAF Transport Helo 1 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=661; - type="I_helipilot_F"; - }; - }; - class Attributes - { - name="GrpAAF_TH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=660; - item1=2; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=661; - item1=2; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=659; - atlOffset=-4.7683716e-007; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF TH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item243 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1452.1128,5.0014391,618.75342}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH2_P"; - description="AAF Transport Helo 2 Pilot"; - isPlayable=1; - }; - id=663; - type="I_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1452.1128,5.0014391,618.75342}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH2_CP"; - description="AAF Transport Helo 2 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=664; - type="I_helipilot_F"; - }; - }; - class Attributes - { - name="GrpAAF_TH2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=663; - item1=15; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=664; - item1=15; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=662; - atlOffset=-4.7683716e-007; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF TH2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item244 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1494.3599,5.0014391,619.59424}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH3_P"; - description="AAF Transport Helo 3 Pilot"; - isPlayable=1; - }; - id=666; - type="I_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1494.3599,5.0014391,619.59424}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH3_CP"; - description="AAF Transport Helo 3 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=667; - type="I_helipilot_F"; - }; - }; - class Attributes - { - name="GrpAAF_TH3"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=666; - item1=16; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=667; - item1=16; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=665; - atlOffset=-4.7683716e-007; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF TH3 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item245 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1535.6772,5.0014391,620.25049}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH4_P"; - description="AAF Transport Helo 4 Pilot"; - isPlayable=1; - }; - id=669; - type="I_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1535.6772,5.0014391,620.25049}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitAAF_TH4_CP"; - description="AAF Transport Helo 4 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=670; - type="I_helipilot_F"; - }; - }; - class Attributes - { - name="GrpAAF_TH4"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=669; - item1=17; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=670; - item1=17; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=668; - atlOffset=-4.7683716e-007; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF TH4 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item246 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1408.8267,5.0014391,586.5531}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitAAF_AH1_P"; - description="AAF Attack Helo 1 Pilot"; - isPlayable=1; - }; - id=672; - type="I_helipilot_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1408.8267,5.0014391,586.5531}; - }; - side="Independent"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitAAF_AH1_CP"; - description="AAF Attack Helo 1 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=673; - type="I_helipilot_F"; - }; - }; - class Attributes - { - name="GrpAAF_AH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=672; - item1=37; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=673; - item1=37; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=671; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="AAF AH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item247 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={446.25912,5.0014391,757.14838}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="COLONEL"; - init="[""co"",this,""ctrg""] call f_fnc_assignGear;"; - name="UnitFIA_CO"; - description="CTRG Commander"; - isPlayable=1; - }; - id=680; - type="B_G_officer_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={451.25912,5.0014391,755.49799}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""jtac"",this,""ctrg""] call f_fnc_assignGear;"; - name="UnitFIA_CO_JTAC"; - description="CTRG JTAC"; - isPlayable=1; - }; - id=681; - type="B_G_officer_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={441.7894,5.0014391,754.13666}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitFIA_CO_UAV"; - description="FIA UAV Operator"; - isPlayable=1; - }; - id=682; - type="B_G_Soldier_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={456.25912,5.0014391,752.75775}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitFIA_CO_M"; - description="FIA Medic"; - isPlayable=1; - }; - id=683; - type="B_G_medic_F"; - }; - }; - class Attributes - { - name="GrpFIA_CO"; - }; - id=679; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA CO -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item248 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={445.72104,5.2133446,732.78412}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="MAJOR"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitFIA_DC"; - description="FIA Deputy Commander"; - isPlayable=1; - }; - id=685; - type="B_G_officer_F"; - atlOffset=0.21190548; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={450.72104,5.2344303,731.13373}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitFIA_DC_JTAC"; - description="FIA Forward Observer"; - isPlayable=1; - }; - id=686; - type="B_G_officer_F"; - atlOffset=0.23299122; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={440.72104,5.1082706,731.13373}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitFIA_DC_UAV"; - description="FIA UAV Operator"; - isPlayable=1; - }; - id=687; - type="B_G_Soldier_F"; - atlOffset=0.10683155; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={455.72104,5.1013861,728.39447}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitFIA_DC_M"; - description="FIA Medic"; - isPlayable=1; - }; - id=688; - type="B_G_medic_F"; - atlOffset=0.099946976; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpFIA_DC"; - }; - id=684; - atlOffset=0.21190548; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA DC -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item249 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={482.41245,5.0014391,756.539}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this,""ctrg""] call f_fnc_assignGear;"; - name="UnitFIA_ASL_SL"; - description="CTRG Alpha Squad Leader"; - isPlayable=1; - }; - id=690; - type="B_G_Soldier_SL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.05; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={487.41245,5.0014391,754.88861}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitFIA_ASL_M"; - description="FIA Alpha Medic"; - isPlayable=1; - }; - id=691; - type="B_G_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpFIA_ASL"; - }; - id=689; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA ASL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item250 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={482.97202,5.0014391,735.03412}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitFIA_A1_FTL"; - description="FIA Alpha 1 Fire Team Leader"; - isPlayable=1; - }; - id=693; - type="B_G_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={487.97202,5.0913763,733.38373}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A1_AR1"; - description="FIA Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=694; - type="B_G_Soldier_AR_F"; - atlOffset=0.08993721; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={477.97202,5.0014391,733.38373}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A1_AR2"; - description="FIA Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=695; - type="B_G_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={492.97202,5.248991,730.64447}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitFIA_A1_AT"; - description="FIA Alpha 1 Assaultman (AT)"; - isPlayable=1; - }; - id=696; - type="B_G_Soldier_LAT_F"; - atlOffset=0.24755192; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={472.97202,5.0014391,730.64447}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A1_R1"; - description="FIA Alpha 1 Rifleman"; - isPlayable=1; - }; - id=697; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={497.97202,5.0014391,726.0976}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A1_R2"; - description="FIA Alpha 1 Rifleman"; - isPlayable=1; - }; - id=698; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpFIA_A1"; - }; - id=692; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA A1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item251 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={482.73569,5.0014391,711.15521}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitFIA_A2_FTL"; - description="FIA Alpha 2 Fire Team Leader"; - isPlayable=1; - }; - id=700; - type="B_G_Soldier_TL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={487.73569,5.0014391,709.50482}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A2_AR1"; - description="FIA Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=701; - type="B_G_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={477.73569,5.0014391,709.50482}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A2_AR2"; - description="FIA Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=702; - type="B_G_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={492.73569,5.0014391,706.76556}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitFIA_A2_AT"; - description="FIA Alpha 2 Assaultman (AT)"; - isPlayable=1; - }; - id=703; - type="B_G_Soldier_LAT_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={472.73569,5.0014391,706.76556}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A2_R1"; - description="FIA Alpha 2 Rifleman"; - isPlayable=1; - }; - id=704; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={497.73569,5.0014391,702.21869}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_A2_R2"; - description="FIA Alpha 2 Rifleman"; - isPlayable=1; - }; - id=705; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpFIA_A2"; - }; - id=699; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA A2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item252 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={523.09412,5.0014391,756.49213}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this,""ctrg""] call f_fnc_assignGear;"; - name="UnitFIA_BSL_SL"; - description="CTRG Bravo Squad Leader"; - isPlayable=1; - }; - id=707; - type="B_G_Soldier_SL_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={528.09412,5.0014391,754.84174}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitFIA_BSL_M"; - description="FIA Bravo Medic"; - isPlayable=1; - }; - id=708; - type="B_G_medic_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpFIA_BSL"; - }; - id=706; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA BSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item253 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={523.86072,5.0014391,734.79681}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitFIA_B1_FTL"; - description="FIA Bravo 1 Fire Team Leader"; - isPlayable=1; - }; - id=710; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={528.86072,5.0014391,733.1474}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B1_AR1"; - description="FIA Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=711; - type="B_G_Soldier_AR_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={518.86072,5.0014391,733.1474}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B1_AR2"; - description="FIA Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=712; - type="B_G_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={533.86072,5.0014391,730.40717}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitFIA_B1_AT"; - description="FIA Bravo 1 Assaultman (AT)"; - isPlayable=1; - }; - id=713; - type="B_G_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={513.86072,5.0014391,730.40717}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B1_R1"; - description="FIA Bravo 1 Rifleman"; - isPlayable=1; - }; - id=714; - type="B_G_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={538.86072,5.0014391,725.86127}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B1_R2"; - description="FIA Bravo 1 Rifleman"; - isPlayable=1; - }; - id=715; - type="B_G_Soldier_F"; - }; - }; - class Attributes - { - name="GrpFIA_B1"; - }; - id=709; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA B1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item254 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={523.30115,5.0014391,711.56927}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitFIA_B2_FTL"; - description="FIA Bravo 2 Fire Team Leader"; - isPlayable=1; - }; - id=717; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={528.30115,5.0014391,709.91791}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B2_AR1"; - description="FIA Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=718; - type="B_G_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={518.30115,5.0014391,709.91791}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B2_AR2"; - description="FIA Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=719; - type="B_G_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={533.30115,5.0014391,707.17865}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitFIA_B2_AT"; - description="FIA Bravo 2 Assaultman (AT)"; - isPlayable=1; - }; - id=720; - type="B_G_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={513.30115,5.0014391,707.17865}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B2_R1"; - description="FIA Bravo 2 Rifleman"; - isPlayable=1; - }; - id=721; - type="B_G_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={538.30115,5.0014391,702.63177}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_B2_R2"; - description="FIA Bravo 2 Rifleman"; - isPlayable=1; - }; - id=722; - type="B_G_Soldier_F"; - }; - }; - class Attributes - { - name="GrpFIA_B2"; - }; - id=716; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA B2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item255 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={566.27771,5.3023081,755.89545}; - }; - side="West"; - flags=2; - class Attributes - { - skill=0.60000002; - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitFIA_CSL_SL"; - description="FIA Charlie Squad Leader"; - isPlayable=1; - }; - id=724; - type="B_G_Soldier_SL_F"; - atlOffset=0.30086899; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={571.27771,5.6464462,754.24506}; - }; - side="West"; - class Attributes - { - skill=0.60000002; - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitFIA_CSL_M"; - description="FIA Charlie Medic"; - isPlayable=1; - }; - id=725; - type="B_G_medic_F"; - atlOffset=0.64500713; - }; - }; - class Attributes - { - name="GrpFIA_CSL"; - }; - id=723; - atlOffset=0.30086899; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA CSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item256 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={566.67908,5.0014391,734.13568}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitFIA_C1_FTL"; - description="FIA Charlie 1 Fire Team Leader"; - isPlayable=1; - }; - id=727; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={571.67908,5.0014391,732.48627}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C1_AR1"; - description="FIA Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=728; - type="B_G_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={561.67908,5.0014391,732.48627}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C1_AR2"; - description="FIA Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=729; - type="B_G_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={576.67908,5.0014391,729.74603}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitFIA_C1_AT"; - description="FIA Charlie 1 Assaultman (AT)"; - isPlayable=1; - }; - id=730; - type="B_G_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={556.67908,5.0014391,729.74603}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C1_R1"; - description="FIA Charlie 1 Rifleman"; - isPlayable=1; - }; - id=731; - type="B_G_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={581.67908,5.0014391,725.19916}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C1_R2"; - description="FIA Charlie 1 Rifleman"; - isPlayable=1; - }; - id=732; - type="B_G_Soldier_F"; - }; - }; - class Attributes - { - name="GrpFIA_C1"; - }; - id=726; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA C1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item257 - { - dataType="Group"; - side="West"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={566.98376,5.0014391,711.03217}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""FTL"",this] call f_fnc_assignGear;"; - name="UnitFIA_C2_FTL"; - description="FIA Charlie 2 Fire Team Leader"; - isPlayable=1; - }; - id=734; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={571.98376,5.0014391,709.38177}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C2_AR1"; - description="FIA Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=735; - type="B_G_Soldier_AR_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={561.98376,5.0014391,709.38177}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C2_AR2"; - description="FIA Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=736; - type="B_G_Soldier_AR_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={576.98376,5.0014391,706.64252}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitFIA_C2_AT"; - description="FIA Charlie 2 Assaultman (AT)"; - isPlayable=1; - }; - id=737; - type="B_G_Soldier_LAT_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={556.98376,5.0014391,706.64252}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C2_R1"; - description="FIA Charlie 2 Rifleman"; - isPlayable=1; - }; - id=738; - type="B_G_Soldier_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={581.98376,5.0014391,702.09467}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitFIA_C2_R2"; - description="FIA Charlie 2 Rifleman"; - isPlayable=1; - }; - id=739; - type="B_G_Soldier_F"; - }; - }; - class Attributes - { - name="GrpFIA_C2"; - }; - id=733; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA C2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item258 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={602.96912,5.153121,756.11713}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitFIA_MMG1_AG"; - description="FIA Medium MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=741; - type="B_G_Soldier_TL_F"; - atlOffset=0.1516819; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={607.96912,5.2476587,754.46674}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitFIA_MMG1_G"; - description="FIA Medium MG Team 1 Gunner"; - isPlayable=1; - }; - id=742; - type="B_G_Soldier_AR_F"; - atlOffset=0.24621964; - }; - }; - class Attributes - { - name="GrpFIA_MMG1"; - }; - id=740; - atlOffset=0.1516819; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA MMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item259 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={602.82947,5.0014391,744.77826}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitFIA_MMG2_AG"; - description="FIA Medium MG Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=744; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={607.82947,5.0014391,743.12787}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitFIA_MMG2_G"; - description="FIA Medium MG Team 2 Gunner"; - isPlayable=1; - }; - id=745; - type="B_G_Soldier_AR_F"; - }; - }; - class Attributes - { - name="GrpFIA_MMG2"; - }; - id=743; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA MMG2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item260 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.17322,5.0014391,734.07025}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MAT1_AG"; - description="FIA Medium AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=747; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.17322,5.0014391,732.41986}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear; "; - name="UnitFIA_MAT1_G"; - description="FIA Medium AT Team 1 Gunner"; - isPlayable=1; - }; - id=748; - type="B_G_Soldier_LAT_F"; - }; - }; - class Attributes - { - name="GrpFIA_MAT1"; - }; - id=746; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA MAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item261 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.0863,5.0014391,722.08783}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MAT2_AG"; - description="FIA Medium AT Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=750; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.0863,5.0014391,720.43744}; - }; - side="West"; - flags=4; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""matg"",this] call f_fnc_assignGear; "; - name="UnitFIA_MAT2_G"; - description="FIA Medium AT Team 2 Gunner"; - isPlayable=1; - }; - id=751; - type="B_G_Soldier_LAT_F"; - }; - }; - class Attributes - { - name="GrpFIA_MAT2"; - }; - id=749; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA MAT2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item262 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.57458,5.0014391,711.18939}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hmgag"",this] call f_fnc_assignGear; "; - name="UnitFIA_HMG1_AG"; - description="FIA Heavy MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=753; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.57458,5.0014391,709.539}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""hmgg"",this] call f_fnc_assignGear; "; - name="UnitFIA_HMG1_G"; - description="FIA Heavy MG Team 1 Gunner"; - isPlayable=1; - }; - id=754; - type="B_G_Soldier_AR_F"; - }; - }; - class Attributes - { - name="GrpFIA_HMG1"; - }; - id=752; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA HMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item263 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.3988,5.0014391,698.78607}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitFIA_HAT1_AG"; - description="FIA Heavy AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=756; - type="B_G_Soldier_TL_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.3988,5.2301273,697.13568}; - }; - side="West"; - flags=4; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""hatg"",this] call f_fnc_assignGear; "; - name="UnitFIA_HAT1_G"; - description="FIA Heavy AT Team 1 Gunner"; - isPlayable=1; - }; - id=757; - type="B_G_Soldier_LAT_F"; - atlOffset=0.22868824; - }; - }; - class Attributes - { - name="GrpFIA_HAT1"; - }; - id=755; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA HAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item264 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.40076,5.0014391,687.01752}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MTR1_AG"; - description="FIA Mortar Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=759; - type="B_G_Soldier_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.40076,5.3897858,685.36713}; - }; - side="West"; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""mtrg"",this] call f_fnc_assignGear; "; - name="UnitFIA_MTR1_G"; - description="FIA Mortar Team 1 Gunner"; - isPlayable=1; - }; - id=760; - type="B_G_Soldier_A_F"; - atlOffset=0.38834667; - }; - }; - class Attributes - { - name="GrpFIA_MTR1"; - }; - id=758; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA MTR1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item265 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.39978,5.0014391,674.49994}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MSAM1_AG"; - description="FIA Medium SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=762; - type="B_G_Soldier_LAT_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.39978,5.5413675,672.84955}; - }; - side="West"; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""msamg"",this] call f_fnc_assignGear; "; - name="UnitFIA_MSAM1_G"; - description="FIA Medium SAM Team 1 Gunner"; - isPlayable=1; - }; - id=763; - type="B_G_Soldier_LAT_F"; - atlOffset=0.53992844; - }; - }; - class Attributes - { - name="GrpFIA_MSAM1"; - }; - id=761; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA MSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item266 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.29919,5.0014391,661.72552}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitFIA_HSAM1_AG"; - description="FIA Heavy SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=765; - type="B_G_Soldier_LAT_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.29919,5.0014391,660.07513}; - }; - side="West"; - flags=4; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""hsamg"",this] call f_fnc_assignGear; "; - name="UnitFIA_HSAM1_G"; - description="FIA Heavy SAM Team 1 Gunner"; - isPlayable=1; - }; - id=766; - type="B_G_Soldier_LAT_F"; - }; - }; - class Attributes - { - name="GrpFIA_HSAM1"; - }; - id=764; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA HSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item267 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.17224,5.0014391,650.82025}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""sp"",this] call f_fnc_assignGear; "; - name="UnitFIA_ST1_SP"; - description="FIA Sniper Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=768; - type="B_G_Soldier_M_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.17224,5.0014391,649.16986}; - }; - side="West"; - flags=4; - class Attributes - { - health=0.99000001; - skill=0.60000002; - init="[""sn"",this] call f_fnc_assignGear; "; - name="UnitFIA_ST1_G"; - description="FIA Sniper Team 1 Sniper"; - isPlayable=1; - }; - id=769; - type="B_G_Soldier_M_F"; - }; - }; - class Attributes - { - name="GrpFIA_ST1"; - }; - id=767; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA ST1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item268 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={603.94373,5.0014391,638.47357}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitFIA_ENG1_FTL"; - description="FIA Engineer Team 1 Leader (Demo)"; - isPlayable=1; - }; - id=771; - type="B_G_engineer_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={608.94373,5.0014391,636.82318}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitFIA_ENG1_A1"; - description="FIA Engineer Team 1 Assistant (Demo)"; - isPlayable=1; - }; - id=772; - type="B_G_engineer_F"; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={598.94373,5.0014391,636.82318}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitFIA_ENG1_A2"; - description="FIA Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=773; - type="B_G_engineer_F"; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={613.94373,5.0014391,634.08392}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitFIA_ENG1_A3"; - description="FIA Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=774; - type="B_G_engineer_F"; - }; - }; - class Attributes - { - name="GrpFIA_ENG1"; - }; - id=770; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA ENG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item269 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={604.48364,5.0014391,626.65302}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitFIA_TH1_P"; - description="FIA Transport Helo 1 Pilot"; - isPlayable=1; - }; - id=776; - type="B_G_engineer_F"; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={604.48364,5.0014391,626.65302}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; - name="UnitFIA_TH1_CP"; - description="FIA Transport Helo 1 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=777; - type="B_G_engineer_F"; - }; - }; - class Attributes - { - name="GrpFIA_TH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=776; - item1=72; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=777; - item1=72; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=775; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA TH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item270 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={448.18201,5.0014391,686.51398}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitFIA_IFV1_D"; - description="FIA Technical 1 Driver (Repair)"; - isPlayable=1; - }; - id=1032; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={448.18201,5.0014391,686.51398}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitFIA_IFV1_G"; - description="FIA Technical 1 Gunner"; - isPlayable=1; - }; - id=1033; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpFIA_IFV1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=1032; - item1=85; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=1033; - item1=85; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=778; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA IFV1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item271 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={482.90601,5.0014391,686.43097}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitFIA_IFV2_G"; - description="FIA Technical 2 Gunner"; - isPlayable=1; - }; - id=1030; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99833667; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={482.90601,5.0014391,686.43097}; - }; - side="West"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitFIA_IFV2_D"; - description="FIA Technical 2 Driver (Repair)"; - isPlayable=1; - }; - id=1031; - type="B_G_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpFIA_IFV2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=1030; - item1=86; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item1 - { - linkID=1; - item0=1031; - item1=86; - class CustomData - { - role=1; - }; - }; - }; - }; - id=781; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="FIA IFV2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item272 - { - dataType="Group"; - side="Civilian"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2589.6348,5.1613512,725.10815}; - }; - side="Civilian"; - flags=6; - class Attributes - { - skill=0.60000002; - init="this addAction [""Start Camera"",""[] call bis_fnc_camera;"",[],2,false,true,"""",""driver _target == _this""]; this allowDamage false;"; - description="BBC Reporter"; - isPlayable=1; - }; - id=790; - type="C_journalist_F"; - atlOffset=0.15991211; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - }; - id=789; - atlOffset=0.15991211; - }; - class Item273 - { - dataType="Group"; - side="Civilian"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2642.2625,5.0014391,721.59937}; - }; - side="Civilian"; - flags=6; - class Attributes - { - skill=0.60000002; - init="this addAction [""Start Camera"",""[] call bis_fnc_camera;"",[],2,false,true,"""",""driver _target == _this""]; this allowDamage false;"; - description="CNN Reporter"; - isPlayable=1; - }; - id=792; - type="C_journalist_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - }; - id=791; - }; - class Item274 - { - dataType="Logic"; - class PositionInfo - { - position[]={2264.3303,5,729.32227}; - }; - name="F3_Zeus"; - isPlayable=1; - id=793; - type="VirtualCurator_F"; - }; - class Item275 - { - dataType="Logic"; - class PositionInfo - { - position[]={2264.9143,5.2476444,718.24805}; - }; - name="F3_Zeus_1"; - isPlayable=1; - id=794; - type="VirtualCurator_F"; - atlOffset=0.24764442; - }; - class Item276 - { - dataType="Logic"; - class PositionInfo - { - position[]={2266.3958,5.3839951,707.53711}; - }; - name="F3_Zeus_2"; - isPlayable=1; - id=795; - type="VirtualCurator_F"; - atlOffset=0.38399506; - }; - class Item277 - { - dataType="Logic"; - class PositionInfo - { - position[]={2266.8528,5.6081486,696.99023}; - }; - name="F3_Zeus_3"; - isPlayable=1; - id=796; - type="VirtualCurator_F"; - atlOffset=0.60814857; - }; - class Item278 - { - dataType="Logic"; - class PositionInfo - { - position[]={1386.3022,5,759.53918}; - }; - id=797; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item279 - { - dataType="Logic"; - class PositionInfo - { - position[]={1386.7388,5,729.61243}; - }; - id=798; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item280 - { - dataType="Logic"; - class PositionInfo - { - position[]={2355.054,5,1372.686}; - }; - id=799; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item281 - { - dataType="Logic"; - class PositionInfo - { - position[]={2355.7756,5,1347.9272}; - }; - id=800; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item282 - { - dataType="Logic"; - class PositionInfo - { - position[]={432.98569,5.7177486,729.02344}; - }; - id=801; - type="SupportProvider_Virtual_CAS_Heli"; - atlOffset=0.71774864; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item283 - { - dataType="Logic"; - class PositionInfo - { - position[]={431.84018,5.4597912,752.30078}; - }; - id=802; - type="SupportProvider_Virtual_CAS_Heli"; - atlOffset=0.45979118; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item284 - { - dataType="Logic"; - class PositionInfo - { - position[]={413.42789,5,1345.2402}; - }; - id=803; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item285 - { - dataType="Logic"; - class PositionInfo - { - position[]={413.20621,5,1367.6445}; - }; - id=804; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item286 - { - dataType="Logic"; - class PositionInfo - { - position[]={408.92496,5,1367.7412}; - }; - id=813; - type="SupportProvider_Artillery"; - }; - class Item287 - { - dataType="Logic"; - class PositionInfo - { - position[]={428.39584,5.8610754,728.56641}; - }; - id=814; - type="SupportProvider_Artillery"; - atlOffset=0.8610754; - }; - class Item288 - { - dataType="Logic"; - class PositionInfo - { - position[]={409.14664,5,1345.3369}; - }; - id=815; - type="SupportProvider_Artillery"; - }; - class Item289 - { - dataType="Logic"; - class PositionInfo - { - position[]={1382.4575,5,729.70911}; - }; - id=816; - type="SupportProvider_Artillery"; - }; - class Item290 - { - dataType="Logic"; - class PositionInfo - { - position[]={1382.021,5,759.63586}; - }; - id=817; - type="SupportProvider_Artillery"; - }; - class Item291 - { - dataType="Logic"; - class PositionInfo - { - position[]={2351.7932,5,1347.4478}; - }; - id=818; - type="SupportProvider_Artillery"; - }; - class Item292 - { - dataType="Logic"; - class PositionInfo - { - position[]={2350.7717,5,1372.7827}; - }; - id=819; - type="SupportProvider_Artillery"; - }; - class Item293 - { - dataType="Logic"; - class PositionInfo - { - position[]={427.55893,5,752.39648}; - }; - id=820; - type="SupportProvider_Artillery"; - }; - class Item294 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1379.5668,5.0014391,1372.6985}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="COLONEL"; - init="[""co"",this] call f_fnc_assignGear;"; - name="UnitSyn_CO"; - description="Syndikat Commander"; - isPlayable=1; - }; - id=827; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1385.2201,5.0014391,1369.9319}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitSyn_CO_JTAC"; - description="Syndikat JTAC"; - isPlayable=1; - }; - id=824; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1374.6039,5.0014391,1369.6145}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitSyn_CO_UAV"; - description="Syndikat UAV Operator"; - isPlayable=1; - }; - id=825; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1390.0951,5.0014391,1367.7346}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitSyn_CO_M"; - description="Syndikat Medic"; - isPlayable=1; - }; - id=826; - type="I_C_Soldier_Para_3_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_CO"; - }; - id=823; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat CO -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item295 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1379.5072,5.0014391,1344.0295}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="MAJOR"; - init="[""co"",this] call f_fnc_assignGear;"; - name="UnitSyn_DC"; - description="Syndikat Deputy Commander"; - isPlayable=1; - }; - id=842; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1384.9408,5.0014391,1341.219}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""jtac"",this] call f_fnc_assignGear;"; - name="UnitSyn_DC_JTAC"; - description="Syndikat JTAC"; - isPlayable=1; - }; - id=839; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1374.5209,5.0014391,1341.3157}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""uav"",this] call f_fnc_assignGear;"; - name="UnitSyn_DC_UAV"; - description="Syndikat UAV Operator"; - isPlayable=1; - }; - id=840; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1389.8158,5.0014391,1339.0217}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitSyn_DC_M"; - description="Syndikat Medic"; - isPlayable=1; - }; - id=841; - type="I_C_Soldier_Para_3_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_DC"; - }; - id=838; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat DC -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item296 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1420.1244,5.0014391,1372.6526}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitSyn_ASL_SL"; - description="Syndikat Alpha Squad Leader"; - isPlayable=1; - }; - id=855; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1425.2299,5.0014391,1369.6653}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitSyn_ASL_M"; - description="Syndikat Alpha Medic"; - isPlayable=1; - }; - id=854; - type="I_C_Soldier_Para_3_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_ASL"; - }; - id=853; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat ASL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item297 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1419.9926,5.0014391,1346.175}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="LIEUTENANT"; - init="[""ftl"",this] call f_fnc_assignGear;"; - name="UnitSyn_A1_FTL"; - description="Syndikat Alpha 1 Fire Team Leader"; - isPlayable=1; - }; - id=862; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1425.097,5.0014391,1343.1877}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A1_AR1"; - description="Syndikat Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=857; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1414.8724,5.0014391,1343.262}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A1_AR2"; - description="Syndikat Alpha 1 Automatic Rifleman"; - isPlayable=1; - }; - id=858; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1429.933,5.0014391,1339.9065}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitSyn_A1_AT"; - description="Syndikat Alpha 1 Assaultman (AT)"; - isPlayable=1; - }; - id=859; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1410.4662,5.0014391,1339.5042}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A1_R1"; - description="Syndikat Alpha 1 Rifleman"; - isPlayable=1; - }; - id=860; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1435.9994,5.0014391,1336.0823}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A1_R2"; - description="Syndikat Alpha 1 Rifleman"; - isPlayable=1; - }; - id=861; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_A1"; - }; - id=856; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat A1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item298 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1420.4545,5.0014391,1316.8792}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="LIEUTENANT"; - init="[""ftl"",this] call f_fnc_assignGear;"; - name="UnitSyn_A2_FTL"; - description="Syndikat Alpha 2 Fire Team Leader"; - isPlayable=1; - }; - id=869; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1425.5599,5.0014391,1313.8918}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A2_AR1"; - description="Syndikat Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=864; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1415.3353,5.0014391,1313.967}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A2_AR2"; - description="Syndikat Alpha 2 Automatic Rifleman"; - isPlayable=1; - }; - id=865; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1430.3959,5.0014391,1310.6106}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitSyn_A2_AT"; - description="Syndikat Alpha 2 Assaultman (AT)"; - isPlayable=1; - }; - id=866; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1410.9291,5.0014391,1310.2092}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A2_R1"; - description="Syndikat Alpha 2 Rifleman"; - isPlayable=1; - }; - id=867; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1436.4623,5.0014391,1306.7883}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_A2_R2"; - description="Syndikat Alpha 2 Rifleman"; - isPlayable=1; - }; - id=868; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_A2"; - }; - id=863; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat A2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item299 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1460.2103,5.0014391,1371.6956}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitSyn_BSL_SL"; - description="Syndikat Bravo Squad Leader"; - isPlayable=1; - }; - id=872; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1465.3158,5.0014391,1368.7073}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitSyn_BSL_M"; - description="Syndikat Bravo Medic"; - isPlayable=1; - }; - id=871; - type="I_C_Soldier_Para_3_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_BSL"; - }; - id=870; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat BSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item300 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1460.1967,5.0014391,1346.0579}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="LIEUTENANT"; - init="[""ftl"",this] call f_fnc_assignGear;"; - name="UnitSyn_B1_FTL"; - description="Syndikat Bravo 1 Fire Team Leader"; - isPlayable=1; - }; - id=879; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1465.3021,5.0014391,1343.0706}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B1_AR1"; - description="Syndikat Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=874; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1455.0795,5.0014391,1343.1448}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B1_AR2"; - description="Syndikat Bravo 1 Automatic Rifleman"; - isPlayable=1; - }; - id=875; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1470.1381,5.0014391,1339.7893}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitSyn_B1_AT"; - description="Syndikat Bravo 1 Assaultman (AT)"; - isPlayable=1; - }; - id=876; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1450.6732,5.0014391,1339.387}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B1_R1"; - description="Syndikat Bravo 1 Rifleman"; - isPlayable=1; - }; - id=877; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1476.2045,5.0014391,1335.967}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B1_R2"; - description="Syndikat Bravo 1 Rifleman"; - isPlayable=1; - }; - id=878; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.05; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_B1"; - }; - id=873; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat B1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item301 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1460.6029,5.0014391,1316.6848}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="LIEUTENANT"; - init="[""ftl"",this] call f_fnc_assignGear;"; - name="UnitSyn_B2_FTL"; - description="Syndikat Bravo 2 Fire Team Leader"; - isPlayable=1; - }; - id=886; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1465.7094,5.0014391,1313.6975}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B2_AR1"; - description="Syndikat Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=881; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1455.4857,5.0014391,1313.7717}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B2_AR2"; - description="Syndikat Bravo 2 Automatic Rifleman"; - isPlayable=1; - }; - id=882; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1470.5443,5.0014391,1310.4172}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitSyn_B2_AT"; - description="Syndikat Bravo 2 Assaultman (AT)"; - isPlayable=1; - }; - id=883; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1451.0795,5.0014391,1310.0139}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B2_R1"; - description="Syndikat Bravo 2 Rifleman"; - isPlayable=1; - }; - id=884; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1476.6107,5.0014391,1306.594}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_B2_R2"; - description="Syndikat Bravo 2 Rifleman"; - isPlayable=1; - }; - id=885; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_B2"; - }; - id=880; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat B2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item302 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1500.8724,5.0014391,1370.8596}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CAPTAIN"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitSyn_CSL_SL"; - description="Syndikat Charlie Squad Leader"; - isPlayable=1; - }; - id=889; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1505.9779,5.0014391,1367.8723}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""m"",this] call f_fnc_assignGear;"; - name="UnitSyn_CSL_M"; - description="Syndikat Charlie Medic"; - isPlayable=1; - }; - id=888; - type="I_C_Soldier_Para_3_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_CSL"; - }; - id=887; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat CSL -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item303 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1500.6595,5.0014391,1347.4036}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="LIEUTENANT"; - init="[""ftl"",this] call f_fnc_assignGear;"; - name="UnitSyn_C1_FTL"; - description="Syndikat Charlie 1 Fire Team Leader"; - isPlayable=1; - }; - id=896; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1505.765,5.0014391,1344.4172}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C1_AR1"; - description="Syndikat Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=891; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1495.5404,5.0014391,1344.4905}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C1_AR2"; - description="Syndikat Charlie 1 Automatic Rifleman"; - isPlayable=1; - }; - id=892; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1510.601,5.0014391,1341.135}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitSyn_C1_AT"; - description="Syndikat Charlie 1 Assaultman (AT)"; - isPlayable=1; - }; - id=893; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1491.1342,5.0014391,1340.7327}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C1_R1"; - description="Syndikat Charlie 1 Rifleman"; - isPlayable=1; - }; - id=894; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1516.6674,5.0014391,1337.3137}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C1_R2"; - description="Syndikat Charlie 1 Rifleman"; - isPlayable=1; - }; - id=895; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_C1"; - }; - id=890; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat C1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item304 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=6; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1500.6595,5.0014391,1316.9084}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="LIEUTENANT"; - init="[""ftl"",this] call f_fnc_assignGear;"; - name="UnitSyn_C2_FTL"; - description="Syndikat Charlie 2 Fire Team Leader"; - isPlayable=1; - }; - id=903; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1505.765,5.0014391,1313.9211}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C2_AR1"; - description="Syndikat Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=898; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1495.5424,5.0014391,1313.9954}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""ar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C2_AR2"; - description="Syndikat Charlie 2 Automatic Rifleman"; - isPlayable=1; - }; - id=899; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1510.601,5.0014391,1310.6399}; - }; - side="Independent"; - flags=5; - class Attributes - { - rank="CORPORAL"; - init="[""rat"",this] call f_fnc_assignGear;"; - name="UnitSyn_C2_AT"; - description="Syndikat Charlie 2 Assaultman (AT)"; - isPlayable=1; - }; - id=900; - type="I_C_Soldier_Para_5_F"; - }; - class Item4 - { - dataType="Object"; - class PositionInfo - { - position[]={1491.1361,5.0014391,1310.2375}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C2_R1"; - description="Syndikat Charlie 2 Rifleman"; - isPlayable=1; - }; - id=901; - type="I_C_Soldier_Para_1_F"; - }; - class Item5 - { - dataType="Object"; - class PositionInfo - { - position[]={1516.6674,5.0014391,1306.8176}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""aar"",this] call f_fnc_assignGear;"; - name="UnitSyn_C2_R2"; - description="Syndikat Charlie 2 Rifleman"; - isPlayable=1; - }; - id=902; - type="I_C_Soldier_Para_1_F"; - }; - }; - class Attributes - { - name="GrpSyn_C2"; - }; - id=897; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat C2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item305 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.0209,5.0014391,1369.0061}; - }; - side="Independent"; - flags=7; - class Attributes - { - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MMG1_AG"; - description="Syndikat Medium MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=905; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1563.9642,5.0014391,1366.842}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitSyn_MMG1_G"; - description="Syndikat Medium MG Team 1 Gunner"; - isPlayable=1; - }; - id=906; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_MMG1"; - }; - id=904; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat MMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item306 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1558.8353,5.0014391,1356.4192}; - }; - side="Independent"; - flags=7; - class Attributes - { - rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MMG2_AG"; - description="Syndikat Medium MG Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=908; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1563.7787,5.0014391,1354.2551}; - }; - side="Independent"; - flags=5; - class Attributes - { - init="[""mmgg"",this] call f_fnc_assignGear;"; - name="UnitSyn_MMG2_G"; - description="Syndikat Medium MG Team 2 Gunner"; - isPlayable=1; - }; - id=909; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_MMG2"; - }; - id=907; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat MMG2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item307 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1558.8588,5.0014391,1345.2571}; - }; - side="Independent"; - flags=7; - class Attributes - { - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MAT1_AG"; - description="Syndikat Medium AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=911; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1563.8041,5.0014391,1343.093}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""matg"",this] call f_fnc_assignGear;"; - name="UnitSyn_MAT1_G"; - description="Syndikat Medium AT Team 1 Gunner"; - isPlayable=1; - }; - id=912; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_MAT1"; - }; - id=910; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat MAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item308 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.0814,5.0014391,1333.7102}; - }; - side="Independent"; - flags=7; - class Attributes - { - rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MAT2_AG"; - description="Syndikat Medium AT Team 2 Spotter (Leader)"; - isPlayable=1; - }; - id=914; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1564.0248,5.0014391,1331.5461}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""matg"",this] call f_fnc_assignGear;"; - name="UnitSyn_MAT2_G"; - description="Syndikat Medium AT Team 2 Gunner"; - isPlayable=1; - }; - id=915; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_MAT2"; - }; - id=913; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat MAT2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item309 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.0209,5.0014391,1323.0881}; - }; - side="Independent"; - flags=7; - class Attributes - { - rank="CORPORAL"; - init="[""hmgag"",this] call f_fnc_assignGear;"; - name="UnitSyn_HMG1_AG"; - description="Syndikat Heavy MG Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=917; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1563.9662,5.0014391,1320.9231}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""hmgg"",this] call f_fnc_assignGear;"; - name="UnitSyn_HMG1_G"; - description="Syndikat Heavy MG Team 1 Gunner"; - isPlayable=1; - }; - id=918; - type="I_C_Soldier_Para_4_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_HMG1"; - }; - id=916; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat HMG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item310 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1558.8158,5.0014391,1310.2874}; - }; - side="Independent"; - flags=7; - class Attributes - { - rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear;"; - name="UnitSyn_HAT1_AG"; - description="Syndikat Heavy AT Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=920; - type="I_C_Soldier_Para_2_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1563.7592,5.0014391,1308.1233}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""hatg"",this] call f_fnc_assignGear;"; - name="UnitSyn_HAT1_G"; - description="Syndikat Heavy AT Team 1 Gunner"; - isPlayable=1; - }; - id=921; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_HAT1"; - }; - id=919; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat HAT1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item311 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.306,5.0014391,1298.2249}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CORPORAL"; - init="[""mtrag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MTR1_AG"; - description="Syndikat Mortar Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=923; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1564.2494,5.0014391,1296.0598}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""mtrg"",this] call f_fnc_assignGear;"; - name="UnitSyn_MTR1_G"; - description="Syndikat Mortar Team 1 Gunner"; - isPlayable=1; - }; - id=924; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_MTR1"; - }; - id=922; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat MTR1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item312 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.0326,5.0014391,1285.1262}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MSAM1_AG"; - description="Syndikat Medium SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=926; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.03; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1563.976,5.0014391,1282.9612}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""msamg"",this] call f_fnc_assignGear;"; - name="UnitSyn_MSAM1_G"; - description="Syndikat Medium SAM Team 1 Gunner"; - isPlayable=1; - }; - id=927; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_MSAM1"; - }; - id=925; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat MSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item313 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.7533,5.0014391,1272.1184}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CORPORAL"; - init="[""hsamag"",this] call f_fnc_assignGear;"; - name="UnitSyn_HSAM1_AG"; - description="Syndikat Heavy SAM Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=929; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1564.6967,5.0014391,1269.9534}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""hsamg"",this] call f_fnc_assignGear;"; - name="UnitSyn_HSAM1_G"; - description="Syndikat Heavy SAM Team 1 Gunner"; - isPlayable=1; - }; - id=930; - type="I_C_Soldier_Para_5_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_HSAM1"; - }; - id=928; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat HSAM1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item314 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.8353,5.0014391,1261.8909}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CORPORAL"; - init="[""sp"",this] call f_fnc_assignGear;"; - name="UnitSyn_ST1_SP"; - description="Syndikat Sniper Team 1 Spotter (Leader)"; - isPlayable=1; - }; - id=932; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1564.7787,5.0014391,1259.7258}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""sn"",this] call f_fnc_assignGear; "; - name="UnitSyn_ST1_G"; - description="Syndikat Sniper Team 1 Sniper"; - isPlayable=1; - }; - id=933; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_ST1"; - }; - id=931; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat ST1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item315 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1560.3763,5.0014391,1249.842}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CORPORAL"; - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitSyn_ENG1_FTL"; - description="Syndikat Engineer Team 1 Leader (Demo)"; - isPlayable=1; - }; - id=935; - type="I_C_Soldier_Para_8_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1565.3197,5.0014391,1247.677}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""eng"",this] call f_fnc_assignGear;"; - name="UnitSyn_ENG1_A1"; - description="Syndikat Engineer Team 1 Assistant (Demo)"; - isPlayable=1; - }; - id=936; - type="I_C_Soldier_Para_8_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={1554.9447,5.0014391,1248.1292}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitSyn_ENG1_A2"; - description="Syndikat Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=937; - type="I_C_Soldier_Para_8_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={1570.2924,5.0014391,1245.7551}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""engm"",this] call f_fnc_assignGear;"; - name="UnitSyn_ENG1_A3"; - description="Syndikat Engineer Team 1 Assistant (Mines)"; - isPlayable=1; - }; - id=938; - type="I_C_Soldier_Para_8_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_ENG1"; - }; - id=934; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat ENG1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item316 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.641,5.0014391,1225.605}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitSyn_TH1_P"; - description="Syndikat Transport Helo 1 Pilot"; - isPlayable=1; - }; - id=940; - type="I_C_Helipilot_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.641,5.0014391,1225.605}; - }; - side="Independent"; - flags=4; - class Attributes - { - rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear; "; - name="UnitSyn_TH1_CP"; - description="Syndikat Transport Helo 1 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=941; - type="I_C_Helipilot_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.02; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_TH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=940; - item1=1027; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=941; - item1=1027; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=939; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat TH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item317 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1379.3519,5.0014391,1284.8792}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitSyn_IFV1_G"; - description="Syndikat Technical 1 Gunner"; - isPlayable=1; - }; - id=944; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1379.3519,5.0014391,1284.8792}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitSyn_IFV1_D"; - description="Syndikat Technical 1 Driver (Repair)"; - isPlayable=1; - }; - id=945; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_IFV1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=944; - item1=946; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item1 - { - linkID=1; - item0=945; - item1=946; - class CustomData - { - role=1; - }; - }; - }; - }; - id=943; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat IFV1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item318 - { - dataType="Object"; - class PositionInfo - { - position[]={1379.3519,7.1644082,1284.8704}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this,""ind_c_f""] call f_fnc_assignGear"; - name="VehSyn_IFV1"; - textures="Guerilla_09"; - }; - id=946; - type="B_G_Offroad_01_armed_F"; - }; - class Item319 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1420.1664,5.0014391,1287.9719}; - }; - side="Independent"; - flags=6; - class Attributes - { - rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; - name="UnitSyn_IFV2_G"; - description="Syndikat Technical 2 Gunner"; - isPlayable=1; - }; - id=948; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1420.1664,5.0014391,1287.9719}; - }; - side="Independent"; - flags=4; - class Attributes - { - init="[""vd"",this] call f_fnc_assignGear;"; - name="UnitSyn_IFV2_D"; - description="Syndikat Technical 2 Driver (Repair)"; - isPlayable=1; - }; - id=949; - type="I_C_Soldier_Para_1_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.04; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpSyn_IFV2"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=948; - item1=950; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item1 - { - linkID=1; - item0=949; - item1=950; - class CustomData - { - role=1; - }; - }; - }; - }; - id=947; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Syndikat IFV2 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item320 - { - dataType="Object"; - class PositionInfo - { - position[]={1420.1664,7.1644082,1287.9631}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_ifv"",this,""ind_c_f""] call f_fnc_assignGear"; - name="VehSyn_IFV2"; - textures="Guerilla_09"; - }; - id=950; - type="B_G_Offroad_01_armed_F"; - }; - class Item321 - { - dataType="Object"; - class PositionInfo - { - position[]={1367.5658,6.5695963,1372.9875}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehSyn_CAR1"; - textures="Olive"; - }; - id=951; - type="I_C_Offroad_02_unarmed_F"; - }; - class Item322 - { - dataType="Object"; - class PositionInfo - { - position[]={1366.2035,6.5695963,1345.7668}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehSyn_CAR2"; - textures="Olive"; - }; - id=952; - type="I_C_Offroad_02_unarmed_F"; - }; - class Item323 - { - dataType="Object"; - class PositionInfo - { - position[]={1418.0883,6.8716264,1395.2258}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehSyn_TR1"; - textures="Olive"; - }; - id=953; - type="I_C_Van_01_transport_F"; - }; - class Item324 - { - dataType="Object"; - class PositionInfo - { - position[]={1425.2494,6.8716264,1389.2473}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehSyn_TR2"; - textures="Olive"; - }; - id=954; - type="I_C_Van_01_transport_F"; - }; - class Item325 - { - dataType="Object"; - class PositionInfo - { - position[]={1455.6927,6.8716264,1395.2034}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehSyn_TR3"; - textures="Olive"; - }; - id=955; - type="I_C_Van_01_transport_F"; - }; - class Item326 - { - dataType="Object"; - class PositionInfo - { - position[]={1463.8392,6.8716264,1388.677}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehSyn_TR4"; - textures="Olive"; - }; - id=956; - type="I_C_Van_01_transport_F"; - }; - class Item327 - { - dataType="Object"; - class PositionInfo - { - position[]={1499.974,6.8716264,1393.5471}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehSyn_TR5"; - textures="Olive"; - }; - id=957; - type="I_C_Van_01_transport_F"; - }; - class Item328 - { - dataType="Object"; - class PositionInfo - { - position[]={1516.6342,6.8716264,1389.5872}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_tr"",this] call f_fnc_assignGear"; - name="VehSyn_TR6"; - textures="Olive"; - }; - id=958; - type="I_C_Van_01_transport_F"; - }; - class Item329 - { - dataType="Object"; - class PositionInfo - { - position[]={1574.7318,6.5695963,1367.6516}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehSyn_CAR3"; - textures="Olive"; - }; - id=959; - type="I_C_Offroad_02_unarmed_F"; - }; - class Item330 - { - dataType="Object"; - class PositionInfo - { - position[]={1573.8197,6.5695963,1342.1731}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehSyn_CAR4"; - textures="Olive"; - }; - id=960; - type="I_C_Offroad_02_unarmed_F"; - }; - class Item331 - { - dataType="Object"; - class PositionInfo - { - position[]={1507.1195,5.8924227,1374.9778}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; - name="CrateFIA_C_1"; - }; - id=961; - type="IG_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item332 - { - dataType="Object"; - class PositionInfo - { - position[]={1465.9681,5.8924227,1375.2434}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; - name="CrateFIA_B_1"; - }; - id=962; - type="IG_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item333 - { - dataType="Object"; - class PositionInfo - { - position[]={1425.1469,5.8924227,1375.5403}; - }; - side="Empty"; - flags=4; - class Attributes - { - skill=0.60000002; - init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; - name="CrateFIA_A_1"; - }; - id=963; - type="IG_supplyCrate_F"; - class CustomAttributes - { - class Attribute0 - { - property="ammoBox"; - expression="[_this,_value] call bis_fnc_initAmmoBox;"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item334 - { - dataType="Logic"; - class PositionInfo - { - position[]={1348.1381,5,1369.7581}; - }; - id=964; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item335 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1350.14,5.0014391,1363.6685}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=966; - type="I_helipilot_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1350.14,5.0014391,1363.6685}; - }; - side="Independent"; - flags=4; - class Attributes - { - }; - id=967; - type="I_helipilot_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=966; - item1=968; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=967; - item1=968; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=965; - }; - class Item336 - { - dataType="Object"; - class PositionInfo - { - position[]={1350.14,6.5310755,1363.6184}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - textures="Green"; - }; - id=968; - type="I_Heli_light_03_F"; - }; - class Item337 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1346.0267,5.0014391,1363.6892}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=970; - type="I_soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.98000002; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=970; - item1=971; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=969; - }; - class Item338 - { - dataType="Object"; - class PositionInfo - { - position[]={1346.0267,5.7216258,1363.6389}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=971; - type="I_Mortar_01_F"; - }; - class Item339 - { - dataType="Logic"; - class PositionInfo - { - position[]={1350.3256,5,1367.3372}; - }; - id=972; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item340 - { - dataType="Logic"; - class PositionInfo - { - position[]={1346.0433,5,1367.4338}; - }; - id=973; - type="SupportProvider_Artillery"; - }; - class Item341 - { - dataType="Logic"; - class PositionInfo - { - position[]={1348.4252,5,1341.1448}; - }; - id=974; - type="SupportRequester"; - class CustomAttributes - { - class Attribute0 - { - property="SupportRequester_BIS_SUPP_limit_UAV"; - expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute1 - { - property="SupportRequester_BIS_SUPP_custom_HQ"; - expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportRequester_BIS_SUPP_limit_Transport"; - expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute3 - { - property="SupportRequester_BIS_SUPP_limit_Drop"; - expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute4 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute5 - { - property="SupportRequester_BIS_SUPP_limit_Artillery"; - expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - class Attribute6 - { - property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; - expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="-1"; - }; - }; - }; - nAttributes=7; - }; - }; - class Item342 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1350.4271,5.0014391,1335.0552}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=976; - type="I_helipilot_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.99000001; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={1350.4271,5.0014391,1335.0552}; - }; - side="Independent"; - flags=4; - class Attributes - { - }; - id=977; - type="I_helipilot_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=976; - item1=978; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=977; - item1=978; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=975; - }; - class Item343 - { - dataType="Object"; - class PositionInfo - { - position[]={1350.4271,6.5310755,1335.0051}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - textures="Green"; - }; - id=978; - type="I_Heli_light_03_F"; - }; - class Item344 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={1346.3138,5.0014391,1335.0759}; - }; - side="Independent"; - flags=6; - class Attributes - { - }; - id=980; - type="I_soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=980; - item1=981; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=979; - }; - class Item345 - { - dataType="Object"; - class PositionInfo - { - position[]={1346.3138,5.7216258,1335.0256}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - }; - id=981; - type="I_Mortar_01_F"; - }; - class Item346 - { - dataType="Logic"; - class PositionInfo - { - position[]={1350.6117,5,1338.7239}; - }; - id=982; - type="SupportProvider_Virtual_CAS_Heli"; - class CustomAttributes - { - class Attribute0 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; - expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0; - }; - }; - }; - class Attribute1 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; - expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=""; - }; - }; - }; - class Attribute2 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; - expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="[]"; - }; - }; - }; - class Attribute3 - { - property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; - expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Side"; - }; - }; - }; - nAttributes=4; - }; - }; - class Item347 - { - dataType="Logic"; - class PositionInfo - { - position[]={1346.3304,5,1338.8206}; - }; - id=983; - type="SupportProvider_Artillery"; - }; - class Item348 - { - dataType="Object"; - class PositionInfo - { - position[]={1559.641,6.8630314,1225.556}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="[""v_helo_l"",this,""syndikat""] call f_fnc_assignGear"; - name="VehSyn_TH1_1"; - }; - id=1027; - type="I_Heli_light_03_unarmed_F"; - }; - class Item349 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={489.91336,5.0014391,1044.3853}; - }; - side="West"; - flags=7; - class Attributes - { - rank="CAPTAIN"; - init="[""co"",this] call f_fnc_assignGear;"; - name="UnitGEN_CO"; - description="Gendarmerie Commander"; - isPlayable=1; - }; - id=1038; - type="B_GEN_Commander_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_CO"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=1038; - item1=1088; - class CustomData - { - role=1; - }; - }; - }; - }; - id=1037; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie CO -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item350 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={490.23773,5.0014391,1022.6599}; - }; - side="West"; - flags=7; - class Attributes - { - rank="LIEUTENANT"; - init="[""dc"",this] call f_fnc_assignGear;"; - name="UnitGEN_DC"; - description="Gendarmerie Deputy Commander"; - isPlayable=1; - }; - id=1040; - type="B_GEN_Commander_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_DC"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=1; - }; - class Links - { - items=1; - class Item0 - { - linkID=0; - item0=1040; - item1=1089; - class CustomData - { - role=1; - }; - }; - }; - }; - id=1039; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie DC -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item351 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={510.42276,5.1286469,1041.3831}; - }; - side="West"; - flags=6; - class Attributes - { - rank="SERGEANT"; - init="[""pat"",this] call f_fnc_assignGear;"; - name="UnitGEN_A_Sgt"; - description="Gendarmerie Alpha Sergeant"; - isPlayable=1; - }; - id=1067; - type="B_GEN_Soldier_F"; - atlOffset=0.12720776; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={509.84177,5.0014391,1044.8337}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""pat"",this] call f_fnc_assignGear;"; - name="UnitGEN_A_G2"; - description="Gendarmerie Alpha Gendarme"; - isPlayable=1; - }; - id=1068; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={512.95728,5.0014391,1039.1799}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""pat"",this] call f_fnc_assignGear;"; - name="UnitGEN_A_G3"; - description="Gendarmerie Alpha Gendarme"; - isPlayable=1; - }; - id=1069; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={513.53827,5.1286469,1035.7292}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""pat"",this] call f_fnc_assignGear;"; - name="UnitGEN_A_G1"; - description="Gendarmerie Alpha Gendarme"; - isPlayable=1; - }; - id=1066; - type="B_GEN_Soldier_F"; - atlOffset=0.12720776; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_A"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=1067; - item1=1090; - class CustomData - { - role=3; - cargoIndex=0; - }; - }; - class Item1 - { - linkID=1; - item0=1068; - item1=1090; - class CustomData - { - role=1; - }; - }; - class Item2 - { - linkID=2; - item0=1069; - item1=1091; - class CustomData - { - role=1; - }; - }; - class Item3 - { - linkID=3; - item0=1066; - item1=1091; - class CustomData - { - role=3; - cargoIndex=0; - }; - }; - }; - }; - id=1041; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie Alpha -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item352 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={510.1658,5.0014391,1021.7027}; - }; - side="West"; - flags=6; - class Attributes - { - rank="SERGEANT"; - init="[""smg"",this] call f_fnc_assignGear;"; - name="UnitGEN_B_Sgt"; - description="Gendarmerie Bravo Sergeant"; - isPlayable=1; - }; - id=1070; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={510.1658,5.0014391,1021.7027}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""smg"",this] call f_fnc_assignGear;"; - name="UnitGEN_B_G1"; - description="Gendarmerie Bravo Gendarme"; - isPlayable=1; - }; - id=1071; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={510.1658,5.0014391,1021.7027}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""smg"",this] call f_fnc_assignGear;"; - name="UnitGEN_B_G2"; - description="Gendarmerie Bravo Gendarme"; - isPlayable=1; - }; - id=1072; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={510.1658,5.0014391,1021.7027}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""smg"",this] call f_fnc_assignGear;"; - name="UnitGEN_B_G3"; - description="Gendarmerie Bravo Gendarme"; - isPlayable=1; - }; - id=1073; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_B"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=1070; - item1=1092; - class CustomData - { - role=3; - cargoIndex=0; - }; - }; - class Item1 - { - linkID=1; - item0=1071; - item1=1092; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=1072; - item1=1092; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=1073; - item1=1092; - class CustomData - { - role=1; - }; - }; - }; - }; - id=1049; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie Bravo -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item353 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={510.59879,5.0014391,999.65369}; - }; - side="West"; - flags=6; - class Attributes - { - rank="SERGEANT"; - init="[""car"",this] call f_fnc_assignGear;"; - name="UnitGEN_C_Sgt"; - description="Gendarmerie Charlie Sergeant"; - isPlayable=1; - }; - id=1074; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={510.59879,5.0014391,999.65369}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""car"",this] call f_fnc_assignGear;"; - name="UnitGEN_C_G1"; - description="Gendarmerie Charlie Gendarme"; - isPlayable=1; - }; - id=1075; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={510.59879,5.0014391,999.65369}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""car"",this] call f_fnc_assignGear;"; - name="UnitGEN_C_G2"; - description="Gendarmerie Charlie Gendarme"; - isPlayable=1; - }; - id=1076; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={510.59879,5.0014391,999.65369}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""car"",this] call f_fnc_assignGear;"; - name="UnitGEN_C_G3"; - description="Gendarmerie Charlie Gendarme"; - isPlayable=1; - }; - id=1077; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_C"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=1074; - item1=1093; - class CustomData - { - role=3; - cargoIndex=0; - }; - }; - class Item1 - { - linkID=1; - item0=1075; - item1=1093; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - class Item2 - { - linkID=2; - item0=1076; - item1=1093; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item3 - { - linkID=3; - item0=1077; - item1=1093; - class CustomData - { - role=1; - }; - }; - }; - }; - id=1054; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie Charlie -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item354 - { - dataType="Group"; - side="West"; - class Entities - { - items=4; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={510.27676,5.0014391,976.62372}; - }; - side="West"; - flags=6; - class Attributes - { - rank="SERGEANT"; - init="[""nf"",this] call f_fnc_assignGear;"; - name="UnitGEN_J_Sgt"; - description="Gendarmerie Juliet Sergeant (Night Force)"; - isPlayable=1; - }; - id=1078; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={510.27676,5.0014391,976.62372}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""nf"",this] call f_fnc_assignGear;"; - name="UnitGEN_J_G1"; - description="Gendarmerie Juliet Gendarme (Night Force)"; - isPlayable=1; - }; - id=1079; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item2 - { - dataType="Object"; - class PositionInfo - { - position[]={510.27676,5.0014391,976.62372}; - }; - side="West"; - flags=4; - class Attributes - { - rank="CORPORAL"; - init="[""nf"",this] call f_fnc_assignGear;"; - name="UnitGEN_J_G2"; - description="Gendarmerie Juliet Gendarme (Night Force)"; - isPlayable=1; - }; - id=1080; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item3 - { - dataType="Object"; - class PositionInfo - { - position[]={510.27676,5.0014391,976.62372}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""nf"",this] call f_fnc_assignGear;"; - name="UnitGEN_J_G3"; - description="Gendarmerie Juliet Gendarme (Night Force)"; - isPlayable=1; - }; - id=1081; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_J"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=4; - }; - class Links - { - items=4; - class Item0 - { - linkID=0; - item0=1078; - item1=1098; - class CustomData - { - role=3; - cargoIndex=1; - }; - }; - class Item1 - { - linkID=1; - item0=1079; - item1=1098; - class CustomData - { - role=3; - cargoIndex=0; - }; - }; - class Item2 - { - linkID=2; - item0=1080; - item1=1098; - class CustomData - { - role=3; - cargoIndex=2; - }; - }; - class Item3 - { - linkID=3; - item0=1081; - item1=1098; - class CustomData - { - role=1; - }; - }; - }; - }; - id=1059; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie Juliet -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item355 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={491.44461,5.0014391,999.80695}; - }; - side="West"; - flags=6; - class Attributes - { - rank="SERGEANT"; - init="[""mk"",this] call f_fnc_assignGear;"; - name="UnitGEN_MK_MK"; - description="Gendarmerie Marksman"; - isPlayable=1; - }; - id=1082; - type="B_GEN_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_MK"; - }; - id=1064; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie MK -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item356 - { - dataType="Group"; - side="West"; - class Entities - { - items=2; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={491.17267,5.0014391,976.23016}; - }; - side="West"; - flags=7; - class Attributes - { - rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitGEN_TH1_P"; - description="Gendarmerie Transport Helo 1 Pilot"; - isPlayable=1; - }; - id=1084; - type="B_GEN_Commander_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 - { - dataType="Object"; - class PositionInfo - { - position[]={491.17267,5.0014391,976.23016}; - }; - side="West"; - flags=5; - class Attributes - { - rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; - name="UnitGEN_TH1_CP"; - description="Gendarmerie Transport Helo 1 Co-Pilot (Repair)"; - isPlayable=1; - }; - id=1086; - type="B_GEN_Commander_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.94999999; - }; - }; - }; - nAttributes=1; - }; - }; - }; - class Attributes - { - name="GrpGEN_TH1"; - }; - class CrewLinks - { - class LinkIDProvider - { - nextID=2; - }; - class Links - { - items=2; - class Item0 - { - linkID=0; - item0=1084; - item1=1087; - class CustomData - { - role=1; - }; - }; - class Item1 - { - linkID=1; - item0=1086; - item1=1087; - class CustomData - { - role=2; - turretPath[]={0}; - }; - }; - }; - }; - id=1083; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value="Gendarmerie TH1 -"; - }; - }; - }; - nAttributes=1; - }; - }; - class Item357 - { - dataType="Object"; - class PositionInfo - { - position[]={491.17273,5.6047058,975.20013}; - }; - side="West"; - flags=6; - class Attributes - { - init="[""v_helo_l"",this] call f_fnc_assignGear"; - name="VehGEN_TH1"; - textures="BlueLine"; - }; - id=1087; - type="C_Heli_Light_01_civil_F"; - }; - class Item358 - { - dataType="Object"; - class PositionInfo - { - position[]={489.91336,6.6115026,1044.366}; - }; - side="West"; - flags=6; - class Attributes - { - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehGEN_CAR1"; - }; - id=1088; - type="B_GEN_Offroad_01_gen_F"; - }; - class Item359 - { - dataType="Object"; - class PositionInfo - { - position[]={490.23773,6.6115026,1022.6406}; - }; - side="West"; - flags=6; - class Attributes - { - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehGEN_CAR2"; - }; - id=1089; - type="B_GEN_Offroad_01_gen_F"; - }; - class Item360 - { - dataType="Object"; - class PositionInfo - { - position[]={509.84177,6.6115026,1044.8145}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehGEN_CAR3"; - }; - id=1090; - type="B_GEN_Offroad_01_gen_F"; - }; - class Item361 - { - dataType="Object"; - class PositionInfo - { - position[]={512.95728,6.6115026,1039.1606}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehGEN_CAR4"; - }; - id=1091; - type="B_GEN_Offroad_01_gen_F"; - }; - class Item362 - { - dataType="Object"; - class PositionInfo - { - position[]={510.1658,6.6115026,1021.6835}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehGEN_CAR5"; - }; - id=1092; - type="B_GEN_Offroad_01_gen_F"; - }; - class Item363 - { - dataType="Object"; - class PositionInfo - { - position[]={510.59879,6.6115026,999.63446}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehGEN_CAR6"; - }; - id=1093; - type="B_GEN_Offroad_01_gen_F"; - }; - class Item364 - { - dataType="Object"; - class PositionInfo - { - position[]={510.27676,6.5964622,976.57373}; - }; - side="West"; - flags=4; - class Attributes - { - init="[""v_car"",this] call f_fnc_assignGear"; - name="VehGEN_CAR7"; - textures="Black"; - }; - id=1098; - type="C_SUV_01_F"; - }; - }; - class Connections - { - class LinkIDProvider - { - nextID=50; - }; - class Links - { - items=50; - class Item0 - { - linkID=0; - item0=813; - item1=110; - class CustomData - { - type="Sync"; - }; - }; - class Item1 - { - linkID=1; - item0=804; - item1=110; - class CustomData - { - type="Sync"; - }; - }; - class Item2 - { - linkID=2; - item0=192; - item1=110; - class CustomData - { - type="Sync"; - }; - }; - class Item3 - { - linkID=3; - item0=115; - item1=813; - class CustomData - { - type="Sync"; - }; - }; - class Item4 - { - linkID=4; - item0=118; - item1=804; - class CustomData - { - type="Sync"; - }; - }; - class Item5 - { - linkID=5; - item0=820; - item1=120; - class CustomData - { - type="Sync"; - }; - }; - class Item6 - { - linkID=6; - item0=802; - item1=120; - class CustomData - { - type="Sync"; - }; - }; - class Item7 - { - linkID=7; - item0=681; - item1=120; - class CustomData - { - type="Sync"; - }; - }; - class Item8 - { - linkID=8; - item0=125; - item1=820; - class CustomData - { - type="Sync"; - }; - }; - class Item9 - { - linkID=9; - item0=128; - item1=802; - class CustomData - { - type="Sync"; - }; - }; - class Item10 - { - linkID=10; - item0=814; - item1=130; - class CustomData - { - type="Sync"; - }; - }; - class Item11 - { - linkID=11; - item0=801; - item1=130; - class CustomData - { - type="Sync"; - }; - }; - class Item12 - { - linkID=12; - item0=686; - item1=130; - class CustomData - { - type="Sync"; - }; - }; - class Item13 - { - linkID=13; - item0=135; - item1=814; - class CustomData - { - type="Sync"; - }; - }; - class Item14 - { - linkID=14; - item0=138; - item1=801; - class CustomData - { - type="Sync"; - }; - }; - class Item15 - { - linkID=15; - item0=819; - item1=140; - class CustomData - { - type="Sync"; - }; - }; - class Item16 - { - linkID=16; - item0=799; - item1=140; - class CustomData - { - type="Sync"; - }; - }; - class Item17 - { - linkID=17; - item0=369; - item1=140; - class CustomData - { - type="Sync"; - }; - }; - class Item18 - { - linkID=18; - item0=149; - item1=819; - class CustomData - { - type="Sync"; - }; - }; - class Item19 - { - linkID=19; - item0=145; - item1=799; - class CustomData - { - type="Sync"; - }; - }; - class Item20 - { - linkID=20; - item0=818; - item1=150; - class CustomData - { - type="Sync"; - }; - }; - class Item21 - { - linkID=21; - item0=800; - item1=150; - class CustomData - { - type="Sync"; - }; - }; - class Item22 - { - linkID=22; - item0=374; - item1=150; - class CustomData - { - type="Sync"; - }; - }; - class Item23 - { - linkID=23; - item0=159; - item1=818; - class CustomData - { - type="Sync"; - }; - }; - class Item24 - { - linkID=24; - item0=155; - item1=800; - class CustomData - { - type="Sync"; - }; - }; - class Item25 - { - linkID=25; - item0=817; - item1=160; - class CustomData - { - type="Sync"; - }; - }; - class Item26 - { - linkID=26; - item0=797; - item1=160; - class CustomData - { - type="Sync"; - }; - }; - class Item27 - { - linkID=27; - item0=532; - item1=160; - class CustomData - { - type="Sync"; - }; - }; - class Item28 - { - linkID=28; - item0=169; - item1=817; - class CustomData - { - type="Sync"; - }; - }; - class Item29 - { - linkID=29; - item0=165; - item1=797; - class CustomData - { - type="Sync"; - }; - }; - class Item30 - { - linkID=30; - item0=816; - item1=170; - class CustomData - { - type="Sync"; - }; - }; - class Item31 - { - linkID=31; - item0=798; - item1=170; - class CustomData - { - type="Sync"; - }; - }; - class Item32 - { - linkID=32; - item0=537; - item1=170; - class CustomData - { - type="Sync"; - }; - }; - class Item33 - { - linkID=33; - item0=179; - item1=816; - class CustomData - { - type="Sync"; - }; - }; - class Item34 - { - linkID=34; - item0=175; - item1=798; - class CustomData - { - type="Sync"; - }; - }; - class Item35 - { - linkID=35; - item0=815; - item1=180; - class CustomData - { - type="Sync"; - }; - }; - class Item36 - { - linkID=36; - item0=803; - item1=180; - class CustomData - { - type="Sync"; - }; - }; - class Item37 - { - linkID=37; - item0=197; - item1=180; - class CustomData - { - type="Sync"; - }; - }; - class Item38 - { - linkID=38; - item0=185; - item1=815; - class CustomData - { - type="Sync"; - }; - }; - class Item39 - { - linkID=39; - item0=188; - item1=803; - class CustomData - { - type="Sync"; - }; - }; - class Item40 - { - linkID=40; - item0=973; - item1=964; - class CustomData - { - type="Sync"; - }; - }; - class Item41 - { - linkID=41; - item0=972; - item1=964; - class CustomData - { - type="Sync"; - }; - }; - class Item42 - { - linkID=42; - item0=970; - item1=973; - class CustomData - { - type="Sync"; - }; - }; - class Item43 - { - linkID=43; - item0=966; - item1=972; - class CustomData - { - type="Sync"; - }; - }; - class Item44 - { - linkID=44; - item0=983; - item1=974; - class CustomData - { - type="Sync"; - }; - }; - class Item45 - { - linkID=45; - item0=982; - item1=974; - class CustomData - { - type="Sync"; - }; - }; - class Item46 - { - linkID=46; - item0=980; - item1=983; - class CustomData - { - type="Sync"; - }; - }; - class Item47 - { - linkID=47; - item0=976; - item1=982; - class CustomData - { - type="Sync"; - }; - }; - class Item48 - { - linkID=48; - item0=824; - item1=964; - class CustomData - { - type="Sync"; - }; - }; - class Item49 - { - linkID=49; - item0=839; - item1=974; - class CustomData - { - type="Sync"; - }; - }; - }; - }; -}; +version=52; +class EditorData +{ + moveGridStep=1; + angleGridStep=0.2617994; + scaleGridStep=1; + autoGroupingDist=10; + toggles=513; + class ItemIDProvider + { + nextID=1099; + }; + class Camera + { + pos[]={496.543,7.4236813,1023.0076}; + dir[]={-0.84531337,-0.17032278,0.50663656}; + up[]={-0.14613166,0.98536563,0.087582253}; + aside[]={0.51416159,-1.0040822e-007,0.85785311}; + }; +}; +binarizationWanted=0; +addons[]= +{ + "A3_Air_F_Heli_Heli_Transport_03", + "A3_Air_F_Heli_Heli_Transport_04", + "A3_Air_F_Beta_Heli_Transport_02", + "A3_Air_F_Beta_Heli_Transport_01", + "A3_Armor_F_Beta_APC_Tracked_01", + "A3_Air_F_Beta_Heli_Attack_01", + "A3_Air_F_Heli_Light_02", + "A3_Armor_F_Beta_APC_Wheeled_02", + "A3_Air_F_Beta_Heli_Attack_02", + "A3_Armor_F_EPC_MBT_01", + "A3_Armor_F_Gamma_APC_Wheeled_03", + "A3_Armor_F_Gamma_MBT_02", + "A3_Armor_F_EPB_MBT_03", + "A3_Air_F_EPB_Heli_Light_03", + "A3_Soft_F_Beta_Truck_02", + "A3_Soft_F_Beta_MRAP_03", + "A3_Soft_F_MRAP_01", + "A3_Soft_F_Beta_Truck_01", + "A3_Soft_F_MRAP_02", + "A3_Soft_F_Offroad_01", + "A3_Soft_F_Gamma_Van_01", + "A3_Weapons_F_Ammoboxes", + "A3_Air_F_Heli_Light_01", + "A3_Armor_F_Beta_APC_Wheeled_01", + "A3_Armor_F_Beta_APC_Tracked_02", + "A3_Armor_F_EPB_APC_Tracked_03", + "A3_Modules_F_Curator_Curator", + "A3_Modules_F_Supports", + "A3_Characters_F", + "A3_Static_F_Mortar_01", + "A3_Data_F_Curator_Virtual", + "A3_Characters_F_Exp", + "A3_Soft_F_Exp_Offroad_02", + "A3_Soft_F_Exp_Van_01", + "A3_Soft_F_Exp_Offroad_01", + "A3_Soft_F_Gamma_SUV_01" +}; +class AddonsMetaData +{ + class List + { + items=19; + class Item0 + { + className="A3_Air_F_Heli"; + name="Arma 3 Helicopters - Aircrafts"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item1 + { + className="A3_Air_F_Beta"; + name="Arma 3 Beta - Aircrafts"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item2 + { + className="A3_Armor_F_Beta"; + name="Arma 3 Beta - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item3 + { + className="A3_Air_F"; + name="Arma 3 Alpha - Aircrafts"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item4 + { + className="A3_Armor_F_EPC"; + name="Arma 3 Win Episode - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item5 + { + className="A3_Armor_F_Gamma"; + name="Arma 3 - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item6 + { + className="A3_Armor_F_EPB"; + name="Arma 3 Adapt Episode - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item7 + { + className="A3_Air_F_EPB"; + name="Arma 3 Adapt Episode - Aircrafts"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item8 + { + className="A3_Soft_F_Beta"; + name="Arma 3 Beta - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item9 + { + className="A3_Soft_F"; + name="Arma 3 Alpha - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item10 + { + className="A3_Soft_F_Gamma"; + name="Arma 3 - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item11 + { + className="A3_Weapons_F"; + name="Arma 3 Alpha - Weapons and Accessories"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item12 + { + className="A3_Modules_F_Curator"; + name="Arma 3 Zeus Update - Scripted Modules"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item13 + { + className="A3_Modules_F"; + name="Arma 3 Alpha - Scripted Modules"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item14 + { + className="A3_Characters_F"; + name="Arma 3 Alpha - Characters and Clothing"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item15 + { + className="A3_Static_F"; + name="Arma 3 Alpha - Turrets"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item16 + { + className="A3_Data_F_Curator"; + name="Arma 3 Zeus Update - Main Configuration"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item17 + { + className="A3_Characters_F_Exp"; + name="Arma 3 Apex - Characters and Clothing"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + class Item18 + { + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="http://www.arma3.com"; + }; + }; +}; +randomSeed=1116085; +class ScenarioData +{ + author="*** Insert mission author name here. ***"; + overViewPicture="overviewLogo.jpg"; + onLoadMission="Made with the F3 Mission Development Framework."; + loadScreen="loadLogo.jpg"; +}; +class CustomAttributes +{ + class Category0 + { + name="Scenario"; + class Attribute0 + { + property="EnableDebugConsole"; + expression="true"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; +}; +class Mission +{ + class Intel + { + briefingName="f3-4-1dev_fa15_ws_140716"; + resistanceWest=0; + timeOfChanges=28800; + startWeather=0.50001526; + startWind=0.25; + startGust=0.25; + forecastWeather=0.50277799; + forecastWind=0.25; + forecastWaves=0; + forecastGust=0.25; + rainForced=1; + lightningsForced=1; + wavesForced=1; + windForced=1; + year=2035; + month=7; + day=6; + hour=8; + minute=15; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=365; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={432.07535,8.3443718,1248.3243}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehNATO_TH1"; + }; + id=0; + type="B_Heli_Transport_03_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2379.1594,7.5924172,1254.5444}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehCSAT_TH1"; + textures="Opfor"; + }; + id=1; + type="O_Heli_Transport_04_covered_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.0298,8.5861206,617.8595}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehAAF_TH1"; + }; + id=2; + type="I_Heli_Transport_02_F"; + atlOffset=-4.7683716e-007; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={432.47964,8.3443718,1220.5431}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehNATO_TH2"; + textures="Green"; + }; + id=3; + type="B_Heli_Transport_03_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={467.55972,7.1392474,1249.049}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehNATO_TH3"; + textures="Green"; + }; + id=4; + type="B_Heli_Transport_01_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={468.41714,7.1392474,1221.5109}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehNATO_TH4"; + textures="Green"; + }; + id=5; + type="B_Heli_Transport_01_F"; + }; + class Item6 + { + dataType="Object"; + class PositionInfo + { + position[]={516.71497,7.1392474,1249.255}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehNATO_TH5"; + textures="Green"; + }; + id=6; + type="B_Heli_Transport_01_F"; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={516.78723,7.1392474,1221.2482}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehNATO_TH6"; + textures="Green"; + }; + id=7; + type="B_Heli_Transport_01_F"; + }; + class Item8 + { + dataType="Object"; + class PositionInfo + { + position[]={562.33704,7.1392474,1249.8331}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehNATO_TH7"; + }; + id=8; + type="B_Heli_Transport_01_F"; + }; + class Item9 + { + dataType="Object"; + class PositionInfo + { + position[]={563.22864,7.1392474,1222.3273}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehNATO_TH8"; + }; + id=9; + type="B_Heli_Transport_01_F"; + }; + class Item10 + { + dataType="Object"; + class PositionInfo + { + position[]={470.42007,7.4527192,1304.1699}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_AV"; + }; + id=10; + type="B_APC_Tracked_01_rcws_F"; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={517.84583,7.4527192,1301.2305}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_BV"; + }; + id=11; + type="B_APC_Tracked_01_rcws_F"; + }; + class Item12 + { + dataType="Object"; + class PositionInfo + { + position[]={560.05579,7.4527192,1302.459}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_CV"; + }; + id=12; + type="B_APC_Tracked_01_rcws_F"; + }; + class Item13 + { + dataType="Object"; + class PositionInfo + { + position[]={431.17886,7.4527192,1304.5967}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_COV"; + }; + id=13; + type="B_APC_Tracked_01_rcws_F"; + }; + class Item14 + { + dataType="Object"; + class PositionInfo + { + position[]={431.90445,6.9319248,1193.7062}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_a"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_AH1"; + }; + id=14; + type="B_Heli_Attack_01_F"; + }; + class Item15 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.1128,8.5861206,618.69836}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehAAF_TH2"; + }; + id=15; + type="I_Heli_Transport_02_F"; + atlOffset=-4.7683716e-007; + }; + class Item16 + { + dataType="Object"; + class PositionInfo + { + position[]={1494.3599,8.5861206,619.53918}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehAAF_TH3"; + }; + id=16; + type="I_Heli_Transport_02_F"; + atlOffset=-4.7683716e-007; + }; + class Item17 + { + dataType="Object"; + class PositionInfo + { + position[]={1535.6772,8.5861206,620.19543}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + fuel=0.29590145; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehAAF_TH4"; + }; + id=17; + type="I_Heli_Transport_02_F"; + atlOffset=-4.7683716e-007; + }; + class Item18 + { + dataType="Object"; + class PositionInfo + { + position[]={2380.8411,7.5924172,1224.6206}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehCSAT_TH2"; + textures="Opfor"; + }; + id=18; + type="O_Heli_Transport_04_covered_F"; + }; + class Item19 + { + dataType="Object"; + class PositionInfo + { + position[]={2429.5403,7.1696463,1253.569}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehCSAT_TH3"; + textures="Opfor"; + }; + id=19; + type="O_Heli_Light_02_unarmed_F"; + }; + class Item20 + { + dataType="Object"; + class PositionInfo + { + position[]={2426.9114,7.1696463,1223.8492}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehCSAT_TH4"; + textures="Opfor"; + }; + id=20; + type="O_Heli_Light_02_unarmed_F"; + }; + class Item21 + { + dataType="Object"; + class PositionInfo + { + position[]={2480.3333,7.1696463,1253.2291}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehCSAT_TH5"; + textures="Opfor"; + }; + id=21; + type="O_Heli_Light_02_unarmed_F"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={2477.6995,7.1696463,1223.5045}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehCSAT_TH6"; + textures="Opfor"; + }; + id=22; + type="O_Heli_Light_02_unarmed_F"; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={2534.553,7.1696463,1253.6246}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehCSAT_TH7"; + textures="Opfor"; + }; + id=23; + type="O_Heli_Light_02_unarmed_F"; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={2531.9211,7.1696463,1223.9039}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_m"",this] call f_fnc_assignGear"; + name="VehCSAT_TH8"; + textures="Opfor"; + }; + id=24; + type="O_Heli_Light_02_unarmed_F"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.1594,7.5568428,1301.3188}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_COV"; + textures="Hex"; + }; + id=25; + type="O_APC_Wheeled_02_rcws_F"; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={2423.8577,7.5568428,1301.0942}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_AV"; + textures="Hex"; + }; + id=26; + type="O_APC_Wheeled_02_rcws_F"; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={2475.9973,7.5568428,1300.3062}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_BV"; + textures="Hex"; + }; + id=27; + type="O_APC_Wheeled_02_rcws_F"; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.1165,7.5568428,1300.1157}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_CV"; + textures="Hex"; + }; + id=28; + type="O_APC_Wheeled_02_rcws_F"; + }; + class Item29 + { + dataType="Object"; + class PositionInfo + { + position[]={2382.634,8.0559025,1193.7076}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_a"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_AH1"; + textures="Opfor"; + }; + id=29; + type="O_Heli_Attack_02_black_F"; + }; + class Item30 + { + dataType="Object"; + class PositionInfo + { + position[]={516.48157,7.5372982,1279.7227}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_TNK1"; + }; + id=30; + type="B_MBT_01_TUSK_F"; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={1408.4087,7.6142888,675.24231}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehAAF_COV"; + }; + id=31; + type="I_APC_Wheeled_03_cannon_F"; + }; + class Item32 + { + dataType="Object"; + class PositionInfo + { + position[]={1453.1089,7.6142888,674.10168}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehAAF_AV"; + }; + id=32; + type="I_APC_Wheeled_03_cannon_F"; + }; + class Item33 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9253,7.6142888,674.16711}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehAAF_BV"; + }; + id=33; + type="I_APC_Wheeled_03_cannon_F"; + }; + class Item34 + { + dataType="Object"; + class PositionInfo + { + position[]={1535.4771,7.6142888,674.45129}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehAAF_CV"; + }; + id=34; + type="I_APC_Wheeled_03_cannon_F"; + }; + class Item35 + { + dataType="Object"; + class PositionInfo + { + position[]={2477.0383,7.1897745,1274.8247}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_TNK1"; + textures="Hex"; + }; + id=35; + type="O_MBT_02_cannon_F"; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9966,7.5486078,650.39954}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehAAF_TNK1"; + }; + id=36; + type="I_MBT_03_cannon_F"; + }; + class Item37 + { + dataType="Object"; + class PositionInfo + { + position[]={1408.8267,6.5310755,586.50305}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_a"",this] call f_fnc_assignGear"; + name="VehAAF_AH1"; + }; + id=37; + type="I_Heli_light_03_F"; + }; + class Item38 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.1421,7.3817043,777.82239}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehAAF_TR1"; + }; + id=38; + type="I_Truck_02_transport_F"; + }; + class Item39 + { + dataType="Object"; + class PositionInfo + { + position[]={1496.5581,7.3817043,777.77649}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehAAF_TR2"; + }; + id=39; + type="I_Truck_02_transport_F"; + }; + class Item40 + { + dataType="Object"; + class PositionInfo + { + position[]={1538.6558,7.3817043,777.95032}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehAAF_TR3"; + }; + id=40; + type="I_Truck_02_transport_F"; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={1403.2681,6.8319178,763.35657}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehAAF_CAR1"; + }; + id=41; + type="I_MRAP_03_F"; + }; + class Item42 + { + dataType="Object"; + class PositionInfo + { + position[]={421.47964,7.2059455,1371.2716}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehNato_CAR1"; + }; + id=42; + type="B_MRAP_01_F"; + }; + class Item43 + { + dataType="Object"; + class PositionInfo + { + position[]={473.05093,7.2247906,1387.7373}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehNato_TR1"; + }; + id=43; + type="B_Truck_01_transport_F"; + }; + class Item44 + { + dataType="Object"; + class PositionInfo + { + position[]={518.69934,7.2247906,1386.2725}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehNato_TR2"; + }; + id=44; + type="B_Truck_01_transport_F"; + }; + class Item45 + { + dataType="Object"; + class PositionInfo + { + position[]={559.82141,7.2247906,1387.9121}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehNato_TR3"; + }; + id=45; + type="B_Truck_01_transport_F"; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={2371.9885,7.4435053,1377.9761}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehCSAT_CAR1"; + textures="Hex"; + }; + id=46; + type="O_MRAP_02_F"; + }; + class Item47 + { + dataType="Object"; + class PositionInfo + { + position[]={2427.5139,7.3817043,1393.5962}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehCSAT_TR1"; + }; + id=47; + type="O_Truck_02_transport_F"; + }; + class Item48 + { + dataType="Object"; + class PositionInfo + { + position[]={2475.7581,7.3817043,1392.978}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehCSAT_TR2"; + }; + id=48; + type="O_Truck_02_transport_F"; + }; + class Item49 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.4778,7.3817043,1393.0493}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehCSAT_TR3"; + }; + id=49; + type="O_Truck_02_transport_F"; + }; + class Item50 + { + dataType="Object"; + class PositionInfo + { + position[]={616.46912,6.6115026,726.53906}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehFIA_CAR4"; + textures="Guerilla_07"; + }; + id=50; + type="B_G_Offroad_01_F"; + }; + class Item51 + { + dataType="Object"; + class PositionInfo + { + position[]={440.55112,6.6115026,757.85254}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehFIA_CAR1"; + textures="Guerilla_07"; + }; + id=51; + type="B_G_Offroad_01_F"; + }; + class Item52 + { + dataType="Object"; + class PositionInfo + { + position[]={440.63022,6.7971687,735.33008}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehFIA_CAR2"; + textures="Guerilla_07"; + }; + id=52; + type="B_G_Offroad_01_F"; + atlOffset=0.18566608; + }; + class Item53 + { + dataType="Object"; + class PositionInfo + { + position[]={615.70349,6.6115026,749.10645}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehFIA_CAR3"; + textures="Guerilla_07"; + }; + id=53; + type="B_G_Offroad_01_F"; + }; + class Item54 + { + dataType="Object"; + class PositionInfo + { + position[]={481.93588,6.8716264,771.92865}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehFIA_TR1"; + textures="Guerilla_04"; + }; + id=54; + type="B_G_Van_01_transport_F"; + }; + class Item55 + { + dataType="Object"; + class PositionInfo + { + position[]={489.83334,6.8716264,767.43549}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehFIA_TR2"; + textures="Guerilla_04"; + }; + id=55; + type="B_G_Van_01_transport_F"; + }; + class Item56 + { + dataType="Object"; + class PositionInfo + { + position[]={525.84607,6.8716264,772.71674}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehFIA_TR3"; + textures="Guerilla_04"; + }; + id=56; + type="B_G_Van_01_transport_F"; + }; + class Item57 + { + dataType="Object"; + class PositionInfo + { + position[]={1403.5269,6.8319178,734.76477}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehAAF_CAR2"; + }; + id=57; + type="I_MRAP_03_F"; + }; + class Item58 + { + dataType="Object"; + class PositionInfo + { + position[]={2372.0071,7.4435053,1350.3169}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehCSAT_CAR2"; + textures="Hex"; + }; + id=58; + type="O_MRAP_02_F"; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={421.11832,7.2059455,1351.5773}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehNato_CAR2"; + }; + id=59; + type="B_MRAP_01_F"; + }; + class Item60 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.3696,5.8924227,765.56165}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; + name="CrateAAF_A"; + }; + id=60; + type="I_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_NLAW_F"",""arifle_Mk20_F"",""LMG_Mk200_F""],[1,2,1]],[[""9Rnd_45ACP_Mag"",""30Rnd_9x21_Mag"",""20Rnd_762x51_Mag"",""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareYellow_F"",""UGL_FlareGreen_F""],[6,6,6,24,3,6,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator_03"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_blk""],[1,10,2,1]],[[""B_FieldPack_oli""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={1494.562,5.8924227,766.11731}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; + name="CrateAAF_B"; + }; + id=61; + type="I_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_NLAW_F"",""arifle_Mk20_F"",""LMG_Mk200_F""],[1,2,1]],[[""9Rnd_45ACP_Mag"",""30Rnd_9x21_Mag"",""20Rnd_762x51_Mag"",""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareYellow_F"",""UGL_FlareGreen_F""],[6,6,6,24,3,6,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator_03"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_blk""],[1,10,2,1]],[[""B_FieldPack_oli""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item62 + { + dataType="Object"; + class PositionInfo + { + position[]={1539.1606,5.8924227,766.32043}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; + name="CrateAAF_C"; + }; + id=62; + type="I_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_NLAW_F"",""arifle_Mk20_F"",""LMG_Mk200_F""],[1,2,1]],[[""9Rnd_45ACP_Mag"",""30Rnd_9x21_Mag"",""20Rnd_762x51_Mag"",""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareYellow_F"",""UGL_FlareGreen_F""],[6,6,6,24,3,6,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator_03"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_blk""],[1,10,2,1]],[[""B_FieldPack_oli""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={466.2482,5.8924227,1380.1455}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; + name="CrateNATO_A"; + }; + id=63; + type="B_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_NLAW_F"",""arifle_MX_F"",""arifle_MX_SW_F""],[1,2,1]],[[""30Rnd_65x39_caseless_mag"",""16Rnd_9x21_Mag"",""30Rnd_45ACP_Mag_SMG_01"",""20Rnd_762x51_Mag"",""100Rnd_65x39_caseless_mag"",""1Rnd_HE_Grenade_shell"",""3Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,6,6,6,3,1,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator"",""FirstAidKit"",""acc_flashlight"",""bipod_01_F_blk""],[1,10,2,1]],[[""B_Kitbag_mcamo""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item64 + { + dataType="Object"; + class PositionInfo + { + position[]={518.9884,5.8924227,1379.6846}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; + name="CrateNATO_B"; + }; + id=64; + type="B_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_NLAW_F"",""arifle_MX_F"",""arifle_MX_SW_F""],[1,2,1]],[[""30Rnd_65x39_caseless_mag"",""16Rnd_9x21_Mag"",""30Rnd_45ACP_Mag_SMG_01"",""20Rnd_762x51_Mag"",""100Rnd_65x39_caseless_mag"",""1Rnd_HE_Grenade_shell"",""3Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,6,6,6,3,1,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator"",""FirstAidKit"",""acc_flashlight"",""bipod_01_F_blk""],[1,10,2,1]],[[""B_Kitbag_mcamo""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={562.05286,5.8924227,1379.9961}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; + name="CrateNATO_C"; + }; + id=65; + type="B_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_NLAW_F"",""arifle_MX_F"",""arifle_MX_SW_F""],[1,2,1]],[[""30Rnd_65x39_caseless_mag"",""16Rnd_9x21_Mag"",""30Rnd_45ACP_Mag_SMG_01"",""20Rnd_762x51_Mag"",""100Rnd_65x39_caseless_mag"",""1Rnd_HE_Grenade_shell"",""3Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_green"",""NLAW_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,6,6,6,3,1,2,2,6,3,2,6,6,2,2,2,2]],[[""Laserdesignator"",""FirstAidKit"",""acc_flashlight"",""bipod_01_F_blk""],[1,10,2,1]],[[""B_Kitbag_mcamo""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item66 + { + dataType="Object"; + class PositionInfo + { + position[]={2424.8733,5.8924227,1386.2729}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; + name="CrateCSAT_A"; + }; + id=66; + type="O_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_Katiba_F"",""LMG_Zafir_F""],[1,2,1]],[[""16Rnd_9x21_Mag"",""30Rnd_65x39_caseless_green"",""10Rnd_762x54_Mag"",""150Rnd_762x54_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeRed_Grenade_shell"",""Chemlight_red"",""RPG32_F"",""RPG32_HE_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellRed"",""UGL_FlareYellow_F"",""UGL_FlareRed_F"",""30Rnd_9x21_Mag_SMG_02""],[6,24,12,4,6,2,2,6,3,1,2,6,6,2,2,2,2,6]],[[""Laserdesignator_02"",""FirstAidKit"",""acc_flashlight"",""bipod_02_F_blk""],[1,10,2,1]],[[""B_FieldPack_ocamo""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={2476.925,5.8924227,1386.394}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; + name="CrateCSAT_B"; + }; + id=67; + type="O_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_Katiba_F"",""LMG_Zafir_F""],[1,2,1]],[[""16Rnd_9x21_Mag"",""30Rnd_65x39_caseless_green"",""10Rnd_762x54_Mag"",""150Rnd_762x54_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeRed_Grenade_shell"",""Chemlight_red"",""RPG32_F"",""RPG32_HE_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellRed"",""UGL_FlareYellow_F"",""UGL_FlareRed_F"",""30Rnd_9x21_Mag_SMG_02""],[6,24,12,4,6,2,2,6,3,1,2,6,6,2,2,2,2,6]],[[""Laserdesignator_02"",""FirstAidKit"",""acc_flashlight"",""bipod_02_F_blk""],[1,10,2,1]],[[""B_FieldPack_ocamo""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item68 + { + dataType="Object"; + class PositionInfo + { + position[]={2530.9124,5.8924227,1385.6392}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; + name="CrateCSAT_C"; + }; + id=68; + type="O_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_Katiba_F"",""LMG_Zafir_F""],[1,2,1]],[[""16Rnd_9x21_Mag"",""30Rnd_65x39_caseless_green"",""10Rnd_762x54_Mag"",""150Rnd_762x54_Box"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeRed_Grenade_shell"",""Chemlight_red"",""RPG32_F"",""RPG32_HE_F"",""Laserbatteries"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellRed"",""UGL_FlareYellow_F"",""UGL_FlareRed_F"",""30Rnd_9x21_Mag_SMG_02""],[6,24,12,4,6,2,2,6,3,1,2,6,6,2,2,2,2,6]],[[""Laserdesignator_02"",""FirstAidKit"",""acc_flashlight"",""bipod_02_F_blk""],[1,10,2,1]],[[""B_FieldPack_ocamo""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={483.80991,5.8924227,764.7207}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; + name="CrateFIA_A"; + }; + id=69; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item70 + { + dataType="Object"; + class PositionInfo + { + position[]={525.81873,5.8924227,765.85156}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; + name="CrateFIA_B"; + }; + id=70; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={565.77478,5.8924227,764.64355}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; + name="CrateFIA_C"; + }; + id=71; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item72 + { + dataType="Object"; + class PositionInfo + { + position[]={604.48376,5.6047058,625.62299}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_l"",this] call f_fnc_assignGear"; + name="VehFIA_TH1"; + textures="Elliptical"; + }; + id=72; + type="C_Heli_Light_01_civil_F"; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={430.91617,7.4626956,1278.9102}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_IFV1"; + }; + id=73; + type="B_APC_Wheeled_01_cannon_F"; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={470.5939,7.4626956,1279.0977}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehNATO_IFV2"; + }; + id=74; + type="B_APC_Wheeled_01_cannon_F"; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={635.25696,7.2059455,1365.7882}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehNato_CAR3"; + }; + id=75; + type="B_MRAP_01_F"; + }; + class Item76 + { + dataType="Object"; + class PositionInfo + { + position[]={634.94348,7.2059455,1342.8126}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehNato_CAR4"; + }; + id=76; + type="B_MRAP_01_F"; + }; + class Item77 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.4866,7.392787,1275.9663}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_IFV1"; + textures="Hex"; + }; + id=77; + type="O_APC_Tracked_02_cannon_F"; + }; + class Item78 + { + dataType="Object"; + class PositionInfo + { + position[]={2426.5959,7.392787,1276.311}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehCSAT_IFV2"; + textures="Hex"; + }; + id=78; + type="O_APC_Tracked_02_cannon_F"; + }; + class Item79 + { + dataType="Object"; + class PositionInfo + { + position[]={2610.7737,7.4435053,1367.3921}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehCSAT_CAR3"; + textures="Hex"; + }; + id=79; + type="O_MRAP_02_F"; + }; + class Item80 + { + dataType="Object"; + class PositionInfo + { + position[]={2610.9114,7.4435053,1342.0503}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehCSAT_CAR4"; + textures="Hex"; + }; + id=80; + type="O_MRAP_02_F"; + }; + class Item81 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.1245,7.6859746,652.05188}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehAAF_IFV1"; + }; + id=81; + type="I_APC_tracked_03_cannon_F"; + atlOffset=0.19695234; + }; + class Item82 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.3257,7.4890223,649.7052}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + name="VehAAF_IFV2"; + }; + id=82; + type="I_APC_tracked_03_cannon_F"; + }; + class Item83 + { + dataType="Object"; + class PositionInfo + { + position[]={1611.853,6.8319178,753.23547}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehAAF_CAR3"; + }; + id=83; + type="I_MRAP_03_F"; + }; + class Item84 + { + dataType="Object"; + class PositionInfo + { + position[]={1613.3022,6.8319178,725.57043}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehAAF_CAR4"; + }; + id=84; + type="I_MRAP_03_F"; + }; + class Item85 + { + dataType="Object"; + class PositionInfo + { + position[]={448.18198,7.1644082,686.50494}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear"; + name="VehFIA_IFV1"; + textures="Guerilla_07"; + }; + id=85; + type="B_G_Offroad_01_armed_F"; + }; + class Item86 + { + dataType="Object"; + class PositionInfo + { + position[]={482.90561,7.1644082,686.42194}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear"; + name="VehFIA_IFV2"; + textures="Guerilla_07"; + }; + id=86; + type="B_G_Offroad_01_armed_F"; + }; + class Item87 + { + dataType="Object"; + class PositionInfo + { + position[]={535.95642,6.8716264,767.56049}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehFIA_TR4"; + textures="Guerilla_04"; + }; + id=87; + type="B_G_Van_01_transport_F"; + }; + class Item88 + { + dataType="Object"; + class PositionInfo + { + position[]={566.30212,6.8716264,772.56244}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehFIA_TR5"; + textures="Guerilla_04"; + }; + id=88; + type="B_G_Van_01_transport_F"; + }; + class Item89 + { + dataType="Object"; + class PositionInfo + { + position[]={575.16443,6.8716264,767.05365}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehFIA_TR6"; + textures="Guerilla_04"; + }; + id=89; + type="B_G_Van_01_transport_F"; + }; + class Item90 + { + dataType="Logic"; + class PositionInfo + { + position[]={2281.6389,5.3882694,729.50195}; + }; + init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + id=106; + type="ModuleCurator_F"; + atlOffset=0.38826942; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCurator_F_Owner"; + expression="_this setVariable ['Owner',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="F3_Zeus"; + }; + }; + }; + class Attribute1 + { + property="ModuleCurator_F_Forced"; + expression="_this setVariable ['Forced',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCurator_F_Name"; + expression="_this setVariable ['Name',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute3 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCurator_F_Addons"; + expression="_this setVariable ['Addons',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=2; + }; + }; + }; + nAttributes=5; + }; + }; + class Item91 + { + dataType="Logic"; + class PositionInfo + { + position[]={2282.2229,5.3580265,718.42773}; + }; + init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + id=107; + type="ModuleCurator_F"; + atlOffset=0.3580265; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCurator_F_Owner"; + expression="_this setVariable ['Owner',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="F3_Zeus_1"; + }; + }; + }; + class Attribute1 + { + property="ModuleCurator_F_Forced"; + expression="_this setVariable ['Forced',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCurator_F_Name"; + expression="_this setVariable ['Name',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute3 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCurator_F_Addons"; + expression="_this setVariable ['Addons',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=2; + }; + }; + }; + nAttributes=5; + }; + }; + class Item92 + { + dataType="Logic"; + class PositionInfo + { + position[]={2282.3342,5.6426582,707.78223}; + }; + init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + id=108; + type="ModuleCurator_F"; + atlOffset=0.64265823; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCurator_F_Owner"; + expression="_this setVariable ['Owner',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="F3_Zeus_2"; + }; + }; + }; + class Attribute1 + { + property="ModuleCurator_F_Forced"; + expression="_this setVariable ['Forced',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCurator_F_Name"; + expression="_this setVariable ['Name',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute3 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCurator_F_Addons"; + expression="_this setVariable ['Addons',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=2; + }; + }; + }; + nAttributes=5; + }; + }; + class Item93 + { + dataType="Logic"; + class PositionInfo + { + position[]={2284.1614,6.0756798,697.16992}; + }; + init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + id=109; + type="ModuleCurator_F"; + atlOffset=1.0756798; + class CustomAttributes + { + class Attribute0 + { + property="ModuleCurator_F_Owner"; + expression="_this setVariable ['Owner',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="F3_Zeus_3"; + }; + }; + }; + class Attribute1 + { + property="ModuleCurator_F_Forced"; + expression="_this setVariable ['Forced',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + class Attribute2 + { + property="ModuleCurator_F_Name"; + expression="_this setVariable ['Name',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute3 + { + property="ModuleInfo"; + expression="false"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="ModuleCurator_F_Addons"; + expression="_this setVariable ['Addons',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=2; + }; + }; + }; + nAttributes=5; + }; + }; + class Item94 + { + dataType="Logic"; + class PositionInfo + { + position[]={411.01968,5,1370.0654}; + }; + id=110; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item95 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={408.35269,5.0014391,1364.9382}; + }; + side="West"; + flags=6; + class Attributes + { + }; + id=115; + type="B_Soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=115; + item1=114; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=113; + }; + class Item96 + { + dataType="Object"; + class PositionInfo + { + position[]={408.35269,5.7216258,1364.8878}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=114; + type="B_Mortar_01_F"; + }; + class Item97 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={413.13589,5.0014391,1363.7788}; + }; + side="West"; + flags=6; + class Attributes + { + }; + id=118; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={413.13589,5.0014391,1363.7788}; + }; + side="West"; + flags=4; + class Attributes + { + }; + id=119; + type="B_Helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=118; + item1=117; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=119; + item1=117; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=116; + }; + class Item98 + { + dataType="Object"; + class PositionInfo + { + position[]={413.13589,6.4002423,1363.7296}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=117; + type="B_Heli_Light_01_armed_F"; + }; + class Item99 + { + dataType="Logic"; + class PositionInfo + { + position[]={429.65366,5.4784107,754.7207}; + }; + id=120; + type="SupportRequester"; + atlOffset=0.47841072; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item100 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={427.57455,5.3587284,749.52301}; + }; + side="West"; + flags=2; + class Attributes + { + }; + id=125; + type="B_Soldier_F"; + atlOffset=0.35728931; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=125; + item1=124; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=123; + atlOffset=0.35728931; + }; + class Item101 + { + dataType="Object"; + class PositionInfo + { + position[]={427.57455,6.0789151,749.47266}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + }; + id=124; + type="B_Mortar_01_F"; + atlOffset=0.35728931; + }; + class Item102 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={431.92221,5.3898754,748.29926}; + }; + side="West"; + flags=2; + class Attributes + { + }; + id=128; + type="B_Helipilot_F"; + atlOffset=0.38843632; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={431.92221,5.3898754,748.29926}; + }; + side="West"; + class Attributes + { + }; + id=129; + type="B_Helipilot_F"; + atlOffset=0.38843632; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=128; + item1=127; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=129; + item1=127; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=126; + atlOffset=0.38843632; + }; + class Item103 + { + dataType="Object"; + class PositionInfo + { + position[]={431.92221,6.7886786,748.25006}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + }; + id=127; + type="B_Heli_Light_01_armed_F"; + atlOffset=0.38843632; + }; + class Item104 + { + dataType="Logic"; + class PositionInfo + { + position[]={430.49057,5.8319387,730.8916}; + }; + id=130; + type="SupportRequester"; + atlOffset=0.83193874; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item105 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={428.43491,5.7404861,725.74664}; + }; + side="West"; + flags=2; + class Attributes + { + }; + id=135; + type="B_Soldier_F"; + atlOffset=0.73904705; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=135; + item1=134; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=133; + atlOffset=0.73904705; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={428.43491,6.4606729,725.69629}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + }; + id=134; + type="B_Mortar_01_F"; + atlOffset=0.73904705; + }; + class Item107 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={432.80014,5.5899277,724.50336}; + }; + side="West"; + flags=2; + class Attributes + { + }; + id=138; + type="B_Helipilot_F"; + atlOffset=0.58848858; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={432.80014,5.5899277,724.50336}; + }; + side="West"; + class Attributes + { + }; + id=139; + type="B_Helipilot_F"; + atlOffset=0.58848858; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=138; + item1=137; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=139; + item1=137; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=136; + atlOffset=0.58848858; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={432.80014,6.9887309,724.45416}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + }; + id=137; + type="B_Heli_Light_01_armed_F"; + atlOffset=0.58848858; + }; + class Item109 + { + dataType="Logic"; + class PositionInfo + { + position[]={2352.8674,5,1375.1069}; + }; + id=140; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item110 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2355.2317,5.0014391,1368.4746}; + }; + side="East"; + flags=6; + class Attributes + { + }; + id=145; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2355.2317,5.0014391,1368.4746}; + }; + side="East"; + flags=4; + class Attributes + { + }; + id=146; + type="O_helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=145; + item1=144; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=146; + item1=144; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=143; + }; + class Item111 + { + dataType="Object"; + class PositionInfo + { + position[]={2355.2317,7.1696463,1368.314}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + textures="Opfor"; + }; + id=144; + type="O_Heli_Light_02_v2_F"; + }; + class Item112 + { + dataType="Group"; + side="East"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2350.7874,5.0014391,1368.7529}; + }; + side="East"; + flags=6; + class Attributes + { + }; + id=149; + type="O_Soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=149; + item1=148; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=147; + }; + class Item113 + { + dataType="Object"; + class PositionInfo + { + position[]={2350.7874,5.7216258,1368.7026}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=148; + type="O_Mortar_01_F"; + }; + class Item114 + { + dataType="Logic"; + class PositionInfo + { + position[]={2353.8879,5,1349.772}; + }; + id=150; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item115 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2356.1008,5.0014391,1343.0537}; + }; + side="East"; + flags=6; + class Attributes + { + }; + id=155; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2356.1008,5.0014391,1343.0537}; + }; + side="East"; + flags=4; + class Attributes + { + }; + id=156; + type="O_helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=155; + item1=154; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=156; + item1=154; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=153; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={2356.1008,7.1696463,1342.8931}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + textures="Opfor"; + }; + id=154; + type="O_Heli_Light_02_v2_F"; + }; + class Item117 + { + dataType="Group"; + side="East"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2351.9036,5.0014391,1343.4551}; + }; + side="East"; + flags=6; + class Attributes + { + }; + id=159; + type="O_Soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=159; + item1=158; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=157; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={2351.9036,5.7216258,1343.4048}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=158; + type="O_Mortar_01_F"; + }; + class Item119 + { + dataType="Logic"; + class PositionInfo + { + position[]={1384.1157,5,761.96008}; + }; + id=160; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item120 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1386.1177,5.0014391,755.87048}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=165; + type="I_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1386.1177,5.0014391,755.87048}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=166; + type="I_helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=165; + item1=164; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=166; + item1=164; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=163; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={1386.1177,6.5310755,755.82043}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=164; + type="I_Heli_light_03_F"; + }; + class Item122 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1382.0044,5.0014391,755.89136}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=169; + type="I_soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=169; + item1=168; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=167; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={1382.0044,5.7216258,755.84094}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=168; + type="I_Mortar_01_F"; + }; + class Item124 + { + dataType="Logic"; + class PositionInfo + { + position[]={1384.5522,5,732.03235}; + }; + id=170; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item125 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1386.6372,5.0014391,725.99646}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=175; + type="I_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1386.6372,5.0014391,725.99646}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=176; + type="I_helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=175; + item1=174; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=176; + item1=174; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=173; + }; + class Item126 + { + dataType="Object"; + class PositionInfo + { + position[]={1386.6372,6.5310755,725.94641}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=174; + type="I_Heli_light_03_F"; + }; + class Item127 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1382.479,5.0014391,725.98999}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=179; + type="I_soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=179; + item1=178; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=177; + }; + class Item128 + { + dataType="Object"; + class PositionInfo + { + position[]={1382.479,5.7216258,725.93958}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=178; + type="I_Mortar_01_F"; + }; + class Item129 + { + dataType="Logic"; + class PositionInfo + { + position[]={411.24136,5,1347.6611}; + }; + id=180; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item130 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={409.20523,5.0014391,1342.4988}; + }; + side="West"; + flags=6; + class Attributes + { + }; + id=185; + type="B_Soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=185; + item1=184; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=183; + }; + class Item131 + { + dataType="Object"; + class PositionInfo + { + position[]={409.20523,5.7216258,1342.4484}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=184; + type="B_Mortar_01_F"; + }; + class Item132 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={413.58804,5.0014391,1341.3022}; + }; + side="West"; + flags=6; + class Attributes + { + }; + id=188; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={413.58804,5.0014391,1341.3022}; + }; + side="West"; + flags=4; + class Attributes + { + }; + id=189; + type="B_Helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=188; + item1=187; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=189; + item1=187; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=186; + }; + class Item133 + { + dataType="Object"; + class PositionInfo + { + position[]={413.58804,6.4002423,1341.2531}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=187; + type="B_Heli_Light_01_armed_F"; + }; + class Item134 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={425.25861,5.0014391,1363.5155}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="COLONEL"; + init="[""co"",this] call f_fnc_assignGear;"; + name="UnitNATO_CO"; + description="NATO Commander"; + isPlayable=1; + }; + id=191; + type="B_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={430.25861,5.0014391,1361.8661}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitNATO_CO_JTAC"; + description="NATO JTAC"; + isPlayable=1; + }; + id=192; + type="B_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={420.25861,5.0014391,1361.8661}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitNATO_CO_UAV"; + description="NATO UAV Operator"; + isPlayable=1; + }; + id=193; + type="B_soldier_UAV_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={435.25861,5.0014391,1359.1268}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitNATO_CO_M"; + description="NATO Medic"; + isPlayable=1; + }; + id=194; + type="B_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpNATO_CO"; + }; + id=190; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item135 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={430.38492,5.0014391,1351.1897}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="MAJOR"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitNATO_DC"; + description="NATO Deputy Commander"; + isPlayable=1; + }; + id=196; + type="B_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={435.38492,5.0014391,1349.5393}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitNATO_DC_JTAC"; + description="NATO JTAC"; + isPlayable=1; + }; + id=197; + type="B_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={425.38492,5.0014391,1349.5393}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitNATO_DC_UAV"; + description="NATO UAV Operator"; + isPlayable=1; + }; + id=198; + type="B_soldier_UAV_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={440.38492,5.0014391,1346.8}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitNATO_DC_M"; + description="NATO Medic"; + isPlayable=1; + }; + id=199; + type="B_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpNATO_DC"; + }; + id=195; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item136 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={431.17886,5.0014391,1304.6467}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitNATO_COV_C"; + description="NATO Command Vehicle Commander"; + isPlayable=1; + }; + id=201; + type="B_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={431.17886,5.0014391,1304.6467}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitNATO_COV_G"; + description="NATO Command Vehicle Gunner"; + isPlayable=1; + }; + id=202; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={431.17886,5.0014391,1304.6467}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitNATO_COV_D"; + description="NATO Command Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=203; + type="B_crew_F"; + }; + }; + class Attributes + { + name="GrpNATO_COV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=201; + item1=13; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=202; + item1=13; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=203; + item1=13; + class CustomData + { + role=1; + }; + }; + }; + }; + id=200; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO COV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item137 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={469.71011,5.0014391,1372.1106}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitNATO_ASL_SL"; + description="NATO Alpha Squad Leader"; + isPlayable=1; + }; + id=205; + type="B_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={474.71011,5.0014391,1370.4602}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitNATO_ASL_M"; + description="NATO Alpha Medic"; + isPlayable=1; + }; + id=206; + type="B_medic_F"; + }; + }; + class Attributes + { + name="GrpNATO_ASL"; + }; + id=204; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item138 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={469.50504,5.0014391,1350.5276}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitNATO_A1_FTL"; + description="NATO Alpha 1 Fire Team Leader"; + isPlayable=1; + }; + id=208; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={474.50504,5.0014391,1348.8772}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A1_AR1"; + description="NATO Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=209; + type="B_soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={464.50504,5.0014391,1348.8772}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A1_AR2"; + description="NATO Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=210; + type="B_soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={479.50504,5.0014391,1346.1379}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitNATO_A1_AT"; + description="NATO Alpha 1 Assaultman (AT)"; + isPlayable=1; + }; + id=211; + type="B_soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={459.50504,5.0014391,1346.1379}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A1_R1"; + description="NATO Alpha 1 Rifleman"; + isPlayable=1; + }; + id=212; + type="B_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={484.50504,5.0014391,1341.5911}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A1_R2"; + description="NATO Alpha 1 Rifleman"; + isPlayable=1; + }; + id=213; + type="B_Soldier_F"; + }; + }; + class Attributes + { + name="GrpNATO_A1"; + }; + id=207; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item139 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={469.71109,5.0014391,1326.9739}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitNATO_A2_FTL"; + description="NATO Alpha 2 Fire Team Leader"; + isPlayable=1; + }; + id=215; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={474.71109,5.0014391,1325.3235}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A2_AR1"; + description="NATO Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=216; + type="B_soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={464.71109,5.0014391,1325.3235}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A2_AR2"; + description="NATO Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=217; + type="B_soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={479.71109,5.0014391,1322.5842}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitNATO_A2_AT"; + description="NATO Alpha 2 Assaultman (AT)"; + isPlayable=1; + }; + id=218; + type="B_soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={459.71109,5.0014391,1322.5842}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A2_R1"; + description="NATO Alpha 2 Rifleman"; + isPlayable=1; + }; + id=219; + type="B_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={484.71109,5.0014391,1318.0374}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_A2_R2"; + description="NATO Alpha 2 Rifleman"; + isPlayable=1; + }; + id=220; + type="B_Soldier_F"; + }; + }; + class Attributes + { + name="GrpNATO_A2"; + }; + id=214; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item140 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={470.42007,5.0014391,1304.22}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitNATO_AV_C"; + description="NATO Alpha Vehicle Commander"; + isPlayable=1; + }; + id=222; + type="B_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={470.42007,5.0014391,1304.22}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitNATO_AV_G"; + description="NATO Alpha Vehicle Gunner"; + isPlayable=1; + }; + id=223; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={470.42007,5.0014391,1304.22}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitNATO_AV_D"; + description="NATO Alpha Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=224; + type="B_crew_F"; + }; + }; + class Attributes + { + name="GrpNATO_AV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=222; + item1=10; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=223; + item1=10; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=224; + item1=10; + class CustomData + { + role=1; + }; + }; + }; + }; + id=221; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO AV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item141 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={515.86633,5.0014391,1371.6272}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitNATO_BSL_SL"; + description="NATO Bravo Squad Leader"; + isPlayable=1; + }; + id=226; + type="B_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={520.86633,5.0014391,1369.9768}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitNATO_BSL_M"; + description="NATO Bravo Medic"; + isPlayable=1; + }; + id=227; + type="B_medic_F"; + }; + }; + class Attributes + { + name="GrpNATO_BSL"; + }; + id=225; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item142 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={515.87219,5.0014391,1349.8528}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitNATO_B1_FTL"; + description="NATO Bravo 1 Fire Team Leader"; + isPlayable=1; + }; + id=229; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={520.87219,5.0014391,1348.2024}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B1_AR1"; + description="NATO Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=230; + type="B_soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={510.87222,5.0014391,1348.2024}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B1_AR2"; + description="NATO Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=231; + type="B_soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={525.87219,5.0014391,1345.4631}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitNATO_B1_AT"; + description="NATO Bravo 1 Assaultman (AT)"; + isPlayable=1; + }; + id=232; + type="B_soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={505.87222,5.0014391,1345.4631}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B1_R1"; + description="NATO Bravo 1 Rifleman"; + isPlayable=1; + }; + id=233; + type="B_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={530.87219,5.0014391,1340.9163}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B1_R2"; + description="NATO Bravo 1 Rifleman"; + isPlayable=1; + }; + id=234; + type="B_Soldier_F"; + }; + }; + class Attributes + { + name="GrpNATO_B1"; + }; + id=228; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item143 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={515.69153,5.0014391,1326.2991}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitNATO_B2_FTL"; + description="NATO Bravo 2 Fire Team Leader"; + isPlayable=1; + }; + id=236; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={520.69153,5.0014391,1324.6487}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B2_AR1"; + description="NATO Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=237; + type="B_soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={510.69156,5.0014391,1324.6487}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B2_AR2"; + description="NATO Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=238; + type="B_soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={525.69153,5.0014391,1321.9094}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitNATO_B2_AT"; + description="NATO Bravo 2 Assaultman (AT)"; + isPlayable=1; + }; + id=239; + type="B_soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={505.69156,5.0014391,1321.9094}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B2_R1"; + description="NATO Bravo 2 Rifleman"; + isPlayable=1; + }; + id=240; + type="B_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={530.69153,5.0014391,1317.3625}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_B2_R2"; + description="NATO Bravo 2 Rifleman"; + isPlayable=1; + }; + id=241; + type="B_Soldier_F"; + }; + }; + class Attributes + { + name="GrpNATO_B2"; + }; + id=235; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item144 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={517.84583,5.0014391,1301.2805}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitNATO_BV_C"; + description="NATO Bravo Vehicle Commander"; + isPlayable=1; + }; + id=243; + type="B_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={517.84583,5.0014391,1301.2805}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitNATO_BV_G"; + description="NATO Bravo Vehicle Gunner"; + isPlayable=1; + }; + id=244; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={517.84583,5.0014391,1301.2805}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitNATO_BV_D"; + description="NATO Bravo Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=245; + type="B_crew_F"; + }; + }; + class Attributes + { + name="GrpNATO_BV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=243; + item1=11; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=244; + item1=11; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=245; + item1=11; + class CustomData + { + role=1; + }; + }; + }; + }; + id=242; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO BV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item145 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={558.87317,5.0014391,1372.5715}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitNATO_CSL_SL"; + description="NATO Charlie Squad Leader"; + isPlayable=1; + }; + id=247; + type="B_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={563.87317,5.0014391,1370.9231}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitNATO_CSL_M"; + description="NATO Charlie Medic"; + isPlayable=1; + }; + id=248; + type="B_medic_F"; + }; + }; + class Attributes + { + name="GrpNATO_CSL"; + }; + id=246; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item146 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={558.73254,5.0014391,1350.0002}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitNATO_C1_FTL"; + description="NATO Charlie 1 Fire Team Leader"; + isPlayable=1; + }; + id=250; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={563.73254,5.0014391,1348.3499}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C1_AR1"; + description="NATO Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=251; + type="B_soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={553.73254,5.0014391,1348.3499}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C1_AR2"; + description="NATO Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=252; + type="B_soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={568.73254,5.0014391,1345.6106}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitNATO_C1_AT"; + description="NATO Charlie 1 Assaultman (AT)"; + isPlayable=1; + }; + id=253; + type="B_soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={548.73254,5.0014391,1345.6106}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C1_R1"; + description="NATO Charlie 1 Rifleman"; + isPlayable=1; + }; + id=254; + type="B_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={573.73254,5.0014391,1341.0637}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C1_R2"; + description="NATO Charlie 1 Rifleman"; + isPlayable=1; + }; + id=255; + type="B_Soldier_F"; + }; + }; + class Attributes + { + name="GrpNATO_C1"; + }; + id=249; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item147 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={559.41809,5.0014391,1326.5735}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitNATO_C2_FTL"; + description="NATO Charlie 2 Fire Team Leader"; + isPlayable=1; + }; + id=257; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={564.41809,5.0014391,1324.9231}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C2_AR1"; + description="NATO Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=258; + type="B_soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={554.41809,5.0014391,1324.9231}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C2_AR2"; + description="NATO Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=259; + type="B_soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={569.41809,5.0014391,1322.1838}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitNATO_C2_AT"; + description="NATO Charlie 2 Assaultman (AT)"; + isPlayable=1; + }; + id=260; + type="B_soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={549.41809,5.0014391,1322.1838}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C2_R1"; + description="NATO Charlie 2 Rifleman"; + isPlayable=1; + }; + id=261; + type="B_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={574.41809,5.0014391,1317.636}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitNATO_C2_R2"; + description="NATO Charlie 2 Rifleman"; + isPlayable=1; + }; + id=262; + type="B_Soldier_F"; + }; + }; + class Attributes + { + name="GrpNATO_C2"; + }; + id=256; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item148 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={560.05579,5.0014391,1302.509}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitNATO_CV_C"; + description="NATO Charlie Vehicle Commander"; + isPlayable=1; + }; + id=264; + type="B_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={560.05579,5.0014391,1302.509}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitNATO_CV_G"; + description="NATO Charlie Vehicle Gunner"; + isPlayable=1; + }; + id=265; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={560.05579,5.0014391,1302.509}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitNATO_CV_D"; + description="NATO Charlie Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=266; + type="B_crew_F"; + }; + }; + class Attributes + { + name="GrpNATO_CV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=264; + item1=12; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=265; + item1=12; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=266; + item1=12; + class CustomData + { + role=1; + }; + }; + }; + }; + id=263; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO CV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item149 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.67786,5.0014391,1372.7942}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG1_AG"; + description="NATO Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=268; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.67786,5.0014391,1371.1438}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG1_G"; + description="NATO Medium MG Team 1 Gunner"; + isPlayable=1; + }; + id=269; + type="B_soldier_AR_F"; + }; + }; + class Attributes + { + name="GrpNATO_MMG1"; + }; + id=267; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item150 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.31165,5.0014391,1361.0022}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG2_AG"; + description="NATO Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=271; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.31165,5.0014391,1359.3518}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG2_G"; + description="NATO Medium MG Team 2 Gunner"; + isPlayable=1; + }; + id=272; + type="B_soldier_AR_F"; + }; + }; + class Attributes + { + name="GrpNATO_MMG2"; + }; + id=270; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item151 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.51672,5.0014391,1349.5032}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT1_AG"; + description="NATO Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=274; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.51672,5.0372052,1347.8528}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT1_G"; + description="NATO Medium AT Team 1 Gunner"; + isPlayable=1; + }; + id=275; + type="B_soldier_AT_F"; + atlOffset=0.035766125; + }; + }; + class Attributes + { + name="GrpNATO_MAT1"; + }; + id=273; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item152 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.82825,5.0014391,1337.9661}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT2_AG"; + description="NATO Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=277; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.82825,5.0014391,1336.3157}; + }; + side="West"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT2_G"; + description="NATO Medium AT Team 2 Gunner"; + isPlayable=1; + }; + id=278; + type="B_soldier_AT_F"; + }; + }; + class Attributes + { + name="GrpNATO_MAT2"; + }; + id=276; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item153 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.53235,5.0014391,1325.4583}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hmgag"",this] call f_fnc_assignGear; "; + name="UnitNATO_HMG1_AG"; + description="NATO Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=280; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.53235,5.0014391,1323.8079}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hmgg"",this] call f_fnc_assignGear; "; + name="UnitNATO_HMG1_G"; + description="NATO Heavy MG Team 1 Gunner"; + isPlayable=1; + }; + id=281; + type="B_support_MG_F"; + }; + }; + class Attributes + { + name="GrpNATO_HMG1"; + }; + id=279; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item154 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.42981,5.0014391,1314.5901}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitNATO_HAT1_AG"; + description="NATO Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=283; + type="B_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.42981,5.0014391,1312.9397}; + }; + side="West"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""hatg"",this] call f_fnc_assignGear; "; + name="UnitNATO_HAT1_G"; + description="NATO Heavy AT Team 1 Gunner"; + isPlayable=1; + }; + id=284; + type="B_soldier_AT_F"; + }; + }; + class Attributes + { + name="GrpNATO_HAT1"; + }; + id=282; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item155 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.72571,5.5986366,1302.717}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mtrag"",this] call f_fnc_assignGear; "; + name="UnitNATO_MTR1_AG"; + description="NATO Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=286; + type="B_support_AMort_F"; + atlOffset=0.59719753; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.72571,5.6381588,1301.0667}; + }; + side="West"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""mtrg"",this] call f_fnc_assignGear; "; + name="UnitNATO_MTR1_G"; + description="NATO Mortar Team 1 Gunner"; + isPlayable=1; + }; + id=287; + type="B_support_Mort_F"; + atlOffset=0.6367197; + }; + }; + class Attributes + { + name="GrpNATO_MTR1"; + }; + id=285; + atlOffset=0.59719753; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item156 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.65149,5.7161484,1290.2786}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitNATO_MSAM1_AG"; + description="NATO Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=289; + type="B_soldier_AAA_F"; + atlOffset=0.71470928; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.65149,5.791913,1288.6282}; + }; + side="West"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""msamg"",this] call f_fnc_assignGear; "; + name="UnitNATO_MSAM1_G"; + description="NATO Medium SAM Team 1 Gunner"; + isPlayable=1; + }; + id=290; + type="B_soldier_AA_F"; + atlOffset=0.79047394; + }; + }; + class Attributes + { + name="GrpNATO_MSAM1"; + }; + id=288; + atlOffset=0.71470928; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item157 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.7384,5.7222595,1277.7756}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hsamag"",this] call f_fnc_assignGear; "; + name="UnitNATO_HSAM1_AG"; + description="NATO Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=292; + type="B_soldier_AAA_F"; + atlOffset=0.72082043; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.7384,5.7153502,1276.1252}; + }; + side="West"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""hsamg"",this] call f_fnc_assignGear; "; + name="UnitNATO_HSAM1_G"; + description="NATO Heavy SAM Team 1 Gunner"; + isPlayable=1; + }; + id=293; + type="B_soldier_AA_F"; + atlOffset=0.71391106; + }; + }; + class Attributes + { + name="GrpNATO_HSAM1"; + }; + id=291; + atlOffset=0.72082043; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item158 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.7384,5.6523895,1266.6995}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""sp"",this] call f_fnc_assignGear; "; + name="UnitNATO_ST1_SP"; + description="NATO Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=295; + type="B_spotter_F"; + atlOffset=0.65095043; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.7384,5.6546535,1265.0491}; + }; + side="West"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""sn"",this] call f_fnc_assignGear; "; + name="UnitNATO_ST1_SN"; + description="NATO Sniper Team 1 Sniper"; + isPlayable=1; + }; + id=296; + type="B_sniper_F"; + atlOffset=0.65321445; + }; + }; + class Attributes + { + name="GrpNATO_ST1"; + }; + id=294; + atlOffset=0.65095043; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item159 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.41223,5.2708397,1254.4338}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitNATO_ENG1_FTL"; + description="NATO Engineer Team 1 Leader (Demo)"; + isPlayable=1; + }; + id=298; + type="B_engineer_F"; + atlOffset=0.2694006; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.41223,5.1099253,1252.7834}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitNATO_ENG1_A1"; + description="NATO Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + }; + id=299; + type="B_engineer_F"; + atlOffset=0.10848618; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={616.41223,5.3070717,1252.7834}; + }; + side="West"; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitNATO_ENG1_A2"; + description="NATO Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=300; + type="B_engineer_F"; + atlOffset=0.30563259; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={631.41223,5.0951824,1250.0442}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitNATO_ENG1_A3"; + description="NATO Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=301; + type="B_engineer_F"; + atlOffset=0.093743324; + }; + }; + class Attributes + { + name="GrpNATO_ENG1"; + }; + id=297; + atlOffset=0.2694006; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item160 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={621.09973,5.0014391,1240.26}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitNATO_DT1_TL"; + description="NATO Diver Team 1 Team Leader"; + isPlayable=1; + }; + id=303; + type="B_diver_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={626.09973,5.0014391,1238.6096}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitNATO_DT1_D1"; + description="NATO Diver Team 1 Diver"; + isPlayable=1; + }; + id=304; + type="B_diver_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={616.09973,5.0014391,1238.6096}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitNATO_DT1_D2"; + description="NATO Diver Team 1 Diver"; + isPlayable=1; + }; + id=305; + type="B_diver_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={631.09973,5.0014391,1235.8704}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitNATO_DT1_D3"; + description="NATO Diver Team 1 Diver"; + isPlayable=1; + }; + id=306; + type="B_diver_F"; + }; + }; + class Attributes + { + name="GrpNATO_DT1"; + }; + id=302; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO DT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item161 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={430.91617,5.0014391,1278.9602}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitNATO_IFV1_C"; + description="NATO IFV 1 Commander"; + isPlayable=1; + }; + id=308; + type="B_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={430.91617,5.0014391,1278.9602}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitNATO_IFV1_G"; + description="NATO IFV 1 Gunner"; + isPlayable=1; + }; + id=309; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={430.91617,5.0014391,1278.9602}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitNATO_IFV1_D"; + description="NATO IFV 1 Driver (Repair)"; + isPlayable=1; + }; + id=310; + type="B_crew_F"; + }; + }; + class Attributes + { + name="GrpNATO_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=308; + item1=73; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=309; + item1=73; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=310; + item1=73; + class CustomData + { + role=1; + }; + }; + }; + }; + id=307; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO IFV1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item162 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={470.5939,5.0014391,1279.1477}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitNATO_IFV2_C"; + description="NATO IFV 2 Commander"; + isPlayable=1; + }; + id=312; + type="B_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={470.5939,5.0014391,1279.1477}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitNATO_IFV2_G"; + description="NATO IFV 2 Gunner"; + isPlayable=1; + }; + id=313; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={470.5939,5.0014391,1279.1477}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitNATO_IFV2_D"; + description="NATO IFV 2 Driver (Repair)"; + isPlayable=1; + }; + id=314; + type="B_crew_F"; + }; + }; + class Attributes + { + name="GrpNATO_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=312; + item1=74; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=313; + item1=74; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=314; + item1=74; + class CustomData + { + role=1; + }; + }; + }; + }; + id=311; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO IFV2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item163 + { + dataType="Group"; + side="West"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={516.48157,5.0014391,1279.7727}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TNK1_C"; + description="NATO Tank 1 Commander"; + isPlayable=1; + }; + id=316; + type="B_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={516.48157,5.0014391,1279.7727}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitNATO_TNK1_G"; + description="NATO Tank 1 Gunner"; + isPlayable=1; + }; + id=317; + type="B_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={516.48157,5.0014391,1279.7727}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitNATO_TNK1_D"; + description="NATO Tank 1 Driver (Repair)"; + isPlayable=1; + }; + id=318; + type="B_crew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TNK1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=316; + item1=30; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=317; + item1=30; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=318; + item1=30; + class CustomData + { + role=1; + }; + }; + }; + }; + id=315; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TNK1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item164 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={432.07535,5.0014391,1248.4297}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH1_P"; + description="NATO Transport Helo 1 Pilot"; + isPlayable=1; + }; + id=320; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={432.07535,5.0014391,1248.4297}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH1_CP"; + description="NATO Transport Helo 1 Co-Pilot"; + isPlayable=1; + }; + id=321; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={432.07535,5.0014391,1248.4297}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH1_G1"; + description="NATO Transport Helo 1 Crew Chief (Repair)"; + isPlayable=1; + }; + id=322; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={432.07535,5.0014391,1248.4297}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH1_G2"; + description="NATO Transport Helo 1 Gunner"; + isPlayable=1; + }; + id=323; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=320; + item1=0; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=321; + item1=0; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=322; + item1=0; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=323; + item1=0; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=319; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item165 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={432.47964,5.0014391,1220.6484}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH2_P"; + description="NATO Transport Helo 2 Pilot"; + isPlayable=1; + }; + id=325; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={432.47964,5.0014391,1220.6484}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH2_CP"; + description="NATO Transport Helo 2 Co-Pilot"; + isPlayable=1; + }; + id=326; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={432.47964,5.0014391,1220.6484}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH2_G1"; + description="NATO Transport Helo 2 Crew Chief (Repair)"; + isPlayable=1; + }; + id=327; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={432.47964,5.0014391,1220.6484}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH2_G2"; + description="NATO Transport Helo 2 Gunner"; + isPlayable=1; + }; + id=328; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=325; + item1=3; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=326; + item1=3; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=327; + item1=3; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=328; + item1=3; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=324; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item166 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={467.55972,5.0014391,1249.0986}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH3_P"; + description="NATO Transport Helo 3 Pilot"; + isPlayable=1; + }; + id=330; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={467.55972,5.0014391,1249.0986}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH3_CP"; + description="NATO Transport Helo 3 Co-Pilot"; + isPlayable=1; + }; + id=331; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={467.55972,5.0014391,1249.0986}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH3_G1"; + description="NATO Transport Helo 3 Crew Chief (Repair)"; + isPlayable=1; + }; + id=332; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={467.55972,5.0014391,1249.0986}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH3_G2"; + description="NATO Transport Helo 3 Gunner"; + isPlayable=1; + }; + id=333; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH3"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=330; + item1=4; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=331; + item1=4; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=332; + item1=4; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=333; + item1=4; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=329; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH3 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item167 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={468.41714,5.0014391,1221.5605}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH4_P"; + description="NATO Transport Helo 4 Pilot"; + isPlayable=1; + }; + id=335; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={468.41714,5.0014391,1221.5605}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH4_CP"; + description="NATO Transport Helo 4 Co-Pilot"; + isPlayable=1; + }; + id=336; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={468.41714,5.0014391,1221.5605}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH4_G1"; + description="NATO Transport Helo 4 Crew Chief (Repair)"; + isPlayable=1; + }; + id=337; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={468.41714,5.0014391,1221.5605}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH4_G2"; + description="NATO Transport Helo 4 Gunner"; + isPlayable=1; + }; + id=338; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH4"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=335; + item1=5; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=336; + item1=5; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=337; + item1=5; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=338; + item1=5; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=334; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH4 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item168 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={516.71497,5.0014391,1249.3047}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH5_P"; + description="NATO Transport Helo 5 Pilot"; + isPlayable=1; + }; + id=340; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={516.71497,5.0014391,1249.3047}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH5_CP"; + description="NATO Transport Helo 5 Co-Pilot"; + isPlayable=1; + }; + id=341; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={516.71497,5.0014391,1249.3047}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH5_G1"; + description="NATO Transport Helo 5 Crew Chief (Repair)"; + isPlayable=1; + }; + id=342; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={516.71497,5.0014391,1249.3047}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH5_G2"; + description="NATO Transport Helo 5 Gunner"; + isPlayable=1; + }; + id=343; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH5"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=340; + item1=6; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=341; + item1=6; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=342; + item1=6; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=343; + item1=6; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=339; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH5 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item169 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={516.78723,5.0014391,1221.2979}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH6_P"; + description="NATO Transport Helo 6 Pilot"; + isPlayable=1; + }; + id=345; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={516.78723,5.0014391,1221.2979}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH6_CP"; + description="NATO Transport Helo 6 Co-Pilot"; + isPlayable=1; + }; + id=346; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={516.78723,5.0014391,1221.2979}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH6_G1"; + description="NATO Transport Helo 6 Crew Chief (Repair)"; + isPlayable=1; + }; + id=347; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={516.78723,5.0014391,1221.2979}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH6_G2"; + description="NATO Transport Helo 6 Gunner"; + isPlayable=1; + }; + id=348; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH6"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=345; + item1=7; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=346; + item1=7; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=347; + item1=7; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=348; + item1=7; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=344; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH6 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item170 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={562.33704,5.0014391,1249.8828}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH7_P"; + description="NATO Transport Helo 7 Pilot"; + isPlayable=1; + }; + id=350; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={562.33704,5.0014391,1249.8828}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH7_CP"; + description="NATO Transport Helo 7 Co-Pilot"; + isPlayable=1; + }; + id=351; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={562.33704,5.0014391,1249.8828}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH7_G1"; + description="NATO Transport Helo 7 Crew Chief (Repair)"; + isPlayable=1; + }; + id=352; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={562.33704,5.0014391,1249.8828}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH7_G2"; + description="NATO Transport Helo 7 Gunner"; + isPlayable=1; + }; + id=353; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH7"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=350; + item1=8; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=351; + item1=8; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=352; + item1=8; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=353; + item1=8; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=349; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH7 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item171 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={563.22864,5.0014391,1222.377}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH8_P"; + description="NATO Transport Helo 8 Pilot"; + isPlayable=1; + }; + id=355; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={563.22864,5.0014391,1222.377}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH8_CP"; + description="NATO Transport Helo 8 Co-Pilot"; + isPlayable=1; + }; + id=356; + type="B_Helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={563.22864,5.0014391,1222.377}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH8_G1"; + description="NATO Transport Helo 8 Crew Chief (Repair)"; + isPlayable=1; + }; + id=357; + type="B_helicrew_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={563.22864,5.0014391,1222.377}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitNATO_TH8_G2"; + description="NATO Transport Helo 8 Gunner"; + isPlayable=1; + }; + id=358; + type="B_helicrew_F"; + }; + }; + class Attributes + { + name="GrpNATO_TH8"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=355; + item1=9; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=356; + item1=9; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=357; + item1=9; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=358; + item1=9; + class CustomData + { + role=2; + turretPath[]={2}; + }; + }; + }; + }; + id=354; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO TH8 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item172 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={431.90445,5.0014391,1193.7559}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitNATO_AH1_P"; + description="NATO Attack Helo 1 Pilot"; + isPlayable=1; + }; + id=360; + type="B_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={431.90445,5.0014391,1193.7559}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitNATO_AH1_CP"; + description="NATO Attack Helo 1 Gunner (Repair)"; + isPlayable=1; + }; + id=361; + type="B_Helipilot_F"; + }; + }; + class Attributes + { + name="GrpNATO_AH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=360; + item1=14; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=361; + item1=14; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=359; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO AH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item173 + { + dataType="Group"; + side="East"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2379.9329,5.0014391,1377.0327}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="COLONEL"; + lock="UNLOCKED"; + init="[""co"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CO"; + description="CSAT Commander"; + isPlayable=1; + }; + id=368; + type="O_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2384.9329,5.0014391,1375.3823}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CO_JTAC"; + description="CSAT JTAC"; + isPlayable=1; + }; + id=369; + type="O_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2374.9329,5.0014391,1375.3823}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CO_UAV"; + description="CSAT UAV Operator"; + isPlayable=1; + }; + id=370; + type="O_soldier_UAV_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2389.9329,5.0014391,1372.6421}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CO_M"; + description="CSAT Medic"; + isPlayable=1; + }; + id=371; + type="O_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_CO"; + }; + id=367; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item174 + { + dataType="Group"; + side="East"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.3215,5.0014391,1352.3208}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="MAJOR"; + lock="UNLOCKED"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_DC"; + description="CSAT Deputy Commander"; + isPlayable=1; + }; + id=373; + type="O_officer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2386.3215,5.0014391,1350.6694}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitCSAT_DC_JTAC"; + description="CSAT JTAC"; + isPlayable=1; + }; + id=374; + type="O_officer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2376.3215,5.0014391,1350.6694}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitCSAT_DC_UAV"; + description="CSAT UAV Operator"; + isPlayable=1; + }; + id=375; + type="O_soldier_UAV_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2391.3215,5.0014391,1347.9312}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitCSAT_DC_M"; + description="CSAT Medic"; + isPlayable=1; + }; + id=376; + type="O_medic_F"; + }; + }; + class Attributes + { + name="GrpCSAT_DC"; + }; + id=372; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item175 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.1594,5.0014391,1301.3689}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_COV_C"; + description="CSAT Command Vehicle Commander"; + isPlayable=1; + }; + id=378; + type="O_crew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.1594,5.0014391,1301.3689}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_COV_G"; + description="CSAT Command Vehicle Gunner"; + isPlayable=1; + }; + id=379; + type="O_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.1594,5.0014391,1301.3689}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitCSAT_COV_D"; + description="CSAT Command Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=380; + type="O_crew_F"; + }; + }; + class Attributes + { + name="GrpCSAT_COV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=378; + item1=25; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=379; + item1=25; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=380; + item1=25; + class CustomData + { + role=1; + }; + }; + }; + }; + id=377; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT COV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item176 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2423.9153,5.0014391,1376.146}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + lock="UNLOCKED"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_ASL_SL"; + description="CSAT Alpha Squad Leader"; + isPlayable=1; + }; + id=382; + type="O_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2428.9153,5.0014391,1374.4956}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitCSAT_ASL_M"; + description="CSAT Alpha Medic"; + isPlayable=1; + }; + id=383; + type="O_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_ASL"; + }; + id=381; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item177 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2424.97,5.0014391,1350.8052}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + lock="UNLOCKED"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A1_FTL"; + description="CSAT Alpha 1 Fire Team Leader"; + isPlayable=1; + }; + id=385; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2429.97,5.0014391,1349.1548}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A1_AR1"; + description="CSAT Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=386; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2419.97,5.0014391,1349.1548}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A1_AR2"; + description="CSAT Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=387; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2434.97,5.0014391,1346.4155}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A1_AT"; + description="CSAT Alpha 1 Assaultman (AT)"; + isPlayable=1; + }; + id=388; + type="O_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2414.97,5.0014391,1346.4155}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A1_R1"; + description="CSAT Alpha 1 Rifleman"; + isPlayable=1; + }; + id=389; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2439.97,5.0014391,1341.8687}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A1_R2"; + description="CSAT Alpha 1 Rifleman"; + isPlayable=1; + }; + id=390; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_A1"; + }; + id=384; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item178 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2425.2102,5.0014391,1324.6548}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + lock="UNLOCKED"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A2_FTL"; + description="CSAT Alpha 2 Fire Team Leader"; + isPlayable=1; + }; + id=392; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2430.2102,5.0014391,1323.0046}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A2_AR1"; + description="CSAT Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=393; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2420.2102,5.0014391,1323.0046}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A2_AR2"; + description="CSAT Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=394; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2435.2102,5.0014391,1320.2654}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A2_AT"; + description="CSAT Alpha 2 Assaultman (AT)"; + isPlayable=1; + }; + id=395; + type="O_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2415.2102,5.0014391,1320.2654}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A2_R1"; + description="CSAT Alpha 2 Rifleman"; + isPlayable=1; + }; + id=396; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2440.2102,5.0014391,1315.7175}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_A2_R2"; + description="CSAT Alpha 2 Rifleman"; + isPlayable=1; + }; + id=397; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_A2"; + }; + id=391; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item179 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2423.8577,5.0014391,1301.1443}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_AV_C"; + description="CSAT Alpha Vehicle Commander"; + isPlayable=1; + }; + id=399; + type="O_crew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2423.8577,5.0014391,1301.1443}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_AV_G"; + description="CSAT Alpha Vehicle Gunner"; + isPlayable=1; + }; + id=400; + type="O_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2423.8577,5.0014391,1301.1443}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitCSAT_AV_D"; + description="CSAT Alpha Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=401; + type="O_crew_F"; + }; + }; + class Attributes + { + name="GrpCSAT_AV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=399; + item1=26; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=400; + item1=26; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=401; + item1=26; + class CustomData + { + role=1; + }; + }; + }; + }; + id=398; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT AV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item180 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2475.7698,5.0014391,1376.0884}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + lock="UNLOCKED"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_BSL_SL"; + description="CSAT Bravo Squad Leader"; + isPlayable=1; + }; + id=403; + type="O_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2480.7698,5.0014391,1374.438}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitCSAT_BSL_M"; + description="CSAT Bravo Medic"; + isPlayable=1; + }; + id=404; + type="O_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_BSL"; + }; + id=402; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item181 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2476.9465,5.0014391,1350.1851}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + lock="UNLOCKED"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B1_FTL"; + description="CSAT Bravo 1 Fire Team Leader"; + isPlayable=1; + }; + id=406; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2481.9465,5.0014391,1348.5347}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B1_AR1"; + description="CSAT Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=407; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2471.9465,5.0014391,1348.5347}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B1_AR2"; + description="CSAT Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=408; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2486.9465,5.0014391,1345.7944}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B1_AT"; + description="CSAT Bravo 1 Assaultman (AT)"; + isPlayable=1; + }; + id=409; + type="O_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2466.9465,5.0014391,1345.7944}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B1_R1"; + description="CSAT Bravo 1 Rifleman"; + isPlayable=1; + }; + id=410; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2491.9465,5.0014391,1341.2485}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B1_R2"; + description="CSAT Bravo 1 Rifleman"; + isPlayable=1; + }; + id=411; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_B1"; + }; + id=405; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item182 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2476.4866,5.0014391,1323.9839}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + lock="UNLOCKED"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B2_FTL"; + description="CSAT Bravo 2 Fire Team Leader"; + isPlayable=1; + }; + id=413; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2481.4866,5.0014391,1322.3337}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B2_AR1"; + description="CSAT Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=414; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2471.4866,5.0014391,1322.3337}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B2_AR2"; + description="CSAT Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=415; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2486.4866,5.0014391,1319.5945}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B2_AT"; + description="CSAT Bravo 2 Assaultman (AT)"; + isPlayable=1; + }; + id=416; + type="O_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2466.4866,5.0014391,1319.5945}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B2_R1"; + description="CSAT Bravo 2 Rifleman"; + isPlayable=1; + }; + id=417; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2491.4866,5.0014391,1315.0476}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_B2_R2"; + description="CSAT Bravo 2 Rifleman"; + isPlayable=1; + }; + id=418; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_B2"; + }; + id=412; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item183 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2475.9973,5.0014391,1300.3562}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_BV_C"; + description="CSAT Bravo Vehicle Commander"; + isPlayable=1; + }; + id=420; + type="O_crew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2475.9973,5.0014391,1300.3562}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_BV_G"; + description="CSAT Bravo Vehicle Gunner"; + isPlayable=1; + }; + id=421; + type="O_crew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2475.9973,5.0014391,1300.3562}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitCSAT_BV_D"; + description="CSAT Bravo Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=422; + type="O_crew_F"; + }; + }; + class Attributes + { + name="GrpCSAT_BV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=420; + item1=27; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=421; + item1=27; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=422; + item1=27; + class CustomData + { + role=1; + }; + }; + }; + }; + id=419; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT BV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item184 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.0129,5.0014391,1376.1772}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + lock="UNLOCKED"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CSL_SL"; + description="CSAT Charlie Squad Leader"; + isPlayable=1; + }; + id=424; + type="O_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2534.0129,5.0014391,1374.5269}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CSL_M"; + description="CSAT Charlie Medic"; + isPlayable=1; + }; + id=425; + type="O_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_CSL"; + }; + id=423; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item185 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.8049,5.0014391,1350.1948}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + lock="UNLOCKED"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C1_FTL"; + description="CSAT Charlie 1 Fire Team Leader"; + isPlayable=1; + }; + id=427; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2534.8049,5.0014391,1348.5444}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C1_AR1"; + description="CSAT Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=428; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2524.8049,5.0014391,1348.5444}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C1_AR2"; + description="CSAT Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=429; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2539.8049,5.0014391,1345.8052}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C1_AT"; + description="CSAT Charlie 1 Assaultman (AT)"; + isPlayable=1; + }; + id=430; + type="O_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2519.8049,5.0014391,1345.8052}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C1_R1"; + description="CSAT Charlie 1 Rifleman"; + isPlayable=1; + }; + id=431; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2544.8049,5.0014391,1341.2583}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C1_R2"; + description="CSAT Charlie 1 Rifleman"; + isPlayable=1; + }; + id=432; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_C1"; + }; + id=426; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item186 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.5588,5.0014391,1324.356}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + lock="UNLOCKED"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C2_FTL"; + description="CSAT Charlie 2 Fire Team Leader"; + isPlayable=1; + }; + id=434; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2534.5588,5.0014391,1322.7058}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C2_AR1"; + description="CSAT Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=435; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2524.5588,5.0014391,1322.7058}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + lock="UNLOCKED"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C2_AR2"; + description="CSAT Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=436; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2539.5588,5.0014391,1319.9666}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C2_AT"; + description="CSAT Charlie 2 Assaultman (AT)"; + isPlayable=1; + }; + id=437; + type="O_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2519.5588,5.0014391,1319.9666}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C2_R1"; + description="CSAT Charlie 2 Rifleman"; + isPlayable=1; + }; + id=438; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2544.5588,5.0014391,1315.4197}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitCSAT_C2_R2"; + description="CSAT Charlie 2 Rifleman"; + isPlayable=1; + }; + id=439; + type="O_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_C2"; + }; + id=433; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item187 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.1165,5.0014391,1300.1658}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CV_C"; + description="CSAT Charlie Vehicle Commander"; + isPlayable=1; + }; + id=441; + type="O_crew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.1165,5.0014391,1300.1658}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CV_G"; + description="CSAT Charlie Vehicle Gunner"; + isPlayable=1; + }; + id=442; + type="O_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2529.1165,5.0014391,1300.1658}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CV_D"; + description="CSAT Charlie Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=443; + type="O_crew_F"; + }; + }; + class Attributes + { + name="GrpCSAT_CV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=441; + item1=28; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item1 + { + linkID=1; + item0=442; + item1=28; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=443; + item1=28; + class CustomData + { + role=1; + }; + }; + }; + }; + id=440; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT CV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item188 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.7317,5.0014391,1375.5728}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG1_AG"; + description="CSAT Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=445; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.7317,5.0014391,1373.9224}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG1_G"; + description="CSAT Medium MG Team 1 Gunner"; + isPlayable=1; + }; + id=446; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_MMG1"; + }; + id=444; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item189 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.9475,5.0014391,1361.355}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG2_AG"; + description="CSAT Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=448; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.9475,5.0014391,1359.7046}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + lock="UNLOCKED"; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG2_G"; + description="CSAT Medium MG Team 2 Gunner"; + isPlayable=1; + }; + id=449; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_MMG2"; + }; + id=447; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item190 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.6252,5.0014391,1349.7603}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MAT1_AG"; + description="CSAT Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=451; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.6252,5.0014391,1348.1099}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MAT1_G"; + description="CSAT Medium AT Team 1 Gunner"; + isPlayable=1; + }; + id=452; + type="O_Soldier_AT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_MAT1"; + }; + id=450; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item191 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.1155,5.0014391,1336.8003}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_MAT2_AG"; + description="CSAT Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=454; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2601.1155,5.0014391,1335.1499}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MAT2_G"; + description="CSAT Medium AT Team 2 Gunner"; + isPlayable=1; + }; + id=455; + type="O_Soldier_AT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_MAT2"; + }; + id=453; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item192 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.8782,5.0014391,1324.9253}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hmgag"",this] call f_fnc_assignGear;"; + name="UnitCSAT_HMG1_AG"; + description="CSAT Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=457; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.8782,5.0014391,1323.2751}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hmgg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_HMG1_G"; + description="CSAT Heavy MG Team 1 Gunner"; + isPlayable=1; + }; + id=458; + type="O_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_HMG1"; + }; + id=456; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item193 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.6624,5.0014391,1312.0134}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_HAT1_AG"; + description="CSAT Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=460; + type="O_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.6624,5.0014391,1310.363}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hatg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_HAT1_G"; + description="CSAT Heavy AT Team 1 Gunner"; + isPlayable=1; + }; + id=461; + type="O_Soldier_AT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_HAT1"; + }; + id=459; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item194 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.7024,5.0014391,1300.0876}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mtrag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_MTR1_AG"; + description="CSAT Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=463; + type="O_support_AMort_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.7024,5.0014391,1298.4373}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mtrg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MTR1_G"; + description="CSAT Mortar Team 1 Gunner"; + isPlayable=1; + }; + id=464; + type="O_support_Mort_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_MTR1"; + }; + id=462; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item195 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.1624,5.0014391,1288.1716}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_MSAM1_AG"; + description="CSAT Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=466; + type="O_Soldier_AAA_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2601.1624,5.0014391,1286.5212}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""msamg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MSAM1_G"; + description="CSAT Medium SAM Team 1 Gunner"; + isPlayable=1; + }; + id=467; + type="O_Soldier_AA_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_MSAM1"; + }; + id=465; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item196 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.0227,5.0014391,1274.8455}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hsamag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_HSAM1_AG"; + description="CSAT Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=469; + type="O_Soldier_AAA_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2601.0227,5.0014391,1273.196}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hsamg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_HSAM1_G"; + description="CSAT Heavy SAM Team 1 Gunner"; + isPlayable=1; + }; + id=470; + type="O_Soldier_AA_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_HSAM1"; + }; + id=468; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item197 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.8958,5.0014391,1263.8103}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""sp"",this] call f_fnc_assignGear; "; + name="UnitCSAT_ST1_SP"; + description="CSAT Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=472; + type="O_spotter_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.8958,5.0014391,1262.1599}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""sn"",this] call f_fnc_assignGear;"; + name="UnitCSAT_ST1_SN"; + description="CSAT Sniper Team 1 Sniper"; + isPlayable=1; + }; + id=473; + type="O_sniper_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_ST1"; + }; + id=471; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item198 + { + dataType="Group"; + side="East"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.345,5.0014391,1251.0388}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitCSAT_ENG1_FTL"; + description="CSAT Engineer Team 1 Leader (Demo)"; + isPlayable=1; + }; + id=475; + type="O_engineer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2601.345,5.0014391,1249.3884}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitCSAT_ENG1_A1"; + description="CSAT Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + }; + id=476; + type="O_engineer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.345,5.0014391,1249.3884}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitCSAT_ENG1_A2"; + description="CSAT Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=477; + type="O_engineer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2606.345,5.0014391,1246.6492}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitCSAT_ENG1_A3"; + description="CSAT Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=478; + type="O_engineer_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_ENG1"; + }; + id=474; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item199 + { + dataType="Group"; + side="East"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2595.7639,5.0014391,1237.9285}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitCSAT_DT1_TL"; + description="CSAT Diver Team 1 Team Leader"; + isPlayable=1; + }; + id=480; + type="O_diver_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2600.7639,5.0014391,1236.2791}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitCSAT_DT1_D1"; + description="CSAT Diver Team 1 Diver"; + isPlayable=1; + }; + id=481; + type="O_diver_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2590.7639,5.0014391,1236.2791}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitCSAT_DT1_D2"; + description="CSAT Diver Team 1 Diver"; + isPlayable=1; + }; + id=482; + type="O_diver_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2605.7639,5.0014391,1233.5398}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitCSAT_DT1_D3"; + description="CSAT Diver Team 1 Diver"; + isPlayable=1; + }; + id=483; + type="O_diver_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_DT1"; + }; + id=479; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT DT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item200 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.4866,5.0014391,1276.0164}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_IFV1_C"; + description="CSAT IFV 1 Commander"; + isPlayable=1; + }; + id=485; + type="O_crew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.4866,5.0014391,1276.0164}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_IFV1_G"; + description="CSAT IFV 1 Gunner"; + isPlayable=1; + }; + id=486; + type="O_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2381.4866,5.0014391,1276.0164}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitCSAT_IFV1_D"; + description="CSAT IFV 1 Driver (Repair)"; + isPlayable=1; + }; + id=487; + type="O_crew_F"; + }; + }; + class Attributes + { + name="GrpCSAT_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=485; + item1=77; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=486; + item1=77; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=487; + item1=77; + class CustomData + { + role=1; + }; + }; + }; + }; + id=484; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT IFV1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item201 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2426.5959,5.0014391,1276.3611}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_IFV2_C"; + description="CSAT IFV 2 Commander"; + isPlayable=1; + }; + id=489; + type="O_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2426.5959,5.0014391,1276.3611}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_IFV2_G"; + description="CSAT IFV2 Gunner"; + isPlayable=1; + }; + id=490; + type="O_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2426.5959,5.0014391,1276.3611}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitCSAT_IFV2_D"; + description="CSAT IFV 2 Driver (Repair)"; + isPlayable=1; + }; + id=491; + type="O_crew_F"; + }; + }; + class Attributes + { + name="GrpCSAT_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=489; + item1=78; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=490; + item1=78; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=491; + item1=78; + class CustomData + { + role=1; + }; + }; + }; + }; + id=488; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT IFV2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item202 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2477.0383,5.0014391,1274.8718}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TNK1_C"; + description="CSAT Tank 1 Commander"; + isPlayable=1; + }; + id=493; + type="O_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2477.0383,5.0014391,1274.8718}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TNK1_G"; + description="CSAT Tank 1 Gunner"; + isPlayable=1; + }; + id=494; + type="O_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2477.0383,5.0014391,1274.8718}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TNK1_D"; + description="CSAT Tank 1 Driver (Repair)"; + isPlayable=1; + }; + id=495; + type="O_crew_F"; + }; + }; + class Attributes + { + name="GrpCSAT_TNK1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=493; + item1=35; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=494; + item1=35; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=495; + item1=35; + class CustomData + { + role=1; + }; + }; + }; + }; + id=492; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TNK1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item203 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2379.1594,5.0014391,1254.6062}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH1_P"; + description="CSAT Transport Helo 1 Pilot"; + isPlayable=1; + }; + id=497; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2379.1594,5.0014391,1254.6062}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH1_CP"; + description="CSAT Transport Helo 1 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=498; + type="O_helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2379.1594,5.0014391,1254.6062}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH1_LM"; + description="CSAT Transport Helo 1 Loadmaster"; + isPlayable=1; + }; + id=499; + type="O_helicrew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=497; + item1=1; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=498; + item1=1; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=499; + item1=1; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + }; + }; + id=496; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item204 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2380.8411,5.0014391,1224.6824}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH2_P"; + description="CSAT Transport Helo 2 Pilot"; + isPlayable=1; + }; + id=501; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2380.8411,5.0014391,1224.6824}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH2_CP"; + description="CSAT Transport Helo 2 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=502; + type="O_helipilot_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2380.8411,5.0014391,1224.6824}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH2_LM"; + description="CSAT Transport Helo 2 Loadmaster"; + isPlayable=1; + }; + id=503; + type="O_helicrew_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpCSAT_TH2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=501; + item1=18; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=502; + item1=18; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=503; + item1=18; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + }; + }; + id=500; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item205 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2429.5403,5.0014391,1253.7297}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH3_P"; + description="CSAT Transport Helo 3 Pilot"; + isPlayable=1; + }; + id=505; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2429.5403,5.0014391,1253.7297}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH3_CP"; + description="CSAT Transport Helo 3 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=506; + type="O_helipilot_F"; + }; + }; + class Attributes + { + name="GrpCSAT_TH3"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=505; + item1=19; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=506; + item1=19; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=504; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH3 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item206 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2426.9114,5.0014391,1224.01}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH4_P"; + description="CSAT Transport Helo 4 Pilot"; + isPlayable=1; + }; + id=508; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2426.9114,5.0014391,1224.01}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH4_CP"; + description="CSAT Transport Helo 4 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=509; + type="O_helipilot_F"; + }; + }; + class Attributes + { + name="GrpCSAT_TH4"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=508; + item1=20; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=509; + item1=20; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=507; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH4 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item207 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2480.3333,5.0014391,1253.3899}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH5_P"; + description="CSAT Transport Helo 5 Pilot"; + isPlayable=1; + }; + id=511; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2480.3333,5.0014391,1253.3899}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH5_CP"; + description="CSAT Transport Helo 5 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=512; + type="O_helipilot_F"; + }; + }; + class Attributes + { + name="GrpCSAT_TH5"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=511; + item1=21; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=512; + item1=21; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=510; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH5 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item208 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2477.6995,5.0014391,1223.6653}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH6_P"; + description="CSAT Transport Helo 6 Pilot"; + isPlayable=1; + }; + id=514; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2477.6995,5.0014391,1223.6653}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH6_CP"; + description="CSAT Transport Helo 6 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=515; + type="O_helipilot_F"; + }; + }; + class Attributes + { + name="GrpCSAT_TH6"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=514; + item1=22; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=515; + item1=22; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=513; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH6 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item209 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2534.553,5.0014391,1253.7854}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH7_P"; + description="CSAT Transport Helo 7 Pilot"; + isPlayable=1; + }; + id=517; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2534.553,5.0014391,1253.7854}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH7_CP"; + description="CSAT Transport Helo 7 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=518; + type="O_helipilot_F"; + }; + }; + class Attributes + { + name="GrpCSAT_TH7"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=517; + item1=23; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=518; + item1=23; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=516; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH7 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item210 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2531.9211,5.0014391,1224.0647}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH8_P"; + description="CSAT Transport Helo 8 Pilot"; + isPlayable=1; + }; + id=520; + type="O_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2531.9211,5.0014391,1224.0647}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_TH8_CP"; + description="CSAT Transport Helo 8 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=521; + type="O_helipilot_F"; + }; + }; + class Attributes + { + name="GrpCSAT_TH8"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=520; + item1=24; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=521; + item1=24; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=519; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT TH8 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item211 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2382.634,5.0014391,1193.7566}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_AH1_P"; + description="CSAT Attack Helo 1 Pilot"; + isPlayable=1; + }; + id=523; + type="O_helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2382.634,5.0014391,1193.7566}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitCSAT_AH1_CP"; + description="CSAT Attack Helo 1 Gunner (Repair)"; + isPlayable=1; + }; + id=524; + type="O_helipilot_F"; + }; + }; + class Attributes + { + name="GrpCSAT_AH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=523; + item1=29; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=524; + item1=29; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=522; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT AH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item212 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.1733,5.0014391,765.03137}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="COLONEL"; + init="[""co"",this] call f_fnc_assignGear;"; + name="UnitAAF_CO"; + description="AAF Commander"; + isPlayable=1; + }; + id=531; + type="I_officer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1414.1733,5.0014391,763.38098}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitAAF_CO_JTAC"; + description="AAF Forward Observer"; + isPlayable=1; + }; + id=532; + type="I_officer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1404.1733,5.0014391,763.38098}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitAAF_CO_UAV"; + description="AAF UAV Operator"; + isPlayable=1; + }; + id=533; + type="I_soldier_UAV_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1419.1733,5.0014391,760.64172}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitAAF_CO_M"; + description="AAF Medic"; + isPlayable=1; + }; + id=534; + type="I_medic_F"; + }; + }; + class Attributes + { + name="GrpAAF_CO"; + }; + id=530; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item213 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.4722,5.0014391,735.45129}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="MAJOR"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitAAF_DC"; + description="AAF Deputy Commander"; + isPlayable=1; + }; + id=536; + type="I_officer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1414.4722,5.0014391,733.8009}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitAAF_DC_JTAC"; + description="AAF Forward Observer"; + isPlayable=1; + }; + id=537; + type="I_officer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1404.4722,5.0014391,733.8009}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitAAF_DC_UAV"; + description="AAF UAV Operator"; + isPlayable=1; + }; + id=538; + type="I_soldier_UAV_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1419.4722,5.0014391,731.06165}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitAAF_DC_M"; + description="AAF Medic"; + isPlayable=1; + }; + id=539; + type="I_medic_F"; + }; + }; + class Attributes + { + name="GrpAAF_DC"; + init="DC"; + }; + id=535; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item214 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1408.4087,5.0014391,675.29236}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitAAF_COV_C"; + description="AAF Command Vehicle Commander"; + isPlayable=1; + }; + id=541; + type="I_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1408.4087,5.0014391,675.29236}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitAAF_COV_G"; + description="AAF Command Vehicle Gunner"; + isPlayable=1; + }; + id=542; + type="I_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1408.4087,5.0014391,675.29236}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitAAF_COV_D"; + description="AAF Command Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=543; + type="I_crew_F"; + }; + }; + class Attributes + { + name="GrpAAF_COV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=541; + item1=31; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=542; + item1=31; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=543; + item1=31; + class CustomData + { + role=1; + }; + }; + }; + }; + id=540; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF COV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item215 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1450.0649,5.0014391,763.6593}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitAAF_ASL_SL"; + description="AAF Alpha Squad Leader"; + isPlayable=1; + }; + id=545; + type="I_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1455.0649,5.0014391,762.00891}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitAAF_ASL_M"; + description="AAF Alpha Medic"; + isPlayable=1; + }; + id=546; + type="I_medic_F"; + }; + }; + class Attributes + { + name="GrpAAF_ASL"; + }; + id=544; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item216 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.0005,5.0014391,736.37317}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitAAF_A1_FTL"; + description="AAF Alpha 1 Fire Team Leader"; + isPlayable=1; + }; + id=548; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1456.0005,5.0014391,734.72278}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A1_AR1"; + description="AAF Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=549; + type="I_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1446.0005,5.0014391,734.72278}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A1_AR2"; + description="AAF Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=550; + type="I_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1461.0005,5.0014391,731.9845}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitAAF_A1_AT"; + description="AAF Alpha 1 Assaultman (AT)"; + isPlayable=1; + }; + id=551; + type="I_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1441.0005,5.0014391,731.9845}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A1_R1"; + description="AAF Alpha 1 Rifleman"; + isPlayable=1; + }; + id=552; + type="I_soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1466.0005,5.0014391,727.43665}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A1_R2"; + description="AAF Alpha 1 Rifleman"; + isPlayable=1; + }; + id=553; + type="I_soldier_F"; + }; + }; + class Attributes + { + name="GrpAAF_A1"; + }; + id=547; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item217 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1450.7368,5.0014391,710.55286}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitAAF_A2_FTL"; + description="AAF Alpha 2 Fire Team Leader"; + isPlayable=1; + }; + id=555; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1455.7368,5.0014391,708.90247}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A2_AR1"; + description="AAF Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=556; + type="I_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1445.7368,5.0014391,708.90247}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A2_AR2"; + description="AAF Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=557; + type="I_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1460.7368,5.0014391,706.16321}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitAAF_A2_AT"; + description="AAF Alpha 2 Assaultman (AT)"; + isPlayable=1; + }; + id=558; + type="I_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1440.7368,5.0014391,706.16321}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A2_R1"; + description="AAF Alpha 2 Rifleman"; + isPlayable=1; + }; + id=559; + type="I_soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1465.7368,5.0014391,701.61731}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_A2_R2"; + description="AAF Alpha 2 Rifleman"; + isPlayable=1; + }; + id=560; + type="I_soldier_F"; + }; + }; + class Attributes + { + name="GrpAAF_A2"; + }; + id=554; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item218 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1453.1089,5.0014391,674.15173}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitAAF_AV_C"; + description="AAF Alpha Vehicle Commander"; + isPlayable=1; + }; + id=562; + type="I_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1453.1089,5.0014391,674.15173}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitAAF_AV_G"; + description="AAF Alpha Vehicle Gunner"; + isPlayable=1; + }; + id=563; + type="I_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1453.1089,5.0014391,674.15173}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitAAF_AV_D"; + description="AAF Alpha Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=564; + type="I_crew_F"; + }; + }; + class Attributes + { + name="GrpAAF_AV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=562; + item1=32; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=563; + item1=32; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=564; + item1=32; + class CustomData + { + role=1; + }; + }; + }; + }; + id=561; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF AV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item219 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.1655,5.0014391,763.75696}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitAAF_BSL_SL"; + description="AAF Bravo Squad Leader"; + isPlayable=1; + }; + id=566; + type="I_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1498.1655,5.0014391,762.10657}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitAAF_BSL_M"; + description="AAF Bravo Medic"; + isPlayable=1; + }; + id=567; + type="I_medic_F"; + }; + }; + class Attributes + { + name="GrpAAF_BSL"; + }; + id=565; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item220 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.4175,5.0014391,736.32141}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitAAF_B1_FTL"; + description="AAF Bravo 1 Fire Team Leader"; + isPlayable=1; + }; + id=569; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1498.4175,5.0014391,734.67102}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B1_AR1"; + description="AAF Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=570; + type="I_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1488.4175,5.0014391,734.67102}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B1_AR2"; + description="AAF Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=571; + type="I_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1503.4175,5.0014391,731.93176}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitAAF_B1_AT"; + description="AAF Bravo 1 Assaultman (AT)"; + isPlayable=1; + }; + id=572; + type="I_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1483.4175,5.0014391,731.93176}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B1_R1"; + description="AAF Bravo 1 Rifleman"; + isPlayable=1; + }; + id=573; + type="I_soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1508.4175,5.0014391,727.38489}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B1_R2"; + description="AAF Bravo 1 Rifleman"; + isPlayable=1; + }; + id=574; + type="I_soldier_F"; + }; + }; + class Attributes + { + name="GrpAAF_B1"; + }; + id=568; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item221 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.1011,5.0014391,710.02844}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitAAF_B2_FTL"; + description="AAF Bravo 2 Fire Team Leader"; + isPlayable=1; + }; + id=576; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1498.1011,5.0014391,708.37903}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B2_AR1"; + description="AAF Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=577; + type="I_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1488.1011,5.0014391,708.37903}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B2_AR2"; + description="AAF Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=578; + type="I_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1503.1011,5.0014391,705.63879}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitAAF_B2_AT"; + description="AAF Bravo 2 Assaultman (AT)"; + isPlayable=1; + }; + id=579; + type="I_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1483.1011,5.0014391,705.63879}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B2_R1"; + description="AAF Bravo 2 Rifleman"; + isPlayable=1; + }; + id=580; + type="I_soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1508.1011,5.0014391,701.09192}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_B2_R2"; + description="AAF Bravo 2 Rifleman"; + isPlayable=1; + }; + id=581; + type="I_soldier_F"; + }; + }; + class Attributes + { + name="GrpAAF_B2"; + }; + id=575; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item222 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9253,5.0014391,674.21716}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitAAF_BV_C"; + description="AAF Bravo Vehicle Commander"; + isPlayable=1; + }; + id=583; + type="I_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9253,5.0014391,674.21716}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitAAF_BV_G"; + description="AAF Bravo Vehicle Gunner"; + isPlayable=1; + }; + id=584; + type="I_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9253,5.0014391,674.21716}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitAAF_BV_D"; + description="AAF Bravo Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=585; + type="I_crew_F"; + }; + }; + class Attributes + { + name="GrpAAF_BV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=583; + item1=33; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=584; + item1=33; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=585; + item1=33; + class CustomData + { + role=1; + }; + }; + }; + }; + id=582; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF BV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item223 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.0054,5.0014391,763.23743}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitAAF_CSL_SL"; + description="AAF Charlie Squad Leader"; + isPlayable=1; + }; + id=587; + type="I_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1541.0054,5.0014391,761.58704}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitAAF_CSL_M"; + description="AAF Charlie Medic"; + isPlayable=1; + }; + id=588; + type="I_medic_F"; + }; + }; + class Attributes + { + name="GrpAAF_CSL"; + }; + id=586; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item224 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.6616,5.0014391,734.91907}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitAAF_C1_FTL"; + description="AAF Charlie 1 Fire Team Leader"; + isPlayable=1; + }; + id=590; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1541.6616,5.0014391,733.26868}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C1_AR1"; + description="AAF Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=591; + type="I_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.6616,5.0014391,733.26868}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C1_AR2"; + description="AAF Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=592; + type="I_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1546.6616,5.0014391,730.52942}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitAAF_C1_AT"; + description="AAF Charlie 1 Assaultman (AT)"; + isPlayable=1; + }; + id=593; + type="I_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1526.6616,5.0014391,730.52942}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C1_R1"; + description="AAF Charlie 1 Rifleman"; + isPlayable=1; + }; + id=594; + type="I_soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1551.6616,5.0014391,725.98254}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C1_R2"; + description="AAF Charlie 1 Rifleman"; + isPlayable=1; + }; + id=595; + type="I_soldier_F"; + }; + }; + class Attributes + { + name="GrpAAF_C1"; + }; + id=589; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item225 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.3423,5.0014391,709.98157}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitAAF_C2_FTL"; + description="AAF Charlie 2 Fire Team Leader"; + isPlayable=1; + }; + id=597; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1541.3423,5.0014391,708.3302}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C2_AR1"; + description="AAF Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=598; + type="I_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.3423,5.0014391,708.3302}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C2_AR2"; + description="AAF Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=599; + type="I_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1546.3423,5.0014391,705.59192}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitAAF_C2_AT"; + description="AAF Charlie 2 Assaultman (AT)"; + isPlayable=1; + }; + id=600; + type="I_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1526.3423,5.0014391,705.59192}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C2_R1"; + description="AAF Charlie 2 Rifleman"; + isPlayable=1; + }; + id=601; + type="I_soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1551.3423,5.0014391,701.04504}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitAAF_C2_R2"; + description="AAF Charlie 2 Rifleman"; + isPlayable=1; + }; + id=602; + type="I_soldier_F"; + }; + }; + class Attributes + { + name="GrpAAF_C2"; + }; + id=596; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item226 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1535.4771,5.0014391,674.50134}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitAAF_CV_C"; + description="AAF Charlie Vehicle Commander"; + isPlayable=1; + }; + id=604; + type="I_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1535.4771,5.0014391,674.50134}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitAAF_CV_G"; + description="AAF Charlie Vehicle Gunner"; + isPlayable=1; + }; + id=605; + type="I_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1535.4771,5.0014391,674.50134}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitAAF_CV_D"; + description="AAF Charlie Vehicle Driver (Repair)"; + isPlayable=1; + }; + id=606; + type="I_crew_F"; + }; + }; + class Attributes + { + name="GrpAAF_CV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=604; + item1=34; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=605; + item1=34; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=606; + item1=34; + class CustomData + { + role=1; + }; + }; + }; + }; + id=603; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF CV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item227 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.4077,5.0014391,761.87903}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG1_AG"; + description="AAF Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=608; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.4077,5.0014391,760.22864}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG1_G"; + description="AAF Medium MG Team 1 Gunner"; + isPlayable=1; + }; + id=609; + type="I_Soldier_AR_F"; + }; + }; + class Attributes + { + name="GrpAAF_MMG1"; + }; + id=607; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item228 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.4331,5.0014391,747.13684}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG2_AG"; + description="AAF Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=611; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.4331,5.0014391,745.48645}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG2_G"; + description="AAF Medium MG Team 2 Gunner"; + isPlayable=1; + }; + id=612; + type="I_Soldier_AR_F"; + }; + }; + class Attributes + { + name="GrpAAF_MMG2"; + }; + id=610; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item229 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.5386,5.0014391,733.86145}; + angles[]={0,0.030932644,0}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT1_AG"; + description="AAF Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=614; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.5386,5.0014391,732.21106}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT1_G"; + description="AAF Medium AT Team 1 Gunner"; + isPlayable=1; + }; + id=615; + type="I_Soldier_AT_F"; + }; + }; + class Attributes + { + name="GrpAAF_MAT1"; + }; + id=613; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item230 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.9575,5.0014391,722.32629}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT2_AG"; + description="AAF Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=617; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.9575,5.0014391,720.6759}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT2_G"; + description="AAF Medium AT Team 2 Gunner"; + isPlayable=1; + }; + id=618; + type="I_Soldier_AT_F"; + }; + }; + class Attributes + { + name="GrpAAF_MAT2"; + }; + id=616; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item231 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.9038,5.0014391,709.20618}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hmgag"",this] call f_fnc_assignGear; "; + name="UnitAAF_HMG1_AG"; + description="AAF Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=620; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.9038,5.0014391,707.55579}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hmgg"",this] call f_fnc_assignGear; "; + name="UnitAAF_HMG1_G"; + description="AAF Heavy MG Team 1 Gunner"; + isPlayable=1; + }; + id=621; + type="I_support_MG_F"; + }; + }; + class Attributes + { + name="GrpAAF_HMG1"; + }; + id=619; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item232 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.8901,5.0014391,697.82727}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitAAF_HAT1_AG"; + description="AAF Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=623; + type="I_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.8901,5.0014391,696.17688}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hatg"",this] call f_fnc_assignGear; "; + name="UnitAAF_HAT1_G"; + description="AAF Heavy AT Team 1 Gunner"; + isPlayable=1; + }; + id=624; + type="I_Soldier_AT_F"; + }; + }; + class Attributes + { + name="GrpAAF_HAT1"; + }; + id=622; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item233 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.8911,5.0014391,685.70813}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mtrag"",this] call f_fnc_assignGear; "; + name="UnitAAF_MTR1_AG"; + description="AAF Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=626; + type="I_support_AMort_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.8911,5.0014391,684.05774}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mtrg"",this] call f_fnc_assignGear; "; + name="UnitAAF_MTR1_G"; + description="AAF Mortar Team 1 Gunner"; + isPlayable=1; + }; + id=627; + type="I_support_Mort_F"; + }; + }; + class Attributes + { + name="GrpAAF_MTR1"; + }; + id=625; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item234 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.6802,5.0014391,673.71008}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitAAF_MSAM1_AG"; + description="AAF Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=629; + type="I_Soldier_AAA_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.6802,5.0014391,672.05969}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""msamg"",this] call f_fnc_assignGear; "; + name="UnitAAF_MSAM1_G"; + description="AAF Medium SAM Team 1 Gunner"; + isPlayable=1; + }; + id=630; + type="I_Soldier_AA_F"; + }; + }; + class Attributes + { + name="GrpAAF_MSAM1"; + }; + id=628; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item235 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1594.856,5.0014391,660.52844}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hsamag"",this] call f_fnc_assignGear; "; + name="UnitAAF_HSAM1_AG"; + description="AAF Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=632; + type="I_Soldier_AAA_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1599.856,5.0014391,658.87805}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hsamg"",this] call f_fnc_assignGear; "; + name="UnitAAF_HSAM1_G"; + description="AAF Heavy SAM Team 1 Gunner"; + isPlayable=1; + }; + id=633; + type="I_Soldier_AA_F"; + }; + }; + class Attributes + { + name="GrpAAF_HSAM1"; + }; + id=631; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item236 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1595.2114,5.0014391,649.46985}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""sp"",this] call f_fnc_assignGear; "; + name="UnitAAF_ST1_SP"; + description="AAF Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=635; + type="I_Spotter_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1600.2114,5.0014391,647.81946}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""sn"",this] call f_fnc_assignGear; "; + name="UnitAAF_ST1_SN"; + description="AAF Sniper Team 1 Sniper"; + isPlayable=1; + }; + id=636; + type="I_Sniper_F"; + }; + }; + class Attributes + { + name="GrpAAF_ST1"; + }; + id=634; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item237 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1595.6235,5.0014391,636.34192}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""eng"",this] call f_fnc_assignGear; "; + name="UnitAAF_ENG1_FTL"; + description="AAF Engineer Team 1 Leader (Demo)"; + isPlayable=1; + }; + id=638; + type="I_engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1600.6235,5.0014391,634.6925}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""eng"",this] call f_fnc_assignGear; "; + name="UnitAAF_ENG1_A1"; + description="AAF Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + }; + id=639; + type="I_engineer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1590.6235,5.0014391,634.6925}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear; "; + name="UnitAAF_ENG1_A2"; + description="AAF Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=640; + type="I_engineer_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1605.6235,5.0014391,631.95227}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear; "; + name="UnitAAF_ENG1_A3"; + description="AAF Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=641; + type="I_engineer_F"; + }; + }; + class Attributes + { + name="GrpAAF_ENG1"; + }; + id=637; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item238 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1596.231,5.0014391,623.49915}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitAAF_DT1_TL"; + description="AAF Diver Team 1 Team Leader"; + isPlayable=1; + }; + id=643; + type="I_diver_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1601.231,5.0014391,621.84875}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitAAF_DT1_D1"; + description="AAF Diver Team 1 Diver"; + isPlayable=1; + }; + id=644; + type="I_diver_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1591.231,5.0014391,621.84875}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitAAF_DT1_D2"; + description="AAF Diver Team 1 Diver"; + isPlayable=1; + }; + id=645; + type="I_diver_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1606.231,5.0014391,619.1095}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""div"",this] call f_fnc_assignGear "; + name="UnitAAF_DT1_D3"; + description="AAF Diver Team 1 Diver"; + isPlayable=1; + }; + id=646; + type="I_diver_F"; + }; + }; + class Attributes + { + name="GrpAAF_DT1"; + }; + id=642; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF DT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item239 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.1245,5.1983914,652.10193}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitAAF_IFV1_C"; + description="AAF IFV 1 Commander"; + isPlayable=1; + }; + id=648; + type="I_crew_F"; + atlOffset=0.19695234; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.1245,5.1983914,652.10193}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitAAF_IFV1_G"; + description="AAF IFV 1 Gunner"; + isPlayable=1; + }; + id=649; + type="I_crew_F"; + atlOffset=0.19695234; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.1245,5.1983914,652.10193}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitAAF_IFV1_D"; + description="AAF IFV 1 Driver (Repair)"; + isPlayable=1; + }; + id=650; + type="I_crew_F"; + atlOffset=0.19695234; + }; + }; + class Attributes + { + name="GrpAAF_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=648; + item1=81; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=649; + item1=81; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=650; + item1=81; + class CustomData + { + role=1; + }; + }; + }; + }; + id=647; + atlOffset=0.19695234; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF IFV1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item240 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.3257,5.0014391,649.75525}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitAAF_IFV2_C"; + description="AAF IFV 2 Commander"; + isPlayable=1; + }; + id=652; + type="I_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.3257,5.0014391,649.75525}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitAAF_IFV2_G"; + description="AAF IFV 2 Gunner"; + isPlayable=1; + }; + id=653; + type="I_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.3257,5.0014391,649.75525}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitAAF_IFV2_D"; + description="AAF IFV 2 Driver (Repair)"; + isPlayable=1; + }; + id=654; + type="I_crew_F"; + }; + }; + class Attributes + { + name="GrpAAF_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=652; + item1=82; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=653; + item1=82; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=654; + item1=82; + class CustomData + { + role=1; + }; + }; + }; + }; + id=651; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF IFV2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item241 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9966,5.0014391,650.44958}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitAAF_TNK1_C"; + description="AAF Tank 1 Commander"; + isPlayable=1; + }; + id=656; + type="I_crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9966,5.0014391,650.44958}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitAAF_TNK1_G"; + description="AAF Tank 1 Gunner"; + isPlayable=1; + }; + id=657; + type="I_crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1493.9966,5.0014391,650.44958}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitAAF_TNK1_D"; + description="AAF Tank 1 Driver (Repair)"; + isPlayable=1; + }; + id=658; + type="I_crew_F"; + }; + }; + class Attributes + { + name="GrpAAF_TNK1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=656; + item1=36; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=657; + item1=36; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=658; + item1=36; + class CustomData + { + role=1; + }; + }; + }; + }; + id=655; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF TNK1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item242 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.0298,5.0014391,617.91455}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH1_P"; + description="AAF Transport Helo 1 Pilot"; + isPlayable=1; + }; + id=660; + type="I_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.0298,5.0014391,617.91455}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH1_CP"; + description="AAF Transport Helo 1 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=661; + type="I_helipilot_F"; + }; + }; + class Attributes + { + name="GrpAAF_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=660; + item1=2; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=661; + item1=2; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=659; + atlOffset=-4.7683716e-007; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item243 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.1128,5.0014391,618.75342}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH2_P"; + description="AAF Transport Helo 2 Pilot"; + isPlayable=1; + }; + id=663; + type="I_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.1128,5.0014391,618.75342}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH2_CP"; + description="AAF Transport Helo 2 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=664; + type="I_helipilot_F"; + }; + }; + class Attributes + { + name="GrpAAF_TH2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=663; + item1=15; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=664; + item1=15; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=662; + atlOffset=-4.7683716e-007; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF TH2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item244 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1494.3599,5.0014391,619.59424}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH3_P"; + description="AAF Transport Helo 3 Pilot"; + isPlayable=1; + }; + id=666; + type="I_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1494.3599,5.0014391,619.59424}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH3_CP"; + description="AAF Transport Helo 3 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=667; + type="I_helipilot_F"; + }; + }; + class Attributes + { + name="GrpAAF_TH3"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=666; + item1=16; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=667; + item1=16; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=665; + atlOffset=-4.7683716e-007; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF TH3 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item245 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1535.6772,5.0014391,620.25049}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH4_P"; + description="AAF Transport Helo 4 Pilot"; + isPlayable=1; + }; + id=669; + type="I_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1535.6772,5.0014391,620.25049}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitAAF_TH4_CP"; + description="AAF Transport Helo 4 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=670; + type="I_helipilot_F"; + }; + }; + class Attributes + { + name="GrpAAF_TH4"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=669; + item1=17; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=670; + item1=17; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=668; + atlOffset=-4.7683716e-007; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF TH4 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item246 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1408.8267,5.0014391,586.5531}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitAAF_AH1_P"; + description="AAF Attack Helo 1 Pilot"; + isPlayable=1; + }; + id=672; + type="I_helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1408.8267,5.0014391,586.5531}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitAAF_AH1_CP"; + description="AAF Attack Helo 1 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=673; + type="I_helipilot_F"; + }; + }; + class Attributes + { + name="GrpAAF_AH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=672; + item1=37; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=673; + item1=37; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=671; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF AH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item247 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={446.25912,5.0014391,757.14838}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="COLONEL"; + init="[""co"",this,""ctrg""] call f_fnc_assignGear;"; + name="UnitFIA_CO"; + description="CTRG Commander"; + isPlayable=1; + }; + id=680; + type="B_G_officer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={451.25912,5.0014391,755.49799}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this,""ctrg""] call f_fnc_assignGear;"; + name="UnitFIA_CO_JTAC"; + description="CTRG JTAC"; + isPlayable=1; + }; + id=681; + type="B_G_officer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={441.7894,5.0014391,754.13666}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitFIA_CO_UAV"; + description="FIA UAV Operator"; + isPlayable=1; + }; + id=682; + type="B_G_Soldier_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={456.25912,5.0014391,752.75775}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitFIA_CO_M"; + description="FIA Medic"; + isPlayable=1; + }; + id=683; + type="B_G_medic_F"; + }; + }; + class Attributes + { + name="GrpFIA_CO"; + }; + id=679; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item248 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={445.72104,5.2133446,732.78412}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="MAJOR"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitFIA_DC"; + description="FIA Deputy Commander"; + isPlayable=1; + }; + id=685; + type="B_G_officer_F"; + atlOffset=0.21190548; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={450.72104,5.2344303,731.13373}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitFIA_DC_JTAC"; + description="FIA Forward Observer"; + isPlayable=1; + }; + id=686; + type="B_G_officer_F"; + atlOffset=0.23299122; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={440.72104,5.1082706,731.13373}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitFIA_DC_UAV"; + description="FIA UAV Operator"; + isPlayable=1; + }; + id=687; + type="B_G_Soldier_F"; + atlOffset=0.10683155; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={455.72104,5.1013861,728.39447}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitFIA_DC_M"; + description="FIA Medic"; + isPlayable=1; + }; + id=688; + type="B_G_medic_F"; + atlOffset=0.099946976; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpFIA_DC"; + }; + id=684; + atlOffset=0.21190548; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item249 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={482.41245,5.0014391,756.539}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this,""ctrg""] call f_fnc_assignGear;"; + name="UnitFIA_ASL_SL"; + description="CTRG Alpha Squad Leader"; + isPlayable=1; + }; + id=690; + type="B_G_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={487.41245,5.0014391,754.88861}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitFIA_ASL_M"; + description="FIA Alpha Medic"; + isPlayable=1; + }; + id=691; + type="B_G_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpFIA_ASL"; + }; + id=689; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item250 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={482.97202,5.0014391,735.03412}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitFIA_A1_FTL"; + description="FIA Alpha 1 Fire Team Leader"; + isPlayable=1; + }; + id=693; + type="B_G_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={487.97202,5.0913763,733.38373}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A1_AR1"; + description="FIA Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=694; + type="B_G_Soldier_AR_F"; + atlOffset=0.08993721; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={477.97202,5.0014391,733.38373}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A1_AR2"; + description="FIA Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=695; + type="B_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={492.97202,5.248991,730.64447}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitFIA_A1_AT"; + description="FIA Alpha 1 Assaultman (AT)"; + isPlayable=1; + }; + id=696; + type="B_G_Soldier_LAT_F"; + atlOffset=0.24755192; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={472.97202,5.0014391,730.64447}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A1_R1"; + description="FIA Alpha 1 Rifleman"; + isPlayable=1; + }; + id=697; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={497.97202,5.0014391,726.0976}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A1_R2"; + description="FIA Alpha 1 Rifleman"; + isPlayable=1; + }; + id=698; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpFIA_A1"; + }; + id=692; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item251 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={482.73569,5.0014391,711.15521}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitFIA_A2_FTL"; + description="FIA Alpha 2 Fire Team Leader"; + isPlayable=1; + }; + id=700; + type="B_G_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={487.73569,5.0014391,709.50482}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A2_AR1"; + description="FIA Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=701; + type="B_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={477.73569,5.0014391,709.50482}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A2_AR2"; + description="FIA Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=702; + type="B_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={492.73569,5.0014391,706.76556}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitFIA_A2_AT"; + description="FIA Alpha 2 Assaultman (AT)"; + isPlayable=1; + }; + id=703; + type="B_G_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={472.73569,5.0014391,706.76556}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A2_R1"; + description="FIA Alpha 2 Rifleman"; + isPlayable=1; + }; + id=704; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={497.73569,5.0014391,702.21869}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_A2_R2"; + description="FIA Alpha 2 Rifleman"; + isPlayable=1; + }; + id=705; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpFIA_A2"; + }; + id=699; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item252 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={523.09412,5.0014391,756.49213}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this,""ctrg""] call f_fnc_assignGear;"; + name="UnitFIA_BSL_SL"; + description="CTRG Bravo Squad Leader"; + isPlayable=1; + }; + id=707; + type="B_G_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={528.09412,5.0014391,754.84174}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitFIA_BSL_M"; + description="FIA Bravo Medic"; + isPlayable=1; + }; + id=708; + type="B_G_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpFIA_BSL"; + }; + id=706; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item253 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={523.86072,5.0014391,734.79681}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitFIA_B1_FTL"; + description="FIA Bravo 1 Fire Team Leader"; + isPlayable=1; + }; + id=710; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={528.86072,5.0014391,733.1474}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B1_AR1"; + description="FIA Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=711; + type="B_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={518.86072,5.0014391,733.1474}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B1_AR2"; + description="FIA Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=712; + type="B_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={533.86072,5.0014391,730.40717}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitFIA_B1_AT"; + description="FIA Bravo 1 Assaultman (AT)"; + isPlayable=1; + }; + id=713; + type="B_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={513.86072,5.0014391,730.40717}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B1_R1"; + description="FIA Bravo 1 Rifleman"; + isPlayable=1; + }; + id=714; + type="B_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={538.86072,5.0014391,725.86127}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B1_R2"; + description="FIA Bravo 1 Rifleman"; + isPlayable=1; + }; + id=715; + type="B_G_Soldier_F"; + }; + }; + class Attributes + { + name="GrpFIA_B1"; + }; + id=709; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item254 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={523.30115,5.0014391,711.56927}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitFIA_B2_FTL"; + description="FIA Bravo 2 Fire Team Leader"; + isPlayable=1; + }; + id=717; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={528.30115,5.0014391,709.91791}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B2_AR1"; + description="FIA Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=718; + type="B_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={518.30115,5.0014391,709.91791}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B2_AR2"; + description="FIA Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=719; + type="B_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={533.30115,5.0014391,707.17865}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitFIA_B2_AT"; + description="FIA Bravo 2 Assaultman (AT)"; + isPlayable=1; + }; + id=720; + type="B_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={513.30115,5.0014391,707.17865}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B2_R1"; + description="FIA Bravo 2 Rifleman"; + isPlayable=1; + }; + id=721; + type="B_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={538.30115,5.0014391,702.63177}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_B2_R2"; + description="FIA Bravo 2 Rifleman"; + isPlayable=1; + }; + id=722; + type="B_G_Soldier_F"; + }; + }; + class Attributes + { + name="GrpFIA_B2"; + }; + id=716; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item255 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={566.27771,5.3023081,755.89545}; + }; + side="West"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitFIA_CSL_SL"; + description="FIA Charlie Squad Leader"; + isPlayable=1; + }; + id=724; + type="B_G_Soldier_SL_F"; + atlOffset=0.30086899; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={571.27771,5.6464462,754.24506}; + }; + side="West"; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitFIA_CSL_M"; + description="FIA Charlie Medic"; + isPlayable=1; + }; + id=725; + type="B_G_medic_F"; + atlOffset=0.64500713; + }; + }; + class Attributes + { + name="GrpFIA_CSL"; + }; + id=723; + atlOffset=0.30086899; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item256 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={566.67908,5.0014391,734.13568}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitFIA_C1_FTL"; + description="FIA Charlie 1 Fire Team Leader"; + isPlayable=1; + }; + id=727; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={571.67908,5.0014391,732.48627}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C1_AR1"; + description="FIA Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=728; + type="B_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={561.67908,5.0014391,732.48627}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C1_AR2"; + description="FIA Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=729; + type="B_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={576.67908,5.0014391,729.74603}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitFIA_C1_AT"; + description="FIA Charlie 1 Assaultman (AT)"; + isPlayable=1; + }; + id=730; + type="B_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={556.67908,5.0014391,729.74603}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C1_R1"; + description="FIA Charlie 1 Rifleman"; + isPlayable=1; + }; + id=731; + type="B_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={581.67908,5.0014391,725.19916}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C1_R2"; + description="FIA Charlie 1 Rifleman"; + isPlayable=1; + }; + id=732; + type="B_G_Soldier_F"; + }; + }; + class Attributes + { + name="GrpFIA_C1"; + }; + id=726; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item257 + { + dataType="Group"; + side="West"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={566.98376,5.0014391,711.03217}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitFIA_C2_FTL"; + description="FIA Charlie 2 Fire Team Leader"; + isPlayable=1; + }; + id=734; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={571.98376,5.0014391,709.38177}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C2_AR1"; + description="FIA Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=735; + type="B_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={561.98376,5.0014391,709.38177}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C2_AR2"; + description="FIA Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=736; + type="B_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={576.98376,5.0014391,706.64252}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitFIA_C2_AT"; + description="FIA Charlie 2 Assaultman (AT)"; + isPlayable=1; + }; + id=737; + type="B_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={556.98376,5.0014391,706.64252}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C2_R1"; + description="FIA Charlie 2 Rifleman"; + isPlayable=1; + }; + id=738; + type="B_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={581.98376,5.0014391,702.09467}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitFIA_C2_R2"; + description="FIA Charlie 2 Rifleman"; + isPlayable=1; + }; + id=739; + type="B_G_Soldier_F"; + }; + }; + class Attributes + { + name="GrpFIA_C2"; + }; + id=733; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item258 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={602.96912,5.153121,756.11713}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG1_AG"; + description="FIA Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=741; + type="B_G_Soldier_TL_F"; + atlOffset=0.1516819; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={607.96912,5.2476587,754.46674}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG1_G"; + description="FIA Medium MG Team 1 Gunner"; + isPlayable=1; + }; + id=742; + type="B_G_Soldier_AR_F"; + atlOffset=0.24621964; + }; + }; + class Attributes + { + name="GrpFIA_MMG1"; + }; + id=740; + atlOffset=0.1516819; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item259 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={602.82947,5.0014391,744.77826}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG2_AG"; + description="FIA Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=744; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={607.82947,5.0014391,743.12787}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG2_G"; + description="FIA Medium MG Team 2 Gunner"; + isPlayable=1; + }; + id=745; + type="B_G_Soldier_AR_F"; + }; + }; + class Attributes + { + name="GrpFIA_MMG2"; + }; + id=743; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item260 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.17322,5.0014391,734.07025}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT1_AG"; + description="FIA Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=747; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.17322,5.0014391,732.41986}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT1_G"; + description="FIA Medium AT Team 1 Gunner"; + isPlayable=1; + }; + id=748; + type="B_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="GrpFIA_MAT1"; + }; + id=746; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item261 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.0863,5.0014391,722.08783}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT2_AG"; + description="FIA Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=750; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.0863,5.0014391,720.43744}; + }; + side="West"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT2_G"; + description="FIA Medium AT Team 2 Gunner"; + isPlayable=1; + }; + id=751; + type="B_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="GrpFIA_MAT2"; + }; + id=749; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item262 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.57458,5.0014391,711.18939}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hmgag"",this] call f_fnc_assignGear; "; + name="UnitFIA_HMG1_AG"; + description="FIA Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=753; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.57458,5.0014391,709.539}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hmgg"",this] call f_fnc_assignGear; "; + name="UnitFIA_HMG1_G"; + description="FIA Heavy MG Team 1 Gunner"; + isPlayable=1; + }; + id=754; + type="B_G_Soldier_AR_F"; + }; + }; + class Attributes + { + name="GrpFIA_HMG1"; + }; + id=752; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item263 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.3988,5.0014391,698.78607}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitFIA_HAT1_AG"; + description="FIA Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=756; + type="B_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.3988,5.2301273,697.13568}; + }; + side="West"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""hatg"",this] call f_fnc_assignGear; "; + name="UnitFIA_HAT1_G"; + description="FIA Heavy AT Team 1 Gunner"; + isPlayable=1; + }; + id=757; + type="B_G_Soldier_LAT_F"; + atlOffset=0.22868824; + }; + }; + class Attributes + { + name="GrpFIA_HAT1"; + }; + id=755; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item264 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.40076,5.0014391,687.01752}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mtrag"",this] call f_fnc_assignGear; "; + name="UnitFIA_MTR1_AG"; + description="FIA Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=759; + type="B_G_Soldier_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.40076,5.3897858,685.36713}; + }; + side="West"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""mtrg"",this] call f_fnc_assignGear; "; + name="UnitFIA_MTR1_G"; + description="FIA Mortar Team 1 Gunner"; + isPlayable=1; + }; + id=760; + type="B_G_Soldier_A_F"; + atlOffset=0.38834667; + }; + }; + class Attributes + { + name="GrpFIA_MTR1"; + }; + id=758; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item265 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.39978,5.0014391,674.49994}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitFIA_MSAM1_AG"; + description="FIA Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=762; + type="B_G_Soldier_LAT_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.39978,5.5413675,672.84955}; + }; + side="West"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""msamg"",this] call f_fnc_assignGear; "; + name="UnitFIA_MSAM1_G"; + description="FIA Medium SAM Team 1 Gunner"; + isPlayable=1; + }; + id=763; + type="B_G_Soldier_LAT_F"; + atlOffset=0.53992844; + }; + }; + class Attributes + { + name="GrpFIA_MSAM1"; + }; + id=761; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item266 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.29919,5.0014391,661.72552}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hsamag"",this] call f_fnc_assignGear; "; + name="UnitFIA_HSAM1_AG"; + description="FIA Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=765; + type="B_G_Soldier_LAT_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.29919,5.0014391,660.07513}; + }; + side="West"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""hsamg"",this] call f_fnc_assignGear; "; + name="UnitFIA_HSAM1_G"; + description="FIA Heavy SAM Team 1 Gunner"; + isPlayable=1; + }; + id=766; + type="B_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="GrpFIA_HSAM1"; + }; + id=764; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item267 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.17224,5.0014391,650.82025}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""sp"",this] call f_fnc_assignGear; "; + name="UnitFIA_ST1_SP"; + description="FIA Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=768; + type="B_G_Soldier_M_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.17224,5.0014391,649.16986}; + }; + side="West"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[""sn"",this] call f_fnc_assignGear; "; + name="UnitFIA_ST1_G"; + description="FIA Sniper Team 1 Sniper"; + isPlayable=1; + }; + id=769; + type="B_G_Soldier_M_F"; + }; + }; + class Attributes + { + name="GrpFIA_ST1"; + }; + id=767; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item268 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={603.94373,5.0014391,638.47357}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitFIA_ENG1_FTL"; + description="FIA Engineer Team 1 Leader (Demo)"; + isPlayable=1; + }; + id=771; + type="B_G_engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={608.94373,5.0014391,636.82318}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitFIA_ENG1_A1"; + description="FIA Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + }; + id=772; + type="B_G_engineer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={598.94373,5.0014391,636.82318}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitFIA_ENG1_A2"; + description="FIA Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=773; + type="B_G_engineer_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={613.94373,5.0014391,634.08392}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitFIA_ENG1_A3"; + description="FIA Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=774; + type="B_G_engineer_F"; + }; + }; + class Attributes + { + name="GrpFIA_ENG1"; + }; + id=770; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item269 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={604.48364,5.0014391,626.65302}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitFIA_TH1_P"; + description="FIA Transport Helo 1 Pilot"; + isPlayable=1; + }; + id=776; + type="B_G_engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={604.48364,5.0014391,626.65302}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear;"; + name="UnitFIA_TH1_CP"; + description="FIA Transport Helo 1 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=777; + type="B_G_engineer_F"; + }; + }; + class Attributes + { + name="GrpFIA_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=776; + item1=72; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=777; + item1=72; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=775; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item270 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={448.18201,5.0014391,686.51398}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitFIA_IFV1_D"; + description="FIA Technical 1 Driver (Repair)"; + isPlayable=1; + }; + id=1032; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={448.18201,5.0014391,686.51398}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitFIA_IFV1_G"; + description="FIA Technical 1 Gunner"; + isPlayable=1; + }; + id=1033; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpFIA_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1032; + item1=85; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=1033; + item1=85; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=778; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA IFV1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item271 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={482.90601,5.0014391,686.43097}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitFIA_IFV2_G"; + description="FIA Technical 2 Gunner"; + isPlayable=1; + }; + id=1030; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99833667; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={482.90601,5.0014391,686.43097}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitFIA_IFV2_D"; + description="FIA Technical 2 Driver (Repair)"; + isPlayable=1; + }; + id=1031; + type="B_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpFIA_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1030; + item1=86; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item1 + { + linkID=1; + item0=1031; + item1=86; + class CustomData + { + role=1; + }; + }; + }; + }; + id=781; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="FIA IFV2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item272 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2589.6348,5.1613512,725.10815}; + }; + side="Civilian"; + flags=6; + class Attributes + { + skill=0.60000002; + init="this addAction [""Start Camera"",""[] call bis_fnc_camera;"",[],2,false,true,"""",""driver _target == _this""]; this allowDamage false;"; + description="BBC Reporter"; + isPlayable=1; + }; + id=790; + type="C_journalist_F"; + atlOffset=0.15991211; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=789; + atlOffset=0.15991211; + }; + class Item273 + { + dataType="Group"; + side="Civilian"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2642.2625,5.0014391,721.59937}; + }; + side="Civilian"; + flags=6; + class Attributes + { + skill=0.60000002; + init="this addAction [""Start Camera"",""[] call bis_fnc_camera;"",[],2,false,true,"""",""driver _target == _this""]; this allowDamage false;"; + description="CNN Reporter"; + isPlayable=1; + }; + id=792; + type="C_journalist_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + id=791; + }; + class Item274 + { + dataType="Logic"; + class PositionInfo + { + position[]={2264.3303,5,729.32227}; + }; + name="F3_Zeus"; + isPlayable=1; + id=793; + type="VirtualCurator_F"; + }; + class Item275 + { + dataType="Logic"; + class PositionInfo + { + position[]={2264.9143,5.2476444,718.24805}; + }; + name="F3_Zeus_1"; + isPlayable=1; + id=794; + type="VirtualCurator_F"; + atlOffset=0.24764442; + }; + class Item276 + { + dataType="Logic"; + class PositionInfo + { + position[]={2266.3958,5.3839951,707.53711}; + }; + name="F3_Zeus_2"; + isPlayable=1; + id=795; + type="VirtualCurator_F"; + atlOffset=0.38399506; + }; + class Item277 + { + dataType="Logic"; + class PositionInfo + { + position[]={2266.8528,5.6081486,696.99023}; + }; + name="F3_Zeus_3"; + isPlayable=1; + id=796; + type="VirtualCurator_F"; + atlOffset=0.60814857; + }; + class Item278 + { + dataType="Logic"; + class PositionInfo + { + position[]={1386.3022,5,759.53918}; + }; + id=797; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item279 + { + dataType="Logic"; + class PositionInfo + { + position[]={1386.7388,5,729.61243}; + }; + id=798; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item280 + { + dataType="Logic"; + class PositionInfo + { + position[]={2355.054,5,1372.686}; + }; + id=799; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item281 + { + dataType="Logic"; + class PositionInfo + { + position[]={2355.7756,5,1347.9272}; + }; + id=800; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item282 + { + dataType="Logic"; + class PositionInfo + { + position[]={432.98569,5.7177486,729.02344}; + }; + id=801; + type="SupportProvider_Virtual_CAS_Heli"; + atlOffset=0.71774864; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item283 + { + dataType="Logic"; + class PositionInfo + { + position[]={431.84018,5.4597912,752.30078}; + }; + id=802; + type="SupportProvider_Virtual_CAS_Heli"; + atlOffset=0.45979118; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item284 + { + dataType="Logic"; + class PositionInfo + { + position[]={413.42789,5,1345.2402}; + }; + id=803; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item285 + { + dataType="Logic"; + class PositionInfo + { + position[]={413.20621,5,1367.6445}; + }; + id=804; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item286 + { + dataType="Logic"; + class PositionInfo + { + position[]={408.92496,5,1367.7412}; + }; + id=813; + type="SupportProvider_Artillery"; + }; + class Item287 + { + dataType="Logic"; + class PositionInfo + { + position[]={428.39584,5.8610754,728.56641}; + }; + id=814; + type="SupportProvider_Artillery"; + atlOffset=0.8610754; + }; + class Item288 + { + dataType="Logic"; + class PositionInfo + { + position[]={409.14664,5,1345.3369}; + }; + id=815; + type="SupportProvider_Artillery"; + }; + class Item289 + { + dataType="Logic"; + class PositionInfo + { + position[]={1382.4575,5,729.70911}; + }; + id=816; + type="SupportProvider_Artillery"; + }; + class Item290 + { + dataType="Logic"; + class PositionInfo + { + position[]={1382.021,5,759.63586}; + }; + id=817; + type="SupportProvider_Artillery"; + }; + class Item291 + { + dataType="Logic"; + class PositionInfo + { + position[]={2351.7932,5,1347.4478}; + }; + id=818; + type="SupportProvider_Artillery"; + }; + class Item292 + { + dataType="Logic"; + class PositionInfo + { + position[]={2350.7717,5,1372.7827}; + }; + id=819; + type="SupportProvider_Artillery"; + }; + class Item293 + { + dataType="Logic"; + class PositionInfo + { + position[]={427.55893,5,752.39648}; + }; + id=820; + type="SupportProvider_Artillery"; + }; + class Item294 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1379.5668,5.0014391,1372.6985}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="COLONEL"; + init="[""co"",this] call f_fnc_assignGear;"; + name="UnitSyn_CO"; + description="Syndikat Commander"; + isPlayable=1; + }; + id=827; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1385.2201,5.0014391,1369.9319}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitSyn_CO_JTAC"; + description="Syndikat JTAC"; + isPlayable=1; + }; + id=824; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1374.6039,5.0014391,1369.6145}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitSyn_CO_UAV"; + description="Syndikat UAV Operator"; + isPlayable=1; + }; + id=825; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1390.0951,5.0014391,1367.7346}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitSyn_CO_M"; + description="Syndikat Medic"; + isPlayable=1; + }; + id=826; + type="I_C_Soldier_Para_3_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_CO"; + }; + id=823; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item295 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1379.5072,5.0014391,1344.0295}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="MAJOR"; + init="[""co"",this] call f_fnc_assignGear;"; + name="UnitSyn_DC"; + description="Syndikat Deputy Commander"; + isPlayable=1; + }; + id=842; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1384.9408,5.0014391,1341.219}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitSyn_DC_JTAC"; + description="Syndikat JTAC"; + isPlayable=1; + }; + id=839; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1374.5209,5.0014391,1341.3157}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitSyn_DC_UAV"; + description="Syndikat UAV Operator"; + isPlayable=1; + }; + id=840; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1389.8158,5.0014391,1339.0217}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitSyn_DC_M"; + description="Syndikat Medic"; + isPlayable=1; + }; + id=841; + type="I_C_Soldier_Para_3_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_DC"; + }; + id=838; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item296 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1420.1244,5.0014391,1372.6526}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitSyn_ASL_SL"; + description="Syndikat Alpha Squad Leader"; + isPlayable=1; + }; + id=855; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1425.2299,5.0014391,1369.6653}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitSyn_ASL_M"; + description="Syndikat Alpha Medic"; + isPlayable=1; + }; + id=854; + type="I_C_Soldier_Para_3_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_ASL"; + }; + id=853; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item297 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1419.9926,5.0014391,1346.175}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="LIEUTENANT"; + init="[""ftl"",this] call f_fnc_assignGear;"; + name="UnitSyn_A1_FTL"; + description="Syndikat Alpha 1 Fire Team Leader"; + isPlayable=1; + }; + id=862; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1425.097,5.0014391,1343.1877}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A1_AR1"; + description="Syndikat Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=857; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1414.8724,5.0014391,1343.262}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A1_AR2"; + description="Syndikat Alpha 1 Automatic Rifleman"; + isPlayable=1; + }; + id=858; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1429.933,5.0014391,1339.9065}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitSyn_A1_AT"; + description="Syndikat Alpha 1 Assaultman (AT)"; + isPlayable=1; + }; + id=859; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1410.4662,5.0014391,1339.5042}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A1_R1"; + description="Syndikat Alpha 1 Rifleman"; + isPlayable=1; + }; + id=860; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1435.9994,5.0014391,1336.0823}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A1_R2"; + description="Syndikat Alpha 1 Rifleman"; + isPlayable=1; + }; + id=861; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_A1"; + }; + id=856; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item298 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1420.4545,5.0014391,1316.8792}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="LIEUTENANT"; + init="[""ftl"",this] call f_fnc_assignGear;"; + name="UnitSyn_A2_FTL"; + description="Syndikat Alpha 2 Fire Team Leader"; + isPlayable=1; + }; + id=869; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1425.5599,5.0014391,1313.8918}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A2_AR1"; + description="Syndikat Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=864; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.3353,5.0014391,1313.967}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A2_AR2"; + description="Syndikat Alpha 2 Automatic Rifleman"; + isPlayable=1; + }; + id=865; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1430.3959,5.0014391,1310.6106}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitSyn_A2_AT"; + description="Syndikat Alpha 2 Assaultman (AT)"; + isPlayable=1; + }; + id=866; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1410.9291,5.0014391,1310.2092}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A2_R1"; + description="Syndikat Alpha 2 Rifleman"; + isPlayable=1; + }; + id=867; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1436.4623,5.0014391,1306.7883}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_A2_R2"; + description="Syndikat Alpha 2 Rifleman"; + isPlayable=1; + }; + id=868; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_A2"; + }; + id=863; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item299 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1460.2103,5.0014391,1371.6956}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitSyn_BSL_SL"; + description="Syndikat Bravo Squad Leader"; + isPlayable=1; + }; + id=872; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1465.3158,5.0014391,1368.7073}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitSyn_BSL_M"; + description="Syndikat Bravo Medic"; + isPlayable=1; + }; + id=871; + type="I_C_Soldier_Para_3_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_BSL"; + }; + id=870; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item300 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1460.1967,5.0014391,1346.0579}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="LIEUTENANT"; + init="[""ftl"",this] call f_fnc_assignGear;"; + name="UnitSyn_B1_FTL"; + description="Syndikat Bravo 1 Fire Team Leader"; + isPlayable=1; + }; + id=879; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1465.3021,5.0014391,1343.0706}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B1_AR1"; + description="Syndikat Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=874; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1455.0795,5.0014391,1343.1448}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B1_AR2"; + description="Syndikat Bravo 1 Automatic Rifleman"; + isPlayable=1; + }; + id=875; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1470.1381,5.0014391,1339.7893}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitSyn_B1_AT"; + description="Syndikat Bravo 1 Assaultman (AT)"; + isPlayable=1; + }; + id=876; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1450.6732,5.0014391,1339.387}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B1_R1"; + description="Syndikat Bravo 1 Rifleman"; + isPlayable=1; + }; + id=877; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1476.2045,5.0014391,1335.967}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B1_R2"; + description="Syndikat Bravo 1 Rifleman"; + isPlayable=1; + }; + id=878; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_B1"; + }; + id=873; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item301 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1460.6029,5.0014391,1316.6848}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="LIEUTENANT"; + init="[""ftl"",this] call f_fnc_assignGear;"; + name="UnitSyn_B2_FTL"; + description="Syndikat Bravo 2 Fire Team Leader"; + isPlayable=1; + }; + id=886; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1465.7094,5.0014391,1313.6975}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B2_AR1"; + description="Syndikat Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=881; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1455.4857,5.0014391,1313.7717}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B2_AR2"; + description="Syndikat Bravo 2 Automatic Rifleman"; + isPlayable=1; + }; + id=882; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1470.5443,5.0014391,1310.4172}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitSyn_B2_AT"; + description="Syndikat Bravo 2 Assaultman (AT)"; + isPlayable=1; + }; + id=883; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.0795,5.0014391,1310.0139}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B2_R1"; + description="Syndikat Bravo 2 Rifleman"; + isPlayable=1; + }; + id=884; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1476.6107,5.0014391,1306.594}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_B2_R2"; + description="Syndikat Bravo 2 Rifleman"; + isPlayable=1; + }; + id=885; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_B2"; + }; + id=880; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item302 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1500.8724,5.0014391,1370.8596}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitSyn_CSL_SL"; + description="Syndikat Charlie Squad Leader"; + isPlayable=1; + }; + id=889; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1505.9779,5.0014391,1367.8723}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitSyn_CSL_M"; + description="Syndikat Charlie Medic"; + isPlayable=1; + }; + id=888; + type="I_C_Soldier_Para_3_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_CSL"; + }; + id=887; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item303 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1500.6595,5.0014391,1347.4036}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="LIEUTENANT"; + init="[""ftl"",this] call f_fnc_assignGear;"; + name="UnitSyn_C1_FTL"; + description="Syndikat Charlie 1 Fire Team Leader"; + isPlayable=1; + }; + id=896; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1505.765,5.0014391,1344.4172}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C1_AR1"; + description="Syndikat Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=891; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1495.5404,5.0014391,1344.4905}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C1_AR2"; + description="Syndikat Charlie 1 Automatic Rifleman"; + isPlayable=1; + }; + id=892; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1510.601,5.0014391,1341.135}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitSyn_C1_AT"; + description="Syndikat Charlie 1 Assaultman (AT)"; + isPlayable=1; + }; + id=893; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1491.1342,5.0014391,1340.7327}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C1_R1"; + description="Syndikat Charlie 1 Rifleman"; + isPlayable=1; + }; + id=894; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1516.6674,5.0014391,1337.3137}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C1_R2"; + description="Syndikat Charlie 1 Rifleman"; + isPlayable=1; + }; + id=895; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_C1"; + }; + id=890; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item304 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1500.6595,5.0014391,1316.9084}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="LIEUTENANT"; + init="[""ftl"",this] call f_fnc_assignGear;"; + name="UnitSyn_C2_FTL"; + description="Syndikat Charlie 2 Fire Team Leader"; + isPlayable=1; + }; + id=903; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1505.765,5.0014391,1313.9211}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C2_AR1"; + description="Syndikat Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=898; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1495.5424,5.0014391,1313.9954}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C2_AR2"; + description="Syndikat Charlie 2 Automatic Rifleman"; + isPlayable=1; + }; + id=899; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1510.601,5.0014391,1310.6399}; + }; + side="Independent"; + flags=5; + class Attributes + { + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitSyn_C2_AT"; + description="Syndikat Charlie 2 Assaultman (AT)"; + isPlayable=1; + }; + id=900; + type="I_C_Soldier_Para_5_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1491.1361,5.0014391,1310.2375}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C2_R1"; + description="Syndikat Charlie 2 Rifleman"; + isPlayable=1; + }; + id=901; + type="I_C_Soldier_Para_1_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1516.6674,5.0014391,1306.8176}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitSyn_C2_R2"; + description="Syndikat Charlie 2 Rifleman"; + isPlayable=1; + }; + id=902; + type="I_C_Soldier_Para_1_F"; + }; + }; + class Attributes + { + name="GrpSyn_C2"; + }; + id=897; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item305 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.0209,5.0014391,1369.0061}; + }; + side="Independent"; + flags=7; + class Attributes + { + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG1_AG"; + description="Syndikat Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=905; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.9642,5.0014391,1366.842}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG1_G"; + description="Syndikat Medium MG Team 1 Gunner"; + isPlayable=1; + }; + id=906; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_MMG1"; + }; + id=904; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item306 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.8353,5.0014391,1356.4192}; + }; + side="Independent"; + flags=7; + class Attributes + { + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG2_AG"; + description="Syndikat Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=908; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.7787,5.0014391,1354.2551}; + }; + side="Independent"; + flags=5; + class Attributes + { + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG2_G"; + description="Syndikat Medium MG Team 2 Gunner"; + isPlayable=1; + }; + id=909; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_MMG2"; + }; + id=907; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item307 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.8588,5.0014391,1345.2571}; + }; + side="Independent"; + flags=7; + class Attributes + { + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT1_AG"; + description="Syndikat Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=911; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.8041,5.0014391,1343.093}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""matg"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT1_G"; + description="Syndikat Medium AT Team 1 Gunner"; + isPlayable=1; + }; + id=912; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_MAT1"; + }; + id=910; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item308 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.0814,5.0014391,1333.7102}; + }; + side="Independent"; + flags=7; + class Attributes + { + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT2_AG"; + description="Syndikat Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + }; + id=914; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1564.0248,5.0014391,1331.5461}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""matg"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT2_G"; + description="Syndikat Medium AT Team 2 Gunner"; + isPlayable=1; + }; + id=915; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_MAT2"; + }; + id=913; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item309 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.0209,5.0014391,1323.0881}; + }; + side="Independent"; + flags=7; + class Attributes + { + rank="CORPORAL"; + init="[""hmgag"",this] call f_fnc_assignGear;"; + name="UnitSyn_HMG1_AG"; + description="Syndikat Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=917; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.9662,5.0014391,1320.9231}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""hmgg"",this] call f_fnc_assignGear;"; + name="UnitSyn_HMG1_G"; + description="Syndikat Heavy MG Team 1 Gunner"; + isPlayable=1; + }; + id=918; + type="I_C_Soldier_Para_4_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_HMG1"; + }; + id=916; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item310 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.8158,5.0014391,1310.2874}; + }; + side="Independent"; + flags=7; + class Attributes + { + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear;"; + name="UnitSyn_HAT1_AG"; + description="Syndikat Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=920; + type="I_C_Soldier_Para_2_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.7592,5.0014391,1308.1233}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""hatg"",this] call f_fnc_assignGear;"; + name="UnitSyn_HAT1_G"; + description="Syndikat Heavy AT Team 1 Gunner"; + isPlayable=1; + }; + id=921; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_HAT1"; + }; + id=919; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item311 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.306,5.0014391,1298.2249}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CORPORAL"; + init="[""mtrag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MTR1_AG"; + description="Syndikat Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=923; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1564.2494,5.0014391,1296.0598}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""mtrg"",this] call f_fnc_assignGear;"; + name="UnitSyn_MTR1_G"; + description="Syndikat Mortar Team 1 Gunner"; + isPlayable=1; + }; + id=924; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_MTR1"; + }; + id=922; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item312 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.0326,5.0014391,1285.1262}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MSAM1_AG"; + description="Syndikat Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=926; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.976,5.0014391,1282.9612}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""msamg"",this] call f_fnc_assignGear;"; + name="UnitSyn_MSAM1_G"; + description="Syndikat Medium SAM Team 1 Gunner"; + isPlayable=1; + }; + id=927; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_MSAM1"; + }; + id=925; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item313 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.7533,5.0014391,1272.1184}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CORPORAL"; + init="[""hsamag"",this] call f_fnc_assignGear;"; + name="UnitSyn_HSAM1_AG"; + description="Syndikat Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=929; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1564.6967,5.0014391,1269.9534}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""hsamg"",this] call f_fnc_assignGear;"; + name="UnitSyn_HSAM1_G"; + description="Syndikat Heavy SAM Team 1 Gunner"; + isPlayable=1; + }; + id=930; + type="I_C_Soldier_Para_5_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_HSAM1"; + }; + id=928; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item314 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.8353,5.0014391,1261.8909}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CORPORAL"; + init="[""sp"",this] call f_fnc_assignGear;"; + name="UnitSyn_ST1_SP"; + description="Syndikat Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + }; + id=932; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1564.7787,5.0014391,1259.7258}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""sn"",this] call f_fnc_assignGear; "; + name="UnitSyn_ST1_G"; + description="Syndikat Sniper Team 1 Sniper"; + isPlayable=1; + }; + id=933; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_ST1"; + }; + id=931; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item315 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1560.3763,5.0014391,1249.842}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CORPORAL"; + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitSyn_ENG1_FTL"; + description="Syndikat Engineer Team 1 Leader (Demo)"; + isPlayable=1; + }; + id=935; + type="I_C_Soldier_Para_8_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1565.3197,5.0014391,1247.677}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""eng"",this] call f_fnc_assignGear;"; + name="UnitSyn_ENG1_A1"; + description="Syndikat Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + }; + id=936; + type="I_C_Soldier_Para_8_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.9447,5.0014391,1248.1292}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitSyn_ENG1_A2"; + description="Syndikat Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=937; + type="I_C_Soldier_Para_8_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1570.2924,5.0014391,1245.7551}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""engm"",this] call f_fnc_assignGear;"; + name="UnitSyn_ENG1_A3"; + description="Syndikat Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + }; + id=938; + type="I_C_Soldier_Para_8_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_ENG1"; + }; + id=934; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item316 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.641,5.0014391,1225.605}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitSyn_TH1_P"; + description="Syndikat Transport Helo 1 Pilot"; + isPlayable=1; + }; + id=940; + type="I_C_Helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.641,5.0014391,1225.605}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="SERGEANT"; + init="[""pcc"",this] call f_fnc_assignGear; "; + name="UnitSyn_TH1_CP"; + description="Syndikat Transport Helo 1 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=941; + type="I_C_Helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=940; + item1=1027; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=941; + item1=1027; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=939; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item317 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1379.3519,5.0014391,1284.8792}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitSyn_IFV1_G"; + description="Syndikat Technical 1 Gunner"; + isPlayable=1; + }; + id=944; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1379.3519,5.0014391,1284.8792}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitSyn_IFV1_D"; + description="Syndikat Technical 1 Driver (Repair)"; + isPlayable=1; + }; + id=945; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=944; + item1=946; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item1 + { + linkID=1; + item0=945; + item1=946; + class CustomData + { + role=1; + }; + }; + }; + }; + id=943; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat IFV1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item318 + { + dataType="Object"; + class PositionInfo + { + position[]={1379.3519,7.1644082,1284.8704}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this,""ind_c_f""] call f_fnc_assignGear"; + name="VehSyn_IFV1"; + textures="Guerilla_09"; + }; + id=946; + type="B_G_Offroad_01_armed_F"; + }; + class Item319 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1420.1664,5.0014391,1287.9719}; + }; + side="Independent"; + flags=6; + class Attributes + { + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitSyn_IFV2_G"; + description="Syndikat Technical 2 Gunner"; + isPlayable=1; + }; + id=948; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1420.1664,5.0014391,1287.9719}; + }; + side="Independent"; + flags=4; + class Attributes + { + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitSyn_IFV2_D"; + description="Syndikat Technical 2 Driver (Repair)"; + isPlayable=1; + }; + id=949; + type="I_C_Soldier_Para_1_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpSyn_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=948; + item1=950; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item1 + { + linkID=1; + item0=949; + item1=950; + class CustomData + { + role=1; + }; + }; + }; + }; + id=947; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Syndikat IFV2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item320 + { + dataType="Object"; + class PositionInfo + { + position[]={1420.1664,7.1644082,1287.9631}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this,""ind_c_f""] call f_fnc_assignGear"; + name="VehSyn_IFV2"; + textures="Guerilla_09"; + }; + id=950; + type="B_G_Offroad_01_armed_F"; + }; + class Item321 + { + dataType="Object"; + class PositionInfo + { + position[]={1367.5658,6.5695963,1372.9875}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehSyn_CAR1"; + textures="Olive"; + }; + id=951; + type="I_C_Offroad_02_unarmed_F"; + }; + class Item322 + { + dataType="Object"; + class PositionInfo + { + position[]={1366.2035,6.5695963,1345.7668}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehSyn_CAR2"; + textures="Olive"; + }; + id=952; + type="I_C_Offroad_02_unarmed_F"; + }; + class Item323 + { + dataType="Object"; + class PositionInfo + { + position[]={1418.0883,6.8716264,1395.2258}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehSyn_TR1"; + textures="Olive"; + }; + id=953; + type="I_C_Van_01_transport_F"; + }; + class Item324 + { + dataType="Object"; + class PositionInfo + { + position[]={1425.2494,6.8716264,1389.2473}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehSyn_TR2"; + textures="Olive"; + }; + id=954; + type="I_C_Van_01_transport_F"; + }; + class Item325 + { + dataType="Object"; + class PositionInfo + { + position[]={1455.6927,6.8716264,1395.2034}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehSyn_TR3"; + textures="Olive"; + }; + id=955; + type="I_C_Van_01_transport_F"; + }; + class Item326 + { + dataType="Object"; + class PositionInfo + { + position[]={1463.8392,6.8716264,1388.677}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehSyn_TR4"; + textures="Olive"; + }; + id=956; + type="I_C_Van_01_transport_F"; + }; + class Item327 + { + dataType="Object"; + class PositionInfo + { + position[]={1499.974,6.8716264,1393.5471}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehSyn_TR5"; + textures="Olive"; + }; + id=957; + type="I_C_Van_01_transport_F"; + }; + class Item328 + { + dataType="Object"; + class PositionInfo + { + position[]={1516.6342,6.8716264,1389.5872}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehSyn_TR6"; + textures="Olive"; + }; + id=958; + type="I_C_Van_01_transport_F"; + }; + class Item329 + { + dataType="Object"; + class PositionInfo + { + position[]={1574.7318,6.5695963,1367.6516}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehSyn_CAR3"; + textures="Olive"; + }; + id=959; + type="I_C_Offroad_02_unarmed_F"; + }; + class Item330 + { + dataType="Object"; + class PositionInfo + { + position[]={1573.8197,6.5695963,1342.1731}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehSyn_CAR4"; + textures="Olive"; + }; + id=960; + type="I_C_Offroad_02_unarmed_F"; + }; + class Item331 + { + dataType="Object"; + class PositionInfo + { + position[]={1507.1195,5.8924227,1374.9778}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; + name="CrateFIA_C_1"; + }; + id=961; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item332 + { + dataType="Object"; + class PositionInfo + { + position[]={1465.9681,5.8924227,1375.2434}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; + name="CrateFIA_B_1"; + }; + id=962; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item333 + { + dataType="Object"; + class PositionInfo + { + position[]={1425.1469,5.8924227,1375.5403}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; + name="CrateFIA_A_1"; + }; + id=963; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item334 + { + dataType="Logic"; + class PositionInfo + { + position[]={1348.1381,5,1369.7581}; + }; + id=964; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item335 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.14,5.0014391,1363.6685}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=966; + type="I_helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.14,5.0014391,1363.6685}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=967; + type="I_helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=966; + item1=968; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=967; + item1=968; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=965; + }; + class Item336 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.14,6.5310755,1363.6184}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + textures="Green"; + }; + id=968; + type="I_Heli_light_03_F"; + }; + class Item337 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1346.0267,5.0014391,1363.6892}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=970; + type="I_soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.98000002; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=970; + item1=971; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=969; + }; + class Item338 + { + dataType="Object"; + class PositionInfo + { + position[]={1346.0267,5.7216258,1363.6389}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=971; + type="I_Mortar_01_F"; + }; + class Item339 + { + dataType="Logic"; + class PositionInfo + { + position[]={1350.3256,5,1367.3372}; + }; + id=972; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item340 + { + dataType="Logic"; + class PositionInfo + { + position[]={1346.0433,5,1367.4338}; + }; + id=973; + type="SupportProvider_Artillery"; + }; + class Item341 + { + dataType="Logic"; + class PositionInfo + { + position[]={1348.4252,5,1341.1448}; + }; + id=974; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item342 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.4271,5.0014391,1335.0552}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=976; + type="I_helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.4271,5.0014391,1335.0552}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=977; + type="I_helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=976; + item1=978; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=977; + item1=978; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=975; + }; + class Item343 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.4271,6.5310755,1335.0051}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + textures="Green"; + }; + id=978; + type="I_Heli_light_03_F"; + }; + class Item344 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1346.3138,5.0014391,1335.0759}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=980; + type="I_soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=980; + item1=981; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=979; + }; + class Item345 + { + dataType="Object"; + class PositionInfo + { + position[]={1346.3138,5.7216258,1335.0256}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=981; + type="I_Mortar_01_F"; + }; + class Item346 + { + dataType="Logic"; + class PositionInfo + { + position[]={1350.6117,5,1338.7239}; + }; + id=982; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item347 + { + dataType="Logic"; + class PositionInfo + { + position[]={1346.3304,5,1338.8206}; + }; + id=983; + type="SupportProvider_Artillery"; + }; + class Item348 + { + dataType="Object"; + class PositionInfo + { + position[]={1559.641,6.8630314,1225.556}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_l"",this,""syndikat""] call f_fnc_assignGear"; + name="VehSyn_TH1_1"; + }; + id=1027; + type="I_Heli_light_03_unarmed_F"; + }; + class Item349 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={489.91336,5.0014391,1044.3853}; + }; + side="West"; + flags=7; + class Attributes + { + rank="CAPTAIN"; + init="[""co"",this] call f_fnc_assignGear;"; + name="UnitGEN_CO"; + description="Gendarmerie Commander"; + isPlayable=1; + }; + id=1038; + type="B_GEN_Commander_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_CO"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=1038; + item1=1088; + class CustomData + { + role=1; + }; + }; + }; + }; + id=1037; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item350 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={490.23773,5.0014391,1022.6599}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitGEN_DC"; + description="Gendarmerie Deputy Commander"; + isPlayable=1; + }; + id=1040; + type="B_GEN_Commander_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_DC"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=1040; + item1=1089; + class CustomData + { + role=1; + }; + }; + }; + }; + id=1039; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item351 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={509.84177,5.0014391,1044.8337}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""pat"",this] call f_fnc_assignGear;"; + name="UnitGEN_A_G1"; + description="Gendarmerie Alpha Gendarme"; + isPlayable=1; + }; + id=1066; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={509.84177,5.0014391,1044.8337}; + }; + side="West"; + flags=6; + class Attributes + { + rank="SERGEANT"; + init="[""pat"",this] call f_fnc_assignGear;"; + name="UnitGEN_A_Sgt"; + description="Gendarmerie Alpha Sergeant"; + isPlayable=1; + }; + id=1067; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={514.65173,5.0014391,1039.97}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""pat"",this] call f_fnc_assignGear;"; + name="UnitGEN_A_G2"; + description="Gendarmerie Alpha Gendarme"; + isPlayable=1; + }; + id=1068; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={514.65173,5.0014391,1039.97}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""pat"",this] call f_fnc_assignGear;"; + name="UnitGEN_A_G3"; + description="Gendarmerie Alpha Gendarme"; + isPlayable=1; + }; + id=1069; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_A"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=1066; + item1=1090; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=1067; + item1=1090; + class CustomData + { + role=3; + cargoIndex=0; + }; + }; + class Item2 + { + linkID=2; + item0=1068; + item1=1091; + class CustomData + { + role=3; + cargoIndex=0; + }; + }; + class Item3 + { + linkID=3; + item0=1069; + item1=1091; + class CustomData + { + role=1; + }; + }; + }; + }; + id=1041; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie Alpha -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item352 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={510.1658,5.0014391,1021.7027}; + }; + side="West"; + flags=6; + class Attributes + { + rank="SERGEANT"; + init="[""smg"",this] call f_fnc_assignGear;"; + name="UnitGEN_B_Sgt"; + description="Gendarmerie Bravo Sergeant"; + isPlayable=1; + }; + id=1070; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={510.1658,5.0014391,1021.7027}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""smg"",this] call f_fnc_assignGear;"; + name="UnitGEN_B_G1"; + description="Gendarmerie Bravo Gendarme"; + isPlayable=1; + }; + id=1071; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={510.1658,5.0014391,1021.7027}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""smg"",this] call f_fnc_assignGear;"; + name="UnitGEN_B_G2"; + description="Gendarmerie Bravo Gendarme"; + isPlayable=1; + }; + id=1072; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={510.1658,5.0014391,1021.7027}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""smg"",this] call f_fnc_assignGear;"; + name="UnitGEN_B_G3"; + description="Gendarmerie Bravo Gendarme"; + isPlayable=1; + }; + id=1073; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_B"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=1070; + item1=1092; + class CustomData + { + role=3; + cargoIndex=0; + }; + }; + class Item1 + { + linkID=1; + item0=1071; + item1=1092; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=1072; + item1=1092; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=1073; + item1=1092; + class CustomData + { + role=1; + }; + }; + }; + }; + id=1049; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie Bravo -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item353 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={510.59879,5.0014391,999.65369}; + }; + side="West"; + flags=6; + class Attributes + { + rank="SERGEANT"; + init="[""car"",this] call f_fnc_assignGear;"; + name="UnitGEN_C_Sgt"; + description="Gendarmerie Charlie Sergeant"; + isPlayable=1; + }; + id=1074; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={510.59879,5.0014391,999.65369}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""car"",this] call f_fnc_assignGear;"; + name="UnitGEN_C_G1"; + description="Gendarmerie Charlie Gendarme"; + isPlayable=1; + }; + id=1075; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={510.59879,5.0014391,999.65369}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""car"",this] call f_fnc_assignGear;"; + name="UnitGEN_C_G2"; + description="Gendarmerie Charlie Gendarme"; + isPlayable=1; + }; + id=1076; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={510.59879,5.0014391,999.65369}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""car"",this] call f_fnc_assignGear;"; + name="UnitGEN_C_G3"; + description="Gendarmerie Charlie Gendarme"; + isPlayable=1; + }; + id=1077; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_C"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=1074; + item1=1093; + class CustomData + { + role=3; + cargoIndex=0; + }; + }; + class Item1 + { + linkID=1; + item0=1075; + item1=1093; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=1076; + item1=1093; + class CustomData + { + role=2; + turretPath[]={1}; + }; + }; + class Item3 + { + linkID=3; + item0=1077; + item1=1093; + class CustomData + { + role=1; + }; + }; + }; + }; + id=1054; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie Charlie -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item354 + { + dataType="Group"; + side="West"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={510.27676,5.0014391,976.62372}; + }; + side="West"; + flags=6; + class Attributes + { + rank="SERGEANT"; + init="[""nf"",this] call f_fnc_assignGear;"; + name="UnitGEN_J_Sgt"; + description="Gendarmerie Juliet Sergeant (Night Force)"; + isPlayable=1; + }; + id=1078; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={510.27676,5.0014391,976.62372}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""nf"",this] call f_fnc_assignGear;"; + name="UnitGEN_J_G1"; + description="Gendarmerie Juliet Gendarme (Night Force)"; + isPlayable=1; + }; + id=1079; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={510.27676,5.0014391,976.62372}; + }; + side="West"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""nf"",this] call f_fnc_assignGear;"; + name="UnitGEN_J_G2"; + description="Gendarmerie Juliet Gendarme (Night Force)"; + isPlayable=1; + }; + id=1080; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={510.27676,5.0014391,976.62372}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""nf"",this] call f_fnc_assignGear;"; + name="UnitGEN_J_G3"; + description="Gendarmerie Juliet Gendarme (Night Force)"; + isPlayable=1; + }; + id=1081; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_J"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=4; + }; + class Links + { + items=4; + class Item0 + { + linkID=0; + item0=1078; + item1=1098; + class CustomData + { + role=3; + cargoIndex=1; + }; + }; + class Item1 + { + linkID=1; + item0=1079; + item1=1098; + class CustomData + { + role=3; + cargoIndex=0; + }; + }; + class Item2 + { + linkID=2; + item0=1080; + item1=1098; + class CustomData + { + role=3; + cargoIndex=2; + }; + }; + class Item3 + { + linkID=3; + item0=1081; + item1=1098; + class CustomData + { + role=1; + }; + }; + }; + }; + id=1059; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie Juliet -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item355 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={491.44461,5.0014391,999.80695}; + }; + side="West"; + flags=6; + class Attributes + { + rank="SERGEANT"; + init="[""mk"",this] call f_fnc_assignGear;"; + name="UnitGEN_MK_MK"; + description="Gendarmerie Marksman"; + isPlayable=1; + }; + id=1082; + type="B_GEN_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_MK"; + }; + id=1064; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie MK -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item356 + { + dataType="Group"; + side="West"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={491.17267,5.0014391,976.23016}; + }; + side="West"; + flags=7; + class Attributes + { + rank="LIEUTENANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitGEN_TH1_P"; + description="Gendarmerie Transport Helo 1 Pilot"; + isPlayable=1; + }; + id=1084; + type="B_GEN_Commander_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={491.17267,5.0014391,976.23016}; + }; + side="West"; + flags=5; + class Attributes + { + rank="SERGEANT"; + init="[""pp"",this] call f_fnc_assignGear;"; + name="UnitGEN_TH1_CP"; + description="Gendarmerie Transport Helo 1 Co-Pilot (Repair)"; + isPlayable=1; + }; + id=1086; + type="B_GEN_Commander_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpGEN_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1084; + item1=1087; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=1086; + item1=1087; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=1083; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Gendarmerie TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item357 + { + dataType="Object"; + class PositionInfo + { + position[]={491.17273,5.6047058,975.20013}; + }; + side="West"; + flags=6; + class Attributes + { + init="[""v_helo_l"",this] call f_fnc_assignGear"; + name="VehGEN_TH1"; + textures="BlueLine"; + }; + id=1087; + type="C_Heli_Light_01_civil_F"; + }; + class Item358 + { + dataType="Object"; + class PositionInfo + { + position[]={489.91336,6.6115026,1044.366}; + }; + side="West"; + flags=6; + class Attributes + { + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehGEN_CAR1"; + }; + id=1088; + type="B_GEN_Offroad_01_gen_F"; + }; + class Item359 + { + dataType="Object"; + class PositionInfo + { + position[]={490.23773,6.6115026,1022.6406}; + }; + side="West"; + flags=6; + class Attributes + { + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehGEN_CAR2"; + }; + id=1089; + type="B_GEN_Offroad_01_gen_F"; + }; + class Item360 + { + dataType="Object"; + class PositionInfo + { + position[]={509.84177,6.6115026,1044.8145}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehGEN_CAR3"; + }; + id=1090; + type="B_GEN_Offroad_01_gen_F"; + }; + class Item361 + { + dataType="Object"; + class PositionInfo + { + position[]={514.65173,6.6115026,1039.9507}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehGEN_CAR4"; + }; + id=1091; + type="B_GEN_Offroad_01_gen_F"; + }; + class Item362 + { + dataType="Object"; + class PositionInfo + { + position[]={510.1658,6.6115026,1021.6835}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehGEN_CAR5"; + }; + id=1092; + type="B_GEN_Offroad_01_gen_F"; + }; + class Item363 + { + dataType="Object"; + class PositionInfo + { + position[]={510.59879,6.6115026,999.63446}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehGEN_CAR6"; + }; + id=1093; + type="B_GEN_Offroad_01_gen_F"; + }; + class Item364 + { + dataType="Object"; + class PositionInfo + { + position[]={510.27676,6.5964622,976.57373}; + }; + side="West"; + flags=4; + class Attributes + { + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehGEN_CAR7"; + textures="Black"; + }; + id=1098; + type="C_SUV_01_F"; + }; + }; + class Connections + { + class LinkIDProvider + { + nextID=50; + }; + class Links + { + items=50; + class Item0 + { + linkID=0; + item0=813; + item1=110; + class CustomData + { + type="Sync"; + }; + }; + class Item1 + { + linkID=1; + item0=804; + item1=110; + class CustomData + { + type="Sync"; + }; + }; + class Item2 + { + linkID=2; + item0=192; + item1=110; + class CustomData + { + type="Sync"; + }; + }; + class Item3 + { + linkID=3; + item0=115; + item1=813; + class CustomData + { + type="Sync"; + }; + }; + class Item4 + { + linkID=4; + item0=118; + item1=804; + class CustomData + { + type="Sync"; + }; + }; + class Item5 + { + linkID=5; + item0=820; + item1=120; + class CustomData + { + type="Sync"; + }; + }; + class Item6 + { + linkID=6; + item0=802; + item1=120; + class CustomData + { + type="Sync"; + }; + }; + class Item7 + { + linkID=7; + item0=681; + item1=120; + class CustomData + { + type="Sync"; + }; + }; + class Item8 + { + linkID=8; + item0=125; + item1=820; + class CustomData + { + type="Sync"; + }; + }; + class Item9 + { + linkID=9; + item0=128; + item1=802; + class CustomData + { + type="Sync"; + }; + }; + class Item10 + { + linkID=10; + item0=814; + item1=130; + class CustomData + { + type="Sync"; + }; + }; + class Item11 + { + linkID=11; + item0=801; + item1=130; + class CustomData + { + type="Sync"; + }; + }; + class Item12 + { + linkID=12; + item0=686; + item1=130; + class CustomData + { + type="Sync"; + }; + }; + class Item13 + { + linkID=13; + item0=135; + item1=814; + class CustomData + { + type="Sync"; + }; + }; + class Item14 + { + linkID=14; + item0=138; + item1=801; + class CustomData + { + type="Sync"; + }; + }; + class Item15 + { + linkID=15; + item0=819; + item1=140; + class CustomData + { + type="Sync"; + }; + }; + class Item16 + { + linkID=16; + item0=799; + item1=140; + class CustomData + { + type="Sync"; + }; + }; + class Item17 + { + linkID=17; + item0=369; + item1=140; + class CustomData + { + type="Sync"; + }; + }; + class Item18 + { + linkID=18; + item0=149; + item1=819; + class CustomData + { + type="Sync"; + }; + }; + class Item19 + { + linkID=19; + item0=145; + item1=799; + class CustomData + { + type="Sync"; + }; + }; + class Item20 + { + linkID=20; + item0=818; + item1=150; + class CustomData + { + type="Sync"; + }; + }; + class Item21 + { + linkID=21; + item0=800; + item1=150; + class CustomData + { + type="Sync"; + }; + }; + class Item22 + { + linkID=22; + item0=374; + item1=150; + class CustomData + { + type="Sync"; + }; + }; + class Item23 + { + linkID=23; + item0=159; + item1=818; + class CustomData + { + type="Sync"; + }; + }; + class Item24 + { + linkID=24; + item0=155; + item1=800; + class CustomData + { + type="Sync"; + }; + }; + class Item25 + { + linkID=25; + item0=817; + item1=160; + class CustomData + { + type="Sync"; + }; + }; + class Item26 + { + linkID=26; + item0=797; + item1=160; + class CustomData + { + type="Sync"; + }; + }; + class Item27 + { + linkID=27; + item0=532; + item1=160; + class CustomData + { + type="Sync"; + }; + }; + class Item28 + { + linkID=28; + item0=169; + item1=817; + class CustomData + { + type="Sync"; + }; + }; + class Item29 + { + linkID=29; + item0=165; + item1=797; + class CustomData + { + type="Sync"; + }; + }; + class Item30 + { + linkID=30; + item0=816; + item1=170; + class CustomData + { + type="Sync"; + }; + }; + class Item31 + { + linkID=31; + item0=798; + item1=170; + class CustomData + { + type="Sync"; + }; + }; + class Item32 + { + linkID=32; + item0=537; + item1=170; + class CustomData + { + type="Sync"; + }; + }; + class Item33 + { + linkID=33; + item0=179; + item1=816; + class CustomData + { + type="Sync"; + }; + }; + class Item34 + { + linkID=34; + item0=175; + item1=798; + class CustomData + { + type="Sync"; + }; + }; + class Item35 + { + linkID=35; + item0=815; + item1=180; + class CustomData + { + type="Sync"; + }; + }; + class Item36 + { + linkID=36; + item0=803; + item1=180; + class CustomData + { + type="Sync"; + }; + }; + class Item37 + { + linkID=37; + item0=197; + item1=180; + class CustomData + { + type="Sync"; + }; + }; + class Item38 + { + linkID=38; + item0=185; + item1=815; + class CustomData + { + type="Sync"; + }; + }; + class Item39 + { + linkID=39; + item0=188; + item1=803; + class CustomData + { + type="Sync"; + }; + }; + class Item40 + { + linkID=40; + item0=973; + item1=964; + class CustomData + { + type="Sync"; + }; + }; + class Item41 + { + linkID=41; + item0=972; + item1=964; + class CustomData + { + type="Sync"; + }; + }; + class Item42 + { + linkID=42; + item0=970; + item1=973; + class CustomData + { + type="Sync"; + }; + }; + class Item43 + { + linkID=43; + item0=966; + item1=972; + class CustomData + { + type="Sync"; + }; + }; + class Item44 + { + linkID=44; + item0=983; + item1=974; + class CustomData + { + type="Sync"; + }; + }; + class Item45 + { + linkID=45; + item0=982; + item1=974; + class CustomData + { + type="Sync"; + }; + }; + class Item46 + { + linkID=46; + item0=980; + item1=983; + class CustomData + { + type="Sync"; + }; + }; + class Item47 + { + linkID=47; + item0=976; + item1=982; + class CustomData + { + type="Sync"; + }; + }; + class Item48 + { + linkID=48; + item0=824; + item1=964; + class CustomData + { + type="Sync"; + }; + }; + class Item49 + { + linkID=49; + item0=839; + item1=974; + class CustomData + { + type="Sync"; + }; + }; + }; + }; +}; diff --git a/overviewLogo.jpg b/overviewLogo.jpg index d52a5a5aa64e0a298e4e9fdcaefa6e02a40d5172..822e6152c1ddb2581450353f572720b99d003841 100644 GIT binary patch delta 9088 zcmb7qdpK0>+x8Mtq)FLiI~AdbN7)oIm4qa;Q^Zt~5Tj(}q! zW|djKPpP(|-Nvp1y{8Ep!1L_&3Yyt}DXjSSPykm}OPNdOzxp7ewm(cN_Zs<|t^ssC zN-+ffHR#9a>;WpQk7I!FCa{&5<^{I9DV&50nQy&9?_GRcVqG&v5k}>E=iJUFZBTue zzWoAEE5bswUIMHtLt9vL&VSqxV~b4Gxd`{|SPJ@@&Q&1{UO|)X$|S(e#0m)rbXp*c zDdJLOCrJXx;_Knq+Jm+R_|{x#YB*-L{)D3Y$U@w?sL2n!$f&69m?E6gBl=4!eA7*+ zBLN<{Jp(zXUx2?{@dA0u%uWfgmvTe`ylpuy0lwt}sKa^c03NmuK$k~Bp6K!iJi>KV za4BLG&PfH=o(Sp-dJbBaM?Jmzu;|KerKMa)qiaUuuK~7`OK3R~;QA#3JCRsLK$O>@ z%RALt@hM|6%>uQQg4W^0`=MOH(uZegd-rIkjx)9zXpY=JJDCq4%OBBhN`Qn{WLbzl z)A-MV;5KNU;YH5(yn*O)o#(_Ry+8HpgQGn|`?orM0fy9S0y~~iiHiqA zsqkjC1Un7HwReKqgfBlnmF+X+cx7jS6Lj3oJmBNa-ga$esAW6j9kq_Y{!WB->t@6f zK!zzUKsBP1*t6F|k!{bTQ(LP7nZI4jSwTzAtM-4BSLJ#hU5MY|t_Z|!>Lu1tpkOAV z#1evW*mUp4braUu?iQpn>f-eKn|5%WE>ACiI51l+SfLnHsbWOhY(#Fo|4N^xi$x`# za25x|y`?}$@S0=`*sr*&2qrkb`aD@(nI*i^o<3QT7>K*Kt?_x|;95wqAs$h_giE5URPO+r>^Y9mz{95nPSl^q$9vRr#_R4$7YiEdyI00g zS(*PM(Ezxi+VfBU|JYx}==#IrB>MO4DGGc%7>{J{!oMq55g(81lK{{K!VD1_5eCA^ z+%0%cDoz_GNc^ahVsm5fES@fBhgof&E?YgMT+WYb6N9S|r^s=1wvVw;t0K18( zh3Ja*gA6Y_vuM_v{6Cq=O$Jor@y^nz$g|aI`|~484jj3STba>pT}D+9V=MXg(@qr} zWR*yO9~aD}#L*z*4RI9~v71E5kqV}x>mXXgi)fN>-{nTf>MzxeoyN0Uj!&sRJ8-G} z=%<`>>M~(Yv&7qU=zJdksvwv*i6~dKkL}xupwQILcYA$Rn0oG(Hc#8Lf_#)r51gx_prHd#a+$^>DnV9t|f3_qOU1%Y%sp(Zjf00SxY=idx^&?`ImRZyw$D>P8{0wfy< z+EaNCOdT4$ZKl&LhO&mwJbY_8u9dTn`D^??-2jNYh}E6cVjdQ~tKj?7A>hn`e!B2x z+%*Zn7^hT6wGxIVIrDGSo1}O>8qpd)hdl;9|3L`lUw@=WmuV;OUVoDr?b8)M)XvLz zLI(*1b`N#oz!s`FIlm75MEy*KZIXnmV20>o^cr?Z-CH6sJ!Vr6jiXg2CHZHJG%a#% z%+y0Z+6mGH=#L`Y*^G1mMkqEg!)1vy0nt=@j_n6o|w%A4atl zME+oJGb}<82MN%DZK9+l=nzPpBgNTC0J;(=cn_e(7Cjj{cmWYvohUG|JzX5+_46@w zZ@?k@Xhv}3^Ss{f-Lk1oX_NQIQ}JG?`Jc=iW1Asi!Ip`K9LlQWLvN(AuB2O^FHTzx zeApVlV_o<(F)Z#q9@;}6o@NkgOj~?{kHHGO=h~)Df@67CV#4*zzzcPWHuVoiX>lpf zoEJUku$;+qU`_7qup7GEOpwXYk^Mw!a^-f#w!hy=I8f!@H(D8FS^3J{No#{m#P=uh zgw$c985|sD%FmGi`{sGGB7vF&&?^2P>y_p${)Y>}|K-XlQZgReOC4_H$hGjp+v4j~z8jA`PpEG!#Dq3agH+>bJ57ZKXS zg0~!{B1)z01f>XXO42rDkB)6sMfLGV%%yok)2gPf`fQnz`I!24HO(uN8J?&Dh6b{y zG0abRgZ33_!pS7|i6$UlE^$5d<5jk&#=ZL;5fK+B782IhPVzM)`GoKtlYlhO3!Ebj z&Y}l-oB(n9q8pmq;v4Q`z@Xx(Z^2YlMR3@wU>q8#2z*v>+8{SnW{qB>)hYgHojRjE z{Q55ZuqmP<5*`+~@#$CrkHL>2D#P`OX^QRX)1;775enBy7t~GH-K(oVw%M|MG;=$( zn*>|ApvzPQEOdFehy*8bL0s#Q?aIZaW$ck=d8Oj1&ptiEWK-iOC!g<)HyPCH>^XU{ zD`pmP-1Jxi^j1&dVP69YVDw!A+!{BhFIqmZmjDW_5@7r)aOwYzpRE+wgo>!XXQB#b zT(`u26tCk3em2SJ+uC!EvA9*}f#x0GsTUr(jwO$fD-jhLrf*koSB3ndR5S7`q+p0zP zVYI=%MrMRkF!h7p#MrP}zH3Uzn{$Inz@6+2hpR0TKGpwv^dS=0vE`No2x#Q1AXho*E-lZWTBRRjA1`P;vF`T)@U)M}wreEH(TiV0Eev66!M^+ z_8o|kLAox)FaJ~V+3(A~!anhn0dMj``wmO~Z!5pk-Dd6K#DgFMYk+L_GyygaU{GYE z4~}qLds-%-j2iuyU}%XzV=Cdht)g1qD{uQc&8qu_e|N+JVhxPy=@P#6*qMWa;}|tB zaVF+dpom%I35)9{PMC8OTY3*9A**=kO2sNHM>`NrLEVj?amrtj-6XYOkEyp)1SON) zEqiuV#9VQ$9;r&3)a}!ro*=?TZiw;{JiLj?Z{w1{H23IZZn7O*O>fQ9C7n;xcNd8) zUW5g7D|IwRQ0sT-JhjEaa*%sCfL9jEY(>CUXL&?i01C$`| z4GUsUYAmVUI+R!rTwRVe2MGW&c9CVV%D^aK!ZmxrHm>z_CZ`^;0UzHf8Q#+0@xUqv ztojzPyYAbL9bEb)0@sW(ghQ{Q#vo@0*1YwYodkjOx#t*AY$=rh9PEw=#Sz&x^bD(o z4_LC`-B{fje3Bbr3D)+^BuM}a$W;l@ee7MI)Vf7DMSRdKGbYv>>(b*A$9P{7}q3YX1UTobO7JP;- z1D=_MZLJR8M+{&$39v!}#Oi@F;BpX~{o8YmyX`<%DrNj?YN_DDD8I2eZr)wWLHS=p zt{a3rCBTA%6(3{$XZu?5i=l<|TZ`yd0-K7>JcTsuh<29VBFv5M1eNB1?`}O_N|uAx zy!>waM3qQfp=o=(Veh|5wC7AIqFIJzVi}CxO!kC0lkCImNscXT1vRyU?FDIzim%UG zKWHv*sB@YRq7mkDJZ|=;m4GHO!if^?~`*s`GMTL#!X3{y}pgk&25ZG``6D9{tn#|bK zjZVh?{Q=Ii+Wr-F51KmmIv9}4(+qiduZ5TNXQuE*Ib@9sn}{f5+;RDDh{dCK(37kQ zt<+S?s*uo^WCyO#{u8{{{d$Q)?tp$o;@-57gk`tE5RbPj7c7veAd14=G6MU_ypDp; zRu$+q*)3#M-~!3`MEa4IZ<98)3!v#qUNdk3Watvk&aObeVw}-~g0<`Ah`${*ghNp$ ze)T50Jnp{j^XPHOZ`_tq?ISSCMcb>#EtZj$b!F5Pw)d-Jm2n>amW zjRiMU(I2a;7w9Ke9S%`8ZPQr|mkaED1f@wA$Z}Vn?e>dNeC??Ho_Ks;<#nx~ORG=F zog}x%+hIECdNzTb3Cd#+&I0XBU}rywCIQ+#Kf&CdBNTUQF=BNf{etj0K5yJ!_0!&- z`;)epXXgx%RYs^H6UGWtcDwkRAN)YD<`{e@fU7T15#IIdweSuOCT>6|duk162*VUZouXnF^*rIe{#k?MKDvyu(0W!PAcae?Q&(Cm$K+Y95 z1v!mG^+1;5AL1(SpyZ1Y6K!$%7ph*c)gyndjvv%j=cfSZq3Jn4RIv>Uwg-6|_F92{ z!mnyF6mil z%7gcC47@VT^3B`Jv`|#Z546zKs|(CkQ(JmeUhgRBuJoOO_?@Nbx)0)P@cSvaA5(U+ znG#^VC&vI$Qxj@HBxFq z0L1hlYJI4@3J){V9A}nWwaz9*(zKfd%5m!}z|XC*qc8F-X-CFFe^>6%4PmWgjAk@x zAiJ^t(M1S0T~tG{Lg5guU|gU^V9F<855Fibrek8`CZA1D!K>8Fu8sD2`G{tH^_%4f z^?chIa)(CkJ|0Vp*^S9<3=J8LEa)))77;pXI*3t-RkV#K;4>diekS`x6oGH^Rqof; zPK?>u?6_OmX?%k=oz(et=@LP^n}z5c$e^;SDEwZLYjhR2Bdvy#5;>+X$Z3tT>J5zT zDp9@F+oEMOUOe1rII?=uIHu<_Js&^hg341xd*WK?D}N#eP%$^LflXh@BGSrsrr))k z)ygx~x>#M(si}20#f*su4XM+3bXlN)*T$-5A*-|5vl&e>FMXo3+i2_iUOxE}VU**L z`(pr|urOY=8M;**Z|yGk>oipSrWRDd0OTo61M1Fa;!5Et?t_>2g8E(sdKp^yrz_kB zw$$u%0s>x9e=eaXKd?a$E6Is-9WV_#3SRhvSvzqCSY(DUOn?r#W#C_tS~C+O!DVq9 zf_3C-1o{QfUCTQBl~_z@Sc6fNiM7LJGsrJXf@~_fW}c1|5DSRa zvwR;=utxY1E;dMyGk_n7+I2Q%4H#K|G5Kt9yG18bU-#(A6@{bIizl(F--k_iCFqaK zq(cX06XMJTNetqOX_}$H;AV(v&CWenQfsn)MxCsBbz;vq5nw3&izvi+$n{qeAdos7 z%r;F!wcu2H*m>o3Uis?T-CxdD_L}N8fG$`5_EKMQfqCH>=OjC4omN<^=Y#|32||al z{z;h0hWyawBZ8i`F*R71la6mKTnp*cJPVBa^wp<2H|nn;SG_||18=>5ov?Ko?=fh2 z7m!YA2>Iw(>Q#Dp*QMqkMe84>Z2HGY`_Cqs7;J+v!JHXSQx}B1ASh#s)+??_m?G?j zpG_Z3;g{FdA4>R^^lLsD&>jD(NehOi(G^h`y=oTOgM)Z1oxRMQaTXNIL`vu!ra0Th zO>7->SxRh(==YNi%E>$XLYovWaz^O#2VP!Ys8(N}?G~|;(exx~{w!(bN){I!Wm#a| zj(VuBm(G50lwqi2-0ZkGrxCg_l>8>~0Um&STep}3xg$J%zaT+0wh!;^L3fEbJUWU{?}`RS)G z@2#lq^WN94;5=TRz0Ga)neBt=3+n(U@uE1L&aR+WfrzpKH+?bzU4=L&wd?5j%?(+^ z%w+HTa^YiSMW?cxzUY>&eNw(z{LsSdQ(8dWE^OZl=)bUF1(=GKPD_AAD>rHt=DL6j z_TLDg&^n0qevF3owd*|aTQS;A6e= z1W5C>#cHAwxiVl*xFG>n|0&n?5cq!_$Q!U*+gxAUut#l0mY%~2x2JlZa|WX5xM93p z1QFI_wuzTAxg9Mo4=(XI2dSr3!3S!|Glf50u9v(|P`TyO^o}?_xHPS0Fz-GG* z;e^3(GZ!ZXk8uCclDIwcV-|^Jr^a;pOD(HjTIs{(Cp6WkUN|;`TJ%*lP8M|hbY5;{ zOf572X6q-~vaxhsmF>2_mQC-%M}Ul16eYw4Dn=D_q1lsygUyfNUkxP~S(Js_N&aL_5{?%e!i!v()f z$$IOwF5V%w&CXPa43S;p8r1v;eI>dUzKVG8w0$>CRQF~5R5-lVevQle-v*b{LiYN7 zSizGvNLg$_*Qbda2;ae*qgZ!w!z}Ax{s4G{u7Kb~1Tv}bCDm4~7|{}3eQ-BHGkMO% z)yh3XPItZbqZKN*CgtvX{>z)&AMNN2Ss|)XT$6%FKVsuDOIx0tFV`+luk?OdYjn5X{-)*+GGv>6x*1Nl$__ zx~We=c>jc^i>78keZ%YUx@C8Yj6Yrl^y#S*00;{EPP6SbH7WU3UT(_H_hi^8ojuec zT?p(n5^2Kfm_A>Ez5}Z%ZL>HS#~`Tj|Ik&Vp9zf38)YG3xzy_iv?)?We%f@o4(1J5@Edoqk8ZhJ|g*PGJX&fPZK* z=toE<)I7P6to#@ zt1P@sFcE`0b_P*;&Q0n3;*;y;fs6iJpW{K6Sze>wW?w@8mdn_s?tEzFGObltm^uG2 zg;(@8H`riuMuAINiugh$g*bu9Lta6%?^xGtIcY^M)z5ErCvD7ml|Se9soL4RC(8^5 zLBe?|Y#K0AAks$ynKT{pF1Ut-Nxrr4xg*yP^^NT64^^yc3f!EzRWl&HG9zi+kICE+ zPq-}shJOk}Y=rONhZjl4x$~;%w*Ipz#|NLczg;|}?(}U{jLhX1vv81GGJVdY3F{cw zMRatB2im7&+=pBdVJe<^xgfJP5cFauM`(&Rz1O=06VGVw{qpi%;$eKQh+TJQ$8hxMos3=7OghOF z*2VL;U`VoDC_47hH+CZTWE7I_q_(Z->Qv z^ZZ7d3CG&hc5xZ~G;z3xLusd`u;hQ*8bBX7R>^a-YSC1$t5F9UeGFVG8ZsuP*e#@R zz0b=y=_6;IevX7ab6!IGhoU7B*!6_UNq!x6uR1|y3+tu?P%aWUrdhbUxYXD5G3~$b z4}fKgGl!hWo&3*cHOhs@*JNxxFTK!Tw$4@~;{kp@5Tfj{OBNgWVhTi(LsZ?~5Fp1{ zEwX#RZ4`&HHaZKhHTXkV8(7p4+9mDXX=9e%ookk`@nlGk{pWg2A#TT^@)R~5HX`vu zIK*2za*zZ_v9)>p-EQ^umfzmfW#E#p&Rczbx_!v^^n40Jl`rjnXX__}7&riNe2}3} zXHVg-<6mKZUmvILEq)C`fGID6X$m#36Mp`7No*@O*gE$0*| zj*!*F%^;gXTuoDg1F#ZoQ`9{vczjoNATR&ErBR@?W0cIdcYX~~jN`XBZhD?rBz9%O zo3KFB+1bR}gUtfn_C;KBlS9cAZS`vii5%A0#awP)cPw0PL!hqDwUDn`TH{ID7ok7c z;SEOI(3fzNwiP0@`hZ@par4Klyo`^91dn%bkZ;Jn9MW>S=R=00 z1>E5PT!})IlY|Am65s-Bgv!lqbHfczdHJUD$|J#$W8F;mWp(cR;J5FT?nPZhj2)Y! z)0N%j`iYQ3&qzlL5pu;&tQ~LAOrsl}m=;~Q7GZvRlQ4EqEAx^?+x=JTJ&YcmGLOIi zimlUZB%DTd&x#A_-*b_365!2ME35}iFBCkAC+r5<98=gR?;4#=#cMZ7bE!+<@U}uw zvl1%2ZjuwO`Z{;o__IaJes$Y>XEnnvcFOI1{(B1h9tIUtdI@21eO`o_Kv4wQ1TN(& zXuBNlB`Z+vpN)C_;3$3(Jh@bnT_r{=5^d4gc4z!I(7ixQM8uq2?rOGx5E{s zQ)6~eZYf7(R4`~RAdxKkU)(N!cj!mKsQ?-Np|F)$@1tR%D&1)LK)q<`|8X5L)$!lQ j`2X8`&Hwa=!^P_6!%}V8ETv7^kkZ=!&#^)plnnhBo!PR| literal 5365 zcmeHLdpwlc|370e?n6k)HpE7xT1#48p2}CKU!judGTTLx&8$`%#XKUBY?Ip9v^7On zY9~cDl_wEJ){5MUnQ^OJ){HV9=DGaNsJ4CWYyar``@Mdz*YA(-nK^UL^PKa1&gb&} zT;`#hXbCV}y2N`4U@#cq7W@EO3feuQLbn01d^xZO0B8YihB?rHGY0H?8I%5;$205z zbL_qvT>JvSUtkD(3S+_89@TXw0~woZ!g-FL;TR2g6aaokKphTnYQgav_i+yIsT$;D zZ133k?WWN1$Qj|mk(SOgX3cPcOM5>DjDu$Zh)Z}kj?nL~U%wl7&w4lZeEn{8`{~_i z##4>-bKnlt7!1|-ePe1cRZUY}ovFdnWU*9TOIuf4OG`(K#nRE&(b3g|jiqhC*4Hyo z%~eEHkE@=7Up+0BmTJep*XaAeNQ+^>FkmvK05u~9(}+Qr0S=U116o97l=qFH##GnP zge>Xk!VLw6kbNdo4Kk~t4%Ntrh3i1wNMoGU7mGBF{Wh_tM3^}3Pdle&y*RJLbY-o~ z=F82y;6U<`#n+7dlL>M9!yF;lydC&k0;VIema?%m3{ug#Y>m3rcu4CYKSEOAXpU zou!hCp|%Hhrjfda)fbxM7WuI@MHo+U+OK7@IPF|siMI8ZD`lpech%~Qw{ez!E?0>* zCfTP67XLqz>`%cy%GCn&m<(tD}D67v2`jZcW(AJ6Zm{Wb09O6N}Q{MHUHs_G2T_ zI7)-#muZl&{uJe!D|1GhVrbBXT?rV%bMt*!gDe^t-sZP1j1e;?`52}puyI=w@#kRoar=sYwQi{8J*i!rN%F+M)&F6 z$;A)SApUwWBDo^WFZ3C)FSesW-MwdEAB#^|cIth>3$mh_Yv&RQdtWfmPAZrp0 zGK5Jq7;(cy4>#oJGYBWD1-*_u6yUb#LkG4-%odr5u%f0ubG|%uCv0Z_-1+X+H;;v$ z^Ny(s3{Ks)EIK3f>(Xrz@!CTJ&3h;<2jyCR3!?TGIfUv_CNy}kOd=c?o2{Jd2NihA z^QO`>Ey6J$EBf`$5&!4TPBWh*%-!XrW!uNb=lfOCpk!4H6UvzD16eQ5Cg0gNj>=c8y2#MdUG&3Hmy#2TOMQWG7KV&h#Mwf9xfo+J1#s*`udXZUM0$ zE%^l*JdN(hh9PR|(N&^eMI5sMOGa=9wLhRF7pbRWg?|jR?WKJ=l$aevS)r0#@!*d& zE$gVt!j!oo)aK#U4D#-k7t_M<11Rpm>i;h`@pECt05K;Bqk+vzw6qD`!5jUGClKS` z7NC^ZS@!P`49i{74_H{i83|}`7#fC-1$i`ydC%i{^AqS);Y4h^4~PHs%(R3J_zxX| z2~o;*`T6T6xUh|S&D^fl&+hr7SEp+3o#~r8)8d(N8;&@w*h_RN99WxRMqhqBwMWTe(Hyn)i6TgJC9 zezw!<*VU1M>C?I*1J%5zBrz@L8l-M#j!uWZY7db;p1*(wH*#U{c%AJjYV0BQ!vzNe zRFeL;1pvL9(kZ2Z-A(cW+IIqnxLR)JPb_Lwz!i;6P-TJCQ%tdxfL6MAIES))1+r4? zKBY4UXn?y^P^&~TSE_>sqk^8@B)@S`1A-Nzq;fZ=X>&sDbxk81EV#ci$yR+xu-UhkH#&NqEw281zbX`0tNeslNh)SdDTBC@?Aj%*pCBJ5v>y{)|(&^yFm2#NNH2M^Euc-xl&PxJp7E;!DELInpv zh1D$)a7E8Xn5q@DaykJie!O4LfZ2dBO``llluIFX2e~JeIU^TO5cR+LN0a={@G$ZH zl+F^YFg$3J8;7N+-5s0C(`LXti#4E!$~ZGCJdS7S8ABm#~r?!*^cW*yeERRN}V4mnZL5 z53f{nPi)B@jMqjysS=^=I~r8f;I_Ozq0}d#SX(A2Ay<`7W-GZ(zZBe?>34?W=C}Do z+x{dIdrU0LFwksj)G@I*>P<-W_j79p2*Y)hmZQ>^YT?Sf2NDtE1yf_D!DNyFvoY03 z)z)LusSVSq+RiYuhFX44+aGf>zL`~y+3WQ`er$7;eH3YT@o5oK2RO|tQPnds8cgqf z$;KfK!opUbP3ct2SYG&d@=2wL?%NH<9&+^sHu0$b>&Av*p9s@}>Y`ld;p0|<;Q9k` z=L*$3^%6*k#j+X5bs=deChn?K|M=NRDGgW%G=e#@O^n-y^yy03lVU7z9u2h6Lj^v` zbtZgse~yhI`!XV_EGeY4LplbO_C<%F zhpEt4@c#vU?E*@xO1UE{fYOHW)R>A#$Pbqnp~)^jdN`u==}&L5F|3K5*%EoDY7UW~ zx%O!LvICAq9uE#$+X89;f=hVg5i)2=@S&EbrqQ6v4Uqi#VR!-rU>;hz3Jv8cKNKx+ z&)5TxX>gL&F-&PY3m_WbWGi_wJD$=Y6nXC6K3ulbKr%GNKHKf;ejDGCz&J~3a%Wt0tcl-34U~(ieCq62F#&zbvc7jj-T#rOwFb9Fh|d@@ zHl_U>BBUAT$@Y{N8{t?^)Tt60w4mSIu64fV7B-Pzm$PxBZTg`2UoVYbSkBE}KkI9! zSzfHS^T(o0A(2&eA5r*64v@}aCXjvXMh$c(4kq(Hj}HD;YzQNGA}Wz`UPE(LO%H@IL$USYw$sH?pGX4A8GPd-WfBiqtMH%>guQjIZ;5)=JZ zab7-5p4i|C!@T)?J{IuC76vC6|4JSRVPKXVNAl1^#TLX8Sxp%kw!YzR*zR_(5Lx%> zEfG7?2b-GK<$UQAt$T>s^2keTi4IYAjMWOGfv6Aq{9-mt%i}^h#Lcs843k_%1`i`G z0n}q|3i7sgH@ECF)I)shCGlCE(v|;In1?i1T4- z2cfejpp!+Icfj=1h{K9Ef(E4LkQ;?`if7UMP$*?rZ)t5{3S&o4bCYQanJ(Y5Y?5HBtI(-u?(Q}u9E2iRLFpU zfVC6P3nukoj$9+4?*`h<$5pW?q1u`TCr*r#9zd0k%1pU8DoD1N1L5(3x=0bod4t5D zep%`^@Pt$@L?v%N($1rS`!Gxxe_>lzp=gC?d7#_G&AE!1_&xcg#qz>(TgtsSFn*#^Q*q21f}9`GAE{zO%A)tW_24DogH zG9_2AaR;-$8=l0^qWc_JGD6hb1jscF>}+8*R;;QWgN3kmj6?8m^97VwHZ{3a2}`Kj zsu%_hN)w@tJW#_(UzVyCVsBCzud5hpUi#oEGBQPg?_;ZQ@98LG(ZFClwBBP=Vo~iv z&hwYV{3MlOv(s@V4U%-BhC5RbSmi;NwkZ4yD=ZIy@`N%4r#XZ=vQEOLEF7UxkJ-V8 zu2WUW+g)OS%A^oOY0!U6{ym-{QZ-y)aLlBt+h8>qA5Q%qG(J(eD8{g%;9i(il-w6d zE-0-C+ED$BEGybj>7nOm)76>QdcxmiTv;4rDkhln#X@J}%uoI!@Sise|GT# 0) then {_mode = _marray select 0;}; +if (count _marray > 1) then {_modifier = _marray select 1;}; +if (count _marray > 2) then {_compl = _marray select 2;}; +if (count _marray > 3) then {_road = _marray select 3;}; +if (_count > 4) then {_code = _this select 4}; + +_pos = if !(_road) then {(_this select 1) call ws_fnc_getEPos;} else {[(_this select 1),150,5] call ws_fnc_NearestRoadPos}; + + +//Fault checks +//Checking the variables we have enough against what we should have +[_grp,["GROUP"],format ["ws_fnc_createWaypoint: %1",_grp]] spawn ws_fnc_typecheck; +[_mode,["STRING"],format ["ws_fnc_createWaypoint: %1",_mode]] spawn ws_fnc_typecheck; +[_modifier,["SCALAR"],format ["ws_fnc_createWaypoint: %1",_modifier]] spawn ws_fnc_typecheck; +[_code,["STRING"],format ["ws_fnc_createWaypoint: %1",_code]] spawn ws_fnc_typecheck; +{[_x,["ARRAY"],format ["ws_fnc_createWaypoint: %1",_x]] spawn ws_fnc_typecheck;} forEach [_pos,_behaviour,_marray]; + +if !(toLower _mode in _modes) exitWith {["ws_fnc_addWaypoint ERROR: ",_mode," is not a legal waypoint mode"] call ws_fnc_debugText;}; + +//WAYPOINT CREATION +_wp = _grp addWaypoint [_pos,0]; + +switch (_mode) do { + case "sad": { + _wp setWaypointPosition [_pos,_modifier]; + _wp setWaypointStatements ["true", format["%1",_code]]; + _behaviour = ["AWARE","RED","FULL"]; + }; + + case "defend": { + _wp setWaypointType "MOVE"; + _wp setWaypointStatements ["true", format["[group this,getPos this,%2] spawn ws_fnc_taskDefend;%1",_code,_modifier]]; + }; + + case "garrison": { + _wp setWaypointType "MOVE"; + _wp setWaypointStatements ["true", format["[group this,getPos this,%2,true,true,true] spawn ws_fnc_taskDefend;%1",_code,_modifier]]; + }; + + case "patrol": { + _wp setWaypointType "MOVE"; + _wp setWaypointStatements ["true", format["[group this,getPos this,%2] spawn BIS_fnc_taskPatrol;%1",_code,_modifier]]; + }; + + case "ambush": { + _wp setWaypointType "MOVE"; + _wp setWaypointStatements ["true", format["[group this,getPos this,%2] spawn ws_fnc_taskAmbush;%1",_code,_modifier]]; + _wp setWaypointCompletionRadius 50; + }; + + default { + _wp setWaypointPosition [_pos,_modifier]; + _wp setWaypointType _mode; + _wp setWaypointStatements ["true", format["%1;",_code]]; + }; +}; + +//Setting behaviour etc for waypoint +if (count _behaviour > 0) then { + _wp setWaypointBehaviour (_behaviour select 0); + _wp setWaypointCombatMode (_behaviour select 1); + _wp setWaypointSpeed (_behaviour select 2); + _wp setWaypointCompletionRadius _compl; +}; + +//_grp setCurrentWaypoint _wp; + +if (_debug) then { +player globalchat format ["DEBUG: ws_fnc_createWaypoint. Waypoint %1 for _grp%2 created",_wp,_grp]; + + _mkr = createMarker [format ["%1-WP",_wp],waypointPosition _wp]; + _mkr setMarkerType "mil_dot"; + _mkr setMarkerColor "ColorBlue"; + _mkr setMarkerText format ["DBG:Grp_%1-WP-%2",_grp,_mode]; + +}; + +_wp \ No newline at end of file diff --git a/ws_fnc/AI/fn_bettervehicle.sqf b/ws_fnc/AI/fn_bettervehicle.sqf new file mode 100644 index 000000000..d94330b29 --- /dev/null +++ b/ws_fnc/AI/fn_bettervehicle.sqf @@ -0,0 +1,98 @@ +// better vehicle behaviour function +// v1 13.04.2013 +// By Wolfenswan: wolfenswanarps@gmail.com +// +// FEATURE +// Vehicle crews will only bail when the vehicle damage is over x (by default 0.8) or the guns are destroyed +// +// USAGE +// [parameter1,parameter2] call ws_fnc_betterVehicle +// +// PARAMETERS +// 1.side, object or array of objects | MANDATORY +// 2. damage until the crew bails (any number from 0.1 to 1) | OPTIONAL - default is 0.8 +// +// USAGE WITH F2: +// Use f_var_vehicles or f_var_vehicles_BLU or f_var_vehicles_RES or f_var_vehicles_OPF as first parameter +// +// EXAMPLE +// [east] call ws_fnc_betterVehicle - improves behaviour for all OPFOR vehicles + +if !(isServer) exitWith {}; + +private ["_debug","_side","_alloweddamage","_vehicles","_handle"]; + +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug + +_side = _this select 0; +_alloweddamage = if(count _this > 1) then {_this select 1} else {0.8}; //damage allowed before the group bails no matter what +_vehicles = []; + +//Fault checks +//Checking the variables we have against what we should have +if !(isNil "ws_fnc_typecheck") then { + [_side,["ARRAY","OBJECT","SIDE"],"ws_fnc_betterVehicle"] call ws_fnc_typecheck; + [_alloweddamage,["SCALAR"],"ws_fnc_betterVehicle"] call ws_fnc_typecheck; +}; + +["ws_fnc_betterVehicle: ",[_side,typename _side],""] call ws_fnc_debugText; + +switch (typename _side) do { + case "SIDE": { + // All non-static vehicles with a turret on the map + {if (!(_x isKindOf "StaticWeapon") && side _x == _side && canFire _x && (count crew _x > 0)) then [{ + _vehicles = _vehicles + [_x];},{if _debug then {player sidechat format ["ws_bettervehicles DBG: %1 has no crew or is a static weapon",_x]};}]; + } forEach vehicles; + }; + case "OBJECT": { + _vehicles = [_side]; + }; + case "ARRAY": { + _vehicles = _side; + }; +}; + + +{ +_handle = _x getVariable "ws_better_vehicle"; +if (isNil "_handle") then { + if _debug then {player sidechat format ["ws_bettervehicles DBG: Improving: %1",_x]}; + + /*[_x,_alloweddamage,_debug] spawn { + private ["_unit","_alloweddamage"]; + _unit = _this select 0; + _unit allowCrewInImmobile true; + _unit setvariable ["ws_better_vehicle",1]; + _alloweddamage = _this select 1; + while {damage _unit < _alloweddamage && canFire _unit} do + { + sleep 2.5; + }; + _unit allowCrewInImmobile false; + {_x action ["eject", _unit];} forEach crew _unit; + + if (_this select 2) then {player sidechat format ["ws_bettervehicles DBG: %1 has taken enough damage or can't fire any more. crew bailing",_unit]}; + };*/ + + _unit = _x; + _unit allowCrewInImmobile true; + _unit setvariable ["ws_better_vehicle",_alloweddamage,true]; + + _unit addEventHandler [ + "Hit", + { + _unit = _this select 0; + _damage = getDammage _unit; + + if (_damage > (_unit getVariable "ws_better_vehicle") || !(canFire _unit)) then { + _unit allowCrewInImmobile false; + {_x action ["eject", _unit];} forEach crew _unit; + _unit removeEventHandler ["Hit",0]; + if (ws_debug) then {player sidechat format ["ws_bettervehicles DBG: %1 has taken enough damage or can't fire any more. crew bailing",_unit]}; + }; + }]; + + }; +} forEach _vehicles; + +if _debug then {player sidechat format ["ws_bettervehicles DBG: Exiting. Improved vehicles: %1",_vehicles]}; \ No newline at end of file diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf new file mode 100644 index 000000000..e170ddd3a --- /dev/null +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -0,0 +1,188 @@ +/*ws_fnc_spawnGarrison +Latest: 01/03/2014 +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Usage Guide: http://www.folkarps.com/forum/viewtopic.php?f=48&t=1224 + +FEATURE +Populates the buildings in the given area with the given number of units + +USAGE +Minimal: +[center,radius,side] call ws_fnc_createGarrison +Full: +[center,radius,side,number,number,array] call ws_fnc_createGarrison + +NOTE +Make sure to call this only on the server or headless client. The function itself does not check where it is run. + +PARAMETERS: +1. Center of town. Can be marker, object or location | MANDATORY - string (markername) or object name +2. Radius of area to be considered | MANDATORY - int +3. Side of units to spawn | MANDATORY - side (east, west, independent, civilian) +4. Number of units. | OPTIONAL - number - default is No. of available buildings/4 +5. threshold of building positions that can be occupied in the buildings in the area | OPTIONAL - number between 1 (=100%) and 0, default is set below +6. Array of classes to spawn | OPTIONAL - array w. strings - default are classes defined below + +EXAMPLE +["mkrOutpost",50,resistance] call ws_fnc_createGarrison; - his will create units in buildings 50m around the marker named "mkrOutpost". The number of units will the the number of buildings in the radius divided by 2. The classes of the units will be taken from the default array (by default light riflemen). + +[UnitNATO_General,150,west,50,0.7,["B_Soldier_AR","B_Soldier_GL"]] call ws_fnc_createGarrison; - Place 50 NATO soldiers in buildings in a 150m radius around the Object (unit) named UnitNATO_General. All of them will be either AT or Grenadier. Only fill the buildings to 70% percent. + +RETURNS +array of created units +*/ + +// DECLARE VARIABLES +private ["_garrisonWest","_garrisonEast","_garrisonIndp","_garrisonCIV","_threshold","_debug","_area","_radius","_side","_int","_thrsh","_classes","_buildings","_grp"]; + +_threshold = 0.8; // Default percentage of building positions that can be taken in any given building (1=all) + +// Default classes (Arma 3) +// To change which units are spawned for which side, replace the array or add additional units to it + +// NATO +_garrisonWest = ["B_Soldier_lite_F","B_Soldier_F"]; + +// CSAT +_garrisonEast = ["O_Soldier_lite_F","O_Soldier_F"]; + +// AAF +_garrisonIndp = ["I_Soldier_lite_F","I_Soldier_F"]; + +// CIVILIAN +_garrisonCIV = [""]; + +// NATO PAcific +// ["B_T_Soldier_F"] + +// CSAT Pacific +// ["O_T_Soldier_F"]; + +// Syndikat Paramilitary +// ["I_C_Soldier_Para_1_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_7_F"]; + +// Syndikat Bandit +// ["I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_5_F"]; + +// FIA +// ["B_G_Soldier_lite_F","B_G_Soldier_F"]; + +// Debug. If ws_debug is globally defined it overrides _debug +_debug = if !(isNil "ws_debug") then {ws_debug} else {false}; + +// Declare Variables +_area = (_this select 0) call ws_fnc_getEPos; +_radius = _this select 1; +_side = (_this select 2); +_int = if (count _this > 3) then {_this select 3} else {0}; +_thrsh = if (count _this > 4) then {_this select 4} else {_threshold}; +_classes = if (count _this > 5) then {_this select 5} else {[]}; + +//Fault checks +//Checking the variables we have against what we should have +{[_x,["SIDE"],"ws_fnc_createGarrison"] call ws_fnc_typecheck;} forEach [_side]; +{[_x,["SCALAR"],"ws_fnc_createGarrison"] call ws_fnc_typecheck;} forEach [_int,_radius]; +{[_x,["ARRAY"],"ws_fnc_createGarrison"] call ws_fnc_typecheck;} forEach [_classes,_area]; + +// If default classes are being used, select the corresponding array +if (count _classes == 0) then { + _classes = switch (_side) do { + case west: {_garrisonWest}; + case blufor: {_garrisonWest}; + case east: {_garrisonEast}; + case opfor: {_garrisonEast}; + case resistance: {_garrisonIndp}; + case independent: {_garrisonIndp}; + case civilian: {_garrisonCIV}; + }; +}; + +// Collect buildings and assign building positions +_buildings = [_area,_radius,true,true] call ws_fnc_collectBuildings; + +if (count _buildings == 0) exitWith {["ws_fnc_createGarrison DBG: no buildings found at ",[_area],""] call ws_fnc_debugText}; + +// If no amount of units is set, calculate default +if (_int == 0) then { + _int = round (count _buildings / 4); +}; + +if (_thrsh <= 0) then {_thrsh = 0.1}; + +// Create a new group +_grp = createGroup _side; + +// Give the group a hold waypoint as otherwise ASR_AI might call them outside +[_grp,_area,["hold"]] call ws_fnc_addWaypoint; + +for "_x" from 1 to _int do { + private ["_b","_bpa","_bpl","_bu","_i","_u","_dir"]; + + _b = _buildings call ws_fnc_selectRandom; + _bpa = _b getVariable "ws_bPos"; + _bpl = _b getVariable ["ws_bPosLeft",_bpa]; + _bu = _b getVariable ["ws_bUnits",0]; + + // Loop until we get a building that has building positions at all + // Mostly a safety, not sure if there even are any buildings with no building positions in the game + + while {count _bpa == 0 && {count _buildings > 0}} do { + _buildings = _buildings - [_b]; + + if (count _buildings == 0) exitWith {}; + + _b = _buildings call ws_fnc_selectRandom; + _bpa = _b getVariable "ws_bPos"; + _bpl = _b getVariable ["ws_bPosLeft",_bpa]; + _bu = _b getVariable ["ws_bUnits",0]; + }; + + // Loop until we have a building with enough free building positions + while {count _buildings > 0 && {count _bpl == 0 || _bu / count _bpa >= _thrsh}} do { + _buildings = _buildings - [_b]; + + if (count _buildings == 0) exitWith {}; + + _b = _buildings call ws_fnc_selectRandom; + _bpa = _b getVariable "ws_bPos"; + _bpl = _b getVariable ["ws_bPosLeft",_bpa]; + _bu = _b getVariable ["ws_bUnits",0]; + }; + + // If no buildings are left, exit + if (count _buildings == 0) exitWith {}; + + // Get a building position + _i = floor (random (count _bpl)); + _bp = _bpl select _i; + + // Remove the building position from the array + _bpl set [_i,0]; //Workaround as in http://community.bistudio.com/wiki/Array#Subtraction + _bpl = _bpl - [0]; + + // Create a unit and move it into place + _u = _grp createUnit [_classes call ws_fnc_selectRandom,_area,[],5,"NONE"]; + _u setPosATL _bp; + dostop _u; + + _u spawn ws_fnc_setInsidePos; // SetInsidePos is fairly expensive, thus spawned + + //_u setDir _dir; + // if (random 1 > 0.75) then {_u setunitpos "Middle";} else {_u setUnitPos "UP"}; + + // Set new variables + _u setVariable ["ws_bpos",_bp,true]; + _b setVariable ["ws_bUnits",_bu + 1,true]; + _b setVariable ["ws_bPosLeft",_bpl,true]; + + if (_debug) then {_mkr = createMarker [format ["%1-bpos",_u],getPos _u];_mkr setMarkerSize [0.5,0.5];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorGreen";}; +}; + +// Prevent the group leader to issue attack orders to the members, improving their attack from buildings +_grp enableAttack false; + +// Set the group's attack mode and stance +[_grp,"AWARE","YELLOW"] call ws_fnc_setAIMode; + +// Return created unis +(units _grp) \ No newline at end of file diff --git a/ws_fnc/AI/fn_createGroup.sqf b/ws_fnc/AI/fn_createGroup.sqf new file mode 100644 index 000000000..75ad0c136 --- /dev/null +++ b/ws_fnc/AI/fn_createGroup.sqf @@ -0,0 +1,105 @@ +// WS_fnc_createGroup +// v1 (13.04.2013) +// By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +// +// FEATURE +// Spawns an infantry group of the desired side +// +// USAGE +// Minimal: +// [position,side,size,[["forcedclasses"],["commonclasses"]] call ws_fnc_createGroup; +// Full: +// [position,side,size,[["forcedclasses"],["commonclasses"]],{code}] call ws_fnc_createGroup; +// +// RETURNS +// [created group,arguments] +// +// PARAMETERS +// 1. position (can be object, marker or array) | MANDATORY +// 2. Side as west,east,resistance or civilian | MANDATORY +// 3 The size of the group (any integer) | MANDATORY +// 4. Array containing two sub arrays: | MANDATORY +// 4.1 Array of classes that are exactly ONCE in the group | MANDATORY +// 4.2 Array of classes that fill up the group after all forced classes are used | MANDATORY +// 5. code that is executed after the group is spawned | OPTIONAL - executed as [_grp,_this] spawn _code, code has to be string or code + +private ["_debug","_count", +"_faction","_spawn","_waypoint","_classes_array","_commonclasses","_forcedclasses","_rareclasses","_rarechance","_respawns", +"_side","_pos","_behaviour","_code","_grp","_wp","_mkr"]; + +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug + +//Declaring variables +_count = count _this; +_pos = (_this select 0) call ws_fnc_getEPos; +_side = _this select 1; +_size = _this select 2; +_forcedclasses = (_this select 3) select 0; +_commonclasses = (_this select 3) select 1; + +_code = {}; + +//Optional parameters parsed with the call +if (_count > 4) then {_code = _this select 4;}; + +["ws_fnc_createGroup DBG: running with: ",_this,""] call ws_fnc_debugText; + +//Fault checks +//Checking the variables we have enough against what we should have +{[_x,["SIDE"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_side]; +{[_x,["ARRAY"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_commonclasses,_forcedclasses]; +{[_x,["SCALAR"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_size]; +{[_x,["STRING","CODE"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_code]; + + +//Creating the group +_grp = createGroup _side; + +//REWRITE: assign folk gear ? +//Create the group leader around who the group assembles +_unit = _grp createUnit [_forcedclasses select 0,_pos,[],0,"NONE"]; + +for "_x" from 2 to (_size) do { + if (_x <= (count _forcedclasses)) then { + _unit = _grp createUnit [_forcedclasses select (_x - 1),_pos,[],5,"NONE"]; + } else { + _unit = _grp createUnit [_commonclasses call ws_fnc_selectrandom,_pos,[],5,"NONE"]; + }; +}; + +//Weird step necessary to get the correct side for the group +{ + [_x] joinSilent _grp; +} forEach units _grp; + +[_grp,"AWARE","YELLOW"] call ws_fnc_setAIMode; + +//After the spawn is done execute code +[_grp,_this] spawn _code; + +//DEBUG +//Debug creates various markers and text messages helping to indicate where/when groups are spawned. +if (_debug) then { +player globalchat format ["DEBUG: ws_fnc_createGroup done. _grp:%1 of size: %2 and side %3",_grp,count (units _grp),side leader _grp]; + + _mkr = createMarker [format ["Grp_%1",_grp], _pos]; + _mkr setMarkerType "n_inf"; + _mkr setMarkerColor "ColorBlue"; + _mkr setMarkerText format ["DBG:Grp %1",_grp]; + _mkr setMarkerSize [0.5,0.5]; + + [_grp,_mkr] spawn { + _check = count (units (_this select 0)); + while {_check > 0} do { + _check = {alive _x} count (units (_this select 0)); + sleep 5; + (_this select 1) setMarkerPos (getPos (leader (_this select 0))); + }; + + (_this select 1) setMarkerColor "ColorRed"; + (_this select 1) setMarkerText format ["DBG:Grp %1 dead",_this select 0]; + }; +}; + +//Output the created group and parameters +[_grp,_this] \ No newline at end of file diff --git a/ws_fnc/AI/fn_createVehicle.sqf b/ws_fnc/AI/fn_createVehicle.sqf new file mode 100644 index 000000000..abd118514 --- /dev/null +++ b/ws_fnc/AI/fn_createVehicle.sqf @@ -0,0 +1,179 @@ +// ws_fnc_createVehicle +// v1 (13.04.2013) +// By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +// +// FEATURE +// Spawns a vehicle of the desired side, loaded with driver and (if available) gunner +// +// USAGE +// Minimal: +// [position,side,vehicleclass] call ws_fnc_createVehicle; +// Full: +// [pos,side,"vehicleclass",["option1","option2"],[no of guards,["guardclasses"],loaded],["BEHAVIOUR","COMBATMODE"],{code}] call ws_fnc_createVehicle +// +// RETURNS +// [created vehicle,group of vehicle,initially parsed arguments] +// +// PARAMETERS +// 1. position, can be array, object or marker | MANDATORY +// 2. Side as west,east,resistance or civilian OR existing group | MANDATORY +// 3. legit vehicleclass | MANDATORY +// 4. Array of strings to define additional vehicle settings: | OPTIONAL - can be empty, order does not matter +// . "improved" - improved vehicle behaviour as per ws_fnc_betterVehicle +// . "disableTIEquipment" - disables thermal imaging optics +// . "clearcargo" - clears the vehicles cargo space +// . "flying" - vehicle is spawned as flying +// . "lockall","lockturret","lockdriver","lockcargo" - locks the entire vehicle or the corresponding seats +// . "v_car","v_ifv","v_tr" - F2/F3 only. Loads the vehicle with the faction-specific cargo +// 5. Array to define units guarding and loaded in the vehicle: | OPTIONAL - can be empty, default is no guards +// 5.1. number of guards (int > 0) +// 5.2. array with classnames of possible guard units +// 5.3. bool wether guards are loaded into the vehicle | If more guards than cargo seats are spawned the units outside are put into their own group next to the vehicle +// 6. code that is executed after the vehicle is spawned | OPTIONAL - executed as [_veh,_vehgrp,_this] spawn _code; Code has to be string or code +// +/* EXAMPLES + ["base",resistance,"HMMWV_M2"] call ws_fnc_createVehicle; - spawn a M2 HMMWV at marker base belonging to side independent + +[getPos t2,GrpOpfHQ,"BMP3",["lockturret","clearcargo"],[5,["RU_Soldier_2","RU_Soldier_1"],true]] call ws_fnc_createVehicle; - Spawn a BMP3 at object t2 that belongs to the group GrpOPFHQ, has a locked turret and empty cargo and 5 soldiers loaded inside. +*/ + +private ["_debug", +"_count","_pos","_side","_type","_modarray","_behaviour", +"_guardarray","_guards","_guardclasses","_load","_code", +"_veh","_grp","_mod","_vehgrp"]; + +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug + +//Declare variables +_count = count _this; +_pos = [(_this select 0)] call ws_fnc_getPos; +_side = _this select 1; +_type = _this select 2; +_modarray = []; + +//The default behaviour +//_behaviour = ["AWARE","YELLOW"]; + +_guardarray = []; +_guards = 0; +_guardclasses = []; +_load = false; +_code = {}; + +//Optinal parameters +if (_count > 3) then {_modarray = _this select 3}; +if (_count > 4) then { + _guardarray = _this select 4; + if (count _guardarray == 3) then { + _guards = _guardarray select 0; //Number of troops spawned + _guardclasses = _guardarray select 1; //Classes of troops spawned + _load = _guardarray select 2; //if troops are loaded in + }; +}; +if (_count > 5) then {_code = _this select 5}; + +//Fault checks +//Checking the variables we have enough against what we should have +{[_x,["SIDE","GROUP"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_side]; +{[_x,["STRING"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_type]; +{[_x,["ARRAY"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_pos,_guardarray,_guardclasses,_modarray]; +{[_x,["BOOL"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_load]; +{[_x,["SCALAR"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_guards,_pos select 0,_pos select 1]; +{[_x,["STRING","CODE"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_code]; + +if (typename _side == "SIDE") then { +_grp = createGroup _side;} else +{_grp = _side}; + +//Creating the vehicle +_mod = "NONE"; +if ("flying" in _modarray) then {_mod = "FLY"}; +_veh = createVehicle [_type,_pos,[],0,_mod]; + +//Crew the vehicle +//Get the default crew for the vehicle +_crew = (getArray (configFile >> "CfgVehicles" >> _type >> "typicalcargo")) select 0; +//Commander +if ((_veh emptyPositions "Commander") > 0) then {_crewman =_grp createUnit [_crew, _pos, [], 0, "NONE"]; _crewman assignAsCommander _veh; _crewman moveInCommander _veh;}; +//Gunner +if ((_veh emptyPositions "Gunner") > 0) then {_crewman =_grp createUnit [_crew, _pos, [], 0, "NONE"]; _crewman assignAsGunner _veh; _crewman moveInGunner _veh;}; +//Driver +_crewman =_grp createUnit [_crew, _pos, [], 0, "NONE"]; _crewman assignAsDriver _veh; _crewman moveInDriver _veh; + +//Weird step necessary to get the correct side for the vehicle crew +{ +[_x] joinSilent _grp; +} forEach crew _veh; + +_vehgrp = _grp; + +[_grp,"AWARE","YELLOW"] call ws_fnc_setAIMode; + +//Create the infantry nearby. Load them up if flag is set, put units that don't fit in cargo in new group +if (_guards > 0) then { + _grp = createGroup _side; + + for "_x" from 1 to _guards do { + _unit = _grp createUnit [_guardclasses call ws_fnc_selectRandom, getPos _veh, [], 2, "NONE"]; + }; + + if (_load) then { + _guards = [_veh,_grp] call ws_fnc_loadVehicle; + + if (count _guards > 0) then { + _grp = createGroup _side; + {[_x] joinSilent _grp} forEach _guards; + [_grp,getPos _veh,["hold",50]] call ws_fnc_addWaypoint; + }; + } else { + [_grp,getPos _veh,["hold",50]] call ws_fnc_addWaypoint; + } +}; + +// Set the extra options for the vehicle +{ + switch (_modarray select _forEachIndex) do { + case "improved": {if (canfire _veh) then {[_veh,0.8] call ws_fnc_bettervehicle;};}; + case "clearcargo": {clearWeaponCargoGlobal _veh;clearMagazineCargoGlobal _veh;}; + case "lockall": {_veh lock true;}; + case "lockdriver": {_veh lockDriver true;}; + case "lockcargo": {_veh lockCargo true;}; + case "lockturret": {_veh lockTurret [[0],true];}; + case "allowcrewinimmobile": {_veh allowcrewinimmobile true;}; + case "v_ifv": {[_veh,"v_ifv"] call f_fnc_assignGear;}; + case "v_tr": {[_veh,"v_tr"] call f_fnc_assignGear;}; + case "v_car": {[_veh,"v_car"] call f_fnc_assignGear;}; + case "flying": {}; + case "disableTIEquipment": {_veh disableTIEquipment true}; + default {["ws_fnc_createVehicle: ",(_modarray select _forEachIndex)," is not a valid input for the _modarray!"] call ws_fnc_debugText;} + }; +} forEach _modarray; + +_veh setDir (random 360); + +//After the spawn is done execute code +[_veh,_this] spawn _code; + +//Debug stuff +if (_debug) then { + player globalchat format ["DEBUG: ws_createVehicle. Vehicle created. _veh:%1, side: %2, modificators: %3",_veh,_side, _modarray]; + + _mkr = createMarker [format ["_veh_%1",_veh], _pos]; + _mkr setMarkerType "n_armor"; + _mkr setMarkerColor "ColorGreen"; + _mkr setMarkerText format ["DBG:Veh %1",_veh]; + _mkr setMarkerSize [0.5,0.5]; + + [_veh,_mkr] spawn { + while {alive (_this select 0)} do { + sleep 5; + (_this select 1) setMarkerPos (getPos (_this select 0)); + }; + + (_this select 1) setMarkerColor "ColorRed"; + (_this select 1) setMarkerText format ["DBG:Grp %1 dead",_this select 0]; + }; +}; + +//Script outputs the generated vehicle +[_veh,_vehgrp,_grp,_this] \ No newline at end of file diff --git a/ws_fnc/AI/fn_enterBuilding.sqf b/ws_fnc/AI/fn_enterBuilding.sqf new file mode 100644 index 000000000..34cb07b63 --- /dev/null +++ b/ws_fnc/AI/fn_enterBuilding.sqf @@ -0,0 +1,122 @@ +/*ws_fnc_enterBuilding +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Thanks to Rommel's CBA_fnc_taskDefend and Binesi's improved BIS_fnc_taskDefend + +USAGE +Minimal +[[array of units],[array of buildings]] call ws_fnc_enterBuilding +Full +[[array of units],[array of buildings],treshold] call ws_fnc_enterBuilding + +FEATURE +Have a selection of units enter take positions in a selection of buildings + +RETURNS +Units that haven't been put into a building position +*/ + +private ["_debug","_units","_building","_threshold","_barray","_bpos","_bposarray","_bposleft","_bUnits","_occupied","_mkr"]; +_debug = if !(isNil "ws_debug") then {ws_debug} else {false}; + +_units = _this select 0; +_barray = _this select 1; +_threshold = if (count _this > 2) then [{_this select 2},{1}]; //Percentage of building positions that can be taken before building is considered "full" + +if (typename _barray != "ARRAY") then {_barray = [_this select 1]}; +if (_threshold <= 0) then {_threshold = 0.1}; + +// As long we have units and a more than one building we loop through either +while {count _units > 0 && count _barray > 0} do { + + _building = _barray call ws_fnc_selectRandom; + _bposarray = [_building] call ws_fnc_getBpos; + + if (count _bposarray > 0) then { + + // Get variables to check if building can be used + _bUnits = _building getVariable ["ws_bUnits",0]; + _bposleft = _building getVariable ["ws_bPosLeft",_bposarray]; + + // Loop until we find a good building + while {count _barray > 0 && {count _bposLeft == 0 || (_bUnits / (count _bposarray) >= _threshold)}} do { + _barray = _barray - [_building]; + + _building = _barray call ws_fnc_selectRandom; + _bposarray = _building getVariable ["ws_bPos",[]]; + if (count _bposleft == 0) then {_bposarray = [_building] call ws_fnc_getBpos;}; + + // Get variables in order to check if building can be used + _bUnits = _building getVariable ["ws_bUnits",0]; + _bposleft = _building getVariable ["ws_bPosLeft",_bposarray]; + }; + + // If no good building was found, exit. + if (count _barray == 0) exitWith {}; + + // Otherwise continue to place unit: + _unit = _units call ws_fnc_selectrandom; + _units = _units - [_unit]; + + //Get a building position and remove it from the array + _i = floor (random (count _bposleft)); + _bpos = _bposleft select _i; + _bposleft set [_i,0]; //Workaround as in http://community.bistudio.com/wiki/Array#Subtraction + _bposleft = _bposleft - [0]; + + // Set the new variables for the building + _building setVariable ["ws_bPosLeft",_bposleft,true]; + _building setVariable ["ws_bUnits",_bUnits+1,true]; + + // For the unit spawn code to have it enter the building + [_unit,_bpos,_building] spawn { + private ["_unit","_pos","_dir"]; + + _unit = _this select 0; + _pos = _this select 1; + + _unit setVariable ["ws_bpos",_pos,true]; + _unit doMove _pos; + + waitUntil {_unit distance _pos < 5}; + (group _unit) setSpeedMode "Limited"; + sleep 1; + + // Wait 30 seconds for the unit to get ready + for "_i" from 0 to 30 do { + if (unitReady _unit || _unit distance _pos < 1) exitWith {}; + sleep 1; + }; + + //Check the distance to the building position and the distance between z-levels (if the unit got stuck) + if (((getPosATL _unit) select 2) - (_pos select 2) < 0.2) then { + _unit setPosATL _pos;_unit moveTo _pos; + + // Wait another 10 seconds for the unit to get ready + for "_i" from 0 to 10 do { + if (unitReady _unit || _unit distance _pos < 1) exitWith {}; + sleep 1; + }; + }; + + dostop _unit; + + _unit spawn ws_fnc_setInsidePos; + + (group _unit) setSpeedMode "NORMAL"; + }; + + if (_debug) then { + _mkr = createMarker [format ["%1-bpos",_unit],_bpos]; + _mkr setMarkerSize [0.5,0.5]; + _mkr setMarkerType "mil_dot"; + _mkr setMarkerColor "ColorGreen"; + ["ws_fnc_enterbuilding DBG3: ",[_building,(count _bposarray),(count _bposleft)]," - building: bpos/bposleft"] call ws_fnc_debugText; + }; + + // If the building doesn't have any bpos or is filled, it's removed from the building-array + if (count _bposleft == 0 || (_bUnits+1)/count _bposarray >= _threshold) then {_barray = _barray - [_building]}; + + }; +}; + +_units \ No newline at end of file diff --git a/ws_fnc/AI/fn_setAIMode.sqf b/ws_fnc/AI/fn_setAIMode.sqf new file mode 100644 index 000000000..c6524c331 --- /dev/null +++ b/ws_fnc/AI/fn_setAIMode.sqf @@ -0,0 +1,77 @@ +/*ws_fnc_setAIMode +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Set a group to desired behaviour and combatmode + +RETURNS +group + +USAGE +[group,behaviour,combatmode,formation,speed] call ws_fnc_setAIMode + +PARAMETERS +1. Group to be set +2. Combat mode, Behaviour, speed and/or formation to be set (all strings, order does not matter) + +EXAMPLES +[Group1,"LINE"] call ws_fnc_setAIMode; +[Group2,"COMBAT","ECH LEFT","RED"] call ws_fnc_setAIMode; + +Accepted Strings: +"COLUMN" "STAG COLUMN" "WEDGE" "ECH LEFT" "ECH RIGHT" "VEE" "LINE" "FILE" "DIAMOND" + +"CARELESS" "SAFE" "AWARE" "COMBAT" "STEALTH". + +"BLUE" "GREEN" "WHITE" "YELLOW" "RED" + +"FULL" "NORMAL" "LIMITED" +*/ + +private ["_grp","_modes"]; + +_grp = _this select 0; +_modes = _this - [_this select 0]; + +//Debugging - _modearray shouldnt have over three entries +if (count _modes > 3) then {["ws_fnc_setAIMode DBG:",_modearray,"for some reason has over three entries. Why?"] call ws_fnc_debugText;}; + +{ +switch (_x) do { + + //Behaviour + case "CARELESS": {_grp setBehaviour _x;}; + case "SAFE": {_grp setBehaviour _x;}; + case "AWARE": {_grp setBehaviour _x;}; + case "COMBAT": {_grp setBehaviour _x;}; + case "STEALTH": {_grp setBehaviour _x;}; + + //CombatMode + case "BLUE": {_grp setCombatMode _x;}; + case "GREEN": {_grp setCombatMode _x;}; + case "WHITE": {_grp setCombatMode _x;}; + case "YELLOW": {_grp setCombatMode _x;}; + case "RED": {_grp setCombatMode _x;}; + + //Formation + case "COLUMN": {_grp setFormation _x;}; + case "STAG COLUMN": {_grp setFormation _x;}; + case "WEDGE": {_grp setFormation _x;}; + case "ECH LEFT": {_grp setFormation _x;}; + case "ECH RIGHT": {_grp setFormation _x;}; + case "VEE": {_grp setFormation _x;}; + case "LINE": {_grp setFormation _x;}; + case "FILE": {_grp setFormation _x;}; + case "DIAMOND": {_grp setFormation _x;}; + + //Speed + case "LIMITED": {_grp setSpeedMode _x;}; + case "NORMAL": {_grp setSpeedMode _x;}; + case "FULL": {_grp setSpeedMode _x;}; + + default {["ws_fnc_setAIMode DBG:",_x,"is not a valid combatmode, behaviour or formation!"] call ws_fnc_debugText}; +}; + +} forEach _modes; + +_grp \ No newline at end of file diff --git a/ws_fnc/AI/fn_setInsidePos.sqf b/ws_fnc/AI/fn_setInsidePos.sqf new file mode 100644 index 000000000..8b16dee47 --- /dev/null +++ b/ws_fnc/AI/fn_setInsidePos.sqf @@ -0,0 +1,60 @@ +/* ws_fnc_setInsidePos +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Positions an AI inside the building it's in. Unit will face windows (if possible) and go to kneel when on roof + +NOTE +Nearest building is used, AI should be inside before calling the function + +USAGE +Unit call ws_fnc_setInsidePos + +PARAMETERS +1. Unit | Mandatory + +RETURNS +true +*/ + +private ["_u","_b","_udir","_inside","_facingwall","_dirtob","_dir"]; + +_u = _this; +_nb = (nearestObjects [_u,["BagBunker_base_F","HouseBase"],50]); + +if (count _nb == 0) exitWith {}; + +_b = _nb select 0; + +_inside = [_u,0,0,25] call ws_fnc_isWallInDir; +_facingwall = false; +_dirtob = [_u,_b] call BIS_fnc_RelativeDirTo; +_udir = _dirtob - 180; + +// If unit is outside set to kneel and check for wall facing away from building +if !(_inside) then { + _u setUnitPos "Middle"; + _facingwall = [_u,_udir] call ws_fnc_isWallInDir; +} else { +// Else if unit is inside set position to standing and check for wall from facing of unit + _u setUnitPos "Up"; + _facingwall = [_u,getDir _u] call ws_fnc_isWallInDir; +}; + +if (_facingwall) then { + + // First check if there's a window nearby + for [{_x=0},{_x<=360},{_x=_x+5}] do { + _dir = _x; + if !([_u,_dir] call ws_fnc_isWallInDir) exitWith {_udir = _dir;_facingwall = false}; + }; + + // If still no good facing was good, simply set the unit to face inward + if (_facingwall) then { + _udir = _dirtob; + }; +}; + +_u doWatch ([_u, 20, _udir] call BIS_fnc_relPos); + +true \ No newline at end of file diff --git a/ws_fnc/AI/fn_taskAmbush.sqf b/ws_fnc/AI/fn_taskAmbush.sqf new file mode 100644 index 000000000..2b8d19406 --- /dev/null +++ b/ws_fnc/AI/fn_taskAmbush.sqf @@ -0,0 +1,118 @@ +/* ws_fnc_taskAmbush +Latest: 07.03.2014 +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Thanks to Black Mamba for the idea/concept + +FEATURE +Group will move to a hiding spot overwatching the parsed position. +If enemy units enter the area around the parsed position (i.e. the killzone) or come too close to the hiding spot, the group will go active and engage. + +USAGE +Minimal: +[group,position] spawn ws_fnc_taskAmbush; +Full: +[group,position, killzone (array), overwatch radius (array)] spawn ws_fnc_taskAmbush; + +PARAMETERS +1. The ambush group | MANDATORY +2. The position to be ambushed | MANDATORY - can be marker, trigger, group or positional array +3. The killzone in [x,y,angle,rectangle(bool)] around the position | OPTIONAL (default: If marker or trigger was passed as position use their area, otherwise [50,50,0,false]) +4. The minimal distance and radius in which to find an overlook | OPTIONAL (default: [100,300] - if left empty ([]) the group will stay where they are) + +EXAMPLES +A) nul = [group this,TrgAmbush] spawn ws_fnc_taskAmbush in Waypoint onAct: group will ambush enemies entering killzone as indicated by Trigger named TrgAmbush and look for a decent overwatch spot +B) nul = [group this,RoadBlockObj,[],[]] spawn ws_fnc_taskAmbush in Waypoint onAct: group will ambush enemies nearing the object named RoadBlockObj within a radius of 50m. They will use the waypoint position as overwatch spot +C) nul = [MyGroup,MyGroup] spawn ws_fnc_taskAmbush: The group named MyGroup will ambush enemies nearing the position where they were spawned, using the default killzone size. They will find their own overwatch spot. This method can be useful for dynamically spawned groups. +*/ + +if !(ws_game_a3) exitWith {["ws_fnc_taskAmbush DBG:",[]," Must be ARMA 3!"] call ws_fnc_debugtext}; + +private ["_debug","_grp","_pos","_nPos","_killzone","_radius","_mindis","_sidesEnemy","_wp","_mkr","_count","_ambush","_owatch","_npos","_trg"]; + +// Debug. If ws_debug is globally defined it overrides _debug +_debug = if !(isNil "ws_debug") then {ws_debug} else {false}; + +// Interpret arguments +_count = count _this; +_grp = _this select 0; +_ambush = _this select 1; +_killzone = if (_count > 2) then [{_this select 2},{[]}]; +_owatch = if (_count > 3) then [{_this select 3},{[100,300]}]; + +// Get positions for group and ambush location +_pos = _ambush call ws_fnc_getEPos; +_npos = _grp call ws_fnc_getEPos; + +// If killzone is not forced, get values from ambush position +if (count _killzone == 0) then { + _killzone = + switch (typeName _ambush) do { + // Trigger: + case ("OBJECT"): {triggerarea _ambush}; + // Marker: + case ("STRING"): { + private ["_form"]; + _ambush setMarkerAlpha 0; + _form = + switch (MarkerShape _ambush) do { + case "RECTANGLE": {true}; + case "ELLIPSE": {false}; + default {true}; + }; + [(getMarkerSize _ambush select 0),(getMarkerSize _ambush select 1),markerDir _ambush,_form]; + }; + // Default: + default {[50,50,0,false]}; + }; +}; + +// If overwatch is enabled, get a good overwatch position +if (count _owatch > 0) then { + _mindis = _owatch select 0; + _radius = _owatch select 1; + + if (_mindis > _radius) then {_radius = _mindis * 4}; + + // Get a position overwatching the ambush point + _nPos = [_pos, _radius, _mindis, 10] call BIS_fnc_findOverwatch; +}; + +// Get group to move to overwatch position +_wp = _grp addWaypoint [_npos,0]; +_grp setCurrentWaypoint _wp; + +// Get enemy sides +_sidesEnemy = (side _grp) call BIS_fnc_enemySides; + +// Set group to go stealth at overwatch position +_wp = [_grp,_nPos,["HOLD",0,10],["STEALTH","GREEN","NORMAL"]] call ws_fnc_addWaypoint; + +// Create switch triggers for each enemy side and synch them to the overwatch waypoint +{ + _trg = createTrigger ["EmptyDetector", _pos]; + _trg setTriggerArea _killzone; + _trg setTriggerActivation [str(_x), "PRESENT", false]; + _trg setTriggerStatements ["this", "{_grp reveal [_x,4]} forEach thisList", ""]; + _trg setTriggerType "SWITCH"; + _trg synchronizeTrigger [_wp]; + + _trg = createTrigger ["EmptyDetector", _nPos]; + _trg setTriggerArea [25,25,0,false]; + _trg setTriggerActivation [str(_x), "PRESENT", false]; + _trg setTriggerStatements ["this", "{_grp reveal [_x,4]} forEach thisList", ""]; + _trg setTriggerType "SWITCH"; + _trg synchronizeTrigger [_wp]; +} forEach _sidesEnemy; + +// Create attack waypoint (becomes active once trigger flips) +(units _grp) doWatch _pos; +_wp = [_grp,_pos,["SAD",0],["AWARE","RED","FULL"]] call ws_fnc_addWaypoint; + +// If debug's enabled, place markers +if (_debug) then { + _mkr = createMarker [format ["%1-pos",_pos],_pos];_mkr setMarkerSize [0.5,0.5];_mkr setMarkerType "mil_ambush";_mkr setMarkerColor "ColorRed"; _mkr setMarkerText format ["Ambush %1",_grp]; + _mkr = createMarker [format ["%1-npos",_npos],_npos];_mkr setMarkerSize [0.5,0.5];_mkr setMarkerType "mil_flag";_mkr setMarkerColor "ColorRed"; _mkr setMarkerText format ["Overwatch %1",_grp]; + _mkr = createMarker [format ["%1-kpos",_pos],_pos];if (_killzone select 3) then [{_mkr setMarkerShape "RECTANGLE"},{_mkr setMarkerShape "ELLIPSE"}]; _mkr setMarkerSize [_killzone select 0,_killzone select 1]; _mkr setMarkerBrush "SOLIDBORDER";_mkr setMarkerColor "ColorRed"; _mkr setMarkerDir (_killzone select 2); +}; + +true \ No newline at end of file diff --git a/ws_fnc/AI/fn_taskArtilleryFire.sqf b/ws_fnc/AI/fn_taskArtilleryFire.sqf new file mode 100644 index 000000000..c80043881 --- /dev/null +++ b/ws_fnc/AI/fn_taskArtilleryFire.sqf @@ -0,0 +1,124 @@ +/* ws_fnc_taskArtilleryFire +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Allows saturation of a target or target area by artillery piece(s). + +USAGE +Minimal: +[artillery,target] call ws_fnc_taskArtilleryFire +Full: +[artillery,target,[shots per barrage,number of barrages],max dispersion from target,,ammo to use] call ws_fnc_taskArtilleryFire + +PARAMETERS +1. The artillery piece or array of artillery pieces to fire | MANDATORY - object or array +2. The target to fire on to. Can be icon marker, object, array of icon markers/objects, area marker or trigger. | MANDATORY - object or string (markername) +If it's an area marker or trigger the shots will randomly land somewhere inside the marker/trigger area. If it's +an array of icon markers/objects, the targets will be randomly selected from the array. +3. The firemission as an array. The first number dictates the shots per barrage, the second the | OPTIONAL - array with [number,number] (default: [4,1]) +total number of barrages. If an area or array of targets was given, the artillery piece will select a new target +in the area or from the array after each barrage. +4. The max. dispersion from target. | OPTIONAL - number (default: 80) +5. Time to sleep between each barrage, if set to -1 it will sleep until the splash of the | OPTIONAL - number > 0 or -1 (default: -1) +current barrage's last shot +6. The ammo to be used, if "" it will use the primary ammo (HE most of the time) | OPTIONAL - string refering to ammo class or "" (default: "") + +EXAMPLES +TODO + +RETURNS +true +*/ + +if !(ws_game_a3) exitWith {["ws_fnc_taskArtilleryFire DBG:",[]," Must be ARMA 3!"] call ws_fnc_debugtext}; + +private ["_art","_dispersion","_fireMission","_ammo"]; + +_art = [_this,0,objNull] call BIS_fnc_param; +_target = [_this,1,[0,0,0]] call BIS_fnc_param; +_fireMission = ([_this,2,[4,1]]) call BIS_fnc_param; +_dispersion = [_this,3,80] call BIS_fnc_param; +_sleep = ([_this,4,-1]) call BIS_fnc_param; +_ammo = [_this,5,""] call BIS_fnc_param; + +switch (typeName _art) do { + case "OBJECT": {_art = [_art]}; + case "ARRAY": {}; +}; + + +if ({isNull _x} count _art > 1 || str _target == "[0,0,0]" || count (getArtilleryAmmo _art) == 0) exitWith { + ["ws_fnc_taskArtilleryFire DBG: Illegal artillery unit or target! --- ",[{isNull _x} count _art > 1, str _target == "[0,0,0]", count (getArtilleryAmmo _art) == 0],": Artillery null? | Target non-existent? | No artillery ammo?"] call ws_fnc_debugtext; +}; + +{ + // Spawn a seperate fire mission for each artillery piece + [_x,_target,_dispersion,_fireMission,_sleep,_ammo] spawn { + private ["_target","_dispersion","_fireMission","_ammo","_sleep","_artpiece"]; + + _artpiece = _this select 0; + _target = _this select 1; + _dispersion = _this select 2; + _fireMission = _this select 3; + _sleep = _this select 4; + _ammo = _this select 5; + + // Select the ammo + if (_ammo == "") then { + _ammo = currentMagazine _artpiece; + }; + + // Start looping through the barrages + for "_x" from 1 to (_fireMission select 1) do { + _targetPos = []; + + switch (typeName _target) do { + + case (typeName objNull): { + if (count (triggerArea _target) != 0) then { + _targetpos = [_target] call ws_fnc_getPosInArea; + } else { + _targetpos = _target call ws_fnc_getEPos; + }; + }; + + case (typeName ""): { + if (markerShape _target == "ICON") then { + _targetpos = _target call ws_fnc_getEPos; + } else { + _targetpos = [_target] call ws_fnc_getPosInArea; + }; + }; + + case (typeName []): { + _targetPos = (_target call ws_fnc_selectRandom) call ws_fnc_getEPos; + }; + }; + + // Resolve the target position with the dispersion setting + if (_dispersion > 0) then { + _targetpos = [_targetpos,_dispersion] call ws_fnc_getPos; + }; + + if (!(canFire _artPiece) || !(alive _artPiece) || !(_targetPos inRangeOfArtillery [[_artPiece],_ammo]) || count (getArtilleryAmmo [_artPiece]) == 0 ) exitWith { + if (ws_debug) then { + ["ws_fnc_taskArtilleryFire DBG: Artillery forced to stop firing! --- ",[!(canFire _artPiece), !(alive _artPiece), !(_targetPos inRangeOfArtillery [[_artPiece],_ammo]), count (getArtilleryAmmo [_artPiece]) == 0],": Artillery can't fire? | Artillery dead? | Target too close? | No more ammo?"] call ws_fnc_debugtext; + }; + }; + + // Fire a shot, then re-select a target + _artpiece doArtilleryFire [_targetpos,_ammo,_fireMission select 0]; + + // Sleep until the new barrage should begin + if (_sleep < 0 ) then { + // Wait for the last shot to hit the target before shifting to the next barrage + sleep (_artpiece getArtilleryETA [_targetpos,_ammo]); + } else { + sleep _sleep; + }; + }; + }; + +} forEach _art; + +true diff --git a/ws_fnc/AI/fn_taskConvoy.sqf b/ws_fnc/AI/fn_taskConvoy.sqf new file mode 100644 index 000000000..69bdebc3a --- /dev/null +++ b/ws_fnc/AI/fn_taskConvoy.sqf @@ -0,0 +1,171 @@ +/* ws_fnc_taskConvoy +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Thanks to Norrin's convoy script for inspiration and guidance: http://forums.bistudio.com/showthread.php?152279-norrin-s-ArmA2-scripts-ported-to-ArmA3 +You can find a video tutorial here: http://youtu.be/_aELNA7j__c + +FEATURE +The passed vehicles will follow the given route to it's destination, where they will disembark and take sentry waypoints. +The convoy will follow any given path and dismount on enemy contact. + +RETURNS +true once convoy has reached the destination or made contact + +USAGE +Place an ungrouped selection of vehicles. All trailing vehicles should share the name of the leading vehicle followed by _n, where n is an incrementing number (e.g.: veh, veh_1, veh_2). +Place markers indicating the convoy route, ideally on roads. All markers should share the name of the first marker followed by _n, where n is an incrementing number (e.g.: mkr, mkr_1, mkr_2). +You can change which waypoint type the units will be assigned on dismounting below as _finalWP + +Minimal: +[leadingVehicle,"firstMarker"] spawn ws_fnc_taskConvoy + +Full: +[leadingVehicle,"firstMarker",speedLimit] spawn ws_fnc_taskConvoy + +PARAMETERS +1. The leading vehicle (all other vehicles should share the same naming template) | MANDATORY - object +2. The first marker indicating the convoy route (all other markers should share the naming template) | MANDATORY - can be marker, object or positional array +3. Speed limit in km/h (the slower the more reliably the convoy will move) | OPTIONAL - any number (default: 14) + +EXAMPLE +[cv,"cvwp"] spawn ws_fnc_taskConvoy - All vehicles sharing the cv-name (cv,cv_1,cv_2...) would follow the route indicated by the markers sharing the "cvwp"-name ("cvwp","cvwp_1","cvwp_2"...) + +*/ + +_leadv = [_this,0,objNull] call BIS_fnc_param; +_marker = [_this,1,""] call BIS_fnc_param; +_speedLimit = [_this,2,15] call BIS_fnc_param; + +// What waypoint-type the final/combat waypoint will be. Sentry or Hold work best +_finalwp = "SENTRY"; + +// Exit the script if any of the required variables is invalid +if (isNull _leadv || _marker == "" || !local _leadV) exitWith {}; + +_convoy = _leadv call ws_fnc_collectObjectsNum; +_waypoints = _marker call ws_fnc_collectMarkers; +_run = true; + +// Check if the convoy is in a condition to move at all +if (({!canMove _x || !alive _x || (!isNull (_x findNearestEnemy (getPosATL _x)))} count _convoy) > 0) then {_run = false;}; + +// Setup convoy mode +{ + [(group (driver _x)),"SAFE","LIMITED"] call ws_fnc_setAIMode; +} forEach _convoy; + +// As long as the convoy isn't threatened, keep it moving +while {_run} do { + + { + _wp = (_waypoints select 0); + _veh = _x; + + // Set the destination for the leading vehicle + if (_veh == _leadv) then { + + // If there's sufficient distance from the next waypoint + if ((_leadv distance (getMarkerPos _wp)) > 25 || _leadv getVariable ["ws_destination",""] == "") then { + + // And the next waypoint isn't already set as destination + if (_leadv getVariable ["ws_destination",""] != _wp) then { + // Then give the order to move to the next waypoint and set it as destination on the leading vehicle + {_x doMove (getMarkerPos _wp)} forEach _convoy; + _leadv setVariable ["ws_destination",_wp]; + }; + + // If we are within distance of the next waypoint, remove the current waypoint and recount the waypoint array to exit if it is depleted + } else { + _waypoints deleteAt 0; + if (count _waypoints == 0) exitWith {_run = false; _leadV setVariable ["ws_destination",""];}; + }; + }; + + + // Control the speed of all vehicles in the convoy (thanks to Norrin for dealing with the math) + _vfront = objNull; + _vback = objNull; + + if (_forEachIndex-1 >= 0) then { + _vfront = _convoy select (_forEachIndex-1); + }; + + if (_forEachIndex+1 < count _convoy) then { + _vback = _convoy select (_forEachIndex+1); + }; + + _dir = getDir _veh; + _veh limitSpeed _speedLimit; + + // If the vehicle in front is going under the speed limit and it's a bit too close, limit the vehicle's speed as well + if (!isNull _vfront && {_veh distance _vfront < 15}) then { + if (speed _vfront < _speedLimit) then { + _veh limitSpeed (speed _vfront); + }; + + if (((sin _dir) * (velocity _veh select 0)) > 1) then {_veh setVelocity [(velocity _veh select 0) - (2 * (sin _dir)), (velocity _veh select 1), velocity _veh select 2]}; + if (((cos _dir) * (velocity _veh select 1)) > 1) then {_veh setVelocity [(velocity _veh select 0), (velocity _veh select 1) - (2 * (cos _dir)), velocity _veh select 2]}; + }; + + if (!isNull _vback && {_veh distance _vback > 50}) then { + if (_veh distance _vback <= 150) then { + if (((sin _dir) * (velocity _veh select 0)) > 3) then {_veh setVelocity [(velocity _veh select 0) - (1 * (sin _dir)), (velocity _veh select 1), velocity _veh select 2]}; + if (((cos _dir) * (velocity _veh select 1)) > 3) then {_veh setVelocity [(velocity _veh select 0), (velocity _veh select 1) - (1 * (cos _dir)), velocity _veh select 2]}; + } else { + if (((sin _dir) * (velocity _veh select 0)) > 1) then {_veh setVelocity [(velocity _veh select 0) - (2 * (sin _dir)), (velocity _veh select 1), velocity _veh select 2]}; + if (((cos _dir) * (velocity _veh select 1)) > 1) then {_veh setVelocity [(velocity _veh select 0), (velocity _veh select 1) - (2 * (cos _dir)), velocity _veh select 2]}; + }; + }; + + // If the vehicle is way over limit, reset velocity + /*if (speed _veh > _speedLimit *1.5) then { + _veh setVelocity [(11 * (sin _dir)), (11 * (cos _dir)), velocity _veh select 2]; + };*/ + + // If for some reason the vehicle is halted, reset speed limit to the original value + if (speed _veh < 0.1) then { + _veh limitSpeed _speedLimit; + _veh doMove (getMarkerPos _wp); + }; + + } forEach _convoy; + + // If convoy was engaged exit the loop and set the convoy to combat mode + if (({!canMove _x || !alive _x || (!isNull (_x findNearestEnemy (getPosATL _x)))} count _convoy) > 0) then { + _run = false; + {[(group (driver _x)),"COMBAT","NORMAL"] call ws_fnc_setAIMode;} forEach _convoy; + }; + + uisleep 0.5; +}; + +// Once the convoy has reached the destination or is being engaged have all groups which aren't crew disembark +{ +_veh = _x; +_veh doMove (getPosATL _veh); + + { + // If the unit is the vehicle driver, check if it's a combat vehicle + if (_x == driver _veh) then { + + // If yes, only give it a sentry WP + if (canFire _veh) then { + [(group _x),_veh,[_finalwp,5]] call ws_fnc_addWaypoint; + } else { + // If the vehicle can't shoot, let the crew dismount too + (group driver _veh) leaveVehicle _veh; + [(group _x),_veh,[_finalwp,15]] call ws_fnc_addWaypoint; + }; + }; + + // If the unit's in a cargo index and a group leader, order the whole group out + if (_veh getCargoIndex _x != -1 && _x == leader group _x) then { + (group _x) leaveVehicle _veh; + [group _x,_veh,[_finalwp,50]] call ws_fnc_addWaypoint; + [(group _x),"AWARE","DIAMOND","YELLOW"] call ws_fnc_setAIMode; + }; + + } forEach crew _veh; + +} forEach _convoy; + +true \ No newline at end of file diff --git a/ws_fnc/AI/fn_taskCrew.sqf b/ws_fnc/AI/fn_taskCrew.sqf new file mode 100644 index 000000000..965af19d4 --- /dev/null +++ b/ws_fnc/AI/fn_taskCrew.sqf @@ -0,0 +1,56 @@ +/*WS_fnc_taskCrew +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +/* +FEATURE +Send a group of units to man empty statics and gunner-less vehicles in a given radius + +USAGE +[group, radius] call ws_fnc_taskCrew + +RETURNS +Array of units that didn't take a gunner seat +*/ + +private ["_group","_radius","_pos","_vehicles","_staticarray","_units2","_locked"]; + +_group = _this select 0; +_radius = _this select 1; +_pos = (_group) call ws_fnc_getEPos; + +//Get nearby vehicles to start populating the static weapons +_vehicles = []; +{ + _vehicles = _vehicles + nearestObjects [_pos,[_x],_radius]; +} forEach ["StaticWeapon","Tank","Car"]; + +_staticarray = []; +_units = units _group; +_units2 = _units - [leader _group]; + +//Create an array containing all vehicles in the area that are uncrewed and have a free gunner seat +{ + //BI changed the value returned by locked in A3. See http://community.bistudio.com/wiki/locked + _locked = false; + if !(ws_game_a3) then {_locked = locked _x} else {if (locked _x >= 2) then {_locked = true};}; + + if ((_x emptyPositions "gunner") > 0 && !(_locked) && ((count crew _x) == 0)) then + { + _staticarray = _staticarray + [_x]; + }; +} forEach _vehicles; + +//Man the statics +{ + // Make sure it doesn't have a gunner yet + if (isNull (gunner _x) && isNUll (_x getVariable ["ws_StaticCrew",objNull])) then { + _unit = _units2 call ws_fnc_selectRandom; + _unit assignasgunner _x; + [_unit] ordergetin true; + _units = _units - [_unit]; + _units2 = _units2 - [_unit]; + + _x setVariable ["ws_StaticCrew",_unit,true]; + }; +} forEach _staticarray; + +_units \ No newline at end of file diff --git a/ws_fnc/AI/fn_taskDefend.sqf b/ws_fnc/AI/fn_taskDefend.sqf new file mode 100644 index 000000000..43a18e88b --- /dev/null +++ b/ws_fnc/AI/fn_taskDefend.sqf @@ -0,0 +1,126 @@ +/* +ws_fnc_taskDefend +Last Update 19.09.2013 +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Thanks to Rommel's CBA_fnc_taskDefend and Binesi's improved BIS_fnc_taskDefend + +FEATURE +Have a group man statics and garrison in buildings in a given radius around a position. They prioritize military structures over civilian buildings + +NOTE +To avoid perfomance issues the garrisoning troops will just enter the building and stay there, they won't necessarily face in a smart direction + +RETURNS +units outside buildings (array) + +USAGE +Minimal: +[group,position,radius] call ws_fnc_taskDefend; +Full: +[group,pos,radius,bool,bool,bool] call ws_fnc_taskDefend + +PARAMETERS +1. name of group | MANDATORY +2. position. can be marker, object or [x,y,z] | MANDATORY +3. radius of the area where statics/buildings will be occupied | MANDATORY +4. Whether to man statics or not | OPTIONAL - default is TRUE +5. Whether to garrison military structures modify _milarray for military building classes | OPTIONAL - default is TRUE - +6. Whether to garrison civilian buildings | OPTIONAL - default is TRUE + +EXAMPLE +[group this,getPosATL this,200] call ws_fnc_taskDefend - in the on activation field of a waypoint this would cause the assigned group to take position in buildings in a 200m radius around the WP + +[GrpUS_CO,"mkrTown",150,false,false,true] call ws_fnc_taskDefend - this causes the group assigned as "GrpUS_CO" to take positions in only civilian buildings in a radius of 150 around the marker named "mkrTown" + +*/ + +private ["_debug","_game","_count","_milarrayA2","_badarrayA2","_badarrayA3","_milarrayA3", +"_group","_newGroup","_pos","_radius","_guns","_garrison","_civil", +"_buildings","_vehicles","_milbuildings","_staticarray","_badarray","_milarray","_units","_static","_mkr"]; + +//Customizable Variables +_mthreshold = 0.9; // Percentage of building positions to occupy in military buildings (1=all) +_cthreshold = 0.5; // Percentage of building positions to occupy in civilian buildings (1=all) + +// ARMA 2 only +// Military buildings that are garrisoned before civilian buildings +_milarrayA2 = ["Land_Fort_Watchtower","Land_Fort_Watchtower_EP1","Land_fortified_nest_small","Land_fortified_nest_small_EP1","Land_fortified_nest_big","Land_fortified_nest_big_EP1","Land_Mil_Guardhouse_EP1","Land_Mil_ControlTower","Land_Mil_ControlTower_EP1"]; +// Buildings NEVER to garrison +_badarrayA2 = ["Land_Misc_Cargo1Ao","Land_Misc_Cargo1Bo","Land_Misc_Cargo1Bo_military","Land_vysilac_FM2","Land_vysilac_FM","Land_Ind_MalyKomin"]; + +// ARMA 3 only +// Military buildings that are garrisoned before civilian buildings +_milarrayA3 = ["Land_Cargo_HQ_V1_F","Land_Cargo_HQ_V2_F","Land_Cargo_HQ_V3_F","Land_Cargo_Tower_V1_F","Land_Cargo_Tower_V1_No1_F","Land_Cargo_Tower_V1_No2_F","Land_Cargo_Tower_V1_No3_F","Land_Cargo_Tower_V1_No4_F","Land_Cargo_Tower_V1_No5_F","Land_Cargo_Tower_V1_No6_F","Land_Cargo_Tower_V1_No7_F","Land_Cargo_Tower_V2_F","Land_Cargo_Tower_V3_F","Land_Radar_F","Land_Cargo_Patrol_V1_F","Land_Cargo_Patrol_V2_F","Land_Cargo_Patrol_V3_F","Land_Bunker_F","Land_Airport_Tower_F","Land_i_Barracks_V1_F","Land_i_Barracks_V2_F","Land_u_Barracks_V2_F"]; +// Buildings NEVER to garrison +_badarrayA3 = []; + +//Debug mode. If ws_debug is globally defined it overrides _debug +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; + +//Declaring variables +_count = count _this; + +_group = _this select 0; +_pos = (_this select 1) call ws_fnc_getEPos; +_radius = _this select 2; +_guns = true; //Man statics? +_garrison = true; //Garrison military structures? - defined in _milarray +_civil = true; //Garrison civilian buildings? +if (_count > 3) then {_guns = _this select 3}; +if (_count > 4) then {_garrison = _this select 4}; +if (_count > 5) then {_civil = _this select 5}; + +_buildings = [_pos,_radius] call ws_fnc_collectBuildings; +_milarray = []; +_badarray = []; +_milbuildings = []; + +//Add buildings specific to the game version +if !(ws_game_a3) then { + _milarray = _milarrayA2; + _badarray = _badarrayA3; +}; + +if (ws_game_a3) then { + _milarray = _milarrayA3; + _badarray = _badarrayA3; +}; + +//Remove undesired classes from the array and populate the array containg military buildings in the area +{ + if ((str(_x buildingpos 1) != "[0,0,0]") && typeof _x in _milarray) then {_milbuildings pushback (_x);_buildings = _buildings - [_x]}; + if ((str(_x buildingpos 0) == "[0,0,0]") || (typeOf _x in _badarray)) then {_buildings = _buildings - [_x]}; +} foreach _buildings; + +_units = units _group; +_group enableAttack false; // Prevent the group leader to issue attack orders to the members, improving their attack from buildings + +//Man the statics +if (_guns) then { + _units = [_group, _radius] call ws_fnc_taskCrew; +}; + +// Fill bunkers etc +if (count _milbuildings > 0 && count _units > 0 && _garrison) then { +_units = [_units,_milbuildings,_mthreshold] call ws_fnc_enterbuilding; + + if (_debug) then {{_mkr = createMarker [format ["%1-bpos",_x],_x];_mkr setMarkerSize [0.4,0.4];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorWhite";}forEach _milbuildings;}; +}; + +//Take position in regular buildings +if (count _buildings > 0 && count _units > 0 && _civil) then { +_units = [_units,_buildings,_cthreshold] call ws_fnc_enterbuilding; + if (_debug) then {{_mkr = createMarker [format ["%1-bpos",_x],_x];_mkr setMarkerSize [0.4,0.4];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorWhite";}forEach _buildings;}; +}; + +//If there's one unit left they either patrol or hold the area. +if (count _units >= 1) then { + _group = createGroup (side (_units select 0)); + _units joinSilent _group; + if (random 1 > 0.5) then {[_group,_pos,["hold",_radius]] call ws_fnc_addWaypoint;} else { + [_group,_pos,["patrol",_radius]] call ws_fnc_addWaypoint; + }; +}; + +_units + diff --git a/ws_fnc/AI/fn_taskLand.sqf b/ws_fnc/AI/fn_taskLand.sqf new file mode 100644 index 000000000..6a836e739 --- /dev/null +++ b/ws_fnc/AI/fn_taskLand.sqf @@ -0,0 +1,140 @@ +/* ws_fnc_taskLand +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Based on a script made by Head + +FEATURE +Prompts a Helicopter to land a certain location. It will ignore enemy fire as best as possible. +If it has units in cargo it'll wait until all are out, if it is empty, +it'll wait for the designated time or until all cargo seats are filled. +Afterwards it will move to the designated location. + +RETURNS +true - after helicopter has taken off again + +NOTE +Function should only be spawned where helicopter is local + +USAGE +Minimal: +[helicopter,landing position] spawn ws_fnc_taskLand; +Full: +[helicopter,landing position,wait time,extract position] spawn ws_fnc_taskLand; + +PARAMETERS +1. The helicopter | MANDATORY +2. The position to land on | MANDATORY - can be marker, object or positional array +3. The max. time to wait after touching ground | OPTIONAL - any number (default: 15s) +4. The position to move to after landing | OPTIONAL - can be marker, object or positional array (default: helo starting position) + +EXAMPLE +[VehAAF_H,"mkrLand"] spawn ws_fnc_taskLand; - would cause the helicopter named "VehAAF_H" to take off, fly towards the marker named "mkrLand" and move back to it's starting spot + +nul = [vehicle (leader group this),position this,30,"mkrExtract"] spawn ws_fnc_taskLand; - in the on Act. Field of a WP would cause the helicopter to land at the WP's center, wait for up to 30s and then move to the marker named "mkrExtract". I'd suggest to give the WP an activation radius of at least 200. +*/ + +if !(ws_game_a3) exitWith {["ws_fnc_taskLand:",[]," Must be ARMA 3!"] call ws_fnc_debugtext}; + +private ["_debug","_helo","_pos","_wait","_extract","_pilot","_grp","_hp","_wp"]; + +// Debug. If ws_debug is globally defined it overrides _debug +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; + +// Parse parameters +_helo = _this select 0; +_pos = (_this select 1) call ws_fnc_getEpos; +_wait = if (count _this > 2) then [{_this select 2},{15}]; +_extract = if (count _this > 3) then [{_this select 3},{getPosATL _helo}]; + +{[_x,["OBJECT"],"ws_fnc_taskLand"] call ws_fnc_typecheck;} forEach [_helo]; +{[_x,["SCALAR"],"ws_fnc_taskLand"] call ws_fnc_typecheck;} forEach [_wait]; +{[_x,["ARRAY"],"ws_fnc_taskLand"] call ws_fnc_typecheck;} forEach [_pos]; + +if !(_helo isKindOf "Helicopter") exitWith {["ws_fnc_taskLand:",[_helo]," must be a helicopter!"] call ws_fnc_debugtext}; + +// Set other variables +_pilot = driver _helo; +_grp = group _pilot; + +// Exit if the helicopter is called where it isn't local +if !(local _pilot) exitWith { + if (_debug) then {["ws_fnc_taskLand: Helo ",[_helo]," is not local!"] call ws_fnc_debugtext}; +}; + +// Get helicopter to move towards the position +_helo doMove _pos; + +// Wait until the helo is within 150 m of the landing zone +while {canMove _helo && (alive _helo ) && (getPosATL _helo) distance _pos > 150} do { + sleep 1; + if (_debug) then {["ws_fnc_taskLand: Waiting for ",[_helo]," to be in distance"] call ws_fnc_debugtext}; +}; + +//If helo has been downed exit script, otherwise begin landing +if (!canMove _helo || !alive _helo || !alive _pilot) exitWith { + if (_debug) then {["ws_fnc_taskLand: Helo or Pilot: ",[_helo,_pilot]," dead or immobile, exiting"] call ws_fnc_debugtext}; +}; + +// Set up helicopter +// NOTE: experiment with dis-/enabling stuff here, to achieve the ideal landing w/o gimping AI too much +_pilot disableai "AUTOTARGET"; _pilot disableai "TARGET"; +_grp enableAttack false; +//_pilot setBehaviour "CARELESS"; +_pilot allowFleeing 0; + +// Create an invisible helipad at a good location for the helicopter +_hp = "Land_HelipadEmpty_F" createVehicleLocal (_pos findEmptyPosition [0,100,typeOf _helo]); + +// Begin landing +while {canMove _helo && alive _helo && !(unitReady _helo)} do +{ + sleep 1; + if (_debug) then {["ws_fnc_taskLand: Waiting for ",[_helo]," to be ready"] call ws_fnc_debugtext}; +}; + +//If helo has been downed exit script, otherwise begin landing +if (!canMove _helo || !alive _helo || !alive _pilot) exitWith { + if (_debug) then {["ws_fnc_taskLand: Helo or Pilot: ",[_helo,_pilot]," dead or immobile, exiting"] call ws_fnc_debugtext}; +}; + +_helo land "GET IN"; + +if (_debug) then {["ws_fnc_taskLand:",[_helo]," landing."] call ws_fnc_debugtext}; + +waituntil {isTouchingGround _helo}; +if (_debug) then {["ws_fnc_taskLand:",[_helo]," touched ground."] call ws_fnc_debugtext}; + +// If cargo is onboard wait until all are out +if (count (assignedCargo _helo) > 0) then { + if (_debug) then {["ws_fnc_taskLand:",[_helo]," waiting for cargo to get out."] call ws_fnc_debugtext}; + + { + doGetOut _x; + unassignVehicle _x + } foreach assignedCargo _helo; + + sleep 1; + + waituntil {_helo emptyPositions "Cargo" == (getNumber(configfile >> "CfgVehicles" >> typeof _helo >> "transportSoldier"))}; + +// Otherwise wait until the designated time or all seats are filled +} else { + if (_debug) then {["ws_fnc_taskLand:",[_helo,_wait]," waiting designated time."] call ws_fnc_debugtext}; + for "_i" from 1 to _wait do { + if (_helo emptyPositions "Cargo" == 0) exitWith {}; + sleep 1; + }; +}; + +// Take off +if (_debug) then {["ws_fnc_taskLand:",[_helo]," taking off."] call ws_fnc_debugtext}; + +_helo land "NONE"; +_wp = [_grp,_extract,["TR UNLOAD"]] call ws_fnc_addWayPoint; +_grp setCurrentWaypoint _wp; +deleteVehicle _hp; + +// Re-Enable normal pilot behaviour +_pilot enableai "AUTOTARGET"; _pilot enableai "TARGET"; +_grp enableAttack true; + +true \ No newline at end of file diff --git a/ws_fnc/Dbg/fn_clipboardcode.sqf b/ws_fnc/Dbg/fn_clipboardcode.sqf new file mode 100644 index 000000000..24c6e079f --- /dev/null +++ b/ws_fnc/Dbg/fn_clipboardcode.sqf @@ -0,0 +1,11 @@ +//ws_fnc_clipboardcode +//run code from clipboard +//call ws_fnc_clipboardcode + +private ["_code","_error"]; + +_code = copyFromClipboard; +_error = [_code,["STRING","CODE"],"ws_fnc_clipboardcode"] call ws_fnc_typecheck; +if (_error) exitWith {["ws_fnc_clipboardcode DBG: ",_code," invalid. exiting."] call ws_fnc_debugtext}; +["ws_fnc_clipboardcode DBG: ",_code," executing."] call ws_fnc_debugtext; +[] spawn (compile _code); \ No newline at end of file diff --git a/ws_fnc/Dbg/fn_copypos.sqf b/ws_fnc/Dbg/fn_copypos.sqf new file mode 100644 index 000000000..6f7304108 --- /dev/null +++ b/ws_fnc/Dbg/fn_copypos.sqf @@ -0,0 +1,3 @@ +_pos = [(getposASL player) select 0,(getposASL player) select 1,(getposATL player) select 2]; +copyToClipboard format ["%1",_pos]; +["ws_fnc_copyPos: ",_pos," copied!"] call ws_fnc_debugtext; \ No newline at end of file diff --git a/ws_fnc/Dbg/fn_countUnits.sqf b/ws_fnc/Dbg/fn_countUnits.sqf new file mode 100644 index 000000000..ffe8a90f4 --- /dev/null +++ b/ws_fnc/Dbg/fn_countUnits.sqf @@ -0,0 +1,9 @@ +private ["_uw","_ue","_ur","_up"]; + +_uw = {side _x == west && alive _x && !isPlayer _x} count allUnits; +_ue = {side _x == east && alive _x && !isPlayer _x} count allUnits; +_ur = {side _x == resistance && alive _x && !isPlayer _x} count allUnits; +_up = {isPlayer _x} count allUnits; + +player globalchat format ["Players: %1, Playable Units: %2, AI: BLU/%3, OPF/%4, RES/%5",_up,count playableUnits,_uw,_ue,_ur]; +diag_log format ["Players: %1, Playable Units: %2, AI: BLU/%3, OPF/%4, RES/%5",_up,count playableUnits,_uw,_ue,_ur]; \ No newline at end of file diff --git a/ws_fnc/Dbg/fn_debugText.sqf b/ws_fnc/Dbg/fn_debugText.sqf new file mode 100644 index 000000000..797485b92 --- /dev/null +++ b/ws_fnc/Dbg/fn_debugText.sqf @@ -0,0 +1,16 @@ +//ws_fnc_debugtext +//dump variables into sidechat and rpt +//["String",[array of variables],"String"] call ws_fnc_debugtext + +private ["_debug","_string1","_variables","_string2"]; + +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; +if !(_debug) exitWith {}; + +_string1= _this select 0; +_variables = _this select 1; +_string2 = _this select 2; +_text = _string1 + format [" %1 ",_variables] + _string2 + format [" - Time: %1 ms",diag_tickTime]; + +systemchat _text; +diag_log _text; \ No newline at end of file diff --git a/ws_fnc/Dbg/fn_debugTriggers.sqf b/ws_fnc/Dbg/fn_debugTriggers.sqf new file mode 100644 index 000000000..43ccbdda1 --- /dev/null +++ b/ws_fnc/Dbg/fn_debugTriggers.sqf @@ -0,0 +1,44 @@ +//WS_fnc_debugTriggers +//Creates various triggers to be used ingame. Does not need to run twice + +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; +if !(_debug) exitWith {}; +if !(isNil "ws_dbg_trg") exitWith {}; + + +player allowDammage false; +if (ws_game_a3) then {player addAction ["Start Camera","[] call bis_fnc_camera;",[],2,false,true,"","driver _target == _this"];} else {onMapSingleClick "player setPos _pos";}; + +//Radio triggers to assist with debugging + +//Count units +ws_dbg_trg=createTrigger["EmptyDetector",[0,0,0]]; +ws_dbg_trg setTriggerArea[0,0,0,false]; +ws_dbg_trg setTriggerActivation["GOLF","PRESENT",true]; +ws_dbg_trg setTriggerStatements["this", "call ws_fnc_countUnits", ""]; +ws_dbg_trg setTriggerText "Count units"; + +//Copy player position +ws_dbg_trg=createTrigger["EmptyDetector",[0,0,0]]; +ws_dbg_trg setTriggerArea[0,0,0,false]; +ws_dbg_trg setTriggerActivation["HOTEL","PRESENT",true]; +ws_dbg_trg setTriggerStatements["this", "call ws_fnc_copyPos", ""]; +ws_dbg_trg setTriggerText "Copy player position"; + +//Clipboard code +ws_dbg_trg=createTrigger["EmptyDetector",[0,0,0]]; +ws_dbg_trg setTriggerArea[0,0,0,false]; +ws_dbg_trg setTriggerActivation["INDIA","PRESENT",true]; +ws_dbg_trg setTriggerStatements["this", "call ws_fnc_clipboardcode", ""]; +ws_dbg_trg setTriggerText "execute code from clipboard"; + +//Recompile +ws_dbg_trg=createTrigger["EmptyDetector",[0,0,0]]; +ws_dbg_trg setTriggerArea[0,0,0,false]; +ws_dbg_trg setTriggerActivation["JULIET","PRESENT",true]; +if !(ws_game_a3) then { +ws_dbg_trg setTriggerStatements["this", "ws_fnc_compiled = false;ws_fnc_compiled = false;publicVariable ""ws_fnc_compiled"";nul = [] execVM ""ws_fnc\ws_fnc_init.sqf"";", ""]; +} else { +ws_dbg_trg setTriggerStatements["this", "ws_fnc_compiled = false;publicVariable ""ws_fnc_compiled"";[] call BIS_fnc_Recompile;", ""]; +}; +ws_dbg_trg setTriggerText "recompile all ws_fnc"; \ No newline at end of file diff --git a/ws_fnc/Dbg/fn_typecheck.sqf b/ws_fnc/Dbg/fn_typecheck.sqf new file mode 100644 index 000000000..f787eebcb --- /dev/null +++ b/ws_fnc/Dbg/fn_typecheck.sqf @@ -0,0 +1,30 @@ +//ws_fnc_typecheck +//[variable to check,[array of expected types],descriptive string] call ws_fnc_typecheck; +//returns true when type is wrong or variable is nil + +private ["_variable","_check_array","_scriptname","_typenames","_false_types","_error"]; + +_variable = nil; +_variable = _this select 0; +_check_array = _this select 1; +_scriptname = _this select 2; + //All possible typenames. http://community.bistudio.com/wiki/typeName +_typenames = ["ARRAY","BOOL","CODE","CONFIG","CONTROL","DISPLAY","GROUP","LOCATION","OBJECT","SCALAR","SCRIPT","SIDE","STRING","TEXT"]; +_false_types = _typenames - _check_array; +_error = false; + +if (isNil {_variable}) exitWith { +player sidechat format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is NIL when it should be in %3 !",_variable,_scriptname,_check_array]; +diag_log format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is NIL when it should be in %3 !",_variable,_scriptname,_check_array]; +_error = true; +}; + +{ +if (typename _variable == toUpper _x) then { +player sidechat format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is %3 when it should be of %4 !",_variable,_scriptname,format ["%1",_x],_check_array]; +diag_log format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is %3 when it should be of %4 !",_variable,_scriptname,format ["%1",_x],_check_array]; +_error = true; +}; +} forEach _false_types; + +_error \ No newline at end of file diff --git a/ws_fnc/README.md b/ws_fnc/README.md new file mode 100644 index 000000000..f8e682de0 --- /dev/null +++ b/ws_fnc/README.md @@ -0,0 +1,21 @@ +ws_fnc for ArmA2:CO and ArmA3 +== +Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +**INTRODUCTION** + +This is a collection of various functions I have written and am writing for my Arma 3 missions. +None of them are revolutionary but all of them have been designed with efficiency and performance in mind. +The idea is to reduce the need for repetitive scripting as much as possible while avoiding the need for third-party scripts and the problems that come with that. +I've also tried and comment everything as best as possible to make understanding the code easier. + + +**SETUP & DOCUMENTANTION** + +Installation-guides and further documentation can be found on the wiki: +https://github.com/Wolfenswan/ws_fnc/wiki + +* All major functions are documented in themselves. To see how they work open their .sqf with a text editor or their pages on github. + +* If you're running ArmA 3 then you can also seem them all in the editor when opening the function viewer (CTRL+F). Make sure to select "missionConfigFile" in the top-left drop-down menu. + diff --git a/ws_fnc/Tools/fn_checkHC.sqf b/ws_fnc/Tools/fn_checkHC.sqf new file mode 100644 index 000000000..ddd8cb812 --- /dev/null +++ b/ws_fnc/Tools/fn_checkHC.sqf @@ -0,0 +1,23 @@ +/* ws_fnc_checkHC +Checks whether client is headless client or not + +SETS +- ws_var_isHC (bool) to true where client is HC +- ws_var_HCs (array) contains all present HCs + +RETURNS +true/false for HC/not-HC +*/ + +_hc = false; +ws_var_isHC = false; +["ws_var_HCs",[],true]call ws_fnc_setGVar; + +if (!hasInterface && !isServer) then { + _hc = true; + ws_var_isHC=true; + + ws_var_HCs append (player); publicVariable "ws_var_HCs"; +}; + +_hc \ No newline at end of file diff --git a/ws_fnc/Tools/fn_collectBuildings.sqf b/ws_fnc/Tools/fn_collectBuildings.sqf new file mode 100644 index 000000000..c8453a208 --- /dev/null +++ b/ws_fnc/Tools/fn_collectBuildings.sqf @@ -0,0 +1,65 @@ +/*ws_fnc_collectBuildings +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Collects all useable buildings (have building positions) in given radius + +USAGE +Minimal +[center,radius] call ws_fnc_collectBuildings + +Full +[center,radius,bool,bool] call ws_fnc_collectBuildings + +PARAMETERS +1. Center from where to check - can be marker, object, location | MANDATORY +2. Radius in which to check - number | MANDATORY +3. Flag whether to ignore buildings without building positions | OPTIONAL - default true +4. Flag whether to directly assign an array containing all building positions to the building | OPTIONAL - default false + +RETURNS +Array of useable buildings +*/ + +private ["_pos","_radius","_flag1","_flag2","_buildings","_bp"]; + +_pos = (_this select 0) call ws_fnc_getEPos; +_radius = _this select 1; +_flag1 = if (count _this > 2) then {_this select 2} else {true}; +_flag2 = if (count _this > 3) then {_this select 3} else {false}; + +_buildings = []; + +//Fill buildings array with classes shared by both games +{ +_buildings append nearestObjects [_pos,[_x],_radius]; +} forEach ["Fortress", "House","House_Small"]; + +//Add buildings specific to the game version +if !(ws_game_a3) then { + { + _buildings append nearestObjects [_pos,[_x],_radius]; + } forEach ["Church"]; +} else + +{ + { + _buildings append nearestObjects [_pos,[_x],_radius]; + } forEach ["Ruins_F","BagBunker_base_F","Stall_base_F","Shelter_base_F"]; +}; + +if (_flag1) then { + { + _bp = _x buildingPos 0; + if (str _bp == "[0,0,0]" || typeName _bp != typeName []) then {_buildings = _buildings - [_x]}; + } forEach _buildings; +}; + +if (_flag2) then { + { + [_x] call ws_fnc_getBPos; + } forEach _buildings; +}; + + +_buildings \ No newline at end of file diff --git a/ws_fnc/Tools/fn_collectMarkers.sqf b/ws_fnc/Tools/fn_collectMarkers.sqf new file mode 100644 index 000000000..8d53d90fa --- /dev/null +++ b/ws_fnc/Tools/fn_collectMarkers.sqf @@ -0,0 +1,37 @@ +/*ws_fnc_collectMarkers +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Collect all existing markers based on the parsed naming scheme + +USAGE +["markerName"] call ws_fnc_collectMarkers + +RETURNS +Array of all existing markers + +PARAMETERS +1. Marker name (string) - must be name all other markers are based on. + +EXAMPLE +["mkrCache","mkrHouse"] call ws_fnc_collectMarkers - returns an array with all markers named mkrCache and mkrHouse ["mkrCache","mkrCache_1","mkrCache_2","mkrHouse_Defend","mkrHouse_Hold"] +*/ + +private ["_arr"]; + +_arr = []; + +if (typeName _this != typeName []) then { + _this = [_this]; +}; + +{ + _marker = _x; + { + if ([_marker, _x] call BIS_fnc_inString) then { + _arr append [_x]; + }; + } forEach allMapMarkers; +} forEach _this; + +_arr \ No newline at end of file diff --git a/ws_fnc/Tools/fn_collectObjects.sqf b/ws_fnc/Tools/fn_collectObjects.sqf new file mode 100644 index 000000000..edbfe8839 --- /dev/null +++ b/ws_fnc/Tools/fn_collectObjects.sqf @@ -0,0 +1,36 @@ +/*ws_fnc_collectObjects +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Collects all existing objects that contain the strings parsed. + +NOTE +This command can be taxing in missions with a lot of objects. Use collectObjectsNum alternatively. + +USAGE +["Name1","Name2"] call ws_fnc_collectObjects + +RETURNS +Array of all existing objects that share the name + +PARAMETERS +String - must be part of all object names that should be collected + +EXAMPLE +["Cache","Church"] call ws_fnc_collectObjects - returns an array with all objects with "Cache" and "Church" in their name: [Cache,Cache_1,Cache_2,Church_Attack,Church_Hold] +*/ + +private ["_arr"]; + +_arr = []; + +{ + _obj = _x; + { + if ([_obj, format ["%1",_x]] call BIS_fnc_inString) then { + _arr append [_x]; + }; + } forEach allMissionObjects "ALL"; +} forEach _this; + +_arr \ No newline at end of file diff --git a/ws_fnc/Tools/fn_collectObjectsNum.sqf b/ws_fnc/Tools/fn_collectObjectsNum.sqf new file mode 100644 index 000000000..c158e8b57 --- /dev/null +++ b/ws_fnc/Tools/fn_collectObjectsNum.sqf @@ -0,0 +1,50 @@ +/*ws_fnc_collectObjectsNum +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Collects all existing objects that are copies of the original, as indicated by an appended number (Obj,Obj_1,Obj_2 etc.) + +USAGE +[Object1,Object2] call ws_fnc_collectObjectsNum + +RETURNS +Array of all existing objects that share the name + +PARAMETERS +Objects - must be existing and the original object on which the copies are based on + +EXAMPLE +[Cache,Church] call ws_fnc_collectObjectsNum - returns an array with all objects with "Cache" and "Church" and those following in a numeric order: [Cache,Cache_1,Cache_2,Church,Church_1,Church_2] +*/ + +private ["_arr","_done"]; + +_arr = []; + +//Start the loop +_i = 0; +_done = false; + +if (typeName _this != typeName []) then { + _this = [_this]; +}; + +{ + while {true} do { + _obj = ""; + + if (_i > 0) then { + _obj = format ["%1_%2",_x,_i]; + } else { + _obj = format ["%1",_x]; + }; + + if (isNil _obj || _i > 500) exitWith {_i = 0;}; + + // If the object exists, add it to the array + call compile format ["_arr append [%1]",_obj]; + _i = _i + 1; + }; +} forEach _this; + +_arr \ No newline at end of file diff --git a/ws_fnc/Tools/fn_gamecheck.sqf b/ws_fnc/Tools/fn_gamecheck.sqf new file mode 100644 index 000000000..63b59f5d1 --- /dev/null +++ b/ws_fnc/Tools/fn_gamecheck.sqf @@ -0,0 +1,26 @@ +/*ws_fnc_selectRandom +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Checks whether A2:CO or A3 is running + +USAGE +[] call ws_fnc_gameCheck + +RETURNS +"a2" for ARMA2 (all versions) +"a3" for ARMA3 +*/ + +_game = productVersion; //if productversion doesn't work we're on a A2 version <1.62 +if (isNil "_game") then {_game == "a2"} else { +if (_game select 1 != "ARMA3") then {_game = "a2"} else {_game = "a3"}}; + +if (isNil "ws_game_a3") then { + switch (_game) do { + case "a2": {ws_game_a3 = false;}; + case "a3": {ws_game_a3 = true;}; + }; +publicvariable "ws_game_a3";}; + +_game \ No newline at end of file diff --git a/ws_fnc/Tools/fn_isWallInDir.sqf b/ws_fnc/Tools/fn_isWallInDir.sqf new file mode 100644 index 000000000..703a48977 --- /dev/null +++ b/ws_fnc/Tools/fn_isWallInDir.sqf @@ -0,0 +1,40 @@ +/* ws_fnc_isWallInDir +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Checks if object is facing a building wall in given direction, distance and height + +USAGE +Minimal +[Object,direction] call ws_fnc_isWallInDir + +Full +[Object,direction,distance,height] call ws_fnc_isWallInDir + +PARAMETERS +1. Unit or Object | Mandatory - any object, uses eyepos for "CAMANBASE" +2. Direction | Mandatory - 0 - 360 +3. Distance | Optional - default 15m +4. Height | Optional - default 0m + +RETURNS +bool - true if unit is facing a wall, false if unit is outside or facing a window + +EXAMPLES +[TestUnit,GetDir TestUnit] ws_fnc_isWallInDir - returns true if TestUnit is facing a wall +[TestUnit,0,0,25] ws_fnc_isWallInDir - returns true if TestUnit is under a roof +*/ + +private ["_pos","_dis","_count","_intersects"]; + +_o = _this select 0; +_pos = getPos _o; +_posASL = if (_o isKindOF "CAMANBASE") then [{eyePos _o},{GetPosASL (_o)}]; +_dir = _this select 1; +_dis = if (count _this > 2) then [{_this select 2},{15}]; +_height = if (count _this > 3) then [{_this select 3},{0}]; + +_relpos = [[_pos select 0,_pos select 1,(_pos select 2) + _height], _dis, _dir] call BIS_fnc_relPos; + +_intersects = lineIntersectsObjs [_posASL,ATLTOASL _relpos]; +if (count _intersects > 0 && {(({(_x isKindOf "HouseBase" || _x isKindOf "BagBunker_base_F")} count _intersects) > 0)}) then [{true},{false}]; \ No newline at end of file diff --git a/ws_fnc/Tools/fn_listPlayers.sqf b/ws_fnc/Tools/fn_listPlayers.sqf new file mode 100644 index 000000000..698ea7635 --- /dev/null +++ b/ws_fnc/Tools/fn_listPlayers.sqf @@ -0,0 +1,21 @@ +/* +ws_fnc_listPlayers +Latest: 16.01.2014 + +FEATURE +Lists all players + +USAGE +[] call ws_fnc_listPlayers + +RETURNS +array containing all players +*/ + +_players = []; + +{ + if (isPlayer _x) then {_players append (_x)}; +} forEach playableUnits; + +_players \ No newline at end of file diff --git a/ws_fnc/Tools/fn_loadVehicle.sqf b/ws_fnc/Tools/fn_loadVehicle.sqf new file mode 100644 index 000000000..ed315b852 --- /dev/null +++ b/ws_fnc/Tools/fn_loadVehicle.sqf @@ -0,0 +1,172 @@ +/* ws_fnc_loadVehicle +Latest: 12.11.2014 +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Based on my work for the F3 preMount component + +FEATURE +loads units of specified group(s) into vehicle, filling all important positions before cargo is filled +units that are already in a vehicle are ignored + +USAGE +Minimal: +[[veh1],["Grp1","Grp2"]] call ws_fnc_loadVehicle + +Full: +[[veh1],["Grp1","Grp2"],boolean,boolean] call ws_fnc_loadVehicle + +RETURNS +Units that weren't loaded. If all units were loaded an empty array is returned +*/ + +// DECLARE VARIABLES AND FUNCTIONS + +private ["_objects","_crew","_vehs","_grps","_units"]; + +// ==================================================================================== + +// SET KEY VARIABLES +// Using the arguments passed to the script, we first define some local variables. + +_vehs = _this select 0; // Array of vehicles (objects) +_grps = _this select 1; // Array of group names (as strings) +_crew = if (count _this > 2) then {_this select 2} else {true}; // Mount into crew positions? (optional - default:true) +_fill = if (count _this > 3) then {_this select 3} else {false}; // Ignore fireteam cohesion in favor of filling vehicles? (optional - default:false) + +// ==================================================================================== + +// CLEAN THE GROUP ARRAY +// First we check if there are illegal groups (non-existent) in the array and fix it by replacing it with a null-group. +// At the end we remove all null-groups are removed and the array is clean + +if ({isNil _x} count _grps > 0) then { + { + if (isNil _x) then { + _grps set [_forEachIndex,grpNull]; + }; + + } forEach _grps; + _grps = _grps - [grpNull]; +}; + +// We check the passed groups to make sure none of them is empty and they have at least one unit that's not inside a vehicle +{ + _grp = call compile format ["%1",_x]; + _grps set [_forEachIndex,_grp]; + + if (count (units _grp) == 0 || {isNull (assignedVehicle _x)} count (units _grp) == 0) then { + _grps set [_forEachIndex,grpNull]; + }; + +} forEach _grps; +_grps = _grps - [grpNull]; + +// ==================================================================================== + +// PROCESS VEHICLES +// We make sure that there are only vehicles in the vehicle array +// If a soldier-unit is in the array then we check if we can use the vehicle he's in +{ + if (_x isKindOf "CAManBase") then { + if (vehicle _x != _x) then { + _vehs set [_forEachIndex,vehicle _x]; + } else { + _vehs = _vehs - [_x]; + }; + }; +} forEach _vehs; + +// ==================================================================================== + +// CHECK ARRAY COUNT +// If any of the arrays is empty we don't need to execute the function and exit with a warning message. + +if (count _vehs == 0 || count _grps == 0) exitWith { + player globalchat format ["f_fnc_preMount DBG: No vehicles and/or groups were parsed! _vehicles: %1,_grps: %2",_vehs,_grps]; + diag_log format ["f_fnc_preMount DBG: No vehicles and/or groups were parsed! _vehicles: %1,_grps: %2",_vehs,_grps]; +}; + +// ==================================================================================== + +// MOUNT UNITS +// We loop through all vehicles and assign crew & cargo accordingly + +{ + private ["_veh","_grpsT","_emptyPositions"]; + _veh = _x; + _crew = if (count _this > 2) then {_this select 2} else {true}; + + // Calculate the number of spare seats + _emptyPositions = [typeOf _veh,true] call BIS_fnc_crewCount; // Count all available slots(this includes co-pilot, commander, main-gunner etc.) + _emptyPositions = _emptyPositions - (count crew _veh); // Substract number of crew already present in the vehicle + _vehicleRoles = (typeOf _veh) call bis_fnc_vehicleRoles; // All available roles for the vehicle + + // Temporary group array + _grpsT = _grps; + // As long there are spare seats and groups left + + while {_emptyPositions > 0 && count _grpsT > 0 && locked _veh < 2} do { + + private ["_grp","_units","_run"]; + + _grp = _grpsT select 0; + _units = units _grp; + _run = true; + + // If fireteam cohesion should be kept count the available vehicle slots, compared to the units in the group that would need a seat + if (!_fill && {{isNull assignedVehicle _x} count _units > _emptyPositions}) then { + + _run = false; + + //Remove groups that would need to be split up + _grpsT = _grpsT - [_grp]; + }; + + if (_run) then { + + // Loop through all vehicle roles and place the units in them accordingly + { + _unit = _units select 0; + _slot = _x select 0; + _path = _x select 1; + + // If the slot is not a cargo slot and crew should be slotted + if (_crew && {_slot != "CARGO" && isNull assignedVehicle _unit}) then{ + if (_slot == "Driver" && (_veh emptyPositions "Driver") > 0 && !(lockedDriver _veh)) exitWith {_unit assignAsDriver _veh;_unit moveInDriver _veh;}; + if (_slot == "Turret" && !(_veh lockedTurret _path) && isNull (_veh TurretUnit _path)) exitWith {_unit assignAsTurret [_veh,_path];_unit moveInTurret [_veh,_path];}; + }; + + if (_slot == "CARGO" && isNull assignedVehicle _unit && !(_veh lockedCargo (_path select 0))) then { + _unit assignAsCargo _veh; _unit moveInCargo _veh; + }; + + // If the unit was assigned, remove it so we can use the next unit. If it wasn't, use it again to find a useable seat + if (!isNull (assignedVehicle _unit)) then { + _units = _units - [_unit]; + }; + + // If no units are left, exit + if (count _units == 0) exitWith {}; + + } forEach _vehicleRoles; + + // Remove the processed group from the temporary array + _grpsT = _grpsT - [_grp]; + }; + + // Check if all units in the group have been assigned a vehicle, remove group from both group arrays + if ({isNull assignedVehicle _x} count (units _grp) == 0) then {_grpsT = _grpsT - [_grp];_grps = _grps - [_grp]}; + + if (count _grpsT == 0) exitWith {}; + + // Recalculate the remaining seats on the vehicle + _emptyPositions = [typeOf _veh,true] call BIS_fnc_crewCount; // Count all available slots(this includes co-pilot, commander, main-gunner etc.) + _emptyPositions = _emptyPositions - (count crew _veh); // Substract number of crew already present in the vehicle + }; + +} forEach _vehs; + +// ==================================================================================== + +// OUTPUT +// We return all groups that weren't fully loaded +_grps diff --git a/ws_fnc/Tools/fn_nearPlayer.sqf b/ws_fnc/Tools/fn_nearPlayer.sqf new file mode 100644 index 000000000..999eb540e --- /dev/null +++ b/ws_fnc/Tools/fn_nearPlayer.sqf @@ -0,0 +1,32 @@ +/* +ws_fnc_nearPlayer +Latest: 15.01.2014 + +Based on CBA_fnc_listPlayer + +FEATURE +Checks if player is within distance of unit + +USAGE +[unit,distance] call ws_fnc_nearPlayer + +PARAMETERS +1. Entitiy to be checked from | MANDATORY +2. Distance to unit to be checked for player | MANDATORY + +RETURNS +true or false +*/ + +_ent = _this select 0; +_distance = _this select 1; + +private ["_pos","_players"]; +_pos = _ent call ws_fnc_getEPos; +_players = [] call ws_fnc_listPlayers; + + +{ + if (_pos distance _x < _distance) exitWith {true}; + false; +} forEach _players; diff --git a/ws_fnc/Tools/fn_selectRandom.sqf b/ws_fnc/Tools/fn_selectRandom.sqf new file mode 100644 index 000000000..0ece821f7 --- /dev/null +++ b/ws_fnc/Tools/fn_selectRandom.sqf @@ -0,0 +1,17 @@ +//ws_fnc_selectRandom +/* +FEATURE +Get a random value from an array +(As Bis_fnc_selectRandom is bugged: https://dev-heaven.net/issues/69439) + +USAGE +[array] call ws_fnc_selectRandom + +RETURNS +random selection +*/ + +[_this,["ARRAY"],format ["ws_fnc_selectRandom ERROR: %1",_this]] call ws_fnc_typecheck; +_selection = _this select (floor (random (count _this))); + +_selection \ No newline at end of file diff --git a/ws_fnc/Tools/fn_setGVar.sqf b/ws_fnc/Tools/fn_setGVar.sqf new file mode 100644 index 000000000..221cdd426 --- /dev/null +++ b/ws_fnc/Tools/fn_setGVar.sqf @@ -0,0 +1,43 @@ +/*ws_fnc_setGVar +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Sets a global variable to the passed value. If the variable is nil it is initialized + +USAGE +Minimal +["variable",value] call ws_fnc_setGVar + +Full +["variable",value,bool,bool] call ws_fnc_setGVar + +PARAMETERS +1. Variable to check | MANDATORY - string +2. Value to set if variable is nil | MANDATORY - any value +3. Whether to pub-var the variable after it was set | OPTIONAL - bool (default: false) +4. Whether to set the variable even if it is not nil | OPTIONAL - bool (default: false) + +RETURNS +nothing +*/ + +private ["_var","_val","_pub","_force","_debug"]; + +_var = _this select 0; +_val = _this select 1; +_pub = if (count _this > 2) then [{_this select 2},{false}]; +_force = if (count _this > 3) then [{_this select 3},{false}]; + +_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; + +if (!isNil _var && !_force) exitWith { + if (_debug) then { + ["ws_fnc_setGVar: Passed var is not nil:",[_var,_val],""] call ws_fnc_debugText; + }; +}; + +call compile Format ["%1 = %2",_var,_val]; + +if (_pub) then { + call compile format ["publicVariable '%1'",_var]; +}; \ No newline at end of file diff --git a/ws_fnc/Tools/fn_showFPS.sqf b/ws_fnc/Tools/fn_showFPS.sqf new file mode 100644 index 000000000..c8ea470a3 --- /dev/null +++ b/ws_fnc/Tools/fn_showFPS.sqf @@ -0,0 +1,22 @@ +// ws_fnc_broadcast +// By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +/* +FEATURE +Display FPS in hint window + +USAGE +[] call ws_fnc_showFPS +[time in seconds] call ws_fnc_showFPS + +PARAMETERS +1. Time for the FPS to be measured | OPTIONAL - default is 60 seconds + +NOTE +ARMA 3 only +*/ + +private ["_time"]; + +_time = [_this,0,60,["SCALAR"]] call BIS_fnc_Param; + +[_time,[format ["%1",name player]]] call BIS_fnc_FPS; \ No newline at end of file diff --git a/ws_fnc/cache/fn_cInit.sqf b/ws_fnc/cache/fn_cInit.sqf new file mode 100644 index 000000000..a4ead5175 --- /dev/null +++ b/ws_fnc/cache/fn_cInit.sqf @@ -0,0 +1,83 @@ +/* +ws_fnc_cache +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Caches groups. + +USAGE +[min caching distance,agressiveness,sleep] call ws_fnc_cInit; + +To exclude a group from being cached: +a) In unit init: (group this) setVariable ["ws_cacheExcl",true]; +b) Anywhere: Groupname setVariable ["ws_cacheExcl",true,true]; + +NOTE +It's recommended to wait up until a minute into the mission before launching the caching script to make sure that all AI have settled + +PARAMETERS +1. Distance to players for units to be de-cached | OPTIONAL - default is 1000 +2. Agressiveness of the caching | OPTIONAL - default is 2 + 1 - cache only non-leaders and non-drivers + 2 - cache all non-moving units, always exclude vehicle drivers + 3 - cache all units, incl. group leaders and vehicle drivers +3. Amount of seconds between distance-checks to player units | OPTIONAL - default is 5 seconds + +RETURNS +true +*/ + +// Player and the headless client's groups are always excluded from being cached +if (!isDedicated) then { + group player setVariable ["ws_cacheExcl", true, true]; +}; + +// Script is only run server-side +if !(isServer) exitWith {}; + +// Make sure script is only run once +if (missionNameSpace getVariable ["ws_cInit", false]) exitWith {}; +ws_cInit = true; +waituntil {!isnil "bis_fnc_init"}; + +// All groups with playable units are set to be ignored as well +{ + if ({_x in playableUnits} count units _x > 0) then {_x setVariable ["ws_cacheExcl",true,true];}; +} forEach allGroups; + +// Define parameters +_range = if (count _this > 0) then [{_this select 0},{1000}]; +ws_var_cachingAggressiveness = if (count _this > 1) then [{_this select 1},{2}]; +_sleep = if (count _this > 2) then [{_this select 2},{6}]; + + +[_range, _sleep] spawn ws_fnc_cTracker; + +_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; + +if (_debug) then { + ["ws_fnc_cache DBG: Starting to track groups, range, sleep",[count allGroups,_range,_sleep],""] call ws_fnc_debugtext; + + [_sleep] spawn { + + // Giving the tracker a head start + sleep (_this select 0 * 1.1); + + while {true} do { + _str1 = "ws_fnc_cache DBG:
"; + _str2 = format["Total groups: %1
",count allGroups]; + _str3 = format ["Cached groups:%1
",{_x getvariable "ws_cached"} count allGroups]; + _str4 = format ["Activated groups:%1
",{!(_x getvariable "ws_cached")} count allGroups]; + _str5 = format ["Excluded groups:%1
",{(_x getvariable "ws_cacheExcl")} count allGroups]; + + hintsilent parseText (_str1+_str2+_str3+_str4+_str5); + + sleep (_this select 0); + }; + }; +}; + + +true \ No newline at end of file diff --git a/ws_fnc/cache/fn_cTracker.sqf b/ws_fnc/cache/fn_cTracker.sqf new file mode 100644 index 000000000..2051cffb9 --- /dev/null +++ b/ws_fnc/cache/fn_cTracker.sqf @@ -0,0 +1,64 @@ +/* +ws_fnc_cTracker +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Tracks all currently present AI-only groups and caches/uncaches them according to distance to parameters +*/ + +private ["_range","_sleep","_groups","_debug"]; + +_range = _this select 0; +_sleep = _this select 1; + +_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; + +_groups = allGroups; + +// BEGIN THE TRACKING LOOP +While {count _groups > 0} do { + { + _groups = allGroups; + + if (_debug) then{ ["ws_fnc_cache DBG: Tracking ",[count _groups]," groups"] call ws_fnc_debugtext;}; + + if (isnull _x) then { + _groups = _groups - [_x]; + + if (_debug) then{ ["ws_fnc_cache DBG: Group is null, deleting: ",[_x,count _groups]," groups left"] call ws_fnc_debugtext;}; + + } else { + _exclude = _x getvariable ["ws_cacheExcl",false]; + _cached = _x getvariable ["ws_cached", false]; + + if (!_exclude) then { + if (_cached) then { + + if (_debug) then {["ws_fnc_cache DBG: Checking group: ",[_x],""] call ws_fnc_debugtext;}; + + if ([leader _x, _range] call ws_fnc_nearPlayer) then { + + if (_debug) then {["ws_fnc_cache DBG: Caching: ",[_x],""] call ws_fnc_debugtext;}; + + _x setvariable ["ws_cached", false]; + _x spawn ws_fnc_gUncache; + }; + } else { + if !([leader _x, _range * 1.1] call ws_fnc_nearPlayer) then { + + if (_debug) then {player globalchat format ["ws_fnc_cache DBG: Caching: %1",_x]}; + + _x setvariable ["ws_cached", true]; + _x spawn ws_fnc_gCache; + }; + }; + + if (_debug) then {["ws_fnc_cache DBG: Group is excluded: ",[_x]," - Ignoring."] call ws_fnc_debugtext;}; + }; + }; + } foreach _groups; + + sleep _sleep; +}; \ No newline at end of file diff --git a/ws_fnc/cache/fn_gCache.sqf b/ws_fnc/cache/fn_gCache.sqf new file mode 100644 index 000000000..dc5c2fc7c --- /dev/null +++ b/ws_fnc/cache/fn_gCache.sqf @@ -0,0 +1,42 @@ +/* +ws_fnc_gCache +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Disables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. +*/ + +// LOOP THROUGH THE PASSED UNITS +// We loop through the units of the passed group and disable Simulation for those that are not vehicle drivers and are standing still +{ + + // Disable simulation based on aggressiveness + switch (ws_var_cachingAggressiveness) do { + case 1: { + if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _this)) then { + _x enableSimulationGlobal false; + }; + }; + case 2: { + if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { + if ((_x != leader _this) || (_x == leader _this && speed _x == 0)) then { + _x enableSimulationGlobal false; + }; + }; + }; + case 3: {_x enableSimulationGlobal false;}; + }; + + // All unit's are hidden + _x hideObjectGlobal true; + + if (ws_var_cachingAggressiveness == 3) then { + if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal true}; + }; + +sleep 0.1; +} forEach units _this; + +true \ No newline at end of file diff --git a/ws_fnc/cache/fn_gUncache.sqf b/ws_fnc/cache/fn_gUncache.sqf new file mode 100644 index 000000000..5ee57739e --- /dev/null +++ b/ws_fnc/cache/fn_gUncache.sqf @@ -0,0 +1,26 @@ +/* +ws_fnc_gUncache +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Enables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. +*/ + + { + _x enableSimulationGlobal true; + _x hideObjectGlobal false; + + + // If the group leader is moving, set his group back next to him + if (speed leader _this > 0 && vehicle _x == _x) then { + _x setPosATL (formationPosition _x); + }; + + if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal false}; + +sleep 0.1; +} forEach units _this; + +true \ No newline at end of file diff --git a/ws_fnc/config.hpp b/ws_fnc/config.hpp new file mode 100644 index 000000000..7f0d1faf6 --- /dev/null +++ b/ws_fnc/config.hpp @@ -0,0 +1,90 @@ +class WS + { + + class debug + { + file = "ws_fnc\dbg"; + class debugText {}; + class typeCheck {}; + class clipboardCode {}; + class copyPos {}; + class countUnits {}; + class debugTriggers {postInit = 1;}; + }; + class tools + { + file = "ws_fnc\tools"; + class selectRandom {}; + class gameCheck {preInit=1;}; + class collectMarkers {}; + class collectObjects {}; + class collectObjectsNum {}; + class collectBuildings {}; + class loadVehicle {}; + class checkHC {}; + class showFPS {}; + class nearPlayer {}; + class listPlayers {}; + class setGVar {}; + class isWallInDir {}; + }; + class effects + { + file = "ws_fnc\effects"; + class createTripflare {}; + class createLightning {}; + class createCAS {}; + class createOrdnance {}; + }; + class misc + { + file = "ws_fnc\misc"; + class switchLights {}; + class attachLight {}; + class attachChem {}; + class attachIR {}; + class broadcast {}; + class showIntro {}; + }; + class getPos + { + file = "ws_fnc\getPos"; + class getPos {}; + class getBPos {}; + class getEPos {}; + class nearestRoadPos {}; + class nearestLandPos {}; + class getPosInArea {}; + }; + class AI + { + file = "ws_fnc\AI"; + class createGroup {}; + class createVehicle {}; + class createGarrison {}; + class betterVehicle {}; + class enterBuilding {}; + class taskDefend {}; + class taskCrew {}; + class taskAmbush {}; + class taskArtilleryFire {}; + class taskLand {}; + class taskConvoy {}; + class addWaypoint {}; + class setAIMode {}; + class setInsidePos {}; + }; + class cache + { + file = "ws_fnc\cache"; + class cInit {}; + class gCache {}; + class gUncache {}; + class cTracker {}; + }; + + class init { + class init {file = "ws_fnc\ws_fnc_init.sqf";preInit = 1;}; + }; + + }; \ No newline at end of file diff --git a/ws_fnc/description.ext b/ws_fnc/description.ext new file mode 100644 index 000000000..c193f2482 --- /dev/null +++ b/ws_fnc/description.ext @@ -0,0 +1,4 @@ +class CfgFunctions +{ + #include "ws_fnc\config.hpp" +}; \ No newline at end of file diff --git a/ws_fnc/effects/fn_createCAS.sqf b/ws_fnc/effects/fn_createCAS.sqf new file mode 100644 index 000000000..22fc11402 --- /dev/null +++ b/ws_fnc/effects/fn_createCAS.sqf @@ -0,0 +1,41 @@ +/*ws_fnc_createCAS + +FEATURE +Creates a CAS run at the given location + +USAGE +MinimaL: +[position,direction] call ws_fnc_createCAS + +PARAMETERS +1. Center of CAS run (can be unit, marker or position) | MANDATORY +2. Direction for CAS to strafe towards | MANDATORY +3. Type of CAS run. 0: Guns only. 1: Rockets only. 2: Both. | OPTIONAL - default is 0 +4. Class of CAS plane to send. | OPTIONAL - default is Wipeout + +RETURNS +true +*/ + +private ["_pos","_class","_type","_dir","_dummy"]; + +_pos = (_this select 0) call ws_fnc_getEPos; +_dir = (_this select 1); +_type = if (count _this > 2) then {(_this select 2)} else {0}; +_class = if (count _this > 3) then {(_this select 3)} else {"B_Plane_CAS_01_F"}; + +_dummy = "LaserTargetCBase" createVehicle _pos; +_dummy enableSimulationGlobal false; _dummy hideObjectGlobal true; +_dummy setVariable ["vehicle",_class]; +_dummy setVariable ["type",_type]; +_dummy setDir _dir; + +[_dummy,nil,true] call BIS_fnc_moduleCAS; + +[_dummy] spawn { + sleep 10; + + deleteVehicle (_this select 0); +}; + +true \ No newline at end of file diff --git a/ws_fnc/effects/fn_createLightning.sqf b/ws_fnc/effects/fn_createLightning.sqf new file mode 100644 index 000000000..a28a7c503 --- /dev/null +++ b/ws_fnc/effects/fn_createLightning.sqf @@ -0,0 +1,31 @@ +/*ws_fnc_createLightning + +FEATURE +Creates a ZEUS lighting at the given location + +USAGE +position call ws_fnc_createLightning + +PARAMETERS +1. Center of Lightning strike (can be unit, marker or position) | MANDATORY + +RETURNS +true +*/ + +private ["_pos","_dummy"]; + +_pos = _this call ws_fnc_getEPos; + +_dummy = "LaserTargetCBase" createVehicle _pos; +_dummy enableSimulationGlobal false; _dummy hideObjectGlobal true; + +[_dummy,nil,true] call BIS_fnc_moduleLightning; + +[_dummy] spawn { + sleep 10; + + deleteVehicle (_this select 0); +}; + +true \ No newline at end of file diff --git a/ws_fnc/effects/fn_createOrdnance.sqf b/ws_fnc/effects/fn_createOrdnance.sqf new file mode 100644 index 000000000..7dd710bdb --- /dev/null +++ b/ws_fnc/effects/fn_createOrdnance.sqf @@ -0,0 +1,39 @@ +/*ws_fnc_createOrdnance + +FEATURE +Creates Ordnance over the given area + +USAGE +[position,type] call ws_fnc_createOrdnance + +PARAMETERS +1. Center of ordnance strike (can be unit, marker or position) | MANDATORY +2. Class of ordnance - any type of artillery ammo | MANDATORY + +AMMO TYPES (examples): +"Sh_82mm_AMOS" - HE mortar +"Sh_155mm_AMOS_LG" - 155mm artillery +"R_230mm_HE" - 230mm HE rocket + +RETURNS +true +*/ + +private ["_pos","_class","_type","_dir","_dummy"]; + +_pos = (_this select 0) call ws_fnc_getEPos; +_class = (_this select 1); + +_dummy = "LaserTargetCBase" createVehicle _pos; +_dummy enableSimulation false; _dummy hideObject true; +_dummy setVariable ["type",_class]; + +[_dummy,nil,true] call BIS_fnc_moduleProjectile; + +[_dummy] spawn { + sleep 10; + + deleteVehicle (_this select 0); +}; + +true \ No newline at end of file diff --git a/ws_fnc/effects/fn_createTripflare.sqf b/ws_fnc/effects/fn_createTripflare.sqf new file mode 100644 index 000000000..f16d519c0 --- /dev/null +++ b/ws_fnc/effects/fn_createTripflare.sqf @@ -0,0 +1,40 @@ +/* ws_fnc_createTripflare + +FEATURE +Creates illuminated smoke at position + +USAGE +[position,color] spawn ws_fnc_createTripflare + +PARAMETERS +1. position at which to spawn the flare | MANDATORY - object, array [x,y,z] or marker +2. color of the smoke | MANDATORY - "red", "green","yellow" or "white" + +NOTE +Function does not check for locality. Wrap your call in an isServer etc. clause if necessary. + +EXAMPLE +if (isServer) then {[thisTrigger,"red"] spawn ws_fnc_createTripflare}; - in a trigger's on activation field will create a tripflare at the trigger's center when the trigger's conditions have been met +*/ + +private ["_color","_flare","_smk","_duration"]; + +_pos = (_this select 0) call ws_fnc_getEpos; +_color = toLower(_this select 1); +_duration = if (count _this > 2) then {_this select 2} else {0}; + +if !(_color in ["green","red","yellow","white"]) exitWith {["ws_fnc_tripFlare DBG: ",[_color]," is not one of: [""green"",red","yellow","white""]"] call ws_fnc_debugtext}; + +_flare = (format ["F_40mm%1","_"+_color]) createVehicle _pos; +uisleep 0.5; +if (_color == "white") then {_color =""}; +_smk = (format ["Smokeshell%1",_color]) createVehicle _pos; +_smk setVectorUp [1,0,0]; + +while {!isNull _smk} do { + uisleep 21.5; // A flare takes roughly 25seconds to die off. As there's a delay between creating and illumination, the sleep is slightly shorter + if (!isNull _smk) then { + _flare = (format ["F_40mm%1","_"+_color]) createVehicle _pos; + }; + uisleep 0.01; +}; diff --git a/ws_fnc/getPos/fn_NearestLandPos.sqf b/ws_fnc/getPos/fn_NearestLandPos.sqf new file mode 100644 index 000000000..f9c61f2e7 --- /dev/null +++ b/ws_fnc/getPos/fn_NearestLandPos.sqf @@ -0,0 +1,38 @@ +/* ws_fnc_NearestLandPos +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +USAGE +[pos] call ws_fnc_NearestLandPos +[pos,distance,increment] call ws_fnc_NearestLandPos + +FEATURE +Return nearest pos on dry land in distance x (default 10), If no position is found increase by increment x (default 50) +If no dry land in radius increment*50 is found the original position is returned and an error put out. + +RETURNS +positional array +*/ + +private ["_i","_distance","_increment","_roads","_done"]; + +_pos = _this select 0; + +_i = 0; +_distance = 10; +if (count _this > 1) then {_distance = _this select 1}; +_increment = 50; +if (count _this > 2) then {_increment = _this select 2}; + +_done = false; +while {!_done && _i <= 50} do { + for "_x" from 0 to 340 step 20 do { + _distance = _distance + _increment; + _pos set [0,_posX + (_distance * sin _x)]; + _pos set [1,_posY + (_distance * cos _x)]; + if !(surfaceIsWater _pos) exitWith {_done = true}; + }; + _i = _i + 1; + if (_i == 50) exitWith {_pos = _this select 0; ["ws_fnc_NearestLandPos ERROR: No dry land found in radius of",(_increment*20),""] call ws_fnc_DebugText}; +}; + +_pos diff --git a/ws_fnc/getPos/fn_NearestRoadPos.sqf b/ws_fnc/getPos/fn_NearestRoadPos.sqf new file mode 100644 index 000000000..4100ac6de --- /dev/null +++ b/ws_fnc/getPos/fn_NearestRoadPos.sqf @@ -0,0 +1,40 @@ +/* ws_fnc_NearestRoadPos +Latest: 10.10.2013 +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +USAGE +[pos] call ws_fnc_NearestRoadPos +[pos,distance,increment] call ws_fnc_NearestRoadPos + +FEATURE +Return nearest road in distance x (default 10), If no road is found increase by increment x (default 50) +If no roads in radius increment*20 are found the original position is returned and an error put out. + +RETURNS +positional array +*/ + +private ["_i","_distance","_increment","_roads","_done"]; + +_pos = (_this select 0) call ws_fnc_getEPos; + +_i = 0; +_distance = 10; +if (count _this > 1) then {_distance = _this select 1}; +_increment = 50; +if (count _this > 2) then {_increment = _this select 2}; +_done = false; + +while {!_done && _i <= 20} do { + _roads = _pos nearroads _distance; + if (count _roads > 0) then { + _pos = getPosATL (_roads call ws_fnc_selectRandom); + _done = true; + } else { + _distance = _distance + _increment; + _i = _i + 1; + if (_i == 20) exitWith {_pos = _this select 0; ["ws_fnc_NearestRoadPos ERROR: No roads found in radius of",(_increment*20),""] call ws_fnc_DebugText}; + }; +}; + +[_pos select 0,_pos select 1,0] \ No newline at end of file diff --git a/ws_fnc/getPos/fn_getBpos.sqf b/ws_fnc/getPos/fn_getBpos.sqf new file mode 100644 index 000000000..0820c4342 --- /dev/null +++ b/ws_fnc/getPos/fn_getBpos.sqf @@ -0,0 +1,48 @@ +/* WS_fnc_getBpos +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Thanks to Rommel's CBA_fnc_taskDefend and Binesi's improved BIS_fnc_taskDefend + +FEATURE +Collect all building positions for a building. +Assign array variable (ws_bpos) to building containing all valid building positions. + +USAGE +[building] call ws_fnc_getBpos + +RETURNS +array containing all building positions +*/ + +private ["_debug","_building","_bposarray","_i","_occupied"]; +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; + +// Buildings to ignore +_badarray = []; + +_building = _this select 0; +_bposarray = _building getVariable ["ws_bPos",false]; +[_building,["OBJECT"],format ["ws_fnc_getBpos: %1",_building]] call ws_fnc_typecheck; +_i = 0; + +if (typeName _bposarray != typeName []) then { + + _bposarray = []; + _bp = _building buildingpos _i; + + while {str _bp != "[0,0,0]"} do { + if (count _bp == 3) then { + _bposarray pushback (_bp); + }; + + _i = _i + 1; + _bp = _building buildingpos _i; + }; + + if (_debug) then {{_mkr = createMarker [format ["%1-bpos",_x],_x];_mkr setMarkerSize [0.3,0.3];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorWhite";} forEach _bposarray;}; + + _building setVariable ["ws_bPos",_bposarray,true]; +}; + +//["ws_fnc_getBpos DBG1: ",[_building,(_building getVariable "ws_bpos"),_occupied],""] call ws_fnc_debugText; + +_bposarray \ No newline at end of file diff --git a/ws_fnc/getPos/fn_getEPos.sqf b/ws_fnc/getPos/fn_getEPos.sqf new file mode 100644 index 000000000..243f99375 --- /dev/null +++ b/ws_fnc/getPos/fn_getEPos.sqf @@ -0,0 +1,29 @@ +/* ws_getEPos +Returns the position of an entitiy + +USAGE +entity call ws_fnc_getEPos; + +PARAMETERS +1. Can be string (markername), object, groupname or location + +RETURNS +positional array (ATL) +*/ + +private ["_e","_pos"]; + +_e = _this; +_pos = []; + +//Getting a good position from the parsed values +switch (typename _e) do { + case "STRING": {_pos = getMarkerPos _e}; + case "OBJECT": {_pos = getPosATL _e}; + case "GROUP": {_pos = getPosATL (leader _e)}; + case "LOCATION": {_pos = position _e}; + case "ARRAY": {_pos = _e;}; + default {[_e,["ARRAY","OBJECT","STRING","GROUP"],"ws_fnc_getEPos"] call ws_fnc_typecheck;}; +}; + +_pos \ No newline at end of file diff --git a/ws_fnc/getPos/fn_getPos.sqf b/ws_fnc/getPos/fn_getPos.sqf new file mode 100644 index 000000000..c9561df98 --- /dev/null +++ b/ws_fnc/getPos/fn_getPos.sqf @@ -0,0 +1,134 @@ +// GetPos function +// Latest: 11.11.2013 +// By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +// Thanks to Shuko for SHK_pos +// +// FEATURE +// Turn input into legit positional array [x,y,z], returns array +// +// USAGE +// Minimal: +// [location] call ws_fnc_getPos; +// Full: +// [location,radius (int or true), minDistance,angle,road (bool), building allowed (bool), water allowed (bool)] call ws_fnc_getPos; +// +// OUTPUT +// Array: [x,y,z] +// +// PARAMETERS +// 1. location can be String (Markername), Array [x,y,z], Group or Objectname | MANDATORY +// 2. radius has to be int > 0 and defines the radius around the position. If set to true it will instead return a position inside a trigger/marker passed in the 1. parameter | OPTIONAL - default is 0 +// 3. minimal distance from center, has to be int > 0 and < radius | OPTIONAL - default is 0 +// 4. Angle from center. Number between 0 and 360 | OPTIONAL - default is (random 360) +// 5. road (bool) forces pos to be placed on road | OPTIONAL - default is false +// 6. building allowed (bool) enables the position to be in/on a building | OPTIONAL - default is false +// 7. water allowed (bool) enables the position to be on water as well | OPTIONAL - default is false +// +// EXAMPLES +// ["spawnmarker"] call ws_fnc_getPos; - turns the marker location into a position array +// ["spawnmarker",0,0,0,true] call ws_fnc_getPos; - gets a position on a road in closest possible distance to the marker location +// [church,250] call ws_fnc_getPos; - gets a position in 250m radius to the object named "church" +// [v1,500,100,180,false,true] call ws_fnc_getPos; - gets a position in 500m radius, 100m minimal distance and a 180° angle to the object named "v1" and also allows position to be on a building + +private ["_debug","_count","_posloc","_pos","_posradius","_mindis","_dir","_road","_building","_water","_posX","_posY"]; + +_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug + +//Declaring variables +_count = count _this; +_posloc = _this select 0; +_pos = [0,0,0]; +_posradius = 0; +_mindis = 0; +_dir = random 360; +_road = false; +_building = false; +_water = false; + +//Optional variables parsed +if (_count > 1) then {_posradius = _this select 1;}; +if (_count > 2) then {_mindis = _this select 2;}; +if (_count > 3) then {_dir = (_this select 3)}; +if (_count > 4) then {_road = _this select 4;}; +if (_count > 5) then {_building = _this select 5;}; +if (_count > 6) then {_water = _this select 6;}; + +//Interpreting variables +_pos = _posloc call ws_fnc_getEpos; + +_posX = (_pos select 0); +_posY = (_pos select 1); + +//Fault checks +//Checking the variables we have against what we should have +{[_x,["ARRAY"],"ws_fnc_getPos"] call ws_fnc_typecheck;} forEach [_pos]; +[_posradius,["SCALAR","BOOL"],"ws_fnc_getPos"] call ws_fnc_typecheck; +{[_x,["SCALAR"],"ws_fnc_getPos"] call ws_fnc_typecheck;} forEach [_mindis,_dir,_posX,_posY]; +{[_x,["BOOL"],"ws_fnc_getPos"] call ws_fnc_typecheck;} forEach [_road,_water]; + +switch (typename _posradius) do { + case "SCALAR": { + if (_mindis > _posradius) then {_mindis = _posradius * 2}; + + if (_posradius > 0) then { + _newX = _posX + ((random _posradius) * sin _dir); + _newY = _posY + ((random _posradius) * cos _dir); + _pos = [_newX,_newY,0]; + + if (_mindis > 0) then { + _oldPos = _pos; + while {(_pos distance _oldPos) < _mindis} do { + _newX = _posX + ((random _posradius) * sin _dir); + _newY = _posY + ((random _posradius) * cos _dir); + _pos = [_newX,_newY,0]; + }; + }; + }; + }; + case "BOOL": { + _pos = [_posLoc] call ws_fnc_getPosInArea; +} ; +}; + + + + +//If the position has to be on dry land +if (!_water && (surfaceIsWater _pos)) then { + _pos = [_pos] call ws_fnc_NearestLandPos; +}; + +//If building positions are disallowed +if (!_building && (count (_pos nearObjects ["House",5]) >= 1)) then { + _i = 0; + _distance = 0; + _done = false; + while {!_done && _i <= 100} do { + for "_x" from 0 to 340 step 20 do { + if (typeName _posradius == "BOOL") then {_pos = [_posloc] call ws_fnc_getPosInArea;} else { + _distance = _distance + 5; + _pos set [0,_posX + (_distance * sin _x)]; + _pos set [1,_posY + (_distance * cos _x)]; + }; + + if !(count (_pos nearObjects ["House",5]) >= 1) exitWith {_done = true}; + }; + _i = _i + 1; + }; +}; + +//If the position is supposed to be on a road +if (_road) then { + _pos = [_pos] call ws_fnc_NearestRoadPos; +}; + +if (_debug) then { +player globalchat format ["DEBUG: ws_fnc_getPos done. Pos is %1, direction is %2",_pos,_dir]; + _mkr = createMarker [format ["%1",_pos], _pos]; + _mkr setMarkerType "mil_dot"; + _mkr setMarkerColor "ColorGreen"; + _mkr setMarkerSize [0.5,0.5]; +}; + +//Return the new position +_pos \ No newline at end of file diff --git a/ws_fnc/getPos/fn_getPosInArea.sqf b/ws_fnc/getPos/fn_getPosInArea.sqf new file mode 100644 index 000000000..f43de7a6a --- /dev/null +++ b/ws_fnc/getPos/fn_getPosInArea.sqf @@ -0,0 +1,84 @@ +/* ws_fnc_getPosInArea +Latest: 11.10.2013 +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +Based on Moricky's BIS_fnc_randomPosTrigger + +USAGE +[area] call ws_fnc_getPosInArea + +PARAMETERS +1. Either trigger or marker (rectangle/ellipse) + +FEATURE +Return a random position within a marker or trigger area + +RETURNS +positional array +*/ + + +private ["_count","_area","_shape","_center","_pos","_px","_py","_vector"]; + +_count = count _this; +_area = _this select 0; + +_shape = ""; +_center = []; +_pos = [_area] call ws_fnc_getEPos; +_dir = 360; + +//Checking the variables we have against what is expected +[_area,["STRING","OBJECT"],"ws_fnc_getPosInAREA"] call ws_fnc_typecheck; + +switch (typeName _area) do { + case "OBJECT": { _center = getPos _area;_area = triggerarea _area; _shape = _area select 3; _dir = _area select 2;}; + case "STRING":{ _center = getMarkerPos _area; _shape = MarkerShape _area; _dir = markerDir _area;_area = markerSize _area;}; +}; + +if (typename _shape == typename "") then { + switch (_shape) do { + case "RECTANGLE": {_shape = true;}; + case "ELLIPSE": {_shape = false;}; + default {_shape=true}; + }; +}; + +// Get random position + +_pX = _area select 0; +_pY = _area select 1; + +_vector = if (_shape) then { + + //--- Rectangle + [ + (-_pX + 2 * random _pX), + (-_pY + 2 * random _pY) + ]; +} else { + + //--- Ellipse + private ["_ranDir"]; + _ranDir = random 360; + [ + (cos _ranDir * random _pX), + (sin _ranDir * random _pY) + ]; +}; + +// Rotate vector +_vector = +_vector; +_dir = -_dir; +_pX = _vector select 0; +_pY = _vector select 1; +_vector set [0, (cos _dir)*_px - (sin _dir)*_py]; +_vector set [1, (sin _dir)*_px + (cos _dir)*_py]; + +// Return new position +_pos = [ + (_center select 0) + (_vector select 0), + (_center select 1)+ (_vector select 1), + 0 +]; + +_pos \ No newline at end of file diff --git a/ws_fnc/misc/fn_attachChem.sqf b/ws_fnc/misc/fn_attachChem.sqf new file mode 100644 index 000000000..f47b1d7b2 --- /dev/null +++ b/ws_fnc/misc/fn_attachChem.sqf @@ -0,0 +1,47 @@ +/*ws_fnc_attachChem +By Wolfenswan [FA]: wolfenswanarps@gmail.com + +FEATURE +Attach chemlight to object. + +RETURNS +true + +USAGE +Minimal: +[object,color] spawn ws_fnc_attachChem +Full: +[object, color, duration, attachPoint, memoryPoint] spawn ws_fnc_attachChem + +PARAMETERS +1. Object to attach chem to (object) | MANDATORY +2. Color of chemlight (string) | MANDATORY - can be "red","green","blue" or "yellow" +3. Duration of light (number) | OPTIONAL - default is 0 (infinite) +4. Offset for attach from center (array in [x,y,z]) | OPTIONAL - default is [0,0,0] +5. MemoryPoint to attach to (string | OPTIONAL - see http://resources.bisimulations.com/wiki/Named_Selection and https://community.bistudio.com/wiki/ArmA:_Selection_Translations for memory points. Not all work. + +EXAMPLES +[UnitNATO_CO,"red",5,[-0.15,0.05,0.1],"Spine3"] spawn ws_fnc_attachChem; - attaches a chemlight to the left shoulder of UnitNATO_CO + +*/ + +private ["_obj","_color","_duration","_offset","_mpoint","_chm"]; + +_obj = _this select 0; +_color = toLower(_this select 1); +_duration = if (count _this > 2) then {_this select 2} else {0}; +_offset = if (count _this > 3) then {_this select 3} else {[0,0,0]}; +_mpoint = if (count _this > 4) then {_this select 4} else {""}; + +_chm = (format ["Chemlight_%1",_color]) createVehicle [0,0,0]; +_chm attachTo [_obj, _offset, _mpoint]; +_chm setDir (getDir _obj); +_chm setVectorDir (vectorDir _obj); +_chm setVectorUp (vectorUp _obj); + +if (_duration > 0) then { + sleep _duration; + deleteVehicle _chm; +}; + +true \ No newline at end of file diff --git a/ws_fnc/misc/fn_attachIR.sqf b/ws_fnc/misc/fn_attachIR.sqf new file mode 100644 index 000000000..fb0bf77c2 --- /dev/null +++ b/ws_fnc/misc/fn_attachIR.sqf @@ -0,0 +1,44 @@ +/*ws_fnc_attachIR +By Wolfenswan [FA]: wolfenswanarps@gmail.com + +FEATURE +Attach IR strobe to object. + +RETURNS +true + +USAGE +Minimal: +[object] spawn ws_fnc_attachIR +Full: +[object, attachPoint, memoryPoint] spawn ws_fnc_attachIR + +PARAMETERS +1. Object to attach chem to (object) | MANDATORY +2. Offset for attach from center (array in [x,y,z]) | OPTIONAL - default is [0,0,0] +3. MemoryPoint to attach to (string | OPTIONAL - see http://resources.bisimulations.com/wiki/Named_Selection and https://community.bistudio.com/wiki/ArmA:_Selection_Translations for memory points. Not all work. + +EXAMPLES +[UnitNATO_CO,[-0.05,0.05,0.1],"Spine3"] spawn ws_fnc_attachIR - attaches an IR to the left shoulder of UnitNATO_CO +*/ + +private ["_obj","_duration","_offset","_mpoint","_class","_ir"]; + +_obj = _this select 0; +_offset = if (count _this > 1) then {_this select 1} else {[0,0,0]}; +_mpoint = if (count _this > 2) then {_this select 2} else {""}; + +_class = "I_IR_Grenade"; +switch (side _obj) do { + case west: {_class = "B_IRStrobe"}; + case east: {_class = "O_IRStrobe"}; + default {_class = "I_IRStrobe";}; +}; + +_ir = _class createVehicle [0,0,0]; +_ir attachTo [_obj, _offset, _mpoint]; +_ir setDir (getDir _obj); +_ir setVectorDir (vectorDir _obj); +_ir setVectorUp (vectorUp _obj); + +true; \ No newline at end of file diff --git a/ws_fnc/misc/fn_attachLight.sqf b/ws_fnc/misc/fn_attachLight.sqf new file mode 100644 index 000000000..a6a8f9142 --- /dev/null +++ b/ws_fnc/misc/fn_attachLight.sqf @@ -0,0 +1,40 @@ +/*ws_fnc_attachLight +// By Wolfenswan: wolfenswanarps@gmail.com +// See: http://forums.bistudio.com/showthread.php?93588-attach-flare-to-an-object&p=1541513&viewfull=1#post1541513 + +FEATURE +Attach light source to object. + +RETURNS +true + +USAGE +Minimal: +[object] call ws_fnc_attachLight +Full: +[object, brightness, color, haze, attachpoint] call ws_fnc_attachLight + +PARAMETERS +1. Object to attach light to | MANDATORY +2. Brightness of light source (0-1) | OPTIONAL - default is 0.6 +3. Color of light (array with [0-1,0-1,0-1] for [r,g,b]) | OPTIONAL - default is [1.0,1.0,1.0] +4. Haze of the light (array with [0-1,0-1,0-1] for [r,g,b]) | OPTIONAL - default is [1.0, 0.2, 0.2] +5. Attachpoint of the light (offset to the object it is attached to as array [x,y,z]) | OPTIONAL - default is [0,0,0] +*/ + +private ["_count","_obj","_flare","_brightness","_color","_haze","_attach"]; + +_count = count _this; +_obj = _this select 0; + if (_count > 1) then {_brightness = _this select 1} else {_brigthness = 0.6}; + if (_count > 2) then {_color = _this select 2} else {_color = [1.0, 1.0, 1.0]}; //Color of the Light + if (_count > 3) then {_haze = _this select 3} else {_haze = [1.0, 0.2, 0.2]}; //Haze around the light source + if (_count > 4) then {_attach = _this select 4} else {_attach = [0,0,0]}; + +_flare = "#lightpoint" createVehicle (getPos _obj); +_flare setLightBrightness _brightness; +_flare setLightAmbient _color; +_flare setLightColor _haze; +_flare lightAttachObject [_obj,_attach]; + +true \ No newline at end of file diff --git a/ws_fnc/misc/fn_broadcast.sqf b/ws_fnc/misc/fn_broadcast.sqf new file mode 100644 index 000000000..0a4fd48c6 --- /dev/null +++ b/ws_fnc/misc/fn_broadcast.sqf @@ -0,0 +1,32 @@ +// ws_fnc_broadcast +// By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +/* +FEATURE +Broadcast a string to all clients + +USAGE +["message"] call ws_fnc_broadcast +["message","type of text","display type"] call ws_fnc_broadcast | See https://community.bistudio.com/wiki/titleText for valid types + +PARAMETERS +1. The string to be displayed | MANDATORY +2. The type of text (titleText or cutText) |OPTIONAL - default is cutText. +3. The display type | OPTIONAL - default is PLAIN. See http://community.bistudio.com/wiki/titleText for options + +NOTE +ARMA 3 only +*/ + +if !(ws_game_a3) exitWith {["ws_fnc_broadcast DBG: Game version: ",[_game]," Must be ARMA 3!"] call ws_fnc_debugtext}; + +_string = [_this,0,"ws_fnc_broadcast DBG: No string parsed",["STRING"]] call BIS_fnc_Param; +_text = [_this,1,"cutText",["STRING"]] call BIS_fnc_Param; +_type = [_this,2,"PLAIN",["STRING"]] call BIS_fnc_Param; +_code = format ["%1 [%2,%3]",_text,str _string,str _type]; + +ws_fnc_showText = compile _code; + +[[],"ws_fnc_showText",true] spawn BIS_fnc_MP; + +_code = ""; +ws_fnc_showText = compile _code; diff --git a/ws_fnc/misc/fn_showIntro.sqf b/ws_fnc/misc/fn_showIntro.sqf new file mode 100644 index 000000000..07afb06dc --- /dev/null +++ b/ws_fnc/misc/fn_showIntro.sqf @@ -0,0 +1,32 @@ +// ws_fnc_showIntro +// By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +/* +FEATURE +Show an intro text using BIS_fnc_typeText. +It displays two paragraphs of text and the current date & time in the third. + +USAGE +["string1","string2"] call ws_fnc_showIntro + +PARAMETERS +1. The string in the first paragraph | MANDATORY +1. The string in the second paragraph | MANDATORY + +RETURNS +true + +NOTE +ARMA 3 only +*/ + +if !(ws_game_a3) exitWith {["ws_fnc_showIntro DBG: Game version: ",[_game]," Must be ARMA 3!"] call ws_fnc_debugtext}; + +[ + [ + [_this select 0, "%1
",5], + [_this select 1,"%1
",5], + [format ["%3/%2/%1 %4:%5",date select 0, date select 1, date select 2,date select 3, date select 4],"%1",10] + ] , 0, 0.7 +] spawn BIS_fnc_typeText; + +true diff --git a/ws_fnc/misc/fn_switchLights.sqf b/ws_fnc/misc/fn_switchLights.sqf new file mode 100644 index 000000000..4c0643436 --- /dev/null +++ b/ws_fnc/misc/fn_switchLights.sqf @@ -0,0 +1,54 @@ +// SwitchLights function +// v1 (17.06.2013) +// By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com +// +// FEATURE +// Flip on/off streetlights in a given area +// +// USAGE +// [switch,center,radius] call ws_fnc_switchLights; +// +// PARAMETERS +// 1. Switch can be "ON" or "OFF" | MANDATORY +// 2. Center can be markername, object or positional array | MANDATORY +// 3. Radius has to be number | MANDATORY +// +// EXAMPLES +// ["OFF",church,1000] call ws_fnc_switchLights; - turn off all lights in 1k radius around the object named "church" +// ["ON",player,20] call ws_fnc_switchLights; - turn on all lights in 20m radius around the player + +_switch = _this select 0; +_pos = (_this select 1) call ws_fnc_getEPos; +_radius = _this select 2; + +[_switch,["STRING"],"ws_fnc_getPos"] call ws_fnc_typecheck; +[_radius,["SCALAR"],"ws_fnc_getPos"] call ws_fnc_typecheck; + + +if !(ws_game_a3) then { +//ARMA 2 + { + _lamps = _pos nearObjects [_x, _radius]; + sleep 0.1; + {_x switchLight _switch} forEach _lamps; + } forEach ["Land_PowLines_WoodL", "Land_PowLines_ConcL", "Land_lampa_ind_zebr", "Land_lampa_sidl_3", "Land_lampa_vysoka", "Land_lampa_ind", "Land_lampa_ind_b", "Land_lampa_sidl"]; +} +else { +//ARMA 3 + { + _lamps = _pos nearObjects [_x, _radius]; + sleep 0.1; + { + if (_switch == "OFF") then { + _lamp setHit ["light_1_hitpoint", 0.97]; //off + } else { + _x setHit ["light_1_hitpoint", 0]; //on + }; + } forEach _lamps; + } forEach ["Lamps_Base_F", "PowerLines_base_F", "Land_PowerPoleWooden_L_F", "Land_PowerPoleWooden_F", "Land_LampHarbour_F", "Land_LampShabby_F", "Land_PowerPoleWooden_L_F", "Land_PowerPoleWooden_small_F", "Land_LampDecor_F", "Land_LampHalogen_F", "Land_LampSolar_F", "Land_LampStreet_small_F", "Land_LampStreet_F", "Land_LampAirport_F"]; +}; + + + + + diff --git a/ws_fnc/ws_fnc_init.sqf b/ws_fnc/ws_fnc_init.sqf new file mode 100644 index 000000000..cedde5514 --- /dev/null +++ b/ws_fnc/ws_fnc_init.sqf @@ -0,0 +1,75 @@ +/* ws_fnc_init +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Compile all WS_fnc for Arma 2 + +USAGE (ARMA 2) +Use Call compile preprocessFile "ws_fnc\fn_init.sqf" from either a unit or module init. + +NOTE (ARMA 3) +In Arma3 This file only controls the global debug flag ws_debug. It is not necessary to call seperately. +*/ + +//Check if the functions are already compiled +if (isNil "ws_fnc_compiled") then {ws_fnc_compiled = false}; +if (ws_fnc_compiled) exitWith {}; + +// DEBUG +// To enable debug mode either change false to true or put ws_debug = true in any unit init +ws_debug = missionNameSpace getVariable ["ws_debug",false]; + +// Check if A3 is running + +if (isNil "ws_game_a3") then { + ws_fnc_gameCheck = call compile preprocessFile "ws_fnc\tools\fn_gamecheck.sqf"; +}; + +// Compile functions for Arma 2 +if !(ws_game_a3) then { + if (isnil "bis_fnc_init") then {_fm = createGroup sideLogic;_fm createUnit ["FunctionsManager", [0,0,0], [],0,"NONE"];}; + + //Debug Functions + ws_fnc_debugText = compile preprocessFile "ws_fnc\dbg\fn_debugText.sqf"; + ws_fnc_clipBoardCode = compile preprocessFile "ws_fnc\dbg\fn_clipBoardCode.sqf"; + ws_fnc_countUnits = compile preprocessFile "ws_fnc\dbg\fn_countUnits.sqf"; + ws_fnc_debugText = compile preprocessFile "ws_fnc\dbg\fn_debugText.sqf"; + ws_fnc_typecheck = compile preprocessFile "ws_fnc\dbg\fn_typecheck.sqf"; + call compile preprocessFile "ws_fnc\dbg\fn_debugTriggers.sqf"; + + //Tool Functions + ws_fnc_selectRandom = compile preprocessfile "ws_fnc\tools\fn_selectRandom.sqf"; + ws_fnc_collectMarkers = compile preprocessfile "ws_fnc\tools\fn_collectMarkers.sqf"; + ws_fnc_collectObjects = compile preprocessfile "ws_fnc\tools\fn_collectObjects.sqf"; + ws_fnc_collectObjectsNum = compile preprocessfile "ws_fnc\tools\fn_collectObjectsNum.sqf"; + ws_fnc_collectBuildings = compile preprocessfile "ws_fnc\tools\fn_collectBuildings.sqf"; + ws_fnc_loadVehicle = compile preprocessfile "ws_fnc\tools\fn_loadVehicle.sqf"; + ws_fnc_listPlayers = compile preprocessfile "ws_fnc\tools\fn_listPlayers.sqf"; + ws_fnc_nearPlayer = compile preprocessfile "ws_fnc\tools\fn_nearPlayer.sqf"; + ws_fnc_setGVar = compile preprocessfile "ws_fnc\tools\ws_fnc_setGVar"; + + //Misc Functions + ws_fnc_switchLights = compile preprocessfile "ws_fnc\misc\fn_switchLights.sqf"; + ws_fnc_attachLight = compile preprocessfile "ws_fnc\misc\fn_attachLight.sqf"; + + //GetPos Functions + ws_fnc_getPos = compile preprocessfile "ws_fnc\getPos\fn_getPos.sqf"; + ws_fnc_NearestRoadPos = compile preprocessfile "ws_fnc\getPos\fn_NearestRoadPos.sqf"; + ws_fnc_NearestLandPos = compile preprocessfile "ws_fnc\getPos\fn_NearestLandPos.sqf"; + ws_fnc_getPosInArea = compile preprocessfile "ws_fnc\getPos\fn_getPosInArea.sqf"; + ws_fnc_getBPos = compile preprocessfile "ws_fnc\getPos\fn_getBPos.sqf"; + ws_fnc_getEPos = compile preprocessfile "ws_fnc\getPos\fn_getEPos.sqf"; + + //AI Functions + ws_fnc_enterBuilding = compile preprocessfile "ws_fnc\AI\fn_enterBuilding.sqf"; + ws_fnc_taskDefend = compile preprocessfile "ws_fnc\AI\fn_taskDefend.sqf"; + ws_fnc_taskCrew = compile preprocessfile "ws_fnc\AI\fn_taskCrew.sqf"; + ws_fnc_createGroup = compile preprocessfile "ws_fnc\AI\fn_createGroup.sqf"; + ws_fnc_createVehicle = compile preprocessfile "ws_fnc\AI\fn_createVehicle.sqf"; + ws_fnc_createGarrison = compile preprocessfile "ws_fnc\AI\fn_createGarrison.sqf"; + ws_fnc_addWaypoint = compile preprocessfile "ws_fnc\AI\fn_addWaypoint.sqf"; + ws_fnc_bettervehicle = compile preprocessfile "ws_fnc\AI\fn_betterVehicle.sqf"; + ws_fnc_setAIMode = compile preprocessfile "ws_fnc\AI\fn_setAIMode.sqf"; +}; + +ws_fnc_compiled = true; \ No newline at end of file From 5ce17a150c0014fc1430c35210f6bd90ea4f8517 Mon Sep 17 00:00:00 2001 From: Ciaran Date: Mon, 20 Mar 2017 13:10:00 +0000 Subject: [PATCH 005/407] Minor NATO assignGear fixes GL smoke fixed; Pacific gear tweaked --- f/assignGear/f_assignGear_nato.sqf | 4 +-- f/assignGear/f_assignGear_natoPacific.sqf | 32 +++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index 623854e0b..d52fce35d 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -123,7 +123,7 @@ _glmag = "1Rnd_HE_Grenade_shell"; _glmaglarge = "3Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc -_glsmokewhite = "1Rnd_SmokeRed_Grenade_shell"; +_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; _glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; _glsmokered = "1Rnd_SmokeRed_Grenade_shell"; @@ -360,4 +360,4 @@ if !(_isMan) exitWith {}; // ==================================================================================== // ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; \ No newline at end of file +_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index 97642a8ab..b59384001 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -62,14 +62,14 @@ _attach1 = "acc_pointer_IR"; // IR Laser _attach2 = "acc_flashlight"; // Flashlight -_silencer1 = "muzzle_snds_M"; // 5.56 suppressor -_silencer2 = "muzzle_snds_H"; // 6.5 suppressor +_silencer1 = "muzzle_snds_m_khk_F"; // 5.56 suppressor +_silencer2 = "muzzle_snds_H_khk_F"; // 6.5 suppressor _scope1 = "optic_Holosight_khk_F"; // Basic Scope _scope2 = "optic_Hamr_khk_F"; // RCO Scope _scope3 = "optic_LRPS_tna_F"; // LRPS -_bipod1 = "bipod_01_F_snd"; // Default bipod +_bipod1 = "bipod_01_F_khk"; // Default bipod _bipod2 = "bipod_02_F_blk"; // Black bipod // Default setup @@ -123,7 +123,7 @@ _glmag = "1Rnd_HE_Grenade_shell"; _glmaglarge = "3Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc -_glsmokewhite = "1Rnd_SmokeRed_Grenade_shell"; +_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; _glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; _glsmokered = "1Rnd_SmokeRed_Grenade_shell"; @@ -166,13 +166,13 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_tna_F"; -_baglarge = "B_Kitbag_mcamo"; +_baglarge = "B_Kitbag_rgr"; _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "B_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner _baghmgag = "B_HMG_01_support_F"; // used by Heavy MG assistant gunner -_baghatg = "B_AssaultPack_mcamo"; // used by Heavy AT gunner -_baghatag = "B_Kitbag_mcamo"; // used by Heavy AT assistant gunner ** +_baghatg = "B_AssaultPack_tna_F"; // used by Heavy AT gunner +_baghatag = "B_Kitbag_rgr"; // used by Heavy AT assistant gunner ** _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner @@ -188,7 +188,7 @@ _ARmag = "100Rnd_65x39_caseless_mag"; _ARmag_tr = "100Rnd_65x39_caseless_mag_Tracer"; // Medium MG -_MMG = "MMG_02_camo_F"; +_MMG = "MMG_02_black_F"; _MMGmag = "130Rnd_338_Mag"; _MMGmag_tr = "130Rnd_338_Mag"; @@ -212,16 +212,16 @@ _MATmag1 = "NLAW_F"; _MATmag2 = "NLAW_F"; // Surface Air -_SAM = "launch_B_Titan_F"; +_SAM = "launch_B_Titan_tna_F"; _SAMmag = "Titan_AA"; // Heavy AT -_HAT = "launch_B_Titan_short_F"; +_HAT = "launch_B_Titan_short_tna_F"; _HATmag1 = "Titan_AT"; _HATmag2 = "Titan_AP"; // Sniper -_SNrifle = "srifle_LRR_camo_F"; +_SNrifle = "srifle_LRR_tna_F"; _SNrifleMag = "7Rnd_408_Mag"; // Engineer items @@ -269,15 +269,15 @@ _pilotRig = ["V_TacVest_blk"]; _pilotGlasses = []; // Crewman -_crewUniform = ["U_B_CombatUniform_mcam_vest"]; +_crewUniform = ["U_B_T_Soldier_SL_F"]; _crewHelmet = ["H_HelmetCrew_B"]; -_crewRig = ["V_Chestrig_khk"]; +_crewRig = ["V_Chestrig_oli"]; _crewGlasses = []; // Ghillie -_ghillieUniform = ["U_B_GhillieSuit"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; +_ghillieUniform = ["U_B_T_Sniper_F"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; _ghillieHelmet = []; -_ghillieRig = ["V_Chestrig_khk"]; +_ghillieRig = ["V_Chestrig_oli"]; _ghillieGlasses = []; // Spec Op @@ -360,4 +360,4 @@ if !(_isMan) exitWith {}; // ==================================================================================== // ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; \ No newline at end of file +_unit selectweapon primaryweapon _unit; From 8798ccbb7ecbc69d00078352d411dcbf689e8c87 Mon Sep 17 00:00:00 2001 From: costno Date: Fri, 31 Mar 2017 16:53:18 -0400 Subject: [PATCH 006/407] Added loading screen stuff --- description.ext | 9 +++++++++ f/assignGear/f_assignGear_aaf_light.sqf | 4 ++-- f/assignGear/f_assignGear_aaf_standard.sqf | 4 ++-- f/assignGear/f_assignGear_csatPacific_light.sqf | 4 ++-- f/assignGear/f_assignGear_csatPacific_standard.sqf | 4 ++-- f/assignGear/f_assignGear_csat_light.sqf | 4 ++-- f/assignGear/f_assignGear_csat_standard.sqf | 4 ++-- f/assignGear/f_assignGear_ctrg_light.sqf | 4 ++-- f/assignGear/f_assignGear_ctrg_standard.sqf | 4 ++-- f/assignGear/f_assignGear_fiaAK_light.sqf | 4 ++-- f/assignGear/f_assignGear_fiaAK_standard.sqf | 4 ++-- f/assignGear/f_assignGear_fia_light.sqf | 4 ++-- f/assignGear/f_assignGear_fia_standard.sqf | 4 ++-- f/assignGear/f_assignGear_natoPacific_light.sqf | 4 ++-- f/assignGear/f_assignGear_natoPacific_standard.sqf | 4 ++-- f/assignGear/f_assignGear_nato_light.sqf | 4 ++-- f/assignGear/f_assignGear_nato_standard.sqf | 4 ++-- f/assignGear/f_assignGear_syndikat_light.sqf | 4 ++-- f/assignGear/f_assignGear_syndikat_standard.sqf | 4 ++-- 19 files changed, 45 insertions(+), 36 deletions(-) diff --git a/description.ext b/description.ext index a73dcc2cf..62a8ea8be 100644 --- a/description.ext +++ b/description.ext @@ -1,3 +1,12 @@ +// ============================================================================================ +// Loading Screen + +onLoadName = "*** Insert Mission Name Here. ***"; +onLoadMission = "Made with the F3 Mission Development Framework"; +author = "*** Insert Author Here. ***"; +loadScreen = "loadLogo.jpg"; +overviewPicture = "overviewLogo.jpg"; + // ============================================================================================ // F3 - Respawn Settings diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index c4d549c65..c82778ec1 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -222,7 +222,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index 6de566c7f..d9077fb52 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -226,7 +226,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -240,7 +240,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index d75b7b8e6..12070656c 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -236,7 +236,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 709aef56f..75b5733a6 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -227,7 +227,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -241,7 +241,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 8c510d248..6f83bb2b3 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -222,7 +222,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index b03e62346..38813bd2d 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -227,7 +227,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -241,7 +241,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 76a63b513..239bee701 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -236,7 +236,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 4c4ad9dc7..8adec877a 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -226,7 +226,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -240,7 +240,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index 28d35242b..52dda7304 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -221,7 +221,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index e787b805f..5e45fb47a 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index a9173b978..354add390 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -220,7 +220,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon (_carbine call BIS_fnc_selectRandom); _unit addmagazines [_HATmag1, 1]; @@ -234,7 +234,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon (_rifle call BIS_fnc_selectRandom); _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 075c293b8..ec8e0258f 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon (_carbine call BIS_fnc_selectRandom); _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon (_rifle call BIS_fnc_selectRandom); _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 955a99f71..839f41f13 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -225,7 +225,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -238,7 +238,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index 582420916..c97ba9e50 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -228,7 +228,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -242,7 +242,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index ce6793280..eca6ca4df 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -225,7 +225,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -238,7 +238,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 6f283f131..9f9e97136 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -228,7 +228,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -242,7 +242,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index f395ec904..6538310b5 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -237,7 +237,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 7533920e5..94d9fca40 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; From 54910d221ad91061d7b723f6ebeca776b6b99f67 Mon Sep 17 00:00:00 2001 From: costno Date: Fri, 31 Mar 2017 16:53:33 -0400 Subject: [PATCH 007/407] Revert "Added loading screen stuff" This reverts commit 8798ccbb7ecbc69d00078352d411dcbf689e8c87. --- description.ext | 9 --------- f/assignGear/f_assignGear_aaf_light.sqf | 4 ++-- f/assignGear/f_assignGear_aaf_standard.sqf | 4 ++-- f/assignGear/f_assignGear_csatPacific_light.sqf | 4 ++-- f/assignGear/f_assignGear_csatPacific_standard.sqf | 4 ++-- f/assignGear/f_assignGear_csat_light.sqf | 4 ++-- f/assignGear/f_assignGear_csat_standard.sqf | 4 ++-- f/assignGear/f_assignGear_ctrg_light.sqf | 4 ++-- f/assignGear/f_assignGear_ctrg_standard.sqf | 4 ++-- f/assignGear/f_assignGear_fiaAK_light.sqf | 4 ++-- f/assignGear/f_assignGear_fiaAK_standard.sqf | 4 ++-- f/assignGear/f_assignGear_fia_light.sqf | 4 ++-- f/assignGear/f_assignGear_fia_standard.sqf | 4 ++-- f/assignGear/f_assignGear_natoPacific_light.sqf | 4 ++-- f/assignGear/f_assignGear_natoPacific_standard.sqf | 4 ++-- f/assignGear/f_assignGear_nato_light.sqf | 4 ++-- f/assignGear/f_assignGear_nato_standard.sqf | 4 ++-- f/assignGear/f_assignGear_syndikat_light.sqf | 4 ++-- f/assignGear/f_assignGear_syndikat_standard.sqf | 4 ++-- 19 files changed, 36 insertions(+), 45 deletions(-) diff --git a/description.ext b/description.ext index 62a8ea8be..a73dcc2cf 100644 --- a/description.ext +++ b/description.ext @@ -1,12 +1,3 @@ -// ============================================================================================ -// Loading Screen - -onLoadName = "*** Insert Mission Name Here. ***"; -onLoadMission = "Made with the F3 Mission Development Framework"; -author = "*** Insert Author Here. ***"; -loadScreen = "loadLogo.jpg"; -overviewPicture = "overviewLogo.jpg"; - // ============================================================================================ // F3 - Respawn Settings diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index c82778ec1..c4d549c65 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -222,7 +222,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index d9077fb52..6de566c7f 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -226,7 +226,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -240,7 +240,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 12070656c..d75b7b8e6 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -236,7 +236,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 75b5733a6..709aef56f 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -227,7 +227,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -241,7 +241,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 6f83bb2b3..8c510d248 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -222,7 +222,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 38813bd2d..b03e62346 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -227,7 +227,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -241,7 +241,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 239bee701..76a63b513 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -236,7 +236,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 8adec877a..4c4ad9dc7 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -226,7 +226,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -240,7 +240,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index 52dda7304..28d35242b 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -221,7 +221,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index 5e45fb47a..e787b805f 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index 354add390..a9173b978 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -220,7 +220,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon (_carbine call BIS_fnc_selectRandom); _unit addmagazines [_HATmag1, 1]; @@ -234,7 +234,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon (_rifle call BIS_fnc_selectRandom); _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index ec8e0258f..075c293b8 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon (_carbine call BIS_fnc_selectRandom); _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon (_rifle call BIS_fnc_selectRandom); _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 839f41f13..955a99f71 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -225,7 +225,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -238,7 +238,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index c97ba9e50..582420916 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -228,7 +228,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -242,7 +242,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index eca6ca4df..ce6793280 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -225,7 +225,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -238,7 +238,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 9f9e97136..6f283f131 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -228,7 +228,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -242,7 +242,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index 6538310b5..f395ec904 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -237,7 +237,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 94d9fca40..7533920e5 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _bagLarge; + _unit addBackpack _baghatag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; From 4f7a8ad1be34f23c9d4ebd107b4ce4ccf09a84cd Mon Sep 17 00:00:00 2001 From: costno Date: Fri, 31 Mar 2017 16:54:02 -0400 Subject: [PATCH 008/407] Revert "Revert "Added loading screen stuff"" This reverts commit 54910d221ad91061d7b723f6ebeca776b6b99f67. --- description.ext | 9 +++++++++ f/assignGear/f_assignGear_aaf_light.sqf | 4 ++-- f/assignGear/f_assignGear_aaf_standard.sqf | 4 ++-- f/assignGear/f_assignGear_csatPacific_light.sqf | 4 ++-- f/assignGear/f_assignGear_csatPacific_standard.sqf | 4 ++-- f/assignGear/f_assignGear_csat_light.sqf | 4 ++-- f/assignGear/f_assignGear_csat_standard.sqf | 4 ++-- f/assignGear/f_assignGear_ctrg_light.sqf | 4 ++-- f/assignGear/f_assignGear_ctrg_standard.sqf | 4 ++-- f/assignGear/f_assignGear_fiaAK_light.sqf | 4 ++-- f/assignGear/f_assignGear_fiaAK_standard.sqf | 4 ++-- f/assignGear/f_assignGear_fia_light.sqf | 4 ++-- f/assignGear/f_assignGear_fia_standard.sqf | 4 ++-- f/assignGear/f_assignGear_natoPacific_light.sqf | 4 ++-- f/assignGear/f_assignGear_natoPacific_standard.sqf | 4 ++-- f/assignGear/f_assignGear_nato_light.sqf | 4 ++-- f/assignGear/f_assignGear_nato_standard.sqf | 4 ++-- f/assignGear/f_assignGear_syndikat_light.sqf | 4 ++-- f/assignGear/f_assignGear_syndikat_standard.sqf | 4 ++-- 19 files changed, 45 insertions(+), 36 deletions(-) diff --git a/description.ext b/description.ext index a73dcc2cf..62a8ea8be 100644 --- a/description.ext +++ b/description.ext @@ -1,3 +1,12 @@ +// ============================================================================================ +// Loading Screen + +onLoadName = "*** Insert Mission Name Here. ***"; +onLoadMission = "Made with the F3 Mission Development Framework"; +author = "*** Insert Author Here. ***"; +loadScreen = "loadLogo.jpg"; +overviewPicture = "overviewLogo.jpg"; + // ============================================================================================ // F3 - Respawn Settings diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index c4d549c65..c82778ec1 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -222,7 +222,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index 6de566c7f..d9077fb52 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -226,7 +226,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -240,7 +240,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index d75b7b8e6..12070656c 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -236,7 +236,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 709aef56f..75b5733a6 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -227,7 +227,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -241,7 +241,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 8c510d248..6f83bb2b3 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -222,7 +222,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index b03e62346..38813bd2d 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -227,7 +227,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -241,7 +241,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 76a63b513..239bee701 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -236,7 +236,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 4c4ad9dc7..8adec877a 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -226,7 +226,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_HATmag1, 1]; @@ -240,7 +240,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index 28d35242b..52dda7304 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -221,7 +221,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -235,7 +235,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index e787b805f..5e45fb47a 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index a9173b978..354add390 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -220,7 +220,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon (_carbine call BIS_fnc_selectRandom); _unit addmagazines [_HATmag1, 1]; @@ -234,7 +234,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon (_rifle call BIS_fnc_selectRandom); _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 075c293b8..ec8e0258f 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon (_carbine call BIS_fnc_selectRandom); _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon (_rifle call BIS_fnc_selectRandom); _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 955a99f71..839f41f13 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -225,7 +225,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -238,7 +238,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index 582420916..c97ba9e50 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -228,7 +228,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -242,7 +242,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index ce6793280..eca6ca4df 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -225,7 +225,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -238,7 +238,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 6f283f131..9f9e97136 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -228,7 +228,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -242,7 +242,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid ; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index f395ec904..6538310b5 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -223,7 +223,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -237,7 +237,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 7533920e5..94d9fca40 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -231,7 +231,7 @@ switch (_typeofUnit) do // Heavy AT Gunner Loadout: case "hatg": { - _unit addBackpack _baghatg; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; @@ -246,7 +246,7 @@ switch (_typeofUnit) do // Heavy AT Team Leader Loadout: case "hatag": { - _unit addBackpack _baghatag; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; From b6297a9a37f182b68cb5a3f470fe1ecd433ed362 Mon Sep 17 00:00:00 2001 From: Pooter Date: Tue, 6 Jun 2017 00:14:24 -0700 Subject: [PATCH 009/407] Remove JIP Remove cache Remove medical Remove radio Remove spectator --- description.ext | 72 -- f/JIP/f_JIP_addReinforcementOptionsAction.sqf | 26 - f/JIP/f_JIP_common.h | 39 - f/JIP/f_JIP_grpPicker.h | 101 --- f/JIP/f_JIP_grpPicker.sqf | 77 -- f/JIP/f_JIP_kitPicker.h | 102 --- f/JIP/f_JIP_kitPicker.sqf | 68 -- f/JIP/f_JIP_nearTargetGroupCheck.sqf | 63 -- f/JIP/f_JIP_playerRespawn.sqf | 81 -- f/JIP/f_JIP_reinforcementOptions.sqf | 65 -- f/cache/fn_cInit.sqf | 70 -- f/cache/fn_cTracker.sqf | 68 -- f/cache/fn_gCache.sqf | 44 - f/cache/fn_gUncache.sqf | 20 - f/medical/AGM_clientInit.sqf | 37 - f/medical/AGM_converter.sqf | 66 -- f/medical/medical_init.sqf | 32 - f/radios/acre2/acre2_clientInit.sqf | 209 ----- f/radios/acre2/acre2_init.sqf | 67 -- f/radios/acre2/acre2_settings.sqf | 144 --- f/radios/acre2/acre2_setupPresets.sqf | 23 - f/radios/acre2/fn_giveSideRadio.sqf | 24 - f/radios/radio_init.sqf | 27 - f/radios/tfr/fn_tfr_addRadios.sqf | 94 -- .../tfr/fn_tfr_configureSpectatorChat.sqf | 30 - f/radios/tfr/fn_tfr_removeRadios.sqf | 21 - f/radios/tfr/fn_tfr_setRadioFrequencies.sqf | 12 - f/radios/tfr/tfr_clientInit.sqf | 39 - f/radios/tfr/tfr_init.sqf | 16 - f/radios/tfr/tfr_serverInit.sqf | 41 - f/radios/tfr/tfr_settings.sqf | 31 - f/simplewoundingsystem/fn_EjectWounded.sqf | 16 - f/simplewoundingsystem/fn_GetAnimation.sqf | 11 - f/simplewoundingsystem/fn_HasWounded.sqf | 12 - f/simplewoundingsystem/fn_LifeTick.sqf | 56 -- f/simplewoundingsystem/fn_OnDamage.sqf | 30 - f/simplewoundingsystem/fn_OnDeath.sqf | 9 - f/simplewoundingsystem/fn_OnDrag.sqf | 68 -- f/simplewoundingsystem/fn_OnHeal.sqf | 25 - f/simplewoundingsystem/fn_SetBleeding.sqf | 5 - f/simplewoundingsystem/fn_SetDowned.sqf | 78 -- f/simplewoundingsystem/fn_WoundedEffect.sqf | 45 - f/simplewoundingsystem/init.sqf | 73 -- f/spect/config.hpp | 827 ------------------ f/spect/fn_CamInit.sqf | 236 ----- f/spect/fn_DrawMarkers.sqf | 40 - f/spect/fn_DrawTags.sqf | 63 -- f/spect/fn_EventHandler.sqf | 519 ----------- f/spect/fn_ForceExit.sqf | 15 - f/spect/fn_FreeCam.sqf | 159 ---- f/spect/fn_GetPlayers.sqf | 16 - f/spect/fn_HandleCamera.sqf | 21 - f/spect/fn_HandleMenu.sqf | 40 - f/spect/fn_OnMapClick.sqf | 52 -- f/spect/fn_OnUnload.sqf | 23 - f/spect/fn_ReloadModes.sqf | 43 - f/spect/fn_ToggleGUI.sqf | 8 - f/spect/fn_UpdateValues.sqf | 126 --- f/spect/fn_showMenu.sqf | 30 - f/spect/macros.hpp | 20 - init.sqf | 26 - ws_fnc/cache/fn_cInit.sqf | 83 -- ws_fnc/cache/fn_cTracker.sqf | 64 -- ws_fnc/cache/fn_gCache.sqf | 42 - ws_fnc/cache/fn_gUncache.sqf | 26 - 65 files changed, 4716 deletions(-) delete mode 100644 f/JIP/f_JIP_addReinforcementOptionsAction.sqf delete mode 100644 f/JIP/f_JIP_common.h delete mode 100644 f/JIP/f_JIP_grpPicker.h delete mode 100644 f/JIP/f_JIP_grpPicker.sqf delete mode 100644 f/JIP/f_JIP_kitPicker.h delete mode 100644 f/JIP/f_JIP_kitPicker.sqf delete mode 100644 f/JIP/f_JIP_nearTargetGroupCheck.sqf delete mode 100644 f/JIP/f_JIP_playerRespawn.sqf delete mode 100644 f/JIP/f_JIP_reinforcementOptions.sqf delete mode 100644 f/cache/fn_cInit.sqf delete mode 100644 f/cache/fn_cTracker.sqf delete mode 100644 f/cache/fn_gCache.sqf delete mode 100644 f/cache/fn_gUncache.sqf delete mode 100644 f/medical/AGM_clientInit.sqf delete mode 100644 f/medical/AGM_converter.sqf delete mode 100644 f/medical/medical_init.sqf delete mode 100644 f/radios/acre2/acre2_clientInit.sqf delete mode 100644 f/radios/acre2/acre2_init.sqf delete mode 100644 f/radios/acre2/acre2_settings.sqf delete mode 100644 f/radios/acre2/acre2_setupPresets.sqf delete mode 100644 f/radios/acre2/fn_giveSideRadio.sqf delete mode 100644 f/radios/radio_init.sqf delete mode 100644 f/radios/tfr/fn_tfr_addRadios.sqf delete mode 100644 f/radios/tfr/fn_tfr_configureSpectatorChat.sqf delete mode 100644 f/radios/tfr/fn_tfr_removeRadios.sqf delete mode 100644 f/radios/tfr/fn_tfr_setRadioFrequencies.sqf delete mode 100644 f/radios/tfr/tfr_clientInit.sqf delete mode 100644 f/radios/tfr/tfr_init.sqf delete mode 100644 f/radios/tfr/tfr_serverInit.sqf delete mode 100644 f/radios/tfr/tfr_settings.sqf delete mode 100644 f/simplewoundingsystem/fn_EjectWounded.sqf delete mode 100644 f/simplewoundingsystem/fn_GetAnimation.sqf delete mode 100644 f/simplewoundingsystem/fn_HasWounded.sqf delete mode 100644 f/simplewoundingsystem/fn_LifeTick.sqf delete mode 100644 f/simplewoundingsystem/fn_OnDamage.sqf delete mode 100644 f/simplewoundingsystem/fn_OnDeath.sqf delete mode 100644 f/simplewoundingsystem/fn_OnDrag.sqf delete mode 100644 f/simplewoundingsystem/fn_OnHeal.sqf delete mode 100644 f/simplewoundingsystem/fn_SetBleeding.sqf delete mode 100644 f/simplewoundingsystem/fn_SetDowned.sqf delete mode 100644 f/simplewoundingsystem/fn_WoundedEffect.sqf delete mode 100644 f/simplewoundingsystem/init.sqf delete mode 100644 f/spect/config.hpp delete mode 100644 f/spect/fn_CamInit.sqf delete mode 100644 f/spect/fn_DrawMarkers.sqf delete mode 100644 f/spect/fn_DrawTags.sqf delete mode 100644 f/spect/fn_EventHandler.sqf delete mode 100644 f/spect/fn_ForceExit.sqf delete mode 100644 f/spect/fn_FreeCam.sqf delete mode 100644 f/spect/fn_GetPlayers.sqf delete mode 100644 f/spect/fn_HandleCamera.sqf delete mode 100644 f/spect/fn_HandleMenu.sqf delete mode 100644 f/spect/fn_OnMapClick.sqf delete mode 100644 f/spect/fn_OnUnload.sqf delete mode 100644 f/spect/fn_ReloadModes.sqf delete mode 100644 f/spect/fn_ToggleGUI.sqf delete mode 100644 f/spect/fn_UpdateValues.sqf delete mode 100644 f/spect/fn_showMenu.sqf delete mode 100644 f/spect/macros.hpp delete mode 100644 ws_fnc/cache/fn_cInit.sqf delete mode 100644 ws_fnc/cache/fn_cTracker.sqf delete mode 100644 ws_fnc/cache/fn_gCache.sqf delete mode 100644 ws_fnc/cache/fn_gUncache.sqf diff --git a/description.ext b/description.ext index 62a8ea8be..b5699d002 100644 --- a/description.ext +++ b/description.ext @@ -7,15 +7,6 @@ author = "*** Insert Author Here. ***"; loadScreen = "loadLogo.jpg"; overviewPicture = "overviewLogo.jpg"; -// ============================================================================================ - -// F3 - Respawn Settings -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - -respawn = 1; -respawndelay = 3; -respawnOnStart = 0; -respawnTemplates[] = {"Seagull","f_spectator","f_JIP"}; // ============================================================================================ @@ -130,30 +121,6 @@ class Params // ============================================================================================ -// F3 - Radio Systems Support -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - - class f_param_radios - { - title = "Radio System"; - values[] = {0,2,3}; - texts[] = {"Off","TFR","ACRE2"}; - default = 0; - }; - -// ============================================================================================ - -// F3 - Medical Systems Support -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - - class f_param_medical - { - title = "Medical System"; - values[] = {0,1}; - texts[] = {"Arma 3 Default","F3 Simple Wounding System"}; - default = 1; - }; - // ============================================================================================ // F3 - Mission Timer/Safe Start @@ -237,18 +204,6 @@ class Params // ============================================================================================ -// F3 - Caching -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - - class f_param_caching - { - title = "Cache AI outside distance (m)"; - values[] = {0,600,800,1000,1500,2000}; - default = 0; - }; - -// ============================================================================================ - // F3 - End of Params code blocks. // WARNING: DO NOT DELETE OR COMMENT OUT THIS CODE BLOCK @@ -323,41 +278,14 @@ class CfgDebriefing }; -// ============================================================================================ -// F3 - Respawn Templates -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - -class CfgRespawnTemplates -{ - // F3 Spectator Script - class f_Spectator - { - onPlayerRespawn = "f_fnc_CamInit"; - }; - //Overwrite Vanilla Seagull - class Seagull - { - onPlayerRespawn = ""; - }; - // F3 JIP Menu - class f_JIP - { - onPlayerRespawn = "f\JIP\f_JIP_playerRespawn.sqf"; - }; -}; // ============================================================================================ // F3 - Menu components // DO NOT REMOVE OR DISABLE THIS BLOCK OF CODE -// Menu components for the JIP Menu -#include "f\JIP\f_JIP_kitpicker.h" -#include "f\JIP\f_JIP_grppicker.h" -// Menu components for the Spectator Script -#include "f\spect\config.hpp" // ============================================================================================ diff --git a/f/JIP/f_JIP_addReinforcementOptionsAction.sqf b/f/JIP/f_JIP_addReinforcementOptionsAction.sqf deleted file mode 100644 index f5dd6f0e8..000000000 --- a/f/JIP/f_JIP_addReinforcementOptionsAction.sqf +++ /dev/null @@ -1,26 +0,0 @@ -// F3 - JIP Add Reinforcement Options Action -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_unit","_textAction"]; - -// ==================================================================================== - -// SET KEY VARIABLES - -_unit = _this select 0; -_textAction = localize "STR_f_JIP_reinforcementOptionsAction"; - -// PREVENT THE JIP AI UNITS FROM FOLLOWING THEIR LEADER/MOVING AWAY -_unit disableAI "move"; - -// ==================================================================================== - -// ADD REINFORCEMENT OPTIONS ACTION TO PLAYER ACTION MENU -// We add the action to the player's action menu. - -if (_unit == player) then { - F3_JIP_reinforcementOptionsAction = player addaction ["" + _textAction + "","f\JIP\f_JIP_reinforcementOptions.sqf",[],6,true,false,"","_target == player"]; -}; \ No newline at end of file diff --git a/f/JIP/f_JIP_common.h b/f/JIP/f_JIP_common.h deleted file mode 100644 index d82ad5dea..000000000 --- a/f/JIP/f_JIP_common.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef COMMON_H -#define COMMON_H - -#define CT_STATIC 0 -#define CT_BUTTON 1 -#define CT_COMBO 4 -#define NOSOUND {"", 0, 1} - -class CommonSettings -{ - sizeEx = 0.03921; - colorText[] = {0.97, 0.78,0.13, 1}; - colorFocused[] = {0.97, 0.78,0.13, 1}; - colorBackground[] = {0.25, 0.23, 0.20, 1}; - colorBackgroundActive[] = {0.27, 0.25, 0.25, 1}; - colorBackgroundFocused[] = {0.27, 0.25, 0.25, 1}; - colorBackgroundDisabled[] = {0.15, 0.15, 0.15, 1}; - colorDisabled[] = {0.25, 0.23, 0.20, 1}; - colorShadow[] = {0,0,0,1}; - colorBorder[] = {0,0,0,1}; - borderSize = 0; - font = "PuristaLight"; - style = 0; - x = SafeZoneX; - y = SafeZoneY; - w = 0.1; - h = 0.1; - offsetX = 0; - offsetY = 0; - offsetPressedX = 0; - offsetPressedY = 0; - soundEnter[] = NOSOUND; - soundPush[] = NOSOUND; - soundClick[] = NOSOUND; - soundEscape[] = NOSOUND; - text = ""; -}; - -#endif diff --git a/f/JIP/f_JIP_grpPicker.h b/f/JIP/f_JIP_grpPicker.h deleted file mode 100644 index bf51fcb4d..000000000 --- a/f/JIP/f_JIP_grpPicker.h +++ /dev/null @@ -1,101 +0,0 @@ -#include "f_JIP_common.h" - -class GrpPicker -{ - idd = -1; - movingEnable = 1; - enableSimulation = 1; - enableDisplay = 1; - - onLoad = "if (isNil 'GrpPickInit') then {call compile preprocessFileLineNumbers 'f\JIP\f_JIP_grpPicker.sqf'}; _this call GrpPickInit;"; - - class controlsBackground - { - class BG : CommonSettings - { - idc = -1; - type = CT_STATIC; - moving = 1; - w = 0.4; - h = 0.25; - x = SafeZoneX + 0.2; - y = SafeZoneY + 0.2; - }; - class Prefix : CommonSettings - { - idc = -1; - type = CT_STATIC; - moving = 1; - w = 0.4; - h = 0.05; - x = SafeZoneX + 0.2; - y = SafeZoneY + 0.2; - text = "Select group to join"; - }; - } - - class controls - { - class GrpList : CommonSettings - { - idc = 1; - type = CT_COMBO; - x = SafeZoneX + 0.23; - y = SafeZoneY + 0.26; - w = 0.35; - h = 0.035; - wholeHeight = 0.45; - - colorBackground[] = {0.43, 0.39 ,0.32, 1}; - colorBorder[] = {0.43, 0.39 ,0.32, 1}; - colorText[] = {0.97, 0.78, 0.13, 1}; - colorSelect[] = {0.97, 0.78, 0.13, 1}; - colorSelectBackground[] = {0.62, 0.57, 0.49, 1}; - colorSelectBackground2[] = {0.62, 0.57, 0.49, 1}; - soundSelect[] = NOSOUND; - soundExpand[] = NOSOUND; - soundCollapse[] = NOSOUND; - - 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"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - - onLBSelChanged = "call GrpPicker_OnSelChanged"; - }; - -/* - class CancelButton : CommonSettings - { - idc = 2; - type = CT_BUTTON; - w = 0.2; - h = 0.05; - x = SafeZoneX + 0.23; - y = SafeZoneY + 0.37; - text = "Cancel"; - }; -*/ - - class AcceptButton : CommonSettings - { - idc = 3; - type = CT_BUTTON; - w = 0.2; - h = 0.05; - x = SafeZoneX + 0.23; - y = SafeZoneY + 0.31; - text = "Join this group"; - action = "call GrpPicker_Pick"; - }; - }; -}; diff --git a/f/JIP/f_JIP_grpPicker.sqf b/f/JIP/f_JIP_grpPicker.sqf deleted file mode 100644 index 79d7356cf..000000000 --- a/f/JIP/f_JIP_grpPicker.sqf +++ /dev/null @@ -1,77 +0,0 @@ -#define DLG (uiNamespace getVariable "GrpPick_Dlg") -#define COMBO (uiNamespace getVariable "GrpPick_Combo") -#define USEBUTTON (uiNamespace getVariable "GrpPick_UseBtn") - -GrpPickInit = -{ - uiNamespace setVariable ["GrpPick_Dlg", _this select 0]; - uiNamespace setVariable ["GrpPick_Combo", (_this select 0) displayCtrl 1]; - uiNamespace setVariable ["GrpPick_UseBtn", (_this select 0) displayCtrl 3]; - - USEBUTTON ctrlEnable false; - GrpList = []; - GrpCount = 0; - { - private "_grp"; - _grp = _x; - if (side(_grp) == side(player) && {(faction (leader _grp) == faction player ) && (alive (leader _grp)) && !(_grp == group player)}) then - { - GrpList set [GrpCount, _grp]; - private "_idx"; - _idx = COMBO lbAdd str(_grp); COMBO lbSetValue [_idx, GrpCount + 1]; - GrpCount = GrpCount + 1; - }; - - if (_grp == group player && {count units _grp > 1}) then { - GrpList set [GrpCount, _grp]; - private "_idx"; - _idx = COMBO lbAdd ("Stay in " + str(_grp)); COMBO lbSetValue [_idx, GrpCount + 1]; - GrpCount = GrpCount + 1; - }; - } forEach allGroups; - - GrpList set [GrpCount, grpNull]; - _idx = COMBO lbAdd "NONE"; COMBO lbSetValue [_idx, GrpCount + 1]; - - _sel = player getVariable "GrpPicker_Selection"; - if (!isNil '_sel') then - { - COMBO lbSetCurSel _sel; - }; -}; - -GrpPicker_Pick = -{ - private "_idx"; - _idx = lbCurSel COMBO; - if (_idx < 0) exitWith {}; - - private "_data"; - _data = COMBO lbValue _idx; - if (_data == 0) exitWith {}; - - private "_grp"; - _grp = GrpList select (_data - 1); - - closeDialog 0; - player setVariable ["f_var_JIP_grp", _grp]; - player setVariable ["GrpPicker_Selection", _idx]; - f_var_JIP_state = 1; -}; - -GrpPicker_OnSelChanged = -{ - private "_idx"; - _idx = lbCurSel COMBO; - if (_idx < 0) exitWith - { - USEBUTTON ctrlEnable false; - }; - - _data = COMBO lbValue _idx; - if (_data == 0) exitWith - { - USEBUTTON ctrlEnable false; - }; - USEBUTTON ctrlEnable true; -}; diff --git a/f/JIP/f_JIP_kitPicker.h b/f/JIP/f_JIP_kitPicker.h deleted file mode 100644 index 66b4620b0..000000000 --- a/f/JIP/f_JIP_kitPicker.h +++ /dev/null @@ -1,102 +0,0 @@ -#include "f_JIP_common.h" - -class KitPicker -{ - idd = -1; - movingEnable = 1; - enableSimulation = 1; - enableDisplay = 1; - - onLoad = "if (isNil 'KitPickInit') then {call compile preprocessFileLineNumbers 'f\JIP\f_JIP_kitPicker.sqf'}; _this call KitPickInit;"; - - class controlsBackground - { - class BG : CommonSettings - { - idc = -1; - type = CT_STATIC; - moving = 1; - w = 0.4; - h = 0.25; - x = SafeZoneX + 0.2; - y = SafeZoneY + 0.2; - }; - class Prefix : CommonSettings - { - idc = -1; - type = CT_STATIC; - moving = 1; - w = 0.2; - h = 0.05; - x = SafeZoneX + 0.2; - y = SafeZoneY + 0.2; - text = "Kit picker"; - }; - }; - - class controls - { - class KitList : CommonSettings - { - idc = 1; - type = CT_COMBO; - x = SafeZoneX + 0.23; - y = SafeZoneY + 0.26; - w = 0.35; - h = 0.035; - wholeHeight = 0.45; - - colorBackground[] = {0.43, 0.39 ,0.32, 1}; - colorBorder[] = {0.43, 0.39 ,0.32, 1}; - colorText[] = {0.97, 0.78, 0.13, 1}; - colorSelect[] = {0.97, 0.78, 0.13, 1}; - colorSelectBackground[] = {0.62, 0.57, 0.49, 1}; - colorSelectBackground2[] = {0.62, 0.57, 0.49, 1}; - soundSelect[] = NOSOUND; - soundExpand[] = NOSOUND; - soundCollapse[] = NOSOUND; - - 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"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - - onLBSelChanged = "call KitPicker_OnSelChanged"; - }; - -/* - class CancelButton : CommonSettings - { - idc = 2; - type = CT_BUTTON; - w = 0.2; - h = 0.05; - x = SafeZoneX + 0.23; - y = SafeZoneY + 0.37; - text = "Cancel"; - }; -*/ - - class AcceptButton : CommonSettings - { - idc = 3; - type = CT_BUTTON; - w = 0.2; - h = 0.05; - x = SafeZoneX + 0.23; - y = SafeZoneY + 0.31; - text = "Use this gear"; - action = "call KitPicker_Pick"; - }; - }; -}; - diff --git a/f/JIP/f_JIP_kitPicker.sqf b/f/JIP/f_JIP_kitPicker.sqf deleted file mode 100644 index 3d4775bad..000000000 --- a/f/JIP/f_JIP_kitPicker.sqf +++ /dev/null @@ -1,68 +0,0 @@ -#define DLG (uiNamespace getVariable "KitPick_Dlg") -#define COMBO (uiNamespace getVariable "KitPick_Combo") -#define USEBUTTON (uiNamespace getVariable "KitPick_UseBtn") - -KitPickInit = -{ - uiNamespace setVariable ["KitPick_Dlg", _this select 0]; - uiNamespace setVariable ["KitPick_Combo", (_this select 0) displayCtrl 1]; - uiNamespace setVariable ["KitPick_UseBtn", (_this select 0) displayCtrl 3]; - - USEBUTTON ctrlEnable false; - - private "_idx"; - _idx = COMBO lbAdd "Commander"; COMBO lbSetData [_idx, "co"]; - _idx = COMBO lbAdd "Deputy Commander"; COMBO lbSetData [_idx, "dc"]; - COMBO lbAdd "----"; - - _idx = COMBO lbAdd "Fire Team Leader"; COMBO lbSetData [_idx, "ftl"]; - _idx = COMBO lbAdd "Automatic Rifleman"; COMBO lbSetData [_idx, "ar"]; - _idx = COMBO lbAdd "Asst. Automatic Rifleman"; COMBO lbSetData [_idx, "aar"]; - _idx = COMBO lbAdd "Rifleman (AT)"; COMBO lbSetData [_idx, "rat"]; - COMBO lbAdd "----"; - - _idx = COMBO lbAdd "Engineer (no repair)"; COMBO lbSetData [_idx, "eng"]; - COMBO lbAdd "----"; - - _idx = COMBO lbAdd "Rifleman"; COMBO lbSetData [_idx, "r"]; - _idx = COMBO lbAdd "Carabineer"; COMBO lbSetData [_idx, "car"]; - _idx = COMBO lbAdd "Submachinegunner"; COMBO lbSetData [_idx, "smg"]; - - _sel = player getVariable "KitPicker_Selection"; - if (!isNil '_sel') then - { - COMBO lbSetCurSel _sel; - }; -}; - -KitPicker_Pick = -{ - private "_idx"; - _idx = lbCurSel COMBO; - if (_idx < 0) exitWith {}; - - _data = COMBO lbData _idx; - if (_data == "") exitWith {}; - - closeDialog 0; - player setVariable ["f_var_JIP_loadout", _data]; - player setVariable ["KitPicker_Selection", _idx]; - f_var_JIP_state = 3; -}; - -KitPicker_OnSelChanged = -{ - private "_idx"; - _idx = lbCurSel COMBO; - if (_idx < 0) exitWith - { - USEBUTTON ctrlEnable false; - }; - - _data = COMBO lbData _idx; - if (_data == "") exitWith - { - USEBUTTON ctrlEnable false; - }; - USEBUTTON ctrlEnable true; -}; diff --git a/f/JIP/f_JIP_nearTargetGroupCheck.sqf b/f/JIP/f_JIP_nearTargetGroupCheck.sqf deleted file mode 100644 index 7c6ace6a3..000000000 --- a/f/JIP/f_JIP_nearTargetGroupCheck.sqf +++ /dev/null @@ -1,63 +0,0 @@ -// F3 - JIP Near Target Group Check -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_grp","_joinDistance"]; - -// ==================================================================================== - -// SET KEY VARIABLES -// Using variables passed to the script instance, we will create some local variables: - -_grp = _this select 0; -_joinDistance = _this select 1; - -// ==================================================================================== - -if (isNull _grp) exitWith { - [player] joinSilent grpNull; -}; - -while {true} do -{ - -// ==================================================================================== - -// ESTABLISH TARGET GROUP SIZE -// We begin by establishing how many units remain alive in the group. We use this to -// establish a baseline value to compare against. - -if ({alive _x} count (units _grp) == 0) exitWith { - [player] execVM "f\JIP\f_JIP_addReinforcementOptionsAction.sqf"; - ["JIP",[format ["All members of %1 have died. Please select a new group",_grp]]] call BIS_fnc_showNotification; -}; - -// DEBUG -if (f_param_debugMode == 1) then -{ - player sideChat format ["DEBUG (f\JIP\f_JIP_nearTargetGroupCheck.sqf): _alive = %1",_alive]; -}; - -// ==================================================================================== - -sleep 3; - -// CHECK PROXIMITY -// We then check how many of the units are within the required proximity to the -// objective; if all units qualify then we exit the loop. - - if (((leader _grp) distance player) < _joinDistance) exitWith { - [player] joinSilent _grp; - - ["JIP",[format ["You have joined %1",_grp]]] call BIS_fnc_showNotification; - - _unit = player; - [["JIP",[format ["%1 has joined your group.",name _unit]]],"BIS_fnc_showNotification",units (_this select 3) - [_unit]] spawn BIS_fnc_MP; - - sleep 1; - }; - -}; - diff --git a/f/JIP/f_JIP_playerRespawn.sqf b/f/JIP/f_JIP_playerRespawn.sqf deleted file mode 100644 index de51d9833..000000000 --- a/f/JIP/f_JIP_playerRespawn.sqf +++ /dev/null @@ -1,81 +0,0 @@ -// F3 - Respawn INIT -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// Only run this for players -if (isDedicated) exitWith{}; - -// ==================================================================================== - -// MAKE SURE THE PLAYER INITIALIZES PROPERLY -if (!isDedicated && (isNull player)) then -{ - waitUntil {sleep 0.1; !isNull player}; -}; - -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_unit","_corpse"]; - -// ==================================================================================== - -// SETUP KEY VARIABLES -// The Respawn eventhandler passes two parameters: the unit a player has respawned in and the corpse of the old unit. - -_unit = _this select 0; -_corpse = _this select 1; - -// Exit if the unit doesn't exist (can occur when JIPing into missions with no respawn) -if (isNil "_unit") exitWith {}; - -// ==================================================================================== - -// CHECK FOR GLOBAL VARIABLES -// Check if the global variables have been initialized, if not, do so with the default values. - -if (isNil "f_var_JIP_FirstMenu") then {f_var_JIP_FirstMenu = false}; -if (isNil "f_var_JIP_GearMenu") then {f_var_JIP_GearMenu = true}; -if (isNil "f_var_JIP_RemoveCorpse") then {f_var_JIP_RemoveCorpse = false}; - -// =================================================================================== - -// CHECK FOR FIRST TIME SPAWN -// If no corpse exists the player is spawned for the first time. By default, he won't get the JIP menu in that case. - -if (!f_var_JIP_FirstMenu && isNull _corpse) exitWith {}; - -// ==================================================================================== - -// CHECK FOR GEAR -// If gear selection is disabled and the unit uses the loadout assigned by the F3 assign Gear component or it's default loadout. - -if (!f_var_JIP_GearMenu) then { - if (typeName (_unit getVariable "f_var_assignGear") == typeName "") then { - _loadout = (_unit getVariable "f_var_assignGear"); - [_loadout,player] call f_fnc_assignGear; - }; -}; - -// ==================================================================================== - -// ADD JIP MENU TO PLAYER -// Check if player already has the JIP Menu. If not, add it. - -if (isNil "F3_JIP_reinforcementOptionsAction") then { - [player] execVM "f\JIP\f_JIP_addReinforcementOptionsAction.sqf"; -}; - -// ==================================================================================== - -// REMOVE CORPSE -// If activated and respawn is allowed, the old corpse will be sink into the ground and is then removed from the game - -if (typeof _unit != "seagull" && {f_var_JIP_RemoveCorpse && !isNull _corpse}) then { - _corpse spawn { - hideBody _this; - sleep 60; - deleteVehicle _this; - }; -}; diff --git a/f/JIP/f_JIP_reinforcementOptions.sqf b/f/JIP/f_JIP_reinforcementOptions.sqf deleted file mode 100644 index ffad5c05e..000000000 --- a/f/JIP/f_JIP_reinforcementOptions.sqf +++ /dev/null @@ -1,65 +0,0 @@ -// F3 - JIP Reinforcement Options -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_unit","_textAction","_grp","_joinDistance","_loadout"]; - -// ==================================================================================== - -// ALLOW PLAYER TO SELECT GROUP -// Using a dialog we allow the player to select the group s/he is going to [re-]join. - -["JIP",["Select the group to join."]] call BIS_fnc_showNotification; - -f_var_JIP_state = 0; -createDialog "GrpPicker"; -waitUntil {f_var_JIP_state == 1}; -_grp = (player getVariable "f_var_JIP_grp"); - -// ==================================================================================== - -// ALLOW PLAYER TO SELECT LOADOUT -// Using a dialog we allow the player to select the loadout s/he requires. - -f_var_JIP_state = 2; -if (f_var_JIP_GearMenu) then { - ["JIP",["Select your gear kit."]] call BIS_fnc_showNotification; - - createDialog "KitPicker"; - waitUntil {f_var_JIP_state == 3}; - - _loadout = (player getVariable "f_var_JIP_loadout"); - [_loadout,player] call f_fnc_assignGear; -}; - -// ==================================================================================== - -// REMOVE REINFORCEMENT OPTIONS ACTION TO PLAYER ACTION MENU -// We remove the action to the player's action menu. -// NB This is on the assumption that the player has made positive selections and not -// cancelled the menu. - -player removeAction F3_JIP_reinforcementOptionsAction; -F3_JIP_reinforcementOptionsAction = nil; - -// ==================================================================================== - -// IMPLEMENT CHOICES -// Using the choices made by the player we implement the desired loadout and set the -// target group for her/him to join. -// If the player is already in the group, he simply remains there - -_joinDistance = 10; - -if (_grp != group player) then { - [player] joinSilent grpNull; - - if (!isNull _grp) then { - [_grp,_joinDistance] execVM "f\JIP\f_JIP_nearTargetGroupCheck.sqf"; - ["JIP",[format ["Selection successful. Get within %2m of %1 to link up.",name leader _grp,_joinDistance]]] call BIS_fnc_showNotification; - }; -}; - - diff --git a/f/cache/fn_cInit.sqf b/f/cache/fn_cInit.sqf deleted file mode 100644 index 3248b2de3..000000000 --- a/f/cache/fn_cInit.sqf +++ /dev/null @@ -1,70 +0,0 @@ -// F3 - Caching Script Init -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// Check whether the paramater is defined (or caching switched off)) - if not, just exit -if (isNil "f_param_caching" || {f_param_caching == 0}) exitWith {}; - -// ==================================================================================== - -// Wait for the mission to have launched before starting to cache. -sleep 0.1; - -// Wait up to the desired time into the mission to give AI and players time to settle -waitUntil {time > (_this select 0)}; - -// ==================================================================================== - -// Player and the headless client's (if present) groups are always excluded from being cached -if (!isDedicated && !(group player getVariable ["f_cacheExcl", false])) then { - (group player) setVariable ["f_cacheExcl", true, true]; -}; - -// ==================================================================================== - -// Rest of the Script is only run server-side -if !(isServer) exitWith {}; - -// ==================================================================================== - -// Make sure script is only run once -if (missionNameSpace getVariable ["f_cInit", false]) exitWith {}; -f_cInit = true; - -// ==================================================================================== - -// All groups with playable units are set to be ignored as well -{ - if ({_x in playableUnits} count units _x > 0) then {_x setVariable ["f_cacheExcl",true,true];}; -} forEach allGroups; - -// Define parameters -_range = f_param_caching; // The range outside of which to cache units -f_var_cacheSleep = 6; // The time to sleep between checking -f_var_cacheRun = true; - -[_range] spawn f_fnc_cTracker; - -// Start the debug tracker -if (f_param_debugMode == 1) then { - player globalchat format ["f_fnc_cInit DBG: Starting to track %1 groups, %2 range, %3 sleep",count allGroups,_range,f_var_cacheSleep]; - - [] spawn { - - // Giving the tracker a head start - sleep (f_var_cacheSleep * 1.1); - - while {f_var_cacheRun} do { - _str1 = "f_fnc_cache DBG:
"; - _str2 = format["Total groups: %1
",count allGroups]; - _str3 = format ["Cached groups:%1
",{_x getvariable "f_cached"} count allGroups]; - _str4 = format ["Activated groups:%1
",{!(_x getvariable "f_cached")} count allGroups]; - _str5 = format ["Excluded groups:%1
",{(_x getvariable "f_cacheExcl")} count allGroups]; - - hintsilent parseText (_str1+_str2+_str3+_str4+_str5); - diag_log (_str1+_str2+_str3+_str4+_str5); - - sleep f_var_cacheSleep; - }; - }; -}; \ No newline at end of file diff --git a/f/cache/fn_cTracker.sqf b/f/cache/fn_cTracker.sqf deleted file mode 100644 index bef845651..000000000 --- a/f/cache/fn_cTracker.sqf +++ /dev/null @@ -1,68 +0,0 @@ -// F3 - Caching Script Tracker -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS -private ["_range","_groups","_debug"]; - -_range = _this select 0; -_groups = allGroups; - -_debug = if (f_param_debugMode == 1) then [{true},{false}]; - -// ==================================================================================== - -// BEGIN THE TRACKING LOOP -While {f_var_cacheRun} do { - { - _groups = allGroups; - - if (_debug) then{player globalchat format ["f_fnc_cache DBG: Tracking %1 groups",count _groups]}; - - if (isnull _x) then { - _groups = _groups - [_x]; - - if (_debug) then{player globalchat format ["f_fnc_cache DBG: Group is null, deleting: %1",_x,count _groups]}; - - } else { - _exclude = _x getvariable ["f_cacheExcl",false]; - _cached = _x getvariable ["f_cached", false]; - - if (!_exclude) then { - if (_cached) then { - - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Checking group: %1",_x]}; - - if ([leader _x, _range] call f_fnc_nearPlayer) then { - - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Decaching: %1",_x]}; - - _x setvariable ["f_cached", false]; - _x spawn f_fnc_gUncache; - - }; - } else { - if !([leader _x, _range * 1.1] call f_fnc_nearPlayer) then { - - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Caching: %1",_x]}; - - _x setvariable ["f_cached", true]; - [_x] spawn f_fnc_gCache; - }; - }; - - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Group is excluded: %1",_x]}; - }; - }; - } foreach _groups; - - sleep f_var_cacheSleep; -}; - -// If the caching loop is terminated, uncache all cached groups -{ - if (_x getvariable ["f_cached", false]) then { - _x spawn f_fnc_gUncache; - _x setvariable ["f_cached", false]; - }; -} forEach allGroups; \ No newline at end of file diff --git a/f/cache/fn_gCache.sqf b/f/cache/fn_gCache.sqf deleted file mode 100644 index fb2b2f28e..000000000 --- a/f/cache/fn_gCache.sqf +++ /dev/null @@ -1,44 +0,0 @@ -// F3 - Caching Script Group Cacher -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// LOOP THROUGH THE PASSED UNITS -// We loop through the units of the passed group and disable Simulation for those that are not vehicle drivers and are standing still - -private ["_group","_aggressiveness"]; - -_group = [_this,0,grpNull] call BIS_fnc_param; -_aggressiveness = [_this,1,f_var_cachingAggressiveness] call BIS_fnc_param; - -{ - - // Disable simulation based on aggressiveness - switch (_aggressiveness) do { - - case 1: { - if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _group)) then { - _x enableSimulationGlobal false; - }; - }; - case 2: { - if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { - if ((_x != leader _group) || (_x == leader _group && speed _x == 0)) then { - _x enableSimulationGlobal false; - }; - }; - }; - case 3: {_x enableSimulationGlobal false;}; - default {systemchat format ["f_fnc_gCache DBG: f_var_cachingAggressiveness is not an accepted value: %1",f_var_cachingAggressiveness];}; - }; - - // All unit's are hidden - _x hideObjectGlobal true; - - if (_aggressiveness == 3) then { - if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal true}; - }; - -sleep 0.1; -} forEach units _group; - -true \ No newline at end of file diff --git a/f/cache/fn_gUncache.sqf b/f/cache/fn_gUncache.sqf deleted file mode 100644 index 08a457e97..000000000 --- a/f/cache/fn_gUncache.sqf +++ /dev/null @@ -1,20 +0,0 @@ -// F3 - Caching Script Group Uncacher -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - - { - _x enableSimulationGlobal true; - _x hideObjectGlobal false; - - - // If the group leader is moving, set his group back next to him - if (speed leader _this > 0 && vehicle _x == _x) then { - _x setPosATL [(formationPosition _x) select 0, (formationPosition _x) select 1, 0]; - }; - - if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal false}; - -sleep 0.1; -} forEach units _this; - -true \ No newline at end of file diff --git a/f/medical/AGM_clientInit.sqf b/f/medical/AGM_clientInit.sqf deleted file mode 100644 index 07ab377e1..000000000 --- a/f/medical/AGM_clientInit.sqf +++ /dev/null @@ -1,37 +0,0 @@ -// F3 - AGM Clientside Initialisation -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// Wait for gear assignation to take place -waitUntil{(player getVariable ["f_var_assignGear_done", false])}; - -private "_typeOfUnit"; - -_typeOfUnit = player getVariable "f_var_assignGear"; - -// Remove pre-assigned medical items -{player removeItems _x} forEach ["FirstAidKit","Medikit","AGM_Bandage","AGM_Morphine","AGM_Epipen","AGM_Bloodbag"]; - -// Add basic items to all units -player addItem "AGM_EarBuds"; -{player addItem "AGM_Bandage"} forEach [1,2,3,4,5]; -player addItem "AGM_Morphine"; - -if (_typeOfUnit == "m") then -{ - - // BACKPACK: LIGHT - if (f_param_backpacks <= 1) then { - (unitBackpack player) addItemCargoGlobal ["AGM_Bandage", 15]; - (unitBackpack player) addItemCargoGlobal ["AGM_Morphine", 10]; - (unitBackpack player) addItemCargoGlobal ["AGM_Epipen", 10]; - (unitBackpack player) addItemCargoGlobal ["AGM_Bloodbag", 2]; - }; - // BACKPACK: HEAVY - if (f_param_backpacks == 2) then { - (unitBackpack player) addItemCargoGlobal ["AGM_Bandage", 25]; - (unitBackpack player) addItemCargoGlobal ["AGM_Morphine", 15]; - (unitBackpack player) addItemCargoGlobal ["AGM_Epipen", 15]; - (unitBackpack player) addItemCargoGlobal ["AGM_Bloodbag", 4]; - }; -}; diff --git a/f/medical/AGM_converter.sqf b/f/medical/AGM_converter.sqf deleted file mode 100644 index 9c0100e2e..000000000 --- a/f/medical/AGM_converter.sqf +++ /dev/null @@ -1,66 +0,0 @@ -// F3 - Medical Systems AGM Converter -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS -private ["_unit","_itemCargoList","_cntFAK","_cntMediKit"]; - -// ==================================================================================== - -// DETECT CRATE TYPE - -_unit = _this select 0; - -// ==================================================================================== - -// COUNT AMOUNT OF FAKS AND MEDIKITS - -_itemCargoList = itemCargo _unit; -_cntFAK = {_x == "FirstAidKit"} count _itemCargoList; -_cntMediKit = {_x == "MediKit"} count _itemCargoList; - -// ==================================================================================== - -// REMOVE ALL VANILLA ITEMS - -{ - if (_x == "FirstAidKit" || {_x == "Medikit"}) then { - _itemCargoList = _itemCargoList - [_x]; - }; -} forEach _itemCargoList; - -clearItemCargoGlobal _unit; - -{ - _unit addItemCargoGlobal [_x,1]; -} forEach _itemCargoList; - -// ==================================================================================== - -// ADD BACK AGM ITEMS FOR REMOVED VANILLA ITEMS - -_unit addItemCargoGlobal ["AGM_Bandage", (_cntFAK * 5)]; - -if (_cntFAK <= 25 && _cntMediKit == 0 ) then // Fireteam sized cargo - { - _unit addItemCargoGlobal ["AGM_Bandage", 10]; - _unit addItemCargoGlobal ["AGM_Morphine", 5]; - }; - -if (_cntFAK <= 25 && {_cntMediKit == 1}) then // Squad sized cargo - { - // Add items for 1 medic - _unit addItemCargoGlobal ["AGM_Bandage", 15]; - _unit addItemCargoGlobal ["AGM_Morphine", 10]; - _unit addItemCargoGlobal ["AGM_Epipen", 10]; - _unit addItemCargoGlobal ["AGM_Bloodbag", 3]; - }; - -if (_cntFAK > 50 || {_cntMediKit > 1}) then // Platoon sized Cargo - { - // Add items for 4 medics - _unit addItemCargoGlobal ["AGM_Bandage", 45]; - _unit addItemCargoGlobal ["AGM_Morphine", 30]; - _unit addItemCargoGlobal ["AGM_Epipen", 30]; - _unit addItemCargoGlobal ["AGM_Bloodbag", 9]; - }; diff --git a/f/medical/medical_init.sqf b/f/medical/medical_init.sqf deleted file mode 100644 index 8cc12fbfd..000000000 --- a/f/medical/medical_init.sqf +++ /dev/null @@ -1,32 +0,0 @@ -// F3 - Medical Systems Support initialisation -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// RUN RELEVANT SCRIPTS, DEPENDING ON SYSTEM IN USE -// Each medical modification requires a different set of scripts to be used, and so we -// split into a separate script file for initialisation of each mod. - -// Check which system to use -call -{ - // If 0 do nothing (Default Arma Healing) - - // F3 Simple Wounding System - if (f_param_medical == 1) exitWith - { - // If script is being run on a client - if (hasInterface) then - { - [player] execVM "f\simplewoundingsystem\init.sqf"; - }; - }; - // Authentic Gameplay Modification - if (f_param_medical == 2) exitWith - { - // If script is being run on a client - if (hasInterface) then - { - [] execVM "f\medical\AGM_clientInit.sqf"; - }; - }; -}; \ No newline at end of file diff --git a/f/radios/acre2/acre2_clientInit.sqf b/f/radios/acre2/acre2_clientInit.sqf deleted file mode 100644 index 528f279e5..000000000 --- a/f/radios/acre2/acre2_clientInit.sqf +++ /dev/null @@ -1,209 +0,0 @@ -// F3 - ACRE Clientside Initialisation -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_presetName","_ret","_unit","_typeOfUnit"]; - -// ==================================================================================== - -// Set up the radio presets according to side. -_presetName = switch(side player) do { - case west:{"default2"}; - case east:{"default3"}; - case resistance:{"default4"}; - default {"default"}; -}; -if (f_radios_settings_acre2_disableFrequencySplit) then { - _presetName = "default"; -}; - -_ret = ["ACRE_PRC343", _presetName ] call acre_api_fnc_setPreset; -_ret = ["ACRE_PRC148", _presetName ] call acre_api_fnc_setPreset; -_ret = ["ACRE_PRC152", _presetName ] call acre_api_fnc_setPreset; -_ret = ["ACRE_PRC117F", _presetName ] call acre_api_fnc_setPreset; -_ret = ["ItemRadio", _presetName ] call acre_api_fnc_setPreset; - - -// if dead, set spectator and exit -if(!alive player) exitWith {[true] call acre_api_fnc_setSpectator;}; - -_unit = player; - -// ==================================================================================== - -// Set language of the units depending on side (BABEL API) -switch (side _unit) do { - case blufor: { - f_radios_settings_acre2_language_blufor call acre_api_fnc_babelSetSpokenLanguages; - [f_radios_settings_acre2_language_blufor select 0] call acre_api_fnc_babelSetSpeakingLanguage; - }; - case opfor: { - f_radios_settings_acre2_language_opfor call acre_api_fnc_babelSetSpokenLanguages; - [f_radios_settings_acre2_language_opfor select 0] call acre_api_fnc_babelSetSpeakingLanguage; - }; - case independent: { - f_radios_settings_acre2_language_indfor call acre_api_fnc_babelSetSpokenLanguages; - [f_radios_settings_acre2_language_indfor select 0] call acre_api_fnc_babelSetSpeakingLanguage; - }; - default { - f_radios_settings_acre2_language_indfor call acre_api_fnc_babelSetSpokenLanguages; - [f_radios_settings_acre2_language_indfor select 0] call acre_api_fnc_babelSetSpeakingLanguage; - }; -}; - -// ==================================================================================== - -// RADIO ASSIGNMENT - -// Wait for gear assignation to take place -waitUntil{(player getVariable ["f_var_assignGear_done", false])}; -_typeOfUnit = _unit getVariable ["f_var_assignGear", "NIL"]; - -// REMOVE ALL RADIOS -// Wait for ACRE2 to initialise any radios the unit has in their inventory, and then -// remove them to ensure that duplicate radios aren't added by accident. -waitUntil{uiSleep 0.3; !("ItemRadio" in (items _unit + assignedItems _unit))}; -uiSleep 1; - -waitUntil{[] call acre_api_fnc_isInitialized}; -{_unit removeItem _x;} forEach ([] call acre_api_fnc_getCurrentRadioList); -// ==================================================================================== - -// ASSIGN RADIOS TO UNITS -// Depending on the loadout used in the assignGear component, each unit is assigned -// a set of radios. - -if(_typeOfUnit != "NIL") then { - - // If radios are enabled in the settings - if(!f_radios_settings_acre2_disableRadios) then { - // Everyone gets a short-range radio by default - if(isnil "f_radios_settings_acre2_shortRange") then { - if (_unit canAdd f_radios_settings_acre2_standardSHRadio) then { - _unit addItem f_radios_settings_acre2_standardSHRadio; - } else { - f_radios_settings_acre2_standardSHRadio call f_radios_acre2_giveRadioAction; - }; - } else { - if(_typeOfUnit in f_radios_settings_acre2_shortRange) then { - if (_unit canAdd f_radios_settings_acre2_standardSHRadio) then { - _unit addItem f_radios_settings_acre2_standardSHRadio; - } else { - f_radios_settings_acre2_standardSHRadio call f_radios_acre2_giveRadioAction; - }; - }; - }; - - // If unit is in the above list, add a 148 - if(_typeOfUnit in f_radios_settings_acre2_longRange) then { - if (_unit canAdd f_radios_settings_acre2_standardLRRadio) then { - _unit addItem f_radios_settings_acre2_standardLRRadio; - } else { - f_radios_settings_acre2_standardLRRadio call f_radios_acre2_giveRadioAction; - }; - }; - // If unit is in the list of units that receive an extra long-range radio, add another 148 - if(_typeOfUnit in f_radios_settings_acre2_extraRadios) then { - if (_unit canAdd f_radios_settings_acre2_extraRadio) then { - _unit addItem f_radios_settings_acre2_extraRadio; - } else { - f_radios_settings_acre2_extraRadio call f_radios_acre2_giveRadioAction; - }; - }; - }; -}; - -// ==================================================================================== - -// ASSIGN DEFAULT CHANNELS TO RADIOS -// Depending on the squad joined, each radio is assigned a default starting channel - -if(!f_radios_settings_acre2_disableRadios) then { - - private ["_presetArray","_presetLRArray","_radioSR","_radioLR","_radioExtra","_hasSR","_hasLR","_hasExtra","_groupID","_groupIDSplit","_groupChannelIndex","_groupLRChannelIndex","_groupName"]; - - waitUntil {uiSleep 0.1; [] call acre_api_fnc_isInitialized}; - - _presetArray = switch (side _unit) do { - case blufor: {f_radios_settings_acre2_sr_groups_blufor}; - case opfor: {f_radios_settings_acre2_sr_groups_opfor}; - case independent: {f_radios_settings_acre2_sr_groups_indfor}; - default {f_radios_settings_acre2_sr_groups_indfor}; - }; - - _presetLRArray = switch (side _unit) do { - case blufor: {f_radios_settings_acre2_lr_groups_blufor}; - case opfor: {f_radios_settings_acre2_lr_groups_opfor}; - case independent: {f_radios_settings_acre2_lr_groups_indfor}; - default {f_radios_settings_acre2_lr_groups_indfor}; - }; - - _radioSR = [f_radios_settings_acre2_standardSHRadio] call acre_api_fnc_getRadioByType; - _radioLR = [f_radios_settings_acre2_standardLRRadio] call acre_api_fnc_getRadioByType; - _radioExtra = [f_radios_settings_acre2_extraRadio] call acre_api_fnc_getRadioByType; - - _hasSR = ((!isNil "_radioSR") && {_radioSR != ""}); - _hasLR = ((!isNil "_radioLR") && {_radioLR != ""}); - _hasExtra = ((!isNil "_radioExtra") && {_radioExtra != ""}); - - _groupID = groupID (group _unit); - _groupIDSplit = [_groupID, " "] call bis_fnc_splitString; - - _groupChannelIndex = -1; - _groupLRChannelIndex = -1; - - if ((count _groupIDSplit) > 2) then { - _groupName = toUpper (_groupIDSplit select (count _groupIDSplit - 2)); - - if (_hasSR) then { - { - if (_groupName in (_x select 1)) exitWith { _groupChannelIndex = _forEachIndex; }; - } forEach _presetArray; - }; - - if (_hasLR || _hasExtra) then { - { - if (_groupName in (_x select 1)) exitWith { _groupLRChannelIndex = _forEachIndex; }; - } forEach _presetLRArray; - }; - }; - - if (_groupChannelIndex == -1 && {_hasSR}) then { - player sideChat format["[F3 ACRE2] Warning: Unknown group for short-range channel defaults (%1)", _groupID]; - _groupChannelIndex = 0; - }; - - if (_groupLRChannelIndex == -1 && {(_hasLR || _hasExtra)}) then { - player sideChat format["[F3 ACRE2] Warning: Unknown group for long-range channel defaults (%1)", _groupID]; - _groupLRChannelIndex = 0; - }; - - - if (_hasSR) then { - if (f_var_debugMode == 1) then - { - player sideChat format["DEBUG (f\radios\acre2\acre2_clientInit.sqf): Setting radio channel for '%1' to %2", _radioSR, _groupChannelIndex + 1]; - }; - [_radioSR, (_groupChannelIndex + 1)] call acre_api_fnc_setRadioChannel; - }; - - - if (_hasLR) then { - if (f_var_debugMode == 1) then - { - player sideChat format["DEBUG (f\radios\acre2\acre2_clientInit.sqf): Setting radio channel for '%1' to %2", _radioLR, _groupLRChannelIndex + 1]; - }; - [_radioLR, (_groupLRChannelIndex + 1)] call acre_api_fnc_setRadioChannel; - }; - - if (_hasExtra) then { - if (f_var_debugMode == 1) then - { - player sideChat format["DEBUG (f\radios\acre2\acre2_clientInit.sqf): Setting radio channel for '%1' to %2", _radioExtra, _groupLRChannelIndex + 1]; - }; - [_radioExtra, (_groupLRChannelIndex + 1)] call acre_api_fnc_setRadioChannel; - }; - -}; diff --git a/f/radios/acre2/acre2_init.sqf b/f/radios/acre2/acre2_init.sqf deleted file mode 100644 index e09166d81..000000000 --- a/f/radios/acre2/acre2_init.sqf +++ /dev/null @@ -1,67 +0,0 @@ -// F3 - ACRE2 Init -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -private ["_presetSetup"]; - -// precompile functions -f_acre2_presetSetup = compile preprocessFileLineNumbers "f\radios\acre2\acre2_setupPresets.sqf"; -f_acre2_clientInit = compile preprocessFileLineNumbers "f\radios\acre2\acre2_clientInit.sqf"; -f_fnc_GiveSideRadio = compile preprocessFileLineNumbers "f\radios\acre2\fn_giveSideRadio.sqf"; - -f_radios_acre2_giveRadioAction = { - private["_x"]; - _x = _this; - _unit = player; - //Give the player a message so it isn't forgotten about during the briefing. - [_x] spawn { - waitUntil{time>3}; - systemChat format["[F3 ACRE2] Warning: No room to add radio '%1', report this to the mission maker. You now have a scroll-wheel action to get this radio.",_this select 0]; - }; - - //Create addAction to give radio. - _radioName = getText (configfile >> "CfgWeapons" >> _x >> "displayName"); - _actionID = _unit addAction [format ["[Radios] Give myself a %1 radio",_radioName], - { - _radioToGive = (_this select 3) select 0; - _unit = (_this select 0), - if (_unit canAdd _radioToGive) then { - _unit addItem _radioToGive; - _unit removeAction (_this select 2); - } else { - systemChat format["[F3 ACRE2] Warning: No room to add radio '%1', remove more stuff and try again",_radioToGive]; - }; - } - ,[_x],0,false,false,"","(_target == _this)"]; - [_actionID,_unit] spawn { - sleep 300; - if (!isNull (_this select 1)) then { - (_this select 1) removeAction (_this select 0); - }; - }; -}; - - -// jip check -if (!isDedicated && (isNull player)) then -{ - waitUntil {sleep 0.1; !isNull player}; -}; - -// include the smaller acre2 settings file. -#include "acre2_settings.sqf" - - -// setup presets -_presetSetup = [] call f_acre2_presetSetup; - - -// run client stuff. -if (hasInterface) then -{ - // define our languages (need to be the same order for everyone) - { - _x call acre_api_fnc_babelAddLanguageType; - } foreach f_radios_settings_acre2_languages; - [] call f_acre2_clientInit; -}; \ No newline at end of file diff --git a/f/radios/acre2/acre2_settings.sqf b/f/radios/acre2/acre2_settings.sqf deleted file mode 100644 index b1d71247e..000000000 --- a/f/radios/acre2/acre2_settings.sqf +++ /dev/null @@ -1,144 +0,0 @@ -// F3 - ACRE2 Settings -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// RADIO STRUCTURE - -// Whether any radios should be assigned at all, to any units -// TRUE = Disable radios for all units -f_radios_settings_acre2_disableRadios = FALSE; - -// Whether or not the radio frequencies should be left as default, and not split per side -// TRUE = Disable frequency seperation across sides -f_radios_settings_acre2_disableFrequencySplit = FALSE; - -// Set a list of units that get a short wave -// if its nil, that means all units get a radio -// empty array means that noone gets -f_radios_settings_acre2_shortRange = nil; - -// Set the list of units that get a long range -f_radios_settings_acre2_longRange = ["co", "dc", "m", "mmgag","hmgag","matag","hatag", "mtrag","msamag","sp","vc", "pp", "eng", "engm", "uav", "div"]; - -// Unit types you want to give an extra long-range radio -// E.G: ["co", "m"] would give the CO and all medics an extra long-range radios -f_radios_settings_acre2_extraRadios = []; - -// Standard Short -f_radios_settings_acre2_standardSHRadio = "ACRE_PRC343"; -// Standard LongRange -f_radios_settings_acre2_standardLRRadio = "ACRE_PRC152"; -// Extra radio -f_radios_settings_acre2_extraRadio = "ACRE_PRC117F"; - -// ==================================================================================== -// BABEL API - -// Defines the languages that exist in the mission. -// string id, displayname -f_radios_settings_acre2_languages = [["english","English"],["farsi","Farsi"],["greek","Greek"]]; - -// defines the language that a player can speak. -// can define multiple -f_radios_settings_acre2_language_blufor = ["english"]; -f_radios_settings_acre2_language_opfor = ["farsi"]; -f_radios_settings_acre2_language_indfor = ["greek"]; - -// Channel names and group defaults -// first item in the array will correspond to the first channel -// item definition: ["CHANNEL NAME", ["GROUP1 NAME", "GROUP2 NAME"]] -// note that if using a 343 only the first 16 channels are available for the short-range array -// also note these only work if f_radios_settings_acre2_disableFrequencySplit is set to false -f_radios_settings_acre2_sr_groups_blufor = [ - ["Alpha", ["ASL","A1","A2","A3"]], - ["Bravo", ["BSL","B1","B2","B3"]], - ["Charlie", ["CSL","C1","C2","C3"]], - ["Delta", ["CO","DC"]], - ["Echo", ["MMG1","HMG1"]], - ["Foxtrot", ["MAT1","HAT1"]], - ["Golf", ["MTR1"]], - ["Hotel", ["MSAM1","HSAM1"]], - ["India", ["ST1"]], - ["Juliet", ["DT1"]], - ["Kilo", ["ENG1"]], - ["Lima", ["IFV1","IFV2","IFV3","IFV4","IFV5","IFV6","IFV7","IFV8"]], - ["Mike", ["TNK1"]], - ["November", ["TH1","TH2","TH3","T4","TH5","TH6","TH7","TH8"]], - ["Oscar", ["AH1"]], - ["Papa", []], - ["Quebec", []], - ["Romeo", []], - ["Sierra", []], - ["Tango", []], - ["Uniform", []], - ["Victor", []], - ["Whiskey", []], - ["X-ray", []], - ["Yankee", []], - ["Zulu", []] -]; - -f_radios_settings_acre2_sr_groups_opfor = f_radios_settings_acre2_sr_groups_blufor; -f_radios_settings_acre2_sr_groups_indfor = f_radios_settings_acre2_sr_groups_blufor; - -f_radios_settings_acre2_lr_groups_blufor = [ - ["Alpha", []], - ["Bravo", []], - ["Charlie", []], - ["Delta", - [ - "CO", "DC", - "ASL","BSL","CSL", - "MMG1","HMG1","MAT1","HAT1","MTR1","MSAM1","HSAM1", - "ST1","DT1","ENG1", - "IFV1","IFV2","IFV3","IFV4","IFV5","IFV6","IFV7","IFV8","TNK1", - "TH1","TH2","TH3","T4","TH5","TH6","TH7","TH8", - "AH1" - ] - ], - ["Echo", []], - ["Foxtrot", []], - ["Golf", []], - ["Hotel", []], - ["India", []], - ["Juliet", []], - ["Kilo", []], - ["Lima", []], - ["Mike", []], - ["November", []], - ["Oscar", []], - ["Papa", []], - ["Quebec", []], - ["Romeo", []], - ["Sierra", []], - ["Tango", []], - ["Uniform", []], - ["Victor", []], - ["Whiskey", []], - ["X-ray", []], - ["Yankee", []], - ["Zulu", []] -]; - -f_radios_settings_acre2_lr_groups_opfor = f_radios_settings_acre2_lr_groups_blufor; -f_radios_settings_acre2_lr_groups_indfor = f_radios_settings_acre2_lr_groups_blufor; - -// ==================================================================================== -// MISC ACRE2 settings, these are all set the ACRE2 defaults - -// ACRE Radio loss settings. -// Indiciates how much terrian loss should be modelled. -// Values: 0 no loss, 1 full terrian loss, default: 1 -[1] call acre_api_fnc_setLossModelScale; - -// ACRE full Duplex -// Sets the duplex of radio transmissions. If set to true, it means that you will receive transmissions even while talking and multiple people can speak at the same time. -[false] call acre_api_fnc_setFullDuplex; - -// ACRE Interference -// Sets whether transmissions will interfere with eachother. This, by default, causes signal loss when multiple people are transmitting on the same frequency. -[true] call acre_api_fnc_setInterference; - -// ACRE can AI hear players? -// False - AI not hear players, true - AI hear players. -[false] call acre_api_fnc_setRevealToAI; diff --git a/f/radios/acre2/acre2_setupPresets.sqf b/f/radios/acre2/acre2_setupPresets.sqf deleted file mode 100644 index 04243f924..000000000 --- a/f/radios/acre2/acre2_setupPresets.sqf +++ /dev/null @@ -1,23 +0,0 @@ -// F3 - ACRE2 Preset Setup -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -private ["_radioName"]; - -//Set the names for all the radios properly. -{ - _radioName = _x; - - { - [_radioName, "default2", _forEachIndex + 1, "label", _x select 0] call acre_api_fnc_setPresetChannelField; - } forEach f_radios_settings_acre2_lr_groups_blufor; - - { - [_radioName, "default3", _forEachIndex + 1, "label", _x select 0] call acre_api_fnc_setPresetChannelField; - } forEach f_radios_settings_acre2_lr_groups_opfor; - - { - [_radioName, "default4", _forEachIndex + 1, "label", _x select 0] call acre_api_fnc_setPresetChannelField; - } forEach f_radios_settings_acre2_lr_groups_indfor; - -} forEach ["ACRE_PRC148","ACRE_PRC152","ACRE_PRC117F"]; diff --git a/f/radios/acre2/fn_giveSideRadio.sqf b/f/radios/acre2/fn_giveSideRadio.sqf deleted file mode 100644 index 623c79ad8..000000000 --- a/f/radios/acre2/fn_giveSideRadio.sqf +++ /dev/null @@ -1,24 +0,0 @@ -////////// f_fnc_GiveSideRadio -////////// Must happen after radios have been setup... -////////// 0: Unit to receive radio -////////// 1: The side the radio should be configured for -////////// 2: radio classname -////////// Example: [player,opfor,"ACRE_PRC148"]; - -private ["_unit","_side","_radio","_presetName","_ret"]; - -_unit = _this select 0; -_side = _this select 1; -_radio = _this select 2; - -_presetName = switch(_side) do { - case west:{"default2"}; - case east:{"default3"}; - case resistance:{"default4"}; - default {"default"}; -}; - -// must be local. -if (!local _unit) ExitWith {}; -_ret = [_radio, _presetName] call acre_api_fnc_setDefaultChannels; -_unit addItem _radio; diff --git a/f/radios/radio_init.sqf b/f/radios/radio_init.sqf deleted file mode 100644 index 96ac0b604..000000000 --- a/f/radios/radio_init.sqf +++ /dev/null @@ -1,27 +0,0 @@ -// F3 - Radio Framework initialisation -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// RUN RELEVANT SCRIPTS, DEPENDING ON SYSTEM IN USE -// Each radio modification requires a different set of scripts to be used, and so we -// split into a seperate script file for initialisation of each mod, on both the -// server and client. - -// If any radio system selected -if(f_param_radios != 0) then { - - switch (f_param_radios) do { - - // TFR - case 2: { - [] execVM "f\radios\tfr\tfr_init.sqf"; - }; - // acre2 - case 3: { - [] execVM "f\radios\acre2\acre2_init.sqf"; - }; - - }; -}; - -// ==================================================================================== diff --git a/f/radios/tfr/fn_tfr_addRadios.sqf b/f/radios/tfr/fn_tfr_addRadios.sqf deleted file mode 100644 index a6c4aab46..000000000 --- a/f/radios/tfr/fn_tfr_addRadios.sqf +++ /dev/null @@ -1,94 +0,0 @@ -// F3 - Add TFR Radios Function -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES - -private["_unit", "_typeOfUnit", "_longRange","_radio1","_radio2","_radio3", "_backpackItems"]; - -_unit = player; - -_typeOfUnit = _unit getVariable ["f_var_assignGear", "NIL"]; - -// DEFINE THE RADIOS THAT WILL BE USED - -switch ((side player)) do { //longrange, shortrange, rifradio - case (west): { - _radio1 = TF_defaultWestBackpack; - _radio2 = TF_defaultWestPersonalRadio; - _radio3 = TF_defaultWestRiflemanRadio;}; - case (east): { - _radio1 = TF_defaultEastBackpack; - _radio2 = TF_defaultEastPersonalRadio; - _radio3 = TF_defaultEastRiflemanRadio;}; - default { - _radio1 = TF_defaultGuerBackpack; - _radio2 = TF_defaultGuerPersonalRadio; - _radio3 = TF_defaultGuerRiflemanRadio;}; -}; - -// ==================================================================================== - -// ASSIGN RADIOS TO UNITS -// Depending on the loadout used in the assignGear component, each unit is assigned -// a set of radios. - -if(_typeOfUnit != "NIL") then { - - // If radios are enabled in the settings - if(!f_radios_settings_tfr_disableRadios) then { - - - // Set the list of units that get a rifleman's radio - _rifradio = ["ar","aar","rat","dm","mmgg","matg","hmgg","hatg","mtrg","msamg","hsamg","vg","vd","pcc","pc","r","car","smg","gren"]; - - // Set the list of units that get a shortrange radio - _shortrange = ["co", "dc", "ftl", "m","mmgag","matag","hmgag","hatag","mtrag","msamag","hsamag","sn","sp"]; - - // Give out respective radios - - if (_typeOfUnit in _rifradio) then { - _unit linkItem _radio3; - } else { - if (_typeOfUnit in _shortrange) then { - _unit linkItem _radio2; - }; - }; - - // Special cases - _specialist = ["vc", "pp", "eng", "engm", "div","uav"]; - - // If unit is leader of group and in the above list, give SR. Else, give them - // a rifleman's radio. - - if (_typeOfUnit in _specialist) then { - if (_unit == (leader (group _unit))) then { - _unit linkItem _radio2; - } else { - _unit linkItem _radio3; - }; - }; - - // Give out LR backpacks according to f\radios\tfr_settings.sqf. - if(f_radios_settings_tfr_defaultLRBackpacks) then { - if (_unit == (leader (group _unit))) then { - _backpackItems = backpackItems player; - removeBackpack _unit; - _unit addBackpack _radio1; - {player addItemToBackpack _x;} forEach _backpackItems; - }; - } else { - // If unit is in the list of units that receive a long-range radio, do so. - if(_typeOfUnit in f_radios_settings_tfr_backpackRadios) then { - _backpackItems = backpackItems player; - removeBackpack _unit; - _unit addBackpack _radio1; - {player addItemToBackpack _x;} forEach _backpackItems; - }; - }; - - }; - -}; - -// ==================================================================================== diff --git a/f/radios/tfr/fn_tfr_configureSpectatorChat.sqf b/f/radios/tfr/fn_tfr_configureSpectatorChat.sqf deleted file mode 100644 index 0473a08a6..000000000 --- a/f/radios/tfr/fn_tfr_configureSpectatorChat.sqf +++ /dev/null @@ -1,30 +0,0 @@ -// F3 - Configure TFR Spectator Function -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES - -private["_unit"]; - -_unit = player; - -// ==================================================================================== - -// SET SPECTATOR MODE -// If the player is alive and hence not a JIP player, the spectator voice chat will be -// disabled. If the player is dead, and hence a JIP player that hasn't selected an -// active slot, spectator chat will be enabled. - -if(alive _unit) then { - - // Disable spectator chat - [_unit, false] call TFAR_fnc_forceSpectator; - -} else { - - // Enable spectator chat - [_unit, true] call TFAR_fnc_forceSpectator; - -}; - -// ==================================================================================== diff --git a/f/radios/tfr/fn_tfr_removeRadios.sqf b/f/radios/tfr/fn_tfr_removeRadios.sqf deleted file mode 100644 index f5b9796e4..000000000 --- a/f/radios/tfr/fn_tfr_removeRadios.sqf +++ /dev/null @@ -1,21 +0,0 @@ -// F3 - Remove TFR Radios Function -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES - -private["_unit", "_vanillaRadio"]; - -_unit = player; -_vanillaRadio = "itemRadio"; - -// ==================================================================================== - -// REMOVE ALL RADIOS -// Check all items, removing any TFR radios, using the TFR API call to distinguish -// between radios and normal items. - -{ _isRadio = _x call TFAR_fnc_isRadio; if(_isRadio) then {_unit unlinkItem _x}; } foreach items _unit; -{ _isRadio = _x call TFAR_fnc_isRadio; if(_isRadio) then {_unit unlinkItem _x}; } foreach assignedItems _unit; - -// ==================================================================================== diff --git a/f/radios/tfr/fn_tfr_setRadioFrequencies.sqf b/f/radios/tfr/fn_tfr_setRadioFrequencies.sqf deleted file mode 100644 index d5dbab8bc..000000000 --- a/f/radios/tfr/fn_tfr_setRadioFrequencies.sqf +++ /dev/null @@ -1,12 +0,0 @@ -// F3 - Set TFR Frequencies Function -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -tf_freq_west = [0 ,7, ["31","32","33","34","35","36","37","38","39"],0, nil, -1, 0, getPlayerUID player, false]; -tf_freq_west_lr = [0 ,7, ["31","32","33","34","35","36","37","38","39"],0, nil, -1, 0, false]; -tf_freq_east = [0 ,7, ["31","32","33","34","35","36","37","38","39"],0, nil, -1, 0, getPlayerUID player, false]; -tf_freq_east_lr = [0 ,7, ["31","32","33","34","35","36","37","38","39"],0, nil, -1, 0, false]; -tf_freq_guer = [0 ,7, ["31","32","33","34","35","36","37","38","39"],0, nil, -1, 0, getPlayerUID player, false]; -tf_freq_guer_lr = [0 ,7, ["31","32","33","34","35","36","37","38","39"],0, nil, -1, 0, false]; - -// ==================================================================================== diff --git a/f/radios/tfr/tfr_clientInit.sqf b/f/radios/tfr/tfr_clientInit.sqf deleted file mode 100644 index e8032cb85..000000000 --- a/f/radios/tfr/tfr_clientInit.sqf +++ /dev/null @@ -1,39 +0,0 @@ -// F3 - TFR Clientside Initialisation -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// WAIT FOR TFR -// Give TFR some time to initialise - -sleep 3; - -// ==================================================================================== - -// CARRY OUT CLEANUP PROCEDURE, FREQUENCY SETUP AND RADIO HANDOUT -// Clear the unit's inventory of any added radios, just in case the defaults change -// or a mistake is made with loadouts. Then, set the frequency network up according -// to the settings in tfr_settings.sqf and assign radios depending on unit loadout. - -// Check player is alive -if(alive player) then { - - // Remove all existing radios - [] call f_fnc_tfr_removeRadios; - - // Wait for gear assignation to take place - waitUntil{(player getVariable ["f_var_assignGear_done", false])}; - - // Add radios to each unit - [] call f_fnc_tfr_addRadios; - - // Configure spectator chat - [] call f_fnc_tfr_configureSpectatorChat; - -} else { - - // No need to fix radios, just move into spectator chat - [] call f_fnc_tfr_configureSpectatorChat; - -}; - -// ==================================================================================== diff --git a/f/radios/tfr/tfr_init.sqf b/f/radios/tfr/tfr_init.sqf deleted file mode 100644 index 61444b2fc..000000000 --- a/f/radios/tfr/tfr_init.sqf +++ /dev/null @@ -1,16 +0,0 @@ - - // Retrieve TFR relevant setting - #include "tfr_settings.sqf" - - // If script is being run on the server - if(isDedicated) then { - - [] execVM "f\radios\tfr\tfr_serverInit.sqf"; - - } else { - - [] execVM "f\radios\tfr\tfr_clientInit.sqf"; - - //If locally hosting, run both client and server script - if((!isDedicated) && (isServer)) then {[] execVM "f\radios\tfr\tfr_serverInit.sqf";}; - }; \ No newline at end of file diff --git a/f/radios/tfr/tfr_serverInit.sqf b/f/radios/tfr/tfr_serverInit.sqf deleted file mode 100644 index e33744d0b..000000000 --- a/f/radios/tfr/tfr_serverInit.sqf +++ /dev/null @@ -1,41 +0,0 @@ -// F3 - TFR Serverside Initialisation -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// WAIT FOR F3 COMMON LOCAL VARIABLES - -waitUntil {scriptDone f_script_setLocalVars}; - -// ==================================================================================== - -// SET RADIO FREQUENCIES -// Store a short list of radio frequencies, to be used by clients. - -[] call f_fnc_tfr_setRadioFrequencies; - -// ==================================================================================== - -// SET INDEP RADIO CODE -// Depending on the setting in tfr_settings.sqf, change INDEP radio code to the faction -// they're friendly to. If friendly to nobody or everybody, use own code. - -if(!f_radios_settings_tfr_indepUseRadioCode) then { - - private["_friendWest","_friendEast","_bluefor","_opfor"]; - - _friendWest = (resistance getFriend West); - _friendEast = (resistance getFriend east); - _bluefor = tf_west_radio_code; - _opfor = tf_east_radio_code; - - if ((_friendWest > 0.6) && (_friendEast < 0.6)) then { - tf_guer_radio_code = _bluefor; - }; - - if ((_friendWest < 0.6) && (_friendEast > 0.6)) then { - tf_guer_radio_code = _opfor; - }; - -}; - -// ==================================================================================== diff --git a/f/radios/tfr/tfr_settings.sqf b/f/radios/tfr/tfr_settings.sqf deleted file mode 100644 index 163fc7397..000000000 --- a/f/radios/tfr/tfr_settings.sqf +++ /dev/null @@ -1,31 +0,0 @@ -// F3 - TFR Settings -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// RADIO STRUCTURE - -// Whether long range radios are automatically added -tf_no_auto_long_range_radio = true; - -// Should a side use the same short-wave frequencies -tf_same_sw_frequencies_for_side = true; - -// Should a side use the same long-wave frequencies -tf_same_lr_frequencies_for_side = true; - -// Whether any radios should be assigned at all, to any units -// TRUE = Disable radios for all units -f_radios_settings_tfr_disableRadios = FALSE; - -// Which units should be given LR backpacks -// TRUE = all group leaders get backpacks -// FALSE = only units defined in next variable will get LR backpacks -f_radios_settings_tfr_defaultLRBackpacks = FALSE; - -// Unit types you want to give long-range radios if previous is -// E.G: ["co", "m"] would give the CO and all medics 2 long-range radios -f_radios_settings_tfr_backpackRadios = ["co","dc","ftl","sp"]; - -// Independent radio encryption code: Independent faction use radio code of side -// they are friendly to if they are only friendly to one side. -f_radios_settings_tfr_indepUseRadioCode = FALSE; diff --git a/f/simplewoundingsystem/fn_EjectWounded.sqf b/f/simplewoundingsystem/fn_EjectWounded.sqf deleted file mode 100644 index 55555619f..000000000 --- a/f/simplewoundingsystem/fn_EjectWounded.sqf +++ /dev/null @@ -1,16 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -_veh = _this select 0; -_caller = _this select 1; - -{ - if(_x getVariable ["f_wound_down",false]) then - { - _x action["eject",_veh]; - sleep 0.2 - ; - _x switchmove "acts_InjuredLookingRifle02"; - }; -} foreach crew _veh; -_veh removeAction (_this select 2); \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_GetAnimation.sqf b/f/simplewoundingsystem/fn_GetAnimation.sqf deleted file mode 100644 index 97be9fa70..000000000 --- a/f/simplewoundingsystem/fn_GetAnimation.sqf +++ /dev/null @@ -1,11 +0,0 @@ -params ["_unit"]; -_anim = ""; -if(vehicle _unit == _unit) then -{ - _anim = "acts_InjuredLookingRifle02"; -} -else -{ - _anim = (getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0; -}; -_anim \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_HasWounded.sqf b/f/simplewoundingsystem/fn_HasWounded.sqf deleted file mode 100644 index a21922a44..000000000 --- a/f/simplewoundingsystem/fn_HasWounded.sqf +++ /dev/null @@ -1,12 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -_veh = _this select 0; -_ret = false; -{ - if(_x getVariable ["f_wound_down",false]) then - { - _ret = true; - }; -} foreach crew _veh; -_ret \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_LifeTick.sqf b/f/simplewoundingsystem/fn_LifeTick.sqf deleted file mode 100644 index 5c4a7556c..000000000 --- a/f/simplewoundingsystem/fn_LifeTick.sqf +++ /dev/null @@ -1,56 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -_unit = _this; - -// handles the woundeffect -[_unit] spawn -{ - _unit = _this select 0; - - while{alive _unit} do - { - _downed = _unit getVariable ["f_wound_down",false]; - _bleeding = _unit getVariable ["f_wound_bleeding",false]; - if(_downed || _bleeding) then - { - [] call f_fnc_WoundedEffect; - }; - sleep 2.5; - }; -}; - -// ticker for life, calculates death and blood. -while {alive _unit} do -{ - _downed = _unit getVariable ["f_wound_down",false]; - _bleeding = _unit getVariable ["f_wound_bleeding",false]; - _blood = _unit getVariable ["f_wound_blood",100]; - if(_bleeding && damage _unit < 0.26) then - { - // stops units from not being able to first aid. - _unit setdamage 0.26; - }; - if(_downed || _bleeding) then - { - // blood loss - _unit setVariable ["f_wound_blood",(_blood - (0.6 -(random 0.1))) max 0]; - if(damage _unit < 0.251) then {_unit setDamage 0.251}; - if(getBleedingRemaining _unit <= 0) then {_unit setBleedingRemaining 10;}; - if(_downed && {animationstate _unit != [_unit] call f_fnc_GetAnimation} && {!(["heal",animationstate _unit] call bis_fnc_inString)}) then - { - _unit playMove ""; - _unit switchmove ([_unit] call f_fnc_GetAnimation); - }; - } - else - { - // blood regens. - _unit setVariable ["f_wound_blood",(_blood + 1) min 100]; - }; - if(_blood <= 0) then - { - _unit setdamage 1; - }; - sleep 1; -}; diff --git a/f/simplewoundingsystem/fn_OnDamage.sqf b/f/simplewoundingsystem/fn_OnDamage.sqf deleted file mode 100644 index dc2ed5e8c..000000000 --- a/f/simplewoundingsystem/fn_OnDamage.sqf +++ /dev/null @@ -1,30 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -_unit = _this select 0; -_selection = _this select 1; -_damage = _this select 2; -_totalDamage = damage _unit + _damage; -if (f_param_debugMode == 1) then -{ - player sidechat format["%1 - '%2' - %3 - %4",_unit,_selection,_damage,_totalDamage]; -}; - -// if selection is not head or hands or "" check if we can save him. -if((_selection != "head") && _selection != "" && _selection != "hands" && _totalDamage > 1) then -{ - if(!(_unit getVariable ["f_wound_down",false])) then - { - [[_unit,true], "f_fnc_SetDowned", true] spawn BIS_fnc_MP; - - _damage = 0; - _unit spawn {_this allowDammage false;sleep 1;_this allowDammage true}; - }; -}; - -if(isBleeding _unit && _unit getVariable ["f_wound_bleeding",false]) then -{ - _unit setVariable ["f_wound_bleeding",true]; -}; -_damage - diff --git a/f/simplewoundingsystem/fn_OnDeath.sqf b/f/simplewoundingsystem/fn_OnDeath.sqf deleted file mode 100644 index e9278bc1b..000000000 --- a/f/simplewoundingsystem/fn_OnDeath.sqf +++ /dev/null @@ -1,9 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -// this just makes sure that the wounded people die and ragdoll after a while. -_unit = _this select 0; -if(_unit getVariable ["f_wound_down",false]) then -{ - [[_unit,false], "f_fnc_SetDowned", true] spawn BIS_fnc_MP; -}; \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_OnDrag.sqf b/f/simplewoundingsystem/fn_OnDrag.sqf deleted file mode 100644 index b139530df..000000000 --- a/f/simplewoundingsystem/fn_OnDrag.sqf +++ /dev/null @@ -1,68 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -_unit = _this select 0; -_dragger = _this select 1; -_dragger setVariable ["f_wound_dragging",_unit,true]; - -// the dragger gets a release option. -if(local _dragger) then -{ - _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil];(_this select 1) removeAction (_this select 2);}, nil, 6, false, true, "", "true"]; - - - switch (currentWeapon _dragger) do { - case (primaryWeapon _dragger): { - _dragger switchMove "acinpknlmstpsraswrfldnon"; - }; - case (secondaryWeapon _dragger): { - _dragger switchMove "AcinPknlMstpSnonWnonDnon"; - }; - }; -}; -_unit switchMove "AinjPpneMrunSnonWnonDb"; - -if(local _unit) then -{ - // setup the unit and all that fun stuff. - _unit attachTo [_dragger, [0, 1.1, 0.092]]; - _unit SetDir 180; - _unit SetPos (getpos _unit); - }; - -// lets wait a while. -waitUntil { - sleep 0.1; - _dude = _dragger getVariable ["f_wound_dragging",nil]; - ( isNil "_dude" || !alive _dragger || (_dragger getVariable ["f_wound_down",false])) -}; - - -_dragger setVariable ["f_wound_dragging",nil,true]; -// release unit. -detach _unit; -_unit setPosATL getposATL _dragger; - -if(!(_dragger getVariable ["f_wound_down",false])) then -{ - _unit switchMove "AinjPpneMstpSnonWrflDb_release"; -}; - -sleep 0.1; -if(_unit getVariable ["f_wound_down",false]) then -{ - _unit switchMove "acts_InjuredLookingRifle02"; -} -else -{ - _unit switchMove "amovppnemstpsraswrfldnon"; -}; - -if(_dragger getVariable ["f_wound_down",false]) then -{ - _dragger switchMove "acts_InjuredLookingRifle02"; -} -else -{ - _dragger switchMove ""; -}; \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_OnHeal.sqf b/f/simplewoundingsystem/fn_OnHeal.sqf deleted file mode 100644 index 6219f5188..000000000 --- a/f/simplewoundingsystem/fn_OnHeal.sqf +++ /dev/null @@ -1,25 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -// runs on the healer. -_unit = _this select 0; -_healer = _this select 1; -_ret = true; -[_unit,_healer] spawn { - _unit = _this select 0; - _healer = _this select 1; - waitUntil {(["medic",animationstate _healer] call bis_fnc_inString)}; - waitUntil {!(["medic",animationstate _healer] call bis_fnc_inString)}; - // if unit is bleeding, stop bleeding - if(_unit getVariable ["f_wound_bleeding",false]) then - { - [[_unit,false], "f_fnc_SetBleeding", true] spawn BIS_fnc_MP; - }; - - // if unit is down , revive him. - if(_unit getVariable ["f_wound_down",false] ) then - { - [[_unit,false], "f_fnc_SetDowned", true] spawn BIS_fnc_MP; - }; -}; -_ret diff --git a/f/simplewoundingsystem/fn_SetBleeding.sqf b/f/simplewoundingsystem/fn_SetBleeding.sqf deleted file mode 100644 index 32bb3984a..000000000 --- a/f/simplewoundingsystem/fn_SetBleeding.sqf +++ /dev/null @@ -1,5 +0,0 @@ -_unit = _this select 0; -_value = _this select 1; - -_unit setVariable ["f_wound_bleeding",_value]; -if(!_value) then {[] spawn f_fnc_WoundedEffect;}; \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_SetDowned.sqf b/f/simplewoundingsystem/fn_SetDowned.sqf deleted file mode 100644 index 1400bfa70..000000000 --- a/f/simplewoundingsystem/fn_SetDowned.sqf +++ /dev/null @@ -1,78 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -_unit = _this select 0; -_bool = _this select 1; - -// ==================================================================================== -if(_bool && alive _unit) then -{ - /// Check if they already down, don't down them again. - if(_unit getVariable ["f_wound_down",false]) exitWith {}; - - // The ai is a bit too triggerhappy so lets set the units as captive - _unit setVariable ["f_wound_down",true]; - _unit setCaptive 1; - - - // If the unit is local and a player, remove their magazines (otherwise they can throw grenades while down) - if(local _unit && isPlayer _unit) then - { - _unit setVariable ["f_wound_down_mags",magazines _unit]; - { - _unit removeMagazine _x; - } foreach magazines _unit; - // this disables the actionmenu for the users - showHud false; - - }; - - // Just a safety switch to ensure that the unit is wounded enough to have the firstaid option - if(damage _unit < 0.251) then { _unit setDamage 0.251}; - _unit playMove ""; - _unit switchmove ([_unit] call f_fnc_GetAnimation); - - // if _unit is not in a vehicle, play this animation otherwise fetch the dead animations from the vehicles. - if(vehicle _unit != _unit) then - { - (vehicle _unit) addAction ["Pull out wounded", {[_this, "f_fnc_EjectWounded", true] spawn BIS_fnc_MP;}, nil, 5, false, true, "", "_target distance _this < 5 && [_target] call f_fnc_HasWounded"]; - }; -} -else -{ - if(!(_unit getVariable ["f_wound_down",false])) exitWith {}; - - _unit setVariable ["f_wound_down",false]; - // if the unit is not in a vehicle, play pretty animation otherwise just reset to thier default animation - if(vehicle _unit == _unit) then - { - _unit switchmove "AinjPpneMstpSnonWnonDnon_rolltofront"; - } - else - { - _unit switchmove ""; - }; - // clean up. - _unit setCaptive 0; - _dragIndex = _unit getVariable ["f_wound_dragIndex",-1]; - if(_dragIndex >= 0) then {_unit removeAction _dragIndex}; - _unit setVariable ["f_wound_dragIndex",-1]; - - // give the unit back his magazines if hes local - if(local _unit) then - { - _mags = _unit getVariable ["f_wound_down_mags",magazines _unit]; - { - _unit addMagazine _x; - } foreach _mags; - - showHud true; - // reset the PP - F_UncToggle = true; - [] spawn f_fnc_WoundedEffect; - sleep 0.1; - // force him into prone otherwise he can get stuck in the rolltofrontanimation. - _unit playMove "amovppnemstpsraswrfldnon"; - }; -}; \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_WoundedEffect.sqf b/f/simplewoundingsystem/fn_WoundedEffect.sqf deleted file mode 100644 index 9999ed7d7..000000000 --- a/f/simplewoundingsystem/fn_WoundedEffect.sqf +++ /dev/null @@ -1,45 +0,0 @@ -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -// I don't know how this works but it does ;) -_damage=f_damage_effect + damage player; -if(!F_UncToggle) then -{ - F_UncCC ppEffectAdjust [1,1,0,[0.17, 0.0008, 0.0008, 0.001 max (1 min ((0.05/(_damage-0.8))-0.25))],[0.17, 0.0008, 0.0008, 1],[1, 1, 1, 0]]; - F_UncCC ppEffectAdjust [1,1,0,[0,0,0,0],[0.17, 0.0008, 0.0008, 0.218 max (1 min ((0.03/(_damage-0.819))+0.05))],[1, 1, 1, 0]]; - F_UncCC ppEffectEnable TRUE; - F_UncCC ppEffectForceInNVG TRUE; - F_UncCC ppEffectCommit 2.5; - F_UncBlur ppEffectAdjust [0.5]; - F_UncBlur ppEffectEnable TRUE; - F_UncBlur ppEffectCommit 0; - - - F_UncCC ppEffectAdjust [1,1,0,[0.15, 0.0, 0.0, (3.33*_damage)-2.83], [1.0, 0.5, 0.5, 1-((3.33*_damage)-2.83)], [0.587, 0.199, 0.114, 0.0]]; - F_UncCC ppEffectEnable TRUE; - F_UncCC ppEffectForceInNVG TRUE; - F_UncCC ppEffectCommit 2.5; - - F_UncBlur ppEffectAdjust [0.8]; - F_UncBlur ppEffectEnable TRUE; - F_UncBlur ppEffectCommit 0; - F_UncToggle = true; -} -else -{ - F_UncCC ppEffectAdjust [1,1,0,[0,0,0,0],[1,1,1,1],[0,0,0,0]]; - F_UncCC ppEffectCommit 3.5; //2.5 - - F_UncRadialBlur ppEffectAdjust [0.0, 0.0, 0.5, 0.5]; - F_UncRadialBlur ppEffectCommit 2.5; //2.5 - - F_UncBlur ppEffectAdjust [0]; - F_UncBlur ppEffectCommit 2.5; //2.5 - //sleep 3.5; - F_UncBlur ppEffectEnable FALSE; - F_UncToggle = false; -}; - - - - diff --git a/f/simplewoundingsystem/init.sqf b/f/simplewoundingsystem/init.sqf deleted file mode 100644 index a647302c3..000000000 --- a/f/simplewoundingsystem/init.sqf +++ /dev/null @@ -1,73 +0,0 @@ - -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -if (isDedicated) ExitWith {}; -_unit = _this select 0; - - - -// add breifing -if(isNil "f_wound_briefing") then{f_wound_briefing = true;}; -if(isNil "f_wound_extraFAK") then {f_wound_extraFAK = 0}; - -if(f_wound_briefing) then -{ - [] spawn - { - waitUntil {scriptDone f_script_briefing}; - _bstr = format ["
OVERVIEW
-When a player is wounded to the point of being 'incapacitated' they become a casualty. Casualties are prone and unable to move. -

-TREATING CASUALTIES
-Players equipped with at least 1 x FAK can treat a casualty by moving next to them and selecting the relevant action menu option. Treatment uses up 1 x FAK. -

-DRAGGING CASUALTIES
-Players can drag a casualty by moving next to them and selecting the relevant action menu option. Whilst dragging, the player has an action menu option for releasing the casualty. -

-BLEEDING OUT
-An incapacitated player only has a few minutes before her/his wounds become fatal and they die."]; - player createDiaryRecord ["Diary", ["F3 Simple Wounding System",_bstr]]; - }; -}; - - - -for [{_i=1},{_i<=f_wound_extraFAK},{_i=_i+1}] do { - _unit addItem "FirstAidKit"; -}; - -/// lets wait a bit. -sleep 5; - -// default variables. -_unit setVariable ["f_wound_down",false]; -_unit setVariable ["f_wound_bleeding",false]; -_unit setVariable ["f_wound_blood",100]; // other player dont need know this -_unit setVariable ["f_wound_dragging",nil]; -f_wound_healAnimations = ["ainvpknlmstpslaywpstdnon_medic","ainvpknlmstpslaywrfldnon_medic","ainvpknlmstpslaywnondnon_medic","ainvppnemstpslaywnondnon_medic","AinvPpneMstpSlayWnonDnon_medic","AinvPpneMstpSlayWpstDnon_medic","AinvPpneMstpSlayWrflDnon_medic",""]; - -/// Lifeticker, manages bleeding and blood values. -_unit spawn f_fnc_LifeTick; - - -// HandleHeal needs to be one the player you heal. -{ - _x setVariable ["f_wound_down",false]; - _x setVariable ["f_wound_bleeding",false]; - _x addEventHandler ["HandleHeal",{_this call f_fnc_OnHeal}]; - // Drag Action. - _addIndex = _x addAction [format ["Drag %1", name _x],{[_this, "f_fnc_OnDrag", [_this select 0,_this select 1],false] spawn BIS_fnc_MP;}, nil, 6, false, true, "", "_var = _this getVariable ['f_wound_dragging',nil];_target distance _this < 2 && isNil '_var' && _target getVariable['f_wound_down',false] && !(_this getVariable ['f_wound_down',false])"]; -} foreach playableUnits; - -// defines the PP effects for the downed effect. -F_UncCC = ppEffectCreate ["ColorCorrections", 1603]; -F_UncRadialBlur = ppEffectCreate ["RadialBlur", 280]; -F_UncBlur = ppEffectCreate ["DynamicBlur", 180]; -F_UncToggle = false; -f_damage_effect = 1.1; - -// Eventhandlers for the player. -_unit addEventHandler ["killed", {_this call f_fnc_OnDeath}]; -_unit addEventHandler ["HandleDamage",{_this call f_fnc_OnDamage}]; - diff --git a/f/spect/config.hpp b/f/spect/config.hpp deleted file mode 100644 index f42e19844..000000000 --- a/f/spect/config.hpp +++ /dev/null @@ -1,827 +0,0 @@ -#define BACKGROUND_COLOR {0.059,0.059,0.059,1} -#define PRIMARYCOLOR {0.918,0.655,0.141,1} -class RscSpectListBox { - access = 0; - type = 5; - w = 0.4; - h = 0.4; - rowHeight = 0; - rowWidth = 0; - colorText[] = {1, 1, 1, 1}; - 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, 1}; - soundSelect[] = {"", 0.1, 1}; - arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; - arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; - class ListScrollBar { - color[] = {1, 1, 1, 0.6}; - colorActive[] = {1, 1, 1, 1}; - colorDisabled[] = {1, 1, 1, 0.3}; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; - style = 528; - font = "TahomaB"; - sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 50) * 1)"; - shadow = 0; - colorShadow[] = {0, 0, 0, 0.5}; - color[] = {1, 1, 1, 0.1}; - colorDisabled[] = {1, 1, 1, 0.25}; - period = 1.2; - maxHistoryDelay = 99999999999999999; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; -}; -class RscSpectFrame { - type = 0; - idc = -1; - style = 64; - shadow = 2; - colorBackground[] = {0, 0, 0, 0}; - colorText[] = PRIMARYCOLOR; - font = "PuristaMedium"; - sizeEx = 0.02; - text = ""; - -}; -class RscSpectMapControl -{ - access = 0; - alphaFadeEndScale = 2; - alphaFadeStartScale = 2; - colorBackground[] = {0.969,0.957,0.949,1}; - colorCountlines[] = {0.572,0.354,0.188,0.25}; - colorCountlinesWater[] = {0.491,0.577,0.702,0.3}; - colorForest[] = {0.624,0.78,0.388,0.5}; - colorForestBorder[] = {0,0,0,0}; - colorGrid[] = {0.1,0.1,0.1,0.6}; - colorGridMap[] = {0.1,0.1,0.1,0.6}; - colorInactive[] = {1,1,1,0.5}; - colorLevels[] = {0.286,0.177,0.094,0.5}; - colorMainCountlines[] = {0.572,0.354,0.188,0.5}; - colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6}; - colorMainRoads[] = {0.9,0.5,0.3,1}; - colorMainRoadsFill[] = {1,0.6,0.4,1}; - colorNames[] = {0.1,0.1,0.1,0.9}; - colorOutside[] = {0,0,0,1}; - colorPowerLines[] = {0.1,0.1,0.1,1}; - colorRailWay[] = {0.8,0.2,0,1}; - colorRoads[] = {0.7,0.7,0.7,1}; - colorRoadsFill[] = {1,1,1,1}; - colorRocks[] = {0,0,0,0.3}; - colorRocksBorder[] = {0,0,0,0}; - colorSea[] = {0.467,0.631,0.851,0.5}; - colorText[] = {0,0,0,1}; - colorTracks[] = {0.84,0.76,0.65,0.15}; - colorTracksFill[] = {0.84,0.76,0.65,1}; - font = "TahomaB"; - fontGrid = "TahomaB"; - fontInfo = "PuristaMedium"; - fontLabel = "PuristaMedium"; - fontLevel = "TahomaB"; - fontNames = "PuristaLight"; - fontUnits = "TahomaB"; - h = "SafeZoneH - 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - idc = 51; - maxSatelliteAlpha = 0.85; - moveOnEdges = 1; - ptsPerSquareCLn = 10; - ptsPerSquareCost = 10; - ptsPerSquareExp = 10; - ptsPerSquareFor = 9; - ptsPerSquareForEdge = 9; - ptsPerSquareObj = 9; - ptsPerSquareRoad = 6; - ptsPerSquareSea = 5; - ptsPerSquareTxt = 20; - scaleDefault = 0.16; - scaleMax = 1; - scaleMin = 0.001; - shadow = 0; - showCountourInterval = 0; - sizeEx = 0.04; - sizeExGrid = 0.02; - sizeExInfo = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - sizeExLabel = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - sizeExLevel = 0.02; - sizeExNames = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2"; - sizeExUnits = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - stickX[] = {0.2,["Gamma",1,1.5]}; - stickY[] = {0.2,["Gamma",1,1.5]}; - style = 48; - text = "#(argb,8,8,3)color(1,1,1,1)"; - type = 101; - w = "SafeZoneWAbs"; - x = "SafeZoneXAbs"; - y = "SafeZoneY + 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - class Legend { - colorBackground[] = {1, 1, 1, 0.5}; - color[] = {0, 0, 0, 1}; - x = "SafeZoneX + ( ((safezoneW / safezoneH) min 1.2) / 40)"; - y = "SafeZoneY + safezoneH - 4.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; - h = "3.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - font = "PuristaMedium"; - sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - }; - 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 { - 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[] = {0, 0, 0, 1}; - icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa"; - size = 24; - 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 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 = 20; - importance = "2 * 16 * 0.05"; - coefMin = 0.9; - coefMax = 4; - }; - 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[] = {0, 0, 0, 0}; - size = 24; - importance = 1; - coefMin = 1; - coefMax = 1; - icon = ""; - }; - class WaypointCompleted { - color[] = {0, 0, 0, 0}; - size = 24; - importance = 1; - coefMin = 1; - coefMax = 1; - icon = ""; - }; - class power { - icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1; - color[] = {1, 1, 1, 1}; - }; - class powersolar { - icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1; - color[] = {1, 1, 1, 1}; - }; - class powerwave { - icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1; - color[] = {1, 1, 1, 1}; - }; - class powerwind { - icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1; - color[] = {1, 1, 1, 1}; - }; - class shipwreck { - icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1; - color[] = {1, 1, 1, 1}; - }; -}; -class RscSpectPic -{ - idc = -1; - type = 0; - style = 48; //1 2 3...176 - tileH = 2; //Tile Picture height (style = 144) - tileW = 5; //Tile Picture width (style = 144) - x = 0.25; - y = 0.25; - h = 0.5; - w = 0.5; - font = "EtelkaNarrowMediumPro"; - sizeEx = 0.05; - colorBackground[] = {1,1,1,1}; //white background - colorText[] = {1,1,1,1}; //grey foreground - text = "#(argb,8,8,3)color(0.918,0.655,0.141,1)"; - lineSpacing = 1; //required for multi-line style -}; -class RscSpectButton { - access = 0; - borderSize = 0.001 * safezoneW; - colorBorder[] = PRIMARYCOLOR; - colorBackgroundActive[] = {0.314,0.314,0.314,1}; - colorBackgroundDisabled[] = BACKGROUND_COLOR; - colorDisabled[] = {0.4,0.4,0.4,1}; - colorFocused[] = BACKGROUND_COLOR; - colorShadow[] = PRIMARYCOLOR; - colorText[] = PRIMARYCOLOR; - color[] = {1,1,1,1}; - colorBackground[] = BACKGROUND_COLOR; - font = "PuristaLight"; - h = 0.039216; - offsetPressedX = 0; - offsetPressedY = 0; - offsetX = 0; - offsetY = 0; - shadow = 0; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - soundClick[] = {"\A3\ui_f\data\sound\RscSpectButton\soundClick",0.09,1}; - soundEnter[] = {"\A3\ui_f\data\sound\RscSpectButton\soundEnter",0.09,1}; - soundEscape[] = {"\A3\ui_f\data\sound\RscSpectButton\soundEscape",0.09,1}; - soundPush[] = {"\A3\ui_f\data\sound\RscSpectButton\soundPush",0.09,1}; - style = 0x02 + 160; - text = ""; - type = 1; - blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect. - tooltipColorShade[] = BACKGROUND_COLOR; // Tooltip background color - tooltipColorText[] = PRIMARYCOLOR; // Tooltip text color - tooltipColorBox[] = PRIMARYCOLOR; // Tooltip frame color - w = 0.095589; - x = 0; - y = 0; - }; - class RscSpectStructuredText { - access = 0; - h = 0.035; - idc = -1; - shadow = 1; - color = "#EAA724"; - colorBackground[] = BACKGROUND_COLOR; - size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - style = 0; - text = ""; - type = 13; - w = 0.1; - x = 0; - y = 0; -}; -class RscSpectIGUIBack { - type = 0; - idc = 124; - style = 128; - text = ""; - colorText[] = {0, 0, 0, 0}; - font = "PuristaMedium"; - sizeEx = 0; - shadow = 0; - x = 0.1; - y = 0.1; - w = 0.1; - h = 0.1; - colorbackground[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"}; -}; -class RscSpectText { - access = 0; - type = 0; - idc = -1; - colorBackground[] = {0, 0, 0, 0}; - colorText[] = {1, 1, 1, 1}; - text = ""; - fixedWidth = 0; - x = 0; - y = 0; - h = 0.037; - w = 0.3; - style = 0; - shadow = 1; - colorShadow[] = {0, 0, 0, 0.5}; - font = "PuristaLight"; - SizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - linespacing = 1; -}; -class RscSpectControlsGroup { - type = 15; - idc = -1; - style = 0; - x = 0; - y = 0; - w = 1; - h = 1; - class VScrollbar { - color[] = {1,1,1,1 }; - width = 0.021000; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - }; - class HScrollbar { - color[] = {1, 1, 1, 1}; - height = 0.028; - }; - class ListScrollBar { - 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"; - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - }; - class Controls {}; -}; - - -class RscSpectList -{ - access = 0; - rowHeight = 0; - rowWidth = 0; - arrowEmpty = ""; - arrowFull = ""; - color[] = {1,1,1,1}; - colorActive[] = {1,0,0,0.8}; - colorBackground[] = {0,0,0,0}; - colorDisabled[] = {1,1,1,0.25}; - colorScrollbar[] = {1,0,0,0}; - colorSelect[] = {1,1,1,0.8}; - colorSelectBackground[] = {1,1,1,0.7}; - colorText[] = {1,1,1,1}; - font = "TahomaB"; - h = 0.035; - maxHistoryDelay = 1; - shadow = 1; - sizeEx = "( ( ( ((safezoneW / safezoneH) min 0.9) / 1.2) / 25) * 1)"; - soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; - soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; - soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; - // style = "0x10 + 0x200"; - type = 5; - // type = 5; - style = 528; - w = 0.12; - wholeHeight = 0.45; - x = 0; - y = 0; - class ListScrollBar - { - arrowEmpty = ""; - arrowFull = ""; - border = ""; - color[] = {1,1,1,0}; - colorActive[] = {1,1,1,0}; - colorDisabled[] = {1,1,1,0.1}; - shadow = 0; - thumb = ""; - }; - autoScrollSpeed = 0; - autoScrollDelay = 0; - autoScrollRewind = 0; - -}; - -class RscSpectCombo -{ - access = 0; - arrowEmpty = "#(argb,8,8,3)color(0.918,0.655,0.141,1)"; - arrowFull = "#(argb,8,8,3)color(0.918,0.655,0.141,1)"; - color[] = PRIMARYCOLOR; - colorActive[] = BACKGROUND_COLOR; - colorBackground[] = BACKGROUND_COLOR; - colorDisabled[] = {1,1,1,0.25}; - colorScrollbar[] = BACKGROUND_COLOR; - colorSelect[] = {1,1,1,1}; - colorSelectBackground[] = BACKGROUND_COLOR; - colorText[] = PRIMARYCOLOR; - font = "PuristaLight"; - h = 0.035; - maxHistoryDelay = 1; - shadow = 0; - colorBorder[] = PRIMARYCOLOR; - sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.0) / 1.0) / 25) * 1)"; - soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; - soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; - soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; - style = 0x02 + 160; - type = 4; - w = 0.12; - wholeHeight = "5 * safezoneH"; - x = 0; - y = 0; - class ComboScrollBar - { - arrowEmpty = ""; - arrowFull = ""; - border = ""; - color[] = {1,1,1,0.0}; - colorActive[] = {1,1,1,0.0}; - colorDisabled[] = {1,1,1,0.0}; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - }; - -}; - -class f_spec_dialog { - idd = 9228; - movingEnable = 1; - enableSimulation = 1; - enableDisplay = 1; - fadein = 0; - fadeout = 0; - duration = 2147483647; - onKeyDown = "[""KeyDown"",_this] call F_fnc_EventHandler"; - onKeyUp= "[""KeyUp"",_this] call F_fnc_EventHandler"; - onUnload = "[] spawn f_fnc_OnUnload"; - class controlsBackground { - class mouseHandler: RscSpectControlsGroup { - class ListScrollBar - { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.0}; - thumb = ""; - arrowFull = ""; - arrowEmpty = ""; - border = ""; - }; - onMouseButtonDown = "[""MouseButtonDown"",_this] call F_fnc_EventHandler"; - onMouseButtonUp = "[""MouseButtonUp"",_this] call F_fnc_EventHandler"; - onMouseZChanged = "[""MouseZChanged"",_this] call F_fnc_EventHandler"; - onMouseMoving = "['MouseMoving',_this] call F_fnc_EventHandler"; - idc = 123; - x = SafeZoneX; y = SafeZoneY; - w = SafeZoneW; h = SafeZoneH; - colorBackground[] = {0.2, 0.0, 0.0, 0.0}; - }; - class OnEnterBox : RscSpectButton - { - idc = 4344; - x = -0.1 * safezoneW + safezoneX; - y = -0.1 * safezoneH + safezoneY; - w = 0.4 * safezoneW; - h = 0.2 * safezoneH; - // onMouseEnter = "[true] spawn f_fnc_showMenu;f_cam_menuShownTime=time;"; - // onMouseExit = "[false] spawn f_fnc_showMenu;"; - onMouseHolding = "f_cam_menuShownTime=time"; - onMouseMoving = "f_cam_menuShownTime=time"; - borderSize = 0; - colorBorder[] = {0,0,0,0}; - colorBackgroundActive[] = {0,0,0,0}; - colorBackgroundDisabled[] = {0,0,0,0}; - colorDisabled[] = {0,0,0,0}; - colorFocused[] = {0,0,0,0}; - colorShadow[] = {0,0,0,0}; - colorText[] = {0,0,0,0}; - color[] = {0,0,0,0}; - colorBackground[] = {0,0,0,0}; - }; - class Devider: RscSpectPic - { - idc = 4302; - x = 0.00293747 * safezoneW + safezoneX; - y = -0.00160002 * safezoneH + safezoneY; - w = 0.180469 * safezoneW; - h = 0.02 * safezoneH; - }; - class SpectStrText: RscSpectStructuredText - { - idc = 1310; - x = 0.341317 * safezoneW + safezoneX; - y = 0.283882 * safezoneH + safezoneY; - w = 0.317366 * safezoneW; - h = 0.375858 * safezoneH; - text = ""; - // text = "
Use the mouse or the WASD to control the camera, H to show and close the help window.
Press M for the map.
"; - }; - class SpecFrame: RscSpectFrame - { - idc = 1300; - x = 0.341317 * safezoneW + safezoneX; - y = 0.283882 * safezoneH + safezoneY; - w = 0.317366 * safezoneW; - h = 0.375858 * safezoneH; - // text = "
Use the mouse or the WASD to control the camera, H to show and close the help window.
Press M for the map.
"; - }; - - }; - class controls { - class SpectButtonExit: RscSpectButton - { - idc = 1315; - x = 0.6 * safezoneW + safezoneX; - y = 0.609136 * safezoneH + safezoneY; - w = 0.0352629 * safezoneW; - h = 0.0287929 * safezoneH; - text = "Okay"; - action = "ctrlShow [1315, !ctrlVisible 1315];ctrlShow [1310, !ctrlVisible 1310];ctrlShow [1300, !ctrlVisible 1300];"; - }; - class FilterAIButton: RscSpectButton - { - idc = 2111; - x = 0.00046248 * safezoneW + safezoneX; - y = -5.99921e-005 * safezoneH + safezoneY; - w = 0.04 * safezoneW; - h = 0.02 * safezoneH; - text = "All units"; - tooltip = "Toggle AI"; - sizeEx = "( ( ( ((safezoneW / safezoneH) min 0.9) / 1.2) / 25) * 1)"; - onButtonClick = "[_this select 0,0] call f_fnc_HandleMenu"; - onMouseHolding = "f_cam_menuShownTime=time"; - onMouseMoving = "f_cam_menuShownTime=time"; - - }; - class SideFilterButton: RscSpectButton - { - idc = 2112; - x = 0.0425375 * safezoneW + safezoneX; - y = -5.99921e-005 * safezoneH + safezoneY; - w = 0.04 * safezoneW; - h = 0.02 * safezoneH; - text = "All Sides"; - tooltip = "Filter by side"; - sizeEx = "(((((safezoneW / safezoneH) min 0.9) / 1.2) / 25) * 1)"; - onButtonClick = "[_this select 0,1] call f_fnc_HandleMenu"; - onMouseHolding = "f_cam_menuShownTime=time"; - onMouseMoving = "f_cam_menuShownTime=time"; - }; - class TagsNameButton: RscSpectButton - { - idc = 2113; - x = 0.0846125 * safezoneW + safezoneX; - y = -5.99921e-005 * safezoneH + safezoneY; - w = 0.04 * safezoneW; - h = 0.02 * safezoneH; - text = "Tags"; - tooltip = "Toggle tags"; - sizeEx = "(((((safezoneW / safezoneH) min 0.9) / 1.2) / 25) * 1)"; - onButtonClick = "[_this select 0,2] call f_fnc_HandleMenu"; - onMouseHolding = "f_cam_menuShownTime=time"; - onMouseMoving = "f_cam_menuShownTime=time"; - }; - class FirstPersonButton: RscSpectButton - { - idc = 2114; - x = 0.12679 * safezoneW + safezoneX; - y = -5.99921e-005 * safezoneH + safezoneY; - w = 0.05 * safezoneW; - h = 0.02 * safezoneH; - text = "First Person"; - tooltip = "Switch between First Person or Third person"; - sizeEx = "(((((safezoneW / safezoneH) min 0.9) / 1.2) / 25) * 1)"; - onButtonClick = "[_this select 0,3] call f_fnc_HandleMenu"; - onMouseHolding = "f_cam_menuShownTime=time"; - onMouseMoving = "f_cam_menuShownTime=time"; - }; - class SpecUnitBox: RscSpectList - { - idc = 2100; - x = 0 * safezoneW + safezoneX; - y = 0.03 * safezoneH + safezoneY; - w = 0.1 * safezoneW; - h = 0.9 * safezoneH; - onLBSelChanged = "[""LBListSelChanged"",_this] call F_fnc_EventHandler"; - }; - class SpecModes: RscSpectCombo - { - idc = 2101; - x = 0.178999 * safezoneW + safezoneX; - y = -5.99921e-005 * safezoneH + safezoneY; - w = 0.07 * safezoneW; - h = 0.02 * safezoneH; - sizeEx = "(((((safezoneW / safezoneH) min 0.9) / 1.2) / 25) * 1)"; - onLBSelChanged = "[""LBListSelChanged_modes"",_this] call F_fnc_EventHandler"; - onMouseHolding = "f_cam_menuShownTime=time"; - onMouseMoving = "f_cam_menuShownTime=time"; - }; - class SpecText: RscSpectText - { - idc = 1000; - text = "Spectating:Unknown"; //--- ToDo: Localize; - x = 0.430336 * safezoneW + safezoneX; - y = 0.00159198 * safezoneH + safezoneY; - w = 0.800 * safezoneW; - h = 0.0200 * safezoneH; - }; - class SpectMap : RscSpectMapControl - { - type = 100; - idc = 1350; - x = 0.00640556 * safezoneW + safezoneX; - y = 0.772714 * safezoneH + safezoneY; - w = 0.132213 * safezoneW; - h = 0.21629 * safezoneH; - onMouseZChanged = "[""MapZoom"",_this] call F_fnc_EventHandler;"; - onMouseButtonClick = "_this call F_fnc_OnMapClick"; - onDraw = "_this call F_fnc_DrawMarkers"; - }; - class FullSpectMap : RscSpectMapControl - { - idc = 1360; - type = 100; - x = 0 * safezoneW + safezoneX; - y = 0 * safezoneH + safezoneY; - w = 1 * safezoneW; - h = 1 * safezoneH; - onDraw = "_this call F_fnc_DrawMarkers"; - onMouseButtonClick = "_this call F_fnc_OnMapClick"; - - }; - }; -}; diff --git a/f/spect/fn_CamInit.sqf b/f/spect/fn_CamInit.sqf deleted file mode 100644 index 8fdc4b713..000000000 --- a/f/spect/fn_CamInit.sqf +++ /dev/null @@ -1,236 +0,0 @@ -// F3 - Spectator Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -// params -_this spawn { -_unit = [_this, 0, player,[objNull]] call BIS_fnc_param; -_oldUnit = [_this, 1, objNull,[objNull]] call BIS_fnc_param; -_forced = [_this, 4, false,[false]] call BIS_fnc_param; -if(isNil "f_cam_isJIP") then { f_cam_isJIP = false; }; -// if they are jip, these are null -if(isNull _unit ) then {_unit = cameraOn;f_cam_isJIP=true;}; -// escape the script if you are not a seagull unless forced -if (typeof _unit != "seagull" && !_forced || !hasInterface) ExitWith {}; -// disable this to instantly switch to the spectator script. -waituntil {missionnamespace getvariable ["BIS_fnc_feedback_allowDeathScreen",true] || isNull (_oldUnit) || f_cam_isJIP || _forced }; -hintsilent ""; - - -// ==================================================================================== - -if(!isnil "BIS_fnc_feedback_allowPP") then -{ - // disable effects death effects - BIS_fnc_feedback_allowPP = false; -}; - -if(f_cam_isJIP) then -{ - ["F_ScreenSetup",false] call BIS_fnc_blackOut; - systemChat "Initializing Spectator Script"; - uiSleep 3; - ["F_ScreenSetup"] call BIS_fnc_blackIn; -}; - -// Create a Virtual Agent to act as our player to make sure we get to keep Draw3D -if(isNil "f_cam_VirtualCreated") then -{ - createCenter sideLogic; - _newGrp = createGroup sideLogic; - _newUnit = _newGrp createUnit ["VirtualCurator_F", [0,0,5], [], 0, "FORM"]; - _newUnit allowDamage false; - _newUnit hideObjectGlobal true; - _newUnit enableSimulationGlobal false; - _newUnit setpos [0,0,5]; - selectPlayer _newUnit; - waituntil{player == _newUnit}; - deleteVehicle _unit; - f_cam_VirtualCreated = true; -}; - -if(isNull _oldUnit ) then {if(count playableUnits > 0) then {_oldUnit = (playableUnits select 0)} else {_oldUnit = (allUnits select 0)};}; - -// ==================================================================================== -// Set spectator mode for whichever radio system is in use -if (isClass (configFile >> "CfgPatches" >> "task_force_radio")) then { - [player, true] call TFAR_fnc_forceSpectator; -}; - -if (isClass(configFile >> "CfgPatches" >> "acre_main")) then { - [true] call acre_api_fnc_setSpectator; - if (!isNil "f_radios_settings_acre2_languages") then { - _languages = []; - { - _languages pushBack (_x select 0); - } forEach f_radios_settings_acre2_languages; - _languages call acre_api_fnc_babelSetSpokenLanguages; - }; -}; - -// ==================================================================================== - -_listBox = 2100; -lbClear _listBox; -// set inital values. -#include "macros.hpp" -f_cam_controls = [F_CAM_HELPFRAME,F_CAM_HELPBACK,F_CAM_MOUSEHANDLER,F_CAM_UNITLIST,F_CAM_MODESCOMBO,F_CAM_SPECTEXT,F_CAM_SPECHELP,F_CAM_HELPCANCEL,F_CAM_HELPCANCEL,F_CAM_MINIMAP,F_CAM_FULLMAP,F_CAM_BUTTIONFILTER,F_CAM_BUTTIONTAGS,F_CAM_BUTTIONTAGSNAME,F_CAM_BUTTIONFIRSTPERSON,F_CAM_DIVIDER]; -f_cam_units = []; -f_cam_players = []; -f_cam_startX = 0; -f_cam_startY = 0; -f_cam_detlaX = 0; -f_cam_detlaY = 0; -f_cam_zoom = 0; -f_cam_hideUI = false; -f_cam_map_zoom = 0.5; -f_cam_mode = 0; -f_cam_toggleCamera = false; -f_cam_playersOnly = false; -f_cam_toggleTags = true; -f_cam_ads = false; -f_cam_nvOn = false; -f_cam_tiBHOn = false; -f_cam_tiWHOn = false; -f_cam_tagsEvent = -1; -f_cam_mShift = false; -f_cam_freecamOn = false; -f_cam_toggleTagsName = true; -f_cam_mapMode = 0; -f_cam_MouseButton = [false,false]; -f_cam_mouseCord = [0.5,0.5]; -f_cam_mouseDeltaX = 0.5; -f_cam_mouseDeltaY = 0.5; -f_cam_mouseLastX = 0.5; -f_cam_mouseLastY = 0.5; -f_cam_angleYcached = 0; -f_cam_angleX = 0; -f_cam_tracerOn = false; -f_cam_angleY = 60; -f_cam_ctrl_down = false; -f_cam_shift_down = false; -f_cam_freecam_buttons = [false,false,false,false,false,false]; -f_cam_forcedExit = false; -f_freecam_x_speed = 0; -f_freecam_y_speed = 0; -f_freecam_z_speed = 0; - - -f_cam_timestamp = time; -f_cam_muteSpectators = true; - -// ==================================================================================== -// Menu (Top left) -f_cam_menuControls = [2111,2112,2113,2114,2101,4302]; -f_cam_menuShownTime = 0; -f_cam_menuShown = true; -f_cam_menuWorking = false; -f_cam_sideButton = 0; // 0 = ALL, 1 = BLUFOR , 2 = OPFOR, 3 = INDFOR , 4 = Civ -f_cam_sideNames = ["All Sides","Blufor","Opfor","Indfor","Civ"]; -// ==================================================================================== -// Colors - -f_cam_blufor_color = [BLUFOR] call bis_fnc_sideColor; -f_cam_opfor_color = [OPFOR] call bis_fnc_sideColor; -f_cam_indep_color = [independent] call bis_fnc_sideColor; -f_cam_civ_color = [civilian] call bis_fnc_sideColor; -f_cam_empty_color = [sideUnknown] call bis_fnc_sideColor; - -// ================================ -// Camera -f_cam_angle = 360; -f_cam_zoom = 3; -f_cam_height = 3; -f_cam_fovZoom = 1.2; -f_cam_scrollHeight = 0; -f_cam_cameraMode = 0; // set camera mode (default) -// ==================================================================================== - -f_cam_listUnits = []; - -f_cam_ToggleFPCamera = { - f_cam_toggleCamera = !f_cam_toggleCamera; - if(f_cam_toggleCamera) then - { - f_cam_mode = 1; //(view) - f_cam_camera cameraEffect ["terminate", "BACK"]; - f_cam_curTarget switchCamera "internal"; - } - else - { - f_cam_mode = 0; - f_cam_camera cameraEffect ["internal", "BACK"]; - }; - call F_fnc_ReloadModes; -}; -f_cam_GetCurrentCam = { - _camera = f_cam_camera; - switch(f_cam_mode) do - { - case 0: - { - _camera = f_cam_camera; // Standard - }; - case 1: - { - _camera = cameraOn; // FP - }; - case 3: - { - _camera = f_cam_freecamera; // freecam - }; - }; - _camera -}; - - -// ============================================================================= - -// create the UI -createDialog "f_spec_dialog"; -// add keyboard events -// hide minimap -((findDisplay 9228) displayCtrl 1350) ctrlShow false; -((findDisplay 9228) displayCtrl 1350) mapCenterOnCamera false; - -// hide big map -((findDisplay 9228) displayCtrl 1360) ctrlShow false; -((findDisplay 9228) displayCtrl 1360) mapCenterOnCamera false; - -f_cam_helptext = "
Hold right-click to pan the camera
Use the scroll wheel or numpad+/- to zoom in and out.
Use ctrl + rightclick to fov zoom

Press H to show and close the help window.
Press M to toggle between no map,minimap and full size map.
T for switching on tracers on the map
Space to switch to freecam
Press H to close this window
"; -((findDisplay 9228) displayCtrl 1310) ctrlSetStructuredText parseText (f_cam_helptext); -// create the camera and set it up. -f_cam_camera = "camera" camCreate [position _oldUnit select 0,position _oldUnit select 1,3]; - -f_cam_fakecamera = "camera" camCreate [position _oldUnit select 0,position _oldUnit select 1,3]; - -f_cam_curTarget = _oldUnit; -f_cam_freecamera = "camera" camCreate [position _oldUnit select 0,position _oldUnit select 1,3]; -f_cam_camera camCommit 0; -f_cam_fakecamera camCommit 0; -f_cam_camera cameraEffect ["internal","back"]; -f_cam_camera camSetTarget f_cam_fakecamera; -f_cam_camera camSetFov 1.2; -f_cam_freecamera camSetFov 1.2; -f_cam_zeusKey = 21; -if( count (actionKeys "curatorInterface") > 0 ) then -{ - f_cam_zeusKey = (actionKeys "curatorInterface") select 0; -}; -f_cam_MouseMoving = false; -cameraEffectEnableHUD true; -showCinemaBorder false; -f_cam_fired = []; -{ - _event = _x addEventHandler ["fired",{f_cam_fired = f_cam_fired - [objNull];f_cam_fired pushBack (_this select 6)}]; - _x setVariable ["f_cam_fired_eventid",_event]; - -} foreach (allunits + vehicles); -// ==================================================================================== -// spawn sub scripts -call f_fnc_ReloadModes; -lbSetCurSel [2101,0]; -//f_cam_freeCam_script = [] spawn F_fnc_FreeCam; -f_cam_updatevalues_script = [] spawn F_fnc_UpdateValues; - ["f_spect_tags", "onEachFrame", {_this call F_fnc_DrawTags}] call BIS_fnc_addStackedEventHandler; - ["f_spect_cams", "onEachFrame", {_this call F_fnc_FreeCam}] call BIS_fnc_addStackedEventHandler; -}; \ No newline at end of file diff --git a/f/spect/fn_DrawMarkers.sqf b/f/spect/fn_DrawMarkers.sqf deleted file mode 100644 index aec9b1d37..000000000 --- a/f/spect/fn_DrawMarkers.sqf +++ /dev/null @@ -1,40 +0,0 @@ -if(f_cam_mapMode == 0) exitWith {}; -disableSerialization; -params["_fullmapWindow"]; -_camera = ([] call f_cam_GetCurrentCam); -_fullmapWindow drawIcon ["\A3\ui_f\data\GUI\Rsc\RscDisplayMissionEditor\iconCamera_ca.paa", [0,0,0,1],getpos _camera ,20,20,getDir _camera,"",0]; -{ - if(alive _x) then - { - _name = ""; - _color = switch (side _x) do { - case blufor: {f_cam_blufor_color}; - case opfor: {f_cam_opfor_color}; - case independent: {f_cam_indep_color}; - case civilian: {f_cam_civ_color}; - default {f_cam_empty_color}; - }; - if(isPlayer _x) then {_name = name _x}; - if(leader _x == _x && {isPlayer _x} count units _x > 0) then {_name = format["%1 - %2",toString(toArray(groupID (group _x)) - [45]),_name]}; - if(vehicle _x != _x && crew (vehicle _x) select 0 == _x || vehicle _x == _x) then - { - _icon = (vehicle _x getVariable ["f_cam_icon",""]); - if(_icon == "") then {_icon = gettext (configfile >> "CfgVehicles" >> typeOf (vehicle _x) >> "icon");vehicle _x setVariable ["f_cam_icon",_icon]}; - _fullmapWindow drawIcon [_icon,_color,getpos _x,19,19,getDir (vehicle _x),_name,1]; - }; - }; - -} foreach allunits; -f_cam_fired = f_cam_fired - [objNull]; -if(f_cam_tracerOn) then -{ - { - if(!isNull _x) then - { - _pos = getpos _x; - _newPos = [(_pos select 0) + (3 * sin(getdir _x)), (_pos select 1) + (3 * cos(getdir _x)), _pos select 2]; - _fullmapWindow drawLine [_pos,_newPos,[1,0,0,1]]; - }; - } foreach f_cam_fired; -}; - diff --git a/f/spect/fn_DrawTags.sqf b/f/spect/fn_DrawTags.sqf deleted file mode 100644 index 005fe1b25..000000000 --- a/f/spect/fn_DrawTags.sqf +++ /dev/null @@ -1,63 +0,0 @@ -// F3 - Spectator Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ================================================================== -// draw tags -if(!f_cam_toggleTags || f_cam_mapMode == 2 ) exitWith{}; -{ - _drawUnits = []; - _drawGroup = false; - _isPlayerGroup = false; - { - _distToCam = (call f_cam_GetCurrentCam) distance _x; - if(isPlayer _x) then {_isPlayerGroup = true}; - if(_distToCam < 200) then - { - _drawUnits pushBack _x; - } - else - { - _drawGroup = true; - }; - } foreach units _x; - _color = switch (side _x) do { - case blufor: {f_cam_blufor_color}; - case opfor: {f_cam_opfor_color}; - case independent: {f_cam_indep_color}; - case civilian: {f_cam_civ_color}; - default {f_cam_empty_color}; - }; - if(_drawGroup) then { - _visPos = getPosATLVisual leader _x; - if(surfaceIsWater _visPos) then {_visPos = getPosASLVisual leader _x;}; - if(_isPlayerGroup) then { - _color set [3,0.7]; - } - else { - _color set [3,0.4]; - }; - _str = _x getVariable ["f_cam_nicename",""]; - if(_str == "") then { - _str = (toString(toArray(groupID (_x)) - [45])); - _x setVariable ["f_cam_nicename",_str]; - }; - drawIcon3D ["\A3\ui_f\data\map\markers\nato\b_inf.paa", _color,[_visPos select 0,_visPos select 1,(_visPos select 2) +30], 1, 1, 0,_str, 2, 0.02]; - }; - - { - if(vehicle _x == _x && alive _x || vehicle _x != _x && (crew vehicle _x) select 0 == _x && alive _x) then - { - _visPos = getPosATLVisual _x; - if(surfaceIsWater _visPos) then {_visPos = getPosASLVisual _x;}; - _color set [3,0.6]; - _str = ""; - _icon = "\A3\ui_f\data\map\markers\military\dot_CA.paa"; - if(isPlayer _x) then - { - _str = name _x; - }; - drawIcon3D [_icon, _color,[_visPos select 0,_visPos select 1,(_visPos select 2) +3], 0.7, 0.7, 0,_str, 1, 0.02]; - }; - } foreach _drawUnits; - - -} forEach allGroups; diff --git a/f/spect/fn_EventHandler.sqf b/f/spect/fn_EventHandler.sqf deleted file mode 100644 index cb0e3f7cf..000000000 --- a/f/spect/fn_EventHandler.sqf +++ /dev/null @@ -1,519 +0,0 @@ -// F3 - Spectator Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ================================================================== - -// handles all the events. be afraid. -params["_type", "_args"]; - -_handled = true; -switch (_type) do -{ -// ================================================================== -// handles the mouse. -case "MouseButtonDown": -{ - - if(_args select 1 == 1 && f_cam_mode != 1) then - { - _button = _args select 1; - f_cam_MouseButton set [_button,true]; - - }; - if(_args select 1 == 1) then - { - if(f_cam_mode == 1) then - { - f_cam_ads = true; - f_cam_curTarget switchCamera "gunner"; - } - } -}; -case "MouseButtonUp": -{ - if(_args select 1 == 1 && f_cam_mode != 1) then - { - _button = _args select 1; - f_cam_MouseButton set [_button,false]; - [] spawn f_fnc_HandleCamera; - }; - if(_args select 1 == 1) then - { - if(f_cam_mode == 1) then - { - f_cam_ads = false; - f_cam_curTarget switchCamera "internal"; - } - } -}; -case "MapZoom": -{ - f_cam_map_zoom = f_cam_map_zoom+((_args select 1)*0.05); - if(f_cam_map_zoom > 0.5) then - { - f_cam_map_zoom = 0.5; - }; - if(f_cam_map_zoom < 0.05) then - { - f_cam_map_zoom = 0.05; - }; - _handled = true; -}; -case "MouseMoving": -{ - _x = _args select 1; - _y = _args select 2; - f_cam_mouseCord = [_x,_y]; - [] spawn f_fnc_HandleCamera; - -}; -case "MouseZChanged": -{ - if(!f_cam_ctrl_down) then - { - switch (f_cam_mode) do { - case 0: { - f_cam_zoom = ((f_cam_zoom - ((_args select 1)*f_cam_zoom/5)) max 0.1) min 650; - }; - case 3: { - f_cam_scrollHeight = (_args select 1); - }; - }; - - } - else - { - f_cam_fovZoom = ((f_cam_fovZoom - ((_args select 1)*f_cam_fovZoom/5)) max 0.1) min 1; - }; - -}; - -// ================================================================== -// handles dropboxes -case "LBListSelChanged": -{ - if(count f_cam_listUnits > (_args select 1)) then - { - _unit = f_cam_listUnits select (_args select 1); - if(!isnil "_unit") then - { - if(typeName _unit == "GROUP") then {_unit = leader _unit}; - if(f_cam_mode == 0 || f_cam_mode == 1) then - { - f_cam_curTarget = _unit; - if(f_cam_toggleCamera) then - { - f_cam_curTarget switchCamera "INTERNAL"; - }; - ctrlSetText [1000,format ["Spectating:%1", name f_cam_curTarget]]; - }; - if(f_cam_mode == 3) then - { - _pos = getpos _unit; - _x = _pos select 0; - _y = _pos select 1; - f_cam_freecamera setPosASL [_x,_y,((getposASL f_cam_freecamera) select 2 ) max ((getTerrainHeightASL [_x,_y])+1)]; - }; - }; - }; - //Deselect the control to prevent keyboard input - ctrlEnable [2100, false]; - ctrlEnable [2100, true]; -}; -case "LBListSelChanged_modes": -{ - - _index = (_args select 1); - switch (_index) do - { - case f_cam_lb_toggletiWHIndex: - { - f_cam_tiWHOn = !f_cam_tiWHOn; - if(f_cam_tiWHOn) then - { - f_cam_tiBHOn = false; - f_cam_nvOn = false; - true setCamUseTi 0; - } - else - { - camUseNVG false; - false setCamUseTi 0; - }; - call F_fnc_ReloadModes; - - }; - case f_cam_lb_toggletiBHIndex: // BlackHot - { - f_cam_tiBHOn = !f_cam_tiBHOn; - if(f_cam_tiBHOn) then - { - camUseNVG false; - f_cam_tiWHOn = false; - f_cam_nvOn = false; - true setCamUseTi 1; - } - else - { - camUseNVG false; - false setCamUseTi 0; - }; - call F_fnc_ReloadModes; - - }; - case f_cam_lb_toggleNormal: - { - false setCamUseTi 0; - camUseNVG false; - f_cam_tiWHOn = false; - f_cam_tiBHOn = false; - f_cam_nvOn = false; - call F_fnc_ReloadModes; - }; - case f_cam_lb_toggletiNVIndex: // Nightvision - { - f_cam_nvOn = !f_cam_nvOn; - if(f_cam_nvOn) then - { - false setCamUseTi 0; - camUseNVG true; - f_cam_tiWHOn = false; - f_cam_tiBHOn = false; - } - else - { - camUseNVG false; - false setCamUseTi 0; - }; - call F_fnc_ReloadModes; - - }; - }; -}; -// ================================================================== -// handles keys -case "KeyDown": -{ - _key = _args select 1; - _handled = false; - if(!isNull (findDisplay 49)) exitWith {if(_key == 1) then {true}}; - switch (_key) do - { - case 78: // numpad + - { - f_cam_zoom = f_cam_zoom - 1; - _handled = true; - }; - case 1: - { - _handled = false; - }; - case f_cam_zeusKey: - { - if(serverCommandAvailable "#kick" || !isNull (getAssignedCuratorLogic player) ) then - { - // handler to check when we can return to the spectator system ( when zeus interface is closed and not remoteing controlling) - [] spawn { - _done = false; - waitUntil {sleep 0.1;!isNull (findDisplay 312)}; // wait until open - while {!_done} do - { - waitUntil {sleep 0.1;isNull (findDisplay 312)}; // then wait until its not open - if(isnil "bis_fnc_moduleRemoteControl_unit") then // check if someone is being remote controled - { - [player,player,player,0,true] spawn F_fnc_CamInit; // if not retoggle - _done = true; - }; // restart spectator once exit. - }; - }; - // force exit - [] call F_fnc_ForceExit; - - - // black out the screen - ["F_ScreenSetup",false] call BIS_fnc_blackOut; - if(isNull (getAssignedCuratorLogic player)) then - { - [[player,true,playableUnits],'f_fnc_zeusInit',false] spawn BIS_fnc_MP; - }; - [] spawn { - waitUntil {!isNull (getAssignedCuratorLogic player)}; - ["F_ScreenSetup"] call BIS_fnc_blackIn; - openCuratorInterface; - }; - _handled = true; - } - else - { - _handled = true; - }; - }; - case 74: // numpad - - { - f_cam_zoom = f_cam_zoom + 1; - f_cam_zoom = 0.3 max f_cam_zoom; - _handled = true; - }; - case 20: // T - { - f_cam_tracerOn = !f_cam_tracerOn; - if(f_cam_tracerOn) then - { - systemChat "Tracers on map activated."; - } - else - { - systemChat "Tracers on map deactivated."; - }; - _handled = true; - }; - case 22: // U - { - f_cam_hideUI = !f_cam_hideUI; - [] spawn f_fnc_ToggleGUI; - _handled = true; - }; - // Freecam movement keys - case 17: // W - { - f_cam_freecam_buttons set [0,true]; - _handled = true; - }; - case 31: // S - { - f_cam_freecam_buttons set [1,true]; - _handled = true; - }; - case 30: // A - { - f_cam_freecam_buttons set [2,true]; - _handled = true; - }; - case 32: // D - { - f_cam_freecam_buttons set [3,true]; - _handled = true; - }; - case 49: // N - { - _index = (lbCurSel 2101)+1; - if(_index >= (lbSize 2101 )) then { _index = 0}; - lbSetCurSel [2101,_index]; - _handled = true; - }; - case 16: // Q - { - f_cam_freecam_buttons set [4,true]; - _handled = true; - }; - case 44: // Z - { - f_cam_freecam_buttons set [5,true]; - _handled = true; - }; - case 57: // SPACE - { - f_cam_freecamOn = !f_cam_freecamOn; - if(f_cam_freecamOn) then - { - f_cam_angleY = 10; - [f_cam_freecamera,f_cam_angleY,0] call BIS_fnc_setPitchBank; - f_cam_freecamera cameraEffect ["internal", "BACK"]; - f_cam_mode = 3; - f_cam_freecamera setPosASL getPosASL f_cam_camera; - cameraEffectEnableHUD true; - showCinemaBorder false; - } - else - { - f_cam_freecamera cameraEffect ["Terminate","BACK"]; - f_cam_angleY = 45; - f_cam_camera cameraEffect ["internal", "BACK"]; - f_cam_mode = 0; - cameraEffectEnableHUD true; - showCinemaBorder false; - }; - _handled = true; - }; - - case 35: // H - { - ctrlShow [1315, !ctrlVisible 1315]; - ctrlShow [1310, !ctrlVisible 1310]; - ctrlShow [1300, !ctrlVisible 1300]; - ctrlShow [1305, !ctrlVisible 1305]; - _handled = true; - }; - case 42: // SHIFT - { - f_cam_shift_down = true; - [] spawn f_fnc_HandleCamera; - _handled = true; - }; - case 25: - { - f_cam_muteSpectators = !f_cam_muteSpectators; - switch (f_var_radios) do { - // ACRE - case 1: { - [f_cam_muteSpectators] call acre_api_fnc_setSpectator; - }; - // TFR - case 2: { - [player, f_cam_muteSpectators] call TFAR_fnc_forceSpectator; - }; - case 3: { - [f_cam_muteSpectators] call acre_api_fnc_setSpectator; - }; - - }; - }; - case 29: // CTRL - { - f_cam_ctrl_down = true; - [] spawn f_fnc_HandleCamera; - _handled = true; - }; - case 50: // M - { - f_cam_mapMode = f_cam_mapMode +1; - if(f_cam_mapMode > 2) then - { - f_cam_mapMode = 0; - }; - switch (f_cam_mapMode) do - { - // no maps - case 0: - { - ctrlShow [2110,true]; - ctrlShow [2010,true]; - ctrlShow [1350,false]; - ctrlShow [1360,false]; - }; - - case 1: - { - ctrlShow [2110,true]; - ctrlShow [2010,true]; - ctrlShow [1350,true]; - ctrlShow [1360,false]; - }; - // big map - case 2: - { - ctrlShow [2110,false]; - ctrlShow [2010,false]; - ctrlShow [1350,false]; - ctrlShow [1360,true]; - _displayDialog = (findDisplay 9228); - _fullmapWindow = _displayDialog displayCtrl 1360; - ctrlMapAnimClear _fullmapWindow; - - _fullmapWindow ctrlMapAnimAdd [0.001, 0.1,getpos ([] call f_cam_GetCurrentCam)]; - ctrlMapAnimCommit _fullmapWindow; - }; - }; - _handled = true; - }; - }; - _handled -}; - - -case "KeyUp": -{ - if(!isNull (findDisplay 49)) exitWith {}; - _key = _args select 1; - _handled = false; - switch (_key) do - { - case 42: - { - f_cam_shift_down = false; - _handled = true; - }; - case 1: - { - _handled = false; - }; - case 29: - { - f_cam_ctrl_down = false; - _handled = true; - }; - case 203: - { - _handled = true; - }; - case 205: - { - _handled = true; - }; - case 24: - { - _handled = true; - }; - case 28: - { - _handled = true; - }; - case 49: - { - _handled = true; - }; - case 200: - { - _handled = true; - }; - case 208: - { - _handled = true; - }; - case 74: - { - _handled = true; - }; - case 78: - { - _handled = true; - }; - case 57: - { - _handled = true; - }; - case 17: - { - f_cam_freecam_buttons set [0,false]; - _handled = true; - }; - case 31: - { - f_cam_freecam_buttons set [1,false]; - _handled = true; - }; - case 30: - { - f_cam_freecam_buttons set [2,false]; - _handled = true; - }; - case 32: - { - f_cam_freecam_buttons set [3,false]; - _handled = true; - }; - case 16: - { - f_cam_freecam_buttons set [4,false]; - _handled = true; - }; - case 44: - { - f_cam_freecam_buttons set [5,false]; - _handled = true; - }; - }; - _handled -}; -_handled -}; - diff --git a/f/spect/fn_ForceExit.sqf b/f/spect/fn_ForceExit.sqf deleted file mode 100644 index e16503bea..000000000 --- a/f/spect/fn_ForceExit.sqf +++ /dev/null @@ -1,15 +0,0 @@ -f_cam_forcedExit = true; -closeDialog 1; -["f_spect_tags","onEachFrame"] call bis_fnc_removeStackedEventHandler; -["f_spect_cams","onEachFrame"] call bis_fnc_removeStackedEventHandler; -terminate f_cam_updatevalues_script; -(call f_cam_GetCurrentCam) cameraEffect ["terminate","back"]; -hintSilent "Spectator system has been forcefully closed"; -{ - _var = _x getVariable ["f_cam_fired_eventid",nil]; - if(!isNil "_var") then - { - _x removeEventHandler ["fired",_var]; - }; - -} foreach (allunits + vehicles); \ No newline at end of file diff --git a/f/spect/fn_FreeCam.sqf b/f/spect/fn_FreeCam.sqf deleted file mode 100644 index 4f04b4404..000000000 --- a/f/spect/fn_FreeCam.sqf +++ /dev/null @@ -1,159 +0,0 @@ -private ["_commitTime","_delta","_zLevel","_pos","_visPos","_mode","_currPos","_mX","_mY","_mZ","_accel","_accelshift","_scroll","_rX","_y","_z"]; -// F3 - Spectator Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -// Menu shown/hidden -if(abs (f_cam_menuShownTime - time) <= 0.1 && !f_cam_menuShown) then // disable due to being a bit wonky -{ - [true] spawn f_fnc_showMenu; -}; -if(abs (f_cam_menuShownTime - time) >= 1 && f_cam_menuShown) then // disable due to being a bit wonky -{ - [false] spawn f_fnc_showMenu; -}; - - -// ==================================================================================== -// if freemode. -f_cam_camera camSetFov f_cam_fovZoom; -if(f_cam_mode == 0) then -{ - cameraEffectEnableHUD true; - _commitTime = ((1.0 - ((speed vehicle f_cam_curTarget)/65))/3) max 0.1; - _delta = (-(2*(0.3 max f_cam_zoom))); - _zLevel = sin(f_cam_angleY)*(2*(0.3 max f_cam_zoom)); - //_pos = getpos f_cam_curTarget; - _visPos = visiblePositionASL f_cam_curTarget; - if(!(surfaceIsWater _visPos)) then {_visPos = ASLtoATL (_visPos)}; - f_cam_fakecamera camSetPos [_visPos select 0,_visPos select 1,(_visPos select 2) + 1.5]; - f_cam_fakecamera camCommit _commitTime; - f_cam_camera camSetRelPos[(sin(f_cam_angleX)*_delta)*cos(f_cam_angleY), (cos(f_cam_angleX)*_delta)*cos(f_cam_angleY), _zLevel]; - f_cam_camera camCommit _commitTime; -}; -// first person -if(f_cam_mode == 1) then -{ -// player setpos (getpos cameraOn); - if(vehicle cameraOn != cameraOn) then - { - _mode = "internal"; - if(gunner (vehicle cameraon) == cameraon) then {_mode = "gunner"}; - if(driver (vehicle cameraon) == cameraon) then {_mode = "gunner"}; - if(commander (vehicle cameraon) == cameraon) then {_mode = "gunner"}; - vehicle cameraOn switchCamera _mode; - }; - if(vehicle cameraOn == cameraOn && !f_cam_ads) then - { - cameraon switchCamera "internal"; - }; -}; -if(f_cam_mode == 3) then -{ - _delta = (time - f_cam_timestamp)*10; - f_cam_freecamera camSetFov f_cam_fovZoom; - _currPos = getposASL f_cam_freecamera; - _mX = 0; - _mY = 0; - _mZ = 0; - _height = 0 max (((getPosATL f_cam_freecamera) select 2)); - _accel = 0.2 max (_height/8); // 0.8 - _accelshift = _accel*4.25;//2; - if(f_cam_freecam_buttons select 0) then // W - { - if(f_cam_shift_down) then - { - _mY = _accelshift; - } - else - { - _mY = _accel; - }; - }; - if(f_cam_freecam_buttons select 1) then // S - { - if(f_cam_shift_down) then - { - _mY = -_accelshift; - } - else - { - _mY = -_accel; - }; - }; - if(f_cam_freecam_buttons select 2) then // A - { - if(f_cam_shift_down) then - { - _mX = -_accelshift; - } - else - { - _mX = -_accel; - }; - }; - - if(f_cam_freecam_buttons select 3) then // D - { - if(f_cam_shift_down) then - { - _mX = _accelshift; - } - else - { - _mX = _accel; - }; - }; - if(f_cam_freecam_buttons select 4) then // Q - { - _scroll = 1*((sqrt _height)/2)*_delta; - if (abs _scroll < 0.1) then { - if (_scroll < 0) then { _scroll = -0.1;} - else { _scroll = 0.1;}; - }; - _mZ = _scroll; - }; - if(f_cam_freecam_buttons select 5) then // Z - { - _scroll = -1*((sqrt _height)/2)*_delta; - if (abs _scroll < 0.1) then { - if (_scroll < 0) then { _scroll = -0.1;} - else { _scroll = 0.1;}; - }; - _mZ = _scroll; - }; - if(f_cam_scrollHeight <0 || f_cam_scrollHeight > 0) then - { - _scroll = -f_cam_scrollHeight * _delta*3;//was 3 and was positive - f_cam_scrollHeight = _scroll; - if(f_cam_scrollHeight < 0.2 && f_cam_scrollHeight > -0.2) then - { - f_cam_scrollHeight = 0; - }; - _scroll = _scroll*((sqrt _height)/2); - if (abs _scroll < 0.1) then { - if (_scroll < 0) then { _scroll = -0.1;} - else { _scroll = 0.1;}; - }; - _mZ = _mZ + _scroll; - }; - - //Max speed 50 m/s - _mX = _delta * ((_mX min 50) max -50); - _mY = _delta * ((_mY min 50) max -50); - f_freecam_x_speed = f_freecam_x_speed * 0.5 + _mX; - f_freecam_y_speed = f_freecam_y_speed * 0.5 + _mY; - f_freecam_z_speed = f_freecam_z_speed * 0.5 + _mZ; - - _x = (_currPos select 0) + (f_freecam_x_speed * (cos f_cam_angleX)) + (f_freecam_y_speed * (sin f_cam_angleX)); - _y = (_currPos select 1) - (f_freecam_x_speed * (sin f_cam_angleX)) + (f_freecam_y_speed * (cos f_cam_angleX)); - _newHeight = (getTerrainHeightASL [_x,_y]); - _z = ((_currPos select 2) + f_freecam_z_speed) min (650 + _newHeight); - f_cam_freecamera setPosASL [_x,_y,_z max _newHeight]; - f_cam_freecamera setDir f_cam_angleX; - [f_cam_freecamera,f_cam_angleY,0] call BIS_fnc_setPitchBank; - f_cam_scrollHeight = 0; - f_cam_timestamp = time; -}; -cameraEffectEnableHUD true; -showCinemaBorder false; -// ======================================================================================================================================= \ No newline at end of file diff --git a/f/spect/fn_GetPlayers.sqf b/f/spect/fn_GetPlayers.sqf deleted file mode 100644 index 23b823a23..000000000 --- a/f/spect/fn_GetPlayers.sqf +++ /dev/null @@ -1,16 +0,0 @@ -// F3 - Spectator Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -// gets all the player groups and filter out the AI. -private ["_arr"]; -_players = []; -_ai = []; -{ - if(isNil "f_cam_side" || {side _x == f_cam_side}) then - { - if({isPlayer _x} count (units _x) > 0) then {_players pushBack _x} - else {_ai pushBack _x}; - }; - -} foreach allGroups; -[_players,_ai] diff --git a/f/spect/fn_HandleCamera.sqf b/f/spect/fn_HandleCamera.sqf deleted file mode 100644 index dd590b13e..000000000 --- a/f/spect/fn_HandleCamera.sqf +++ /dev/null @@ -1,21 +0,0 @@ - -_x = f_cam_mouseCord select 0; -_y = f_cam_mouseCord select 1; -_leftButton = f_cam_MouseButton select 0; -_rightButton = f_cam_MouseButton select 1; -f_cam_mouseDeltaX = f_cam_mouseLastX - (_x); -f_cam_mouseDeltaY = f_cam_mouseLastY - (_y); - - -if(_rightButton && !_leftButton) then -{ - f_cam_angleX = (f_cam_angleX - (f_cam_mouseDeltaX*360)); - f_cam_angleY = (f_cam_angleY + (f_cam_mouseDeltaY*180)) min 89 max -89; -}; -if(f_cam_ctrl_down && _rightButton && _leftButton) then -{ - f_cam_fovZoom = 0.7; -}; - -f_cam_mouseLastX = (f_cam_mouseCord select 0); -f_cam_mouseLastY = (f_cam_mouseCord select 1); diff --git a/f/spect/fn_HandleMenu.sqf b/f/spect/fn_HandleMenu.sqf deleted file mode 100644 index 0708601cd..000000000 --- a/f/spect/fn_HandleMenu.sqf +++ /dev/null @@ -1,40 +0,0 @@ -_control = _this select 0; -_button = _this select 1; -switch (_button) do { - case 0: { // Toggle AI BUTTON - f_cam_playersOnly = !f_cam_playersOnly; - f_cam_listUnits = []; - lbClear 2100; - if(f_cam_playersOnly) then { _control ctrlSetText "Players only";} - else { _control ctrlSetText "All units";}; - }; - case 1: { // Side Filter - // 0 = ALL, 1 = BLUFOR , 2 = OPFOR, 3 = INDFOR , 4 = Civ - f_cam_sideButton = f_cam_sideButton +1; - if(f_cam_sideButton > 4) then {f_cam_sideButton = 0}; - f_cam_side = switch (f_cam_sideButton) do { - case 0: {nil}; - case 1: {west}; - case 2: {east}; - case 3: {independent}; - case 4: {civilian}; - }; - _control ctrlSetText (f_cam_sideNames select f_cam_sideButton); - f_cam_listUnits = []; - lbClear 2100; - }; - case 2: { - f_cam_toggleTags = !f_cam_toggleTags; - }; - case 3: { // Third/First Person Button - [] call f_cam_ToggleFPCamera; - if(f_cam_toggleCamera) then - { - _control ctrlSetText "Third Person"; - } - else - { - _control ctrlSetText "First Person"; - } - } -}; \ No newline at end of file diff --git a/f/spect/fn_OnMapClick.sqf b/f/spect/fn_OnMapClick.sqf deleted file mode 100644 index 5cf0ad417..000000000 --- a/f/spect/fn_OnMapClick.sqf +++ /dev/null @@ -1,52 +0,0 @@ -_pos = (_this select 0) ctrlMapScreenToWorld [(_this select 2), (_this select 3)]; -if(f_cam_mapMode == 2) then -{ - if(f_cam_mode == 0 || f_cam_mode == 1) then - { - _chosen = nil; - _dist = 99999; - _ents = _pos nearEntities [["CAManBase","AllVehicles"],10]; - { - { - if(_pos distance _x <= _dist && _x in f_cam_listUnits) then - { - - _chosen = _x; - _dist = _pos distance _x; - }; - } foreach crew _x; - } foreach _ents; - if(!isNil "_chosen") then - { - f_cam_curTarget = _chosen; - if(f_cam_toggleCamera) then - { - f_cam_curTarget switchCamera "INTERNAL"; - }; - - // hide map - f_cam_mapMode = 0; - ctrlShow [2110,true]; - ctrlShow [2010,true]; - ctrlShow [1350,false]; - ctrlShow [1360,false]; - - - ctrlSetText [1000,format ["Spectating:%1", name f_cam_curTarget]]; - }; - }; - if(f_cam_mode == 3) then - { - _x = _pos select 0; - _y = _pos select 1; - f_cam_freecamera setPosASL [_x,_y,((getposASL f_cam_freecamera) select 2 ) max ((getTerrainHeightASL [_x,_y])+1)]; - // hide map - f_cam_mapMode = 0; - ctrlShow [2110,true]; - ctrlShow [2010,true]; - ctrlShow [1350,false]; - ctrlShow [1360,false]; - - }; -}; -true \ No newline at end of file diff --git a/f/spect/fn_OnUnload.sqf b/f/spect/fn_OnUnload.sqf deleted file mode 100644 index 0c34b96a5..000000000 --- a/f/spect/fn_OnUnload.sqf +++ /dev/null @@ -1,23 +0,0 @@ -disableSerialization; -sleep 1; -if (f_cam_forcedExit) ExitWith {}; -createDialog "f_spec_dialog"; - -_displayDialog = (findDisplay 9228); -call f_fnc_ReloadModes; -ctrlSetText [2112,(f_cam_sideNames select f_cam_sideButton)]; -if(f_cam_playersOnly) then { ctrlSetText [2111,"Players only"];} -else { ctrlSetText [2111,"All units"];}; -_helpWindow = _displayDialog displayCtrl 1310; -_mapWindow = _displayDialog displayCtrl 1350; -_fullmapWindow = _displayDialog displayCtrl 1360; -_mapWindow ctrlShow false; -_fullmapWindow ctrlShow false; -_fullmapWindow mapCenterOnCamera false; -_mapWindow mapCenterOnCamera false; -_helpWindow ctrlSetStructuredText parseText (f_cam_helptext); -// hide it to stop from being spammed open. -ctrlShow [1315, !ctrlVisible 1315]; -ctrlShow [1310, !ctrlVisible 1310]; -ctrlShow [1300, !ctrlVisible 1300]; -ctrlShow [1305, !ctrlVisible 1305]; \ No newline at end of file diff --git a/f/spect/fn_ReloadModes.sqf b/f/spect/fn_ReloadModes.sqf deleted file mode 100644 index 30bb8c5d4..000000000 --- a/f/spect/fn_ReloadModes.sqf +++ /dev/null @@ -1,43 +0,0 @@ -_listBox = 2101; -_curIndex = lbCurSel _listBox; -lbClear _listBox; -// NV -if(!f_cam_tiWHOn && !f_cam_tiBHOn && !f_cam_nvOn) then -{ - f_cam_lb_toggleNormal = lbAdd [_listBox,"[Normal]"]; -} -else -{ - f_cam_lb_toggleNormal = lbAdd [_listBox,"Normal"] -}; -if(f_cam_nvOn) then -{ - f_cam_lb_toggletiNVIndex = lbAdd[_listBox,"[NV]"]; - -} -else -{ - f_cam_lb_toggletiNVIndex = lbAdd[_listBox,"NV"]; -}; -// blackhot -if(f_cam_tiBHOn) then -{ - f_cam_lb_toggletiBHIndex = lbAdd[_listBox,"[TI - Blackhot]"]; - -} -else -{ - f_cam_lb_toggletiBHIndex = lbAdd[_listBox,"TI - Blackhot"]; -}; - -// whtiehot -if(f_cam_tiWHOn) then -{ - f_cam_lb_toggletiWHIndex = lbAdd[_listBox,"[TI - Whitehot]"]; - -} -else -{ - f_cam_lb_toggletiWHIndex = lbAdd[_listBox,"TI - Whitehot"]; -}; - diff --git a/f/spect/fn_ToggleGUI.sqf b/f/spect/fn_ToggleGUI.sqf deleted file mode 100644 index 49fc3040a..000000000 --- a/f/spect/fn_ToggleGUI.sqf +++ /dev/null @@ -1,8 +0,0 @@ -#include "macros.hpp" -_forbiddenControls = [F_CAM_MOUSEHANDLER,F_CAM_MINIMAP,F_CAM_FULLMAP,F_CAM_SPECHELP,F_CAM_HELPCANCEL,F_CAM_SPECHELP,F_CAM_HELPFRAME,F_CAM_HELPBACK]; -{ - if(!(_x in _forbiddenControls)) then - { - ctrlShow [_x,!f_cam_hideUI]; - }; -} foreach f_cam_controls; \ No newline at end of file diff --git a/f/spect/fn_UpdateValues.sqf b/f/spect/fn_UpdateValues.sqf deleted file mode 100644 index 2bac903d5..000000000 --- a/f/spect/fn_UpdateValues.sqf +++ /dev/null @@ -1,126 +0,0 @@ -// F3 - Spectator Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ================================================================== -_listBox = 2100; -// updaes values for the units listbox. -f_cam_checkIndex = -{ - { - _x SetVariable ["f_spect_listBoxIndex",_forEachIndex]; - } foreach f_cam_listUnits; -}; - -// ==================================================================================== -while {true} do -{ - // ==================================================================================== - // make the mini map track the player. - - ctrlMapAnimClear ((findDisplay 9228) displayCtrl 1350); - ((findDisplay 9228) displayCtrl 1350) ctrlMapAnimAdd [0.3, f_cam_map_zoom,visiblePosition (camTarget f_cam_camera)]; - ctrlMapAnimCommit ((findDisplay 9228) displayCtrl 1350); - ctrlSetFocus ((findDisplay 9228) displayCtrl 1315); - // ==================================================================================== - // update string. - if(alive f_cam_curTarget) then - { - ctrlSetText [1000,format ["Spectating:%1", name f_cam_curTarget]]; - } - else - { - ctrlSetText [1000,format ["Spectating:%1", "Dead"]]; - }; - // ==================================================================================== - // fetch units - _groupArr = call F_fnc_GetPlayers; - f_cam_units = ((_groupArr select 0) + (_groupArr select 1)); - f_cam_players = _groupArr select 0; - // ==================================================================================== - // get the list for players or players/ai - _tempArr = []; - if(f_cam_playersOnly) then - { - _tempArr = f_cam_players; - } - else - { - _tempArr = f_cam_units; - }; - - // ==================================================================================== - // Check it and see if they have been added already - { - if(!(_x in f_cam_listUnits) && ({alive _x} count units _x) > 0 ) then - { - _text = toString(toArray(groupID _x) - [45]); - _index = lbAdd [_listBox,_text]; - _x SetVariable ["f_spect_listBoxIndex",_index]; - f_cam_listUnits pushBack _x; - lbSetColor [_listBox,_index,[side _x,false] call BIS_fnc_sideColor]; - { - if(alive _x) then - { - if(!(_x in f_cam_listUnits) && !(_x iskindof "VirtualMan_F")) then - { - f_cam_listUnits pushBack _x; - _text = " " + name _x; - // if(!isPlayer _x) then - // { - // _text = " "+ "*AI*"; - // }; - _index = lbAdd [_listBox,_text]; - _x SetVariable ["f_spect_listBoxIndex",_index]; - }; - }; - } foreach units _x; - }; - } foreach _tempArr; - - // ==================================================================================== - // Check if they died etc. - - { - _index = _x GetVariable ["f_spect_listBoxIndex",-1]; - if(typeName _x == "GROUP") then - { - if(_index >= 0 && ({alive _x} count units _x) > 0 && {lbText [_listBox,_index] != (toString(toArray(groupID _x) - [45]))}) then - { - // there is no lbSetText, so just punt it out of the list and fix it up there.. - lbDelete [_listBox,_index]; - f_cam_listUnits = f_cam_listUnits - [_x]; - [] call f_cam_checkIndex; - }; - if(({alive _x} count units _x) <= 0 && _index >= 0) then - { - lbDelete [_listBox,_index]; - f_cam_listUnits = f_cam_listUnits - [_x]; - [] call f_cam_checkIndex; - }; - } - else - { - _val = lbText [_listBox,_index] != " " + name _x; - // if(!isPlayer _x) then - // { - // _val = lbText [_listBox,_index] != " "+ "*AI*"; - // }; - if(_index >= 0 && alive _x && _val ) then - { - // there is no lbSetText, so just punt it out of the list and fix it up there.. - lbDelete [_listBox,_index]; - f_cam_listUnits = f_cam_listUnits - [_x]; - [] call f_cam_checkIndex; - }; - if(!alive _x) then - { - if(_index >= 0) then - { - lbDelete [_listBox,_index]; - f_cam_listUnits = f_cam_listUnits - [_x]; - [] call f_cam_checkIndex; - }; - }; - }; - } foreach f_cam_listUnits; - sleep 1; -}; \ No newline at end of file diff --git a/f/spect/fn_showMenu.sqf b/f/spect/fn_showMenu.sqf deleted file mode 100644 index 06063e75c..000000000 --- a/f/spect/fn_showMenu.sqf +++ /dev/null @@ -1,30 +0,0 @@ -disableSerialization; -_show = _this select 0; -_disp = findDisplay 9228; -if(f_cam_menuWorking) exitWith {}; -if(_show && !f_cam_menuShown) then -{ - f_cam_menuWorking = true; - f_cam_menuShown = true; - { - _pos = ctrlPosition (_disp displayCtrl _x); - _pos set [1,(_pos select 1) + 0.03]; - (_disp displayCtrl _x) ctrlSetPosition _pos; - } foreach f_cam_menuControls; - {(_disp displayCtrl _x) ctrlCommit 0.6; } foreach f_cam_menuControls; - waitUntil {ctrlCommitted (_disp displayCtrl (f_cam_menuControls select 0))}; - f_cam_menuWorking = false; -}; -if(!_show && f_cam_menuShown) then -{ - f_cam_menuWorking = true; - f_cam_menuShown = false; - { - _pos = ctrlPosition (_disp displayCtrl _x); - _pos set [1,(_pos select 1) - 0.03]; - (_disp displayCtrl _x) ctrlSetPosition _pos; - } foreach f_cam_menuControls; - {(_disp displayCtrl _x) ctrlCommit 0.6; } foreach f_cam_menuControls; - waitUntil {ctrlCommitted (_disp displayCtrl (f_cam_menuControls select 0))}; - f_cam_menuWorking = false; -}; \ No newline at end of file diff --git a/f/spect/macros.hpp b/f/spect/macros.hpp deleted file mode 100644 index 7276d7d19..000000000 --- a/f/spect/macros.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// F3 - Spectator Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -// Quick defines to make it less annoying. -#define F_CAM_DISPLAY 9228 -#define F_CAM_HELPFRAME 1300 -#define F_CAM_HELPBACK 1305 -#define F_CAM_MOUSEHANDLER 123 -#define F_CAM_UNITLIST 2100 -#define F_CAM_MODESCOMBO 2101 -#define F_CAM_SPECTEXT 1000 -#define F_CAM_SPECHELP 1310 -#define F_CAM_HELPCANCEL 1315 -#define F_CAM_MINIMAP 1350 -#define F_CAM_FULLMAP 1360 -#define F_CAM_BUTTIONFILTER 2111 -#define F_CAM_BUTTIONTAGS 2112 -#define F_CAM_BUTTIONTAGSNAME 2113 -#define F_CAM_BUTTIONFIRSTPERSON 2114 -#define F_CAM_DIVIDER 4302 \ No newline at end of file diff --git a/init.sqf b/init.sqf index d0b2f022e..bbec70d71 100644 --- a/init.sqf +++ b/init.sqf @@ -7,32 +7,6 @@ if(isServer) then { f_script_setLocalVars = [] execVM "f\common\f_setLocalVars.sqf"; }; -// ==================================================================================== - -// F3 - Medical Systems Support -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - -// SWS Config Settings -// How many extra FirstAidKits (FAKS) each player should receive when using the F3 Simple Wounding System: -f_wound_extraFAK = 2; - -[] execVM "f\medical\medical_init.sqf"; - -// ==================================================================================== - -// F3 - Radio Systems Support -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - -[] execVM "f\radios\radio_init.sqf"; - -// ==================================================================================== - -// F3 - JIP setup -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - -f_var_JIP_FirstMenu = false; // Do players connecting for the first time get the JIP menu? - This only works in missions with respawn. -f_var_JIP_RemoveCorpse = false; // Remove the old corpse of respawning players? -f_var_JIP_GearMenu = true; // Can JIP/respawned players select their own gear? False will use gear assigned by F3 Gear Component if possible // ==================================================================================== diff --git a/ws_fnc/cache/fn_cInit.sqf b/ws_fnc/cache/fn_cInit.sqf deleted file mode 100644 index a4ead5175..000000000 --- a/ws_fnc/cache/fn_cInit.sqf +++ /dev/null @@ -1,83 +0,0 @@ -/* -ws_fnc_cache -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Caches groups. - -USAGE -[min caching distance,agressiveness,sleep] call ws_fnc_cInit; - -To exclude a group from being cached: -a) In unit init: (group this) setVariable ["ws_cacheExcl",true]; -b) Anywhere: Groupname setVariable ["ws_cacheExcl",true,true]; - -NOTE -It's recommended to wait up until a minute into the mission before launching the caching script to make sure that all AI have settled - -PARAMETERS -1. Distance to players for units to be de-cached | OPTIONAL - default is 1000 -2. Agressiveness of the caching | OPTIONAL - default is 2 - 1 - cache only non-leaders and non-drivers - 2 - cache all non-moving units, always exclude vehicle drivers - 3 - cache all units, incl. group leaders and vehicle drivers -3. Amount of seconds between distance-checks to player units | OPTIONAL - default is 5 seconds - -RETURNS -true -*/ - -// Player and the headless client's groups are always excluded from being cached -if (!isDedicated) then { - group player setVariable ["ws_cacheExcl", true, true]; -}; - -// Script is only run server-side -if !(isServer) exitWith {}; - -// Make sure script is only run once -if (missionNameSpace getVariable ["ws_cInit", false]) exitWith {}; -ws_cInit = true; -waituntil {!isnil "bis_fnc_init"}; - -// All groups with playable units are set to be ignored as well -{ - if ({_x in playableUnits} count units _x > 0) then {_x setVariable ["ws_cacheExcl",true,true];}; -} forEach allGroups; - -// Define parameters -_range = if (count _this > 0) then [{_this select 0},{1000}]; -ws_var_cachingAggressiveness = if (count _this > 1) then [{_this select 1},{2}]; -_sleep = if (count _this > 2) then [{_this select 2},{6}]; - - -[_range, _sleep] spawn ws_fnc_cTracker; - -_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; - -if (_debug) then { - ["ws_fnc_cache DBG: Starting to track groups, range, sleep",[count allGroups,_range,_sleep],""] call ws_fnc_debugtext; - - [_sleep] spawn { - - // Giving the tracker a head start - sleep (_this select 0 * 1.1); - - while {true} do { - _str1 = "ws_fnc_cache DBG:
"; - _str2 = format["Total groups: %1
",count allGroups]; - _str3 = format ["Cached groups:%1
",{_x getvariable "ws_cached"} count allGroups]; - _str4 = format ["Activated groups:%1
",{!(_x getvariable "ws_cached")} count allGroups]; - _str5 = format ["Excluded groups:%1
",{(_x getvariable "ws_cacheExcl")} count allGroups]; - - hintsilent parseText (_str1+_str2+_str3+_str4+_str5); - - sleep (_this select 0); - }; - }; -}; - - -true \ No newline at end of file diff --git a/ws_fnc/cache/fn_cTracker.sqf b/ws_fnc/cache/fn_cTracker.sqf deleted file mode 100644 index 2051cffb9..000000000 --- a/ws_fnc/cache/fn_cTracker.sqf +++ /dev/null @@ -1,64 +0,0 @@ -/* -ws_fnc_cTracker -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Tracks all currently present AI-only groups and caches/uncaches them according to distance to parameters -*/ - -private ["_range","_sleep","_groups","_debug"]; - -_range = _this select 0; -_sleep = _this select 1; - -_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; - -_groups = allGroups; - -// BEGIN THE TRACKING LOOP -While {count _groups > 0} do { - { - _groups = allGroups; - - if (_debug) then{ ["ws_fnc_cache DBG: Tracking ",[count _groups]," groups"] call ws_fnc_debugtext;}; - - if (isnull _x) then { - _groups = _groups - [_x]; - - if (_debug) then{ ["ws_fnc_cache DBG: Group is null, deleting: ",[_x,count _groups]," groups left"] call ws_fnc_debugtext;}; - - } else { - _exclude = _x getvariable ["ws_cacheExcl",false]; - _cached = _x getvariable ["ws_cached", false]; - - if (!_exclude) then { - if (_cached) then { - - if (_debug) then {["ws_fnc_cache DBG: Checking group: ",[_x],""] call ws_fnc_debugtext;}; - - if ([leader _x, _range] call ws_fnc_nearPlayer) then { - - if (_debug) then {["ws_fnc_cache DBG: Caching: ",[_x],""] call ws_fnc_debugtext;}; - - _x setvariable ["ws_cached", false]; - _x spawn ws_fnc_gUncache; - }; - } else { - if !([leader _x, _range * 1.1] call ws_fnc_nearPlayer) then { - - if (_debug) then {player globalchat format ["ws_fnc_cache DBG: Caching: %1",_x]}; - - _x setvariable ["ws_cached", true]; - _x spawn ws_fnc_gCache; - }; - }; - - if (_debug) then {["ws_fnc_cache DBG: Group is excluded: ",[_x]," - Ignoring."] call ws_fnc_debugtext;}; - }; - }; - } foreach _groups; - - sleep _sleep; -}; \ No newline at end of file diff --git a/ws_fnc/cache/fn_gCache.sqf b/ws_fnc/cache/fn_gCache.sqf deleted file mode 100644 index dc5c2fc7c..000000000 --- a/ws_fnc/cache/fn_gCache.sqf +++ /dev/null @@ -1,42 +0,0 @@ -/* -ws_fnc_gCache -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Disables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. -*/ - -// LOOP THROUGH THE PASSED UNITS -// We loop through the units of the passed group and disable Simulation for those that are not vehicle drivers and are standing still -{ - - // Disable simulation based on aggressiveness - switch (ws_var_cachingAggressiveness) do { - case 1: { - if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _this)) then { - _x enableSimulationGlobal false; - }; - }; - case 2: { - if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { - if ((_x != leader _this) || (_x == leader _this && speed _x == 0)) then { - _x enableSimulationGlobal false; - }; - }; - }; - case 3: {_x enableSimulationGlobal false;}; - }; - - // All unit's are hidden - _x hideObjectGlobal true; - - if (ws_var_cachingAggressiveness == 3) then { - if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal true}; - }; - -sleep 0.1; -} forEach units _this; - -true \ No newline at end of file diff --git a/ws_fnc/cache/fn_gUncache.sqf b/ws_fnc/cache/fn_gUncache.sqf deleted file mode 100644 index 5ee57739e..000000000 --- a/ws_fnc/cache/fn_gUncache.sqf +++ /dev/null @@ -1,26 +0,0 @@ -/* -ws_fnc_gUncache -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Enables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. -*/ - - { - _x enableSimulationGlobal true; - _x hideObjectGlobal false; - - - // If the group leader is moving, set his group back next to him - if (speed leader _this > 0 && vehicle _x == _x) then { - _x setPosATL (formationPosition _x); - }; - - if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal false}; - -sleep 0.1; -} forEach units _this; - -true \ No newline at end of file From 6be5e83ae035c8a4eed2c574497ab7278c087c88 Mon Sep 17 00:00:00 2001 From: Pooter Date: Tue, 6 Jun 2017 00:23:27 -0700 Subject: [PATCH 010/407] Set revive modes --- description.ext | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/description.ext b/description.ext index b5699d002..b3890e468 100644 --- a/description.ext +++ b/description.ext @@ -9,8 +9,15 @@ overviewPicture = "overviewLogo.jpg"; // ============================================================================================ - - +ReviveMode = 1; +ReviveUnconsciousStateMode = 1; +ReviveRequiredTrait = 0; +ReviveRequiredItems = 2; +ReviveRequiredItemsFakConsumed = 1; +ReviveMedicSpeedMultiplier = 2; +reviveDelay = 6; +reviveForceRespawnDelay = 99999; +reviveBleedOutDelay = 240; // F3 - Start of Notifications block. class cfgNotifications From b5fe671c2be7de73fd2e44a55fff0313c2447788 Mon Sep 17 00:00:00 2001 From: Pooter Date: Wed, 7 Jun 2017 10:08:25 -0700 Subject: [PATCH 011/407] Remove additional unused functions and change some settings in spectator mode. --- f/common/functions.hpp | 50 -------------------------------- f/spect/f_activate_spectator.sqf | 3 ++ ws_fnc/config.hpp | 8 ----- 3 files changed, 3 insertions(+), 58 deletions(-) create mode 100644 f/spect/f_activate_spectator.sqf diff --git a/f/common/functions.hpp b/f/common/functions.hpp index bbe2b7f23..53f17f49b 100644 --- a/f/common/functions.hpp +++ b/f/common/functions.hpp @@ -32,14 +32,6 @@ class F // Defines the "owner" class SetWeather{}; class SetWind{}; }; - class cache - { - file = "f\cache"; - class cInit {}; - class cTracker {}; - class gCache {}; - class gUncache {}; - }; class groupMarkers { file = "f\groupMarkers"; class localGroupMarker{}; @@ -90,51 +82,9 @@ class F // Defines the "owner" class zeusAddAddons{}; class zeusAddObjects{}; }; - class tfr - { - file = "f\radios\tfr"; - class tfr_removeRadios{}; - class tfr_addRadios{}; - class tfr_setRadioFrequencies{}; - class tfr_configureSpectatorChat{}; - }; class safeStart { file = "f\safeStart"; class safety{}; }; - class woundingsystem - { - file = "f\simplewoundingsystem"; - class SetDowned {}; - class WoundedEffect{}; - class HasWounded{}; - class EjectWounded{}; - class OnDrag{}; - class LifeTick {}; - class OnDeath {}; - class OnHeal {}; - class OnDamage{}; - class SetBleeding{}; - class GetAnimation{}; - }; - class fspectator - { - file = "f\spect"; - class CamInit{}; - class OnUnload{}; - class DrawTags{}; - class EventHandler{}; - class FreeCam{}; - class GetPlayers{}; - class ReloadModes{}; - class UpdateValues{}; - class HandleCamera{}; - class ToggleGUI{}; - class OnMapClick{}; - class DrawMarkers{}; - class ForceExit{}; - class HandleMenu{}; - class showMenu{}; - }; }; \ No newline at end of file diff --git a/f/spect/f_activate_spectator.sqf b/f/spect/f_activate_spectator.sqf new file mode 100644 index 000000000..8d3000f14 --- /dev/null +++ b/f/spect/f_activate_spectator.sqf @@ -0,0 +1,3 @@ +BIS_DeathBlur ppEffectAdjust [0.0]; +BIS_DeathBlur ppEffectCommit 0.0; +["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; \ No newline at end of file diff --git a/ws_fnc/config.hpp b/ws_fnc/config.hpp index 7f0d1faf6..d8712efe4 100644 --- a/ws_fnc/config.hpp +++ b/ws_fnc/config.hpp @@ -74,14 +74,6 @@ class WS class setAIMode {}; class setInsidePos {}; }; - class cache - { - file = "ws_fnc\cache"; - class cInit {}; - class gCache {}; - class gUncache {}; - class cTracker {}; - }; class init { class init {file = "ws_fnc\ws_fnc_init.sqf";preInit = 1;}; From 1cf47aadf45e729ad68738e117310cae1a7b000f Mon Sep 17 00:00:00 2001 From: Pooter Date: Wed, 7 Jun 2017 10:46:06 -0700 Subject: [PATCH 012/407] Remove additional unused functions and change some settings in spectator mode. --- description.ext | 26 +++++- f/common/functions.hpp | 10 +- f/simplewoundingsystem/fn_addDragAction.sqf | 38 ++++++++ f/simplewoundingsystem/fn_onDrag.sqf | 91 +++++++++++++++++++ f/simplewoundingsystem/fn_onDragServer.sqf | 45 +++++++++ .../fn_reviveEhDammaged.sqf | 55 +++++++++++ f/simplewoundingsystem/init.sqf | 60 ++++++++++++ 7 files changed, 323 insertions(+), 2 deletions(-) create mode 100644 f/simplewoundingsystem/fn_addDragAction.sqf create mode 100644 f/simplewoundingsystem/fn_onDrag.sqf create mode 100644 f/simplewoundingsystem/fn_onDragServer.sqf create mode 100644 f/simplewoundingsystem/fn_reviveEhDammaged.sqf create mode 100644 f/simplewoundingsystem/init.sqf diff --git a/description.ext b/description.ext index b3890e468..d5f0b6258 100644 --- a/description.ext +++ b/description.ext @@ -9,6 +9,22 @@ overviewPicture = "overviewLogo.jpg"; // ============================================================================================ + +// F3 - Respawn Settings + + +respawn = 1; +respawndelay = 3; +respawnOnStart = 0; +respawnTemplates[] = {"Seagull"}; + +// ============================================================================================ + +// F3 - Revive Settings +/* +https://community.bistudio.com/wiki/Arma_3_Revive +https://community.bistudio.com/wiki/Description.ext#ReviveMode +*/ ReviveMode = 1; ReviveUnconsciousStateMode = 1; ReviveRequiredTrait = 0; @@ -289,10 +305,18 @@ class CfgDebriefing // ============================================================================================ -// F3 - Menu components +// F3 - Respawn templates // DO NOT REMOVE OR DISABLE THIS BLOCK OF CODE +// ============================================================================================ +class CfgRespawnTemplates +{ + class Seagull + { + onPlayerRespawn = "f\spect\f_activate_spectator.sqf"; + }; +}; // ============================================================================================ diff --git a/f/common/functions.hpp b/f/common/functions.hpp index 53f17f49b..7fdf73b47 100644 --- a/f/common/functions.hpp +++ b/f/common/functions.hpp @@ -87,4 +87,12 @@ class F // Defines the "owner" file = "f\safeStart"; class safety{}; }; -}; \ No newline at end of file + class woundingsystem + { + file = "f\simplewoundingsystem"; + class reviveEhDammaged {}; + class addDragAction {}; + class onDrag {}; + class onDragServer {}; + }; +}; diff --git a/f/simplewoundingsystem/fn_addDragAction.sqf b/f/simplewoundingsystem/fn_addDragAction.sqf new file mode 100644 index 000000000..28330744a --- /dev/null +++ b/f/simplewoundingsystem/fn_addDragAction.sqf @@ -0,0 +1,38 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +params ["_unit"]; + +if (!hasInterface) exitWith {}; +waitUntil {sleep 0.1; !isNull player}; +if (_unit == player) exitWith {}; + + +//_target (object to which action is attached to) +// _this (caller/executing person) +//TODO CODE HAS TO BE A STRING +//TODO MAYBE {side group _this getFriend side group _target >= 0.6} (just like the bis revive thing) +private _drag_action_cond = str { + _var = _this getVariable ['f_wound_dragging',nil]; + _target distance _this < 2 && { + isNil '_var' && { + GET_STATE(_target) == STATE_INCAPACITATED && { + !(_target getVariable ['f_wound_being_dragged',false]) + } + } + } +}; +//hacky method to remove the braces at the beginning and end, so that it's the format that addAction expects. +_drag_action_cond = _drag_action_cond select [1, count _drag_action_cond - 2]; + +_unit addAction [ + format ["Drag %1", name _unit], + + // _this variable (in the code below) is: [target, caller, ID, arguments] + { _this remoteExec ["f_fnc_OnDrag", [_this select 0,_this select 1]] }, //called for both players + nil, + 6, + false, + true, + "", + _drag_action_cond +]; diff --git a/f/simplewoundingsystem/fn_onDrag.sqf b/f/simplewoundingsystem/fn_onDrag.sqf new file mode 100644 index 000000000..49bb888a6 --- /dev/null +++ b/f/simplewoundingsystem/fn_onDrag.sqf @@ -0,0 +1,91 @@ +// F3 - SimpleWoundingSystem + +// ==================================================================================== +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +params ["_unit", "_dragger"]; + +_dragger setVariable ["f_wound_dragging", _unit, true]; +_unit setVariable ["f_wound_being_dragged", true, true]; + +private _actionIdx = -1; + +//TODO wait until animation ANIM_WOUNDED?? + +// the dragger gets a release option. +if(local _dragger) then { + _this remoteExec ["f_fnc_onDragServer", 2]; + + _actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];(_this select 1) removeAction (_this select 2);}, nil, 6, false, true, "", "true"]; + + //switch (currentWeapon _dragger) do { + // case (primaryWeapon _dragger): { + // _dragger playMoveNow "acinpknlmstpsraswrfldnon"; + // }; + // case (secondaryWeapon _dragger): { + // _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; + // }; + //}; acinpknlmstpsraswrfldnon + _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; +}; +//_unit switchMove "AinjPpneMrunSnonWnonDb"; + +if(local _unit) then +{ + // setup the unit and all that fun stuff. + _unit attachTo [_dragger, [0, 1.1, 0.092]]; + _unit SetDir 180; + _unit SetPos (getpos _unit); +}; + +// Wait until the unit is released, dead, downed, or revived) +waitUntil { + sleep 0.1; + _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; + ( + isNil "_dragged_unit" //unit is released + || !(_unit getVariable ["f_wound_being_dragged", false]) + || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore + || IS_BEING_REVIVED(_unit) // someone else is reviving the unit + || !alive _unit + || !alive _dragger + || !(isPlayer _dragger) + || !(isPlayer _unit) + ) +}; + +// release unit. +if (_actionIdx != -1) then { _dragger removeAction _actionIdx; }; + +_dragger setVariable ["f_wound_dragging", nil, true]; +_unit setVariable ["f_wound_being_dragged", false, true]; +detach _unit; +_unit setPosATL getposATL _dragger; +/* +_unit switchmove ""; //otherwise player might get stuck +_dragger switchmove ""; //otherwise player might get stuck +*/ +/* +//Animations: +if( GET_STATE(_dragger) != STATE_INCAPACITATED && GET_STATE(_dragger) != STATE_DEAD) then { + _unit switchMove "AinjPpneMstpSnonWrflDb_release"; +}; + +sleep 0.1; +*/ +if( GET_STATE(_unit) == STATE_INCAPACITATED ) then { + //_unit switchMove ANIM_WOUNDED; + _unit switchMove ANIM_WOUNDED; +} else { + //_unit switchMove "amovppnemstpsraswrfldnon"; + //_unit switchmove "amovppnemstpsraswrfldnon" + _unit switchMove ""; +}; +/* +if( GET_STATE(_dragger) == STATE_INCAPACITATED ) then { + _dragger switchMove ANIM_WOUNDED; +} else { + //_dragger switchMove ""; + _dragger switchMove ""; +}; +*/ diff --git a/f/simplewoundingsystem/fn_onDragServer.sqf b/f/simplewoundingsystem/fn_onDragServer.sqf new file mode 100644 index 000000000..c2ade95b8 --- /dev/null +++ b/f/simplewoundingsystem/fn_onDragServer.sqf @@ -0,0 +1,45 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" +// F3 - SimpleWoundingSystem + +// ==================================================================================== +params ["_unit", "_dragger"]; + +// Wait until the unit is released, dead or downed, or revived) +waitUntil { + sleep 0.1; + _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; + ( + isNil "_dragged_unit" //unit is released + || !(_unit getVariable ["f_wound_being_dragged", false]) + || !alive _dragger // dragger died + || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore + || IS_BEING_REVIVED(_unit) // someone else is reviving the unit + || !alive _unit + || !alive _dragger + || !(isPlayer _dragger) + || !(isPlayer _unit) + ) +}; + +_dragger setVariable ["f_wound_dragging", nil, true]; +_unit setVariable ["f_wound_being_dragged", false, true]; +detach _unit; +_unit setPosATL getposATL _dragger; + +//_unit switchmove ""; //otherwise player might get stuck +//_dragger switchmove ""; //otherwise player might get stuck + +if( GET_STATE(_dragger) == STATE_INCAPACITATED ) then { + _dragger switchMove ANIM_WOUNDED; +} else { + //_dragger switchMove ""; + //_unit switchmove "amovppnemstpsraswrfldnon" + _dragger switchMove ""; +}; +//if( GET_STATE(_unit) == STATE_INCAPACITATED ) then { +// //_unit switchMove ANIM_WOUNDED; +//} else { +// //_unit switchMove ANIM_OK; +// //_dragger switchMove ""; +// _unit switchMove ""; +//}; diff --git a/f/simplewoundingsystem/fn_reviveEhDammaged.sqf b/f/simplewoundingsystem/fn_reviveEhDammaged.sqf new file mode 100644 index 000000000..91f451c34 --- /dev/null +++ b/f/simplewoundingsystem/fn_reviveEhDammaged.sqf @@ -0,0 +1,55 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +/* +unit: Object - Object the event handler is assigned to +hitSelection: String - Name of the selection where the unit was damaged +damage: Number - Resulting level of damage +hitPartIndex: Number - hit index of the hit selection +hitPoint: String - hit point Cfg name +shooter: Object - shooter reference (to get instigator use getShotParents on projectile) +projectile: Object - the projectile that caused damage +*/ + +params ["_unit", "", "_damage","","_hitPoint","_source"]; + +if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Incapacitated" && {IS_ACTIVE(_unit)}}}}) then +{ + //["[i] Incapacitated by dependence: %1",_this] call bis_fnc_logFormat; + + //award attacker with +1 'infantry kill' point + [_source] spawn bis_fnc_reviveAwardKill; + + //incapacitate unit outside of vehicle + if (!IN_VEHICLE(_unit)) then + { + if (isNull _source || {!bis_revive_killfeedShow}) then + { + SET_STATE(_unit,STATE_INCAPACITATED); + } + else + { + SET_STATE_XTRA(_unit,STATE_INCAPACITATED,_source); + }; + + //remove force-"respawn" action + if (f_wound_disallowForceRespawn) then { + [] spawn { + private _time = time + 10; //only wait for 10 seconds to avoid stacked threads + waitUntil {sleep 0.05; (player getVariable [VAR_ACTION_ID_RESPAWN,-1] != -1) || (time > _time) }; + //remove user action + private _actionID = player getVariable [VAR_ACTION_ID_RESPAWN,-1]; + if (_actionID != -1) then { + [player,_actionID] call bis_fnc_holdActionRemove; + player setVariable [VAR_ACTION_ID_RESPAWN,-1]; + }; + //reset 'forcing respawn' flags + if (IS_FORCING_RESPAWN(player)) then {SET_FORCING_RESPAWN(player, false);}; + }; + }; + } + //kill unit in vehicle + else + { + _unit setDamage 1; + }; +}; diff --git a/f/simplewoundingsystem/init.sqf b/f/simplewoundingsystem/init.sqf new file mode 100644 index 000000000..f2d4fad57 --- /dev/null +++ b/f/simplewoundingsystem/init.sqf @@ -0,0 +1,60 @@ +// F3 - SimpleWoundingSystem + +// ==================================================================================== +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +/* +CURRENT STATUS: +* DRAGGING. + * animations are weird. + * test all the things + dc while dragging. + wounding while dragging.... + * what if someone starts reviving? => dont do animation changes to dragged unit? + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +* bis revive JIP is broken. maybe only because of me => test in new mission => maybe we have to go back to sws +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +* test bis revive with zeus and admin tool + https://feedback.bistudio.com/T85766 + + +* Vehicles - due to technical limitations, the unconscious state in vehicles is not supported. Players die immediately + maybe we can add our own damage handler if in vehicle... + fn_reviveEhDammaged if ! in vehicle => setdamage 0. can we prevent this? + yes, we can delete and recreate the EH: player setVariable ["bis_revive_ehDammaged", player addEventHandler ["Dammaged",bis_fnc_reviveEhDammaged]]; + +* Also, I think the respawn button has been and will be still in the pause menu, not sure if that's the case in SWS or if I'm mixing things up + +IF server side addon: can we override the old SWS? or just set a variable in description.ext to check if sws is a thing or not. (or just use the normal f_param...sws variable.. +https://github.com/darkChozo/fa_crosshair + +USE POST INIT in cfgfunctions instead of init.sqf for some things + +TEST +test if downed units can drag others. +(all the tests from modified sws todo list) + +what happens if a dragging unit gets downed? + + + +*/ +params ["_unit"]; + +if (!hasInterface) exitWith {}; + + + +//set our own event handler: (to allow special handling of vehicles, and to remove the force-respawn action) +[] spawn { + waitUntil {sleep 1; (player getVariable ["bis_revive_ehDammaged", -1]) != -1}; + private _ehID = player getVariable ["bis_revive_ehDammaged", -1]; + if (_ehID != -1) then { + player removeEventHandler ["Dammaged", _ehID]; + }; + player setVariable ["bis_revive_ehDammaged", player addEventHandler ["Dammaged", f_fnc_reviveEhDammaged]]; +}; + +//drag action: +[_unit] remoteExec ["f_fnc_addDragAction", 0, _unit]; + From 0f2a9a549528ba093159396cc4dc07d8acacb82a Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Mon, 12 Jun 2017 02:26:58 +0200 Subject: [PATCH 013/407] simplify setLocalVars --- f/common/f_setLocalVars.sqf | 239 +++++++----------------------------- 1 file changed, 47 insertions(+), 192 deletions(-) diff --git a/f/common/f_setLocalVars.sqf b/f/common/f_setLocalVars.sqf index a4d31a0ac..f597c3c29 100644 --- a/f/common/f_setLocalVars.sqf +++ b/f/common/f_setLocalVars.sqf @@ -5,11 +5,7 @@ // ==================================================================================== // DEBUG DEFINES -#define SLV_NAME "(f\common\f_setLocalVars.sqf)" -#define DEBUG_OUTPUT player sidechat - -// DECLARE VARIABLES AND FUNCTIONS -private ["_str_f_var_units","_str_f_var_units_BLU","_str_f_var_units_RES","_str_f_var_units_OPF","_str_f_var_units_CIV","_str_f_var_men","_str_f_var_men_BLU","_str_f_var_men_RES","_str_f_var_men_OPF","_str_f_var_men_CIV","_str_f_var_groups_BLU","_str_f_var_groups_RES","_str_f_var_groups_OPF","_str_f_var_groups_CIV","_str_f_var_groups","_str_f_var_vehicles","_str_f_var_vehicles_BLU","_str_f_var_vehicles_RES","_str_f_var_vehicles_OPF","_str_f_var_vehicles_CIV"]; +#define DEBUG_OUTPUT(ARG) if (f_param_debugMode == 1) then { systemChat format ["DEBUG (f\common\f_setLocalVars.sqf): %1 = %2", #ARG, ARG]; }; // ==================================================================================== @@ -18,227 +14,133 @@ private ["_str_f_var_units","_str_f_var_units_BLU","_str_f_var_units_RES","_str_ f_var_units = allUnits + vehicles; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_units = str f_var_units; - DEBUG_OUTPUT format ["DEBUG %2: f_var_units = %1", _str_f_var_units, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_units); // ==================================================================================== // COMMON VARIABLE: f_var_units_BLU // Using f_var_units we will create an array containing all BLUFOR units. -f_var_units_BLU = []; -{if ((side _x) == west ) then {f_var_units_BLU = f_var_units_BLU + [_x]}} forEach f_var_units; +f_var_units_BLU = f_var_units select { (side _x) == west }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_units_BLU = str f_var_units_BLU; - DEBUG_OUTPUT format ["DEBUG %2: f_var_units_BLU = %1",_str_f_var_units_BLU, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_units_BLU); // ==================================================================================== // COMMON VARIABLE: f_var_units_RES // Using f_var_units we will create an array containing all resistance units. -f_var_units_RES = []; -{if ((side _x) == resistance) then {f_var_units_RES = f_var_units_RES + [_x]}} forEach f_var_units; +f_var_units_RES = f_var_units select { (side _x) == resistance }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_units_RES = str f_var_units_RES; - DEBUG_OUTPUT format ["DEBUG %2: f_var_units_RES = %1",_str_f_var_units_RES, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_units_RES); // ==================================================================================== // COMMON VARIABLE: f_var_units_OPF // Using f_var_units we will create an array containing all OPFOR units. -f_var_units_OPF = []; -{if ((side _x) == east) then {f_var_units_OPF = f_var_units_OPF + [_x]}} forEach f_var_units; +f_var_units_OPF = f_var_units select { (side _x) == east }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_units_OPF = str f_var_units_OPF; - DEBUG_OUTPUT format ["DEBUG %2: f_var_units_OPF = %1",_str_f_var_units_OPF, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_units_OPF); // ==================================================================================== // COMMON VARIABLE: f_var_units_CIV // Using f_var_units we will create an array containing all civilian units. -f_var_units_CIV = []; -{if ((side _x) == civilian) then {f_var_units_CIV = f_var_units_CIV + [_x]}} forEach f_var_units; +f_var_units_CIV = f_var_units select { (side _x) == civilian }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_units_CIV = str f_var_units_CIV; - DEBUG_OUTPUT format ["DEBUG %2: f_var_units_CIV = %1",_str_f_var_units_CIV, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_units_CIV); // ==================================================================================== // COMMON VARIABLE: f_var_men // Using the master trigger we will create an array containing all men. -f_var_men = []; -{ - if ((_x isKindOf "CAManBase")) then - { - f_var_men = f_var_men + [_x] - }; -} forEach f_var_units; - -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_men = str f_var_men; - DEBUG_OUTPUT format ["DEBUG %2: f_var_men = %1",_str_f_var_men, SLV_NAME]; -}; +f_var_men = f_var_units select { _x isKindOf "CAManBase" }; + +DEBUG_OUTPUT(f_var_men); // ==================================================================================== // COMMON VARIABLE: f_var_men_BLU // Using f_var_men we will create an array containing all BLUFOR men. -f_var_men_BLU = []; -{if ((side _x) == west) then {f_var_men_BLU = f_var_men_BLU + [_x]}} forEach f_var_men; +f_var_men_BLU = f_var_men select { (side _x) == west }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_men_BLU = str f_var_men_BLU; - DEBUG_OUTPUT format ["DEBUG %2: f_var_men_BLU = %1",_str_f_var_men_BLU, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_men_BLU); // ==================================================================================== // COMMON VARIABLE: f_var_men_RES // Using f_var_men we will create an array containing all resistance men. -f_var_men_RES = []; -{if ((side _x) == resistance) then {f_var_men_RES = f_var_men_RES + [_x]}} forEach f_var_men; +f_var_men_RES = f_var_men select { (side _x) == resistance }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_men_RES = str f_var_men_RES; - DEBUG_OUTPUT format ["DEBUG %2: f_var_men_RES = %1",_str_f_var_men_RES, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_men_RES); // ==================================================================================== // COMMON VARIABLE: f_var_men_OPF // Using f_var_men we will create an array containing all OPFOR men. -f_var_men_OPF = []; -{if ((side _x) == east) then {f_var_men_OPF = f_var_men_OPF + [_x]}} forEach f_var_men; +f_var_men_OPF = f_var_men select { (side _x) == east }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_men_OPF = str f_var_men_OPF; - DEBUG_OUTPUT format ["DEBUG %2: f_var_men_OPF = %1",_str_f_var_men_OPF, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_men_OPF); // ==================================================================================== // COMMON VARIABLE: f_var_men_CIV // Using f_var_men we will create an array containing all civilian men. -f_var_men_CIV = []; -{if ((side _x) == civilian) then {f_var_men_CIV = f_var_men_CIV + [_x]}} forEach f_var_men; +f_var_men_CIV = f_var_men select { (side _x) == civilian }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_men_CIV = str f_var_men_CIV; - DEBUG_OUTPUT format ["DEBUG %2: f_var_men_CIV = %1",_str_f_var_men_CIV, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_men_CIV); // ==================================================================================== // COMMON VARIABLE: f_var_men_players // Using f_var_men we will create an array containing all players. -f_var_men_players = []; -{if (isPlayer _x) then {f_var_men_players = f_var_men_players + [_x]}} forEach f_var_men; +f_var_men_players = f_var_men select { isPlayer _x }; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_men_players = str f_var_men_players; - DEBUG_OUTPUT format ["DEBUG %2: f_var_men_players = %1",_str_f_var_men_players, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_men_players); // ==================================================================================== // COMMON VARIABLE: f_var_groups_BLU -// Using f_var_units_BLU we will create an array containing all BLUFOR groups. +// We will create an array containing all BLUFOR groups. -f_var_groups_BLU = []; -{if (!((group _x) in f_var_groups_BLU)) then {f_var_groups_BLU = f_var_groups_BLU + [group _x]}} forEach f_var_units_BLU; +f_var_groups_BLU = allGroups select {side _x == west}; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_groups_BLU = str f_var_groups_BLU; - DEBUG_OUTPUT format ["DEBUG %2: f_var_groups_BLU = %1",_str_f_var_groups_BLU, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_groups_BLU); // ==================================================================================== // COMMON VARIABLE: f_var_groups_RES -// Using f_var_units_RES we will create an array containing all resistance groups. +// We will create an array containing all resistance groups. -f_var_groups_RES = []; -{if (!((group _x) in f_var_groups_RES)) then {f_var_groups_RES = f_var_groups_RES + [group _x]}} forEach f_var_units_RES; +f_var_groups_RES = allGroups select {side _x == resistance}; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_groups_RES = str f_var_groups_RES; - DEBUG_OUTPUT format ["DEBUG %2: f_var_groups_RES = %1",_str_f_var_groups_RES, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_groups_RES); // ==================================================================================== // COMMON VARIABLE: f_var_groups_OPF -// Using f_var_units_OPF we will create an array containing all OPFOR groups. +// We will create an array containing all OPFOR groups. -f_var_groups_OPF = []; -{if (!((group _x) in f_var_groups_OPF)) then {f_var_groups_OPF = f_var_groups_OPF + [group _x]}} forEach f_var_units_OPF; +f_var_groups_OPF = allGroups select {side _x == east}; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_groups_OPF = str f_var_groups_OPF; - DEBUG_OUTPUT format ["DEBUG %2: f_var_groups_OPF = %1",_str_f_var_groups_OPF, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_groups_OPF); // ==================================================================================== // COMMON VARIABLE: f_var_groups_CIV -// Using f_var_units_CIV we will create an array containing all civilian groups. +// We will create an array containing all civilian groups. -f_var_groups_CIV = []; -{if (!((group _x) in f_var_groups_CIV)) then {f_var_groups_CIV = f_var_groups_CIV + [group _x]}} forEach f_var_units_CIV; +f_var_groups_CIV = allGroups select {side _x == civilian}; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_groups_CIV = str f_var_groups_CIV; - DEBUG_OUTPUT format ["DEBUG %2: f_var_groups_CIV = %1",_str_f_var_groups_CIV, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_groups_CIV); // ==================================================================================== @@ -247,33 +149,16 @@ if (f_param_debugMode == 1) then f_var_groups = allGroups; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_groups = str f_var_groups; - DEBUG_OUTPUT format ["DEBUG %2: f_var_groups = %1",_str_f_var_groups, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_groups); // ==================================================================================== // COMMON VARIABLE: f_var_groups_players // We will create an array containing all groups with at least one player. -f_var_groups_players = []; -{ - _units = units _x; - if ({isPlayer _x} count _units >= 1) then { - f_var_groups_players set [count f_var_groups_players,_x]; - }; -} forEach f_var_groups; - -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_groups = str f_var_groups; - DEBUG_OUTPUT format ["DEBUG %2: f_var_groups = %1",_str_f_var_groups, SLV_NAME]; -}; +f_var_groups_players = f_var_groups select { {isPlayer _x} count units _x >= 1 }; +DEBUG_OUTPUT(f_var_groups_players); // ==================================================================================== @@ -282,70 +167,40 @@ if (f_param_debugMode == 1) then f_var_vehicles = vehicles; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_vehicles = str f_var_vehicles; - DEBUG_OUTPUT format ["DEBUG %2: f_var_vehicles = %1",_str_f_var_vehicles, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_vehicles); // ==================================================================================== // COMMON VARIABLE: f_var_vehicles_BLU // Using f_var_vehicles we will create an array containing all BLUFOR vehicles. -f_var_vehicles_BLU = []; -{if ((side _x) == west) then {f_var_vehicles_BLU = f_var_vehicles_BLU + [_x]}} forEach f_var_vehicles; +f_var_vehicles_BLU = f_var_vehicles select {side _x == west}; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_vehicles_BLU = str f_var_vehicles_BLU; - DEBUG_OUTPUT format ["DEBUG %2: f_var_vehicles_BLU = %1",_str_f_var_vehicles_BLU, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_vehicles_BLU); // ==================================================================================== // COMMON VARIABLE: f_var_vehicles_RES // Using f_var_vehicles we will create an array containing all resistance vehicles. -f_var_vehicles_RES = []; -{if ((side _x) == resistance) then {f_var_vehicles_RES = f_var_vehicles_RES + [_x]}} forEach f_var_vehicles; +f_var_vehicles_RES = f_var_vehicles select {side _x == resistance}; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_vehicles_RES = str f_var_vehicles_RES; - DEBUG_OUTPUT format ["DEBUG %2: f_var_vehicles_RES = %1",_str_f_var_vehicles_RES, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_vehicles_RES); // ==================================================================================== // COMMON VARIABLE: f_var_vehicles_OPF // Using f_var_vehicles we will create an array containing all OPFOR vehicles. -f_var_vehicles_OPF = []; -{if ((side _x) == east) then {f_var_vehicles_OPF = f_var_vehicles_OPF + [_x]}} forEach f_var_vehicles; +f_var_vehicles_OPF = f_var_vehicles select {side _x == east}; -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_vehicles_OPF = str f_var_vehicles_OPF; - DEBUG_OUTPUT format ["DEBUG %2: f_var_vehicles_OPF = %1",_str_f_var_vehicles_OPF, SLV_NAME]; -}; +DEBUG_OUTPUT(f_var_vehicles_OPF); // ==================================================================================== // COMMON VARIABLE: f_var_vehicles_CIV // Using f_var_vehicles we will create an array containing all civilian vehicles. -f_var_vehicles_CIV = []; -{if ((side _x) == civilian) then {f_var_vehicles_CIV = f_var_vehicles_CIV + [_x]}} forEach f_var_vehicles; - -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_f_var_vehicles_CIV = str f_var_vehicles_CIV; - DEBUG_OUTPUT format ["DEBUG %2: f_var_vehicles_CIV = %1",_str_f_var_vehicles_CIV, SLV_NAME]; -}; +f_var_vehicles_CIV = f_var_vehicles select {side _x == civilian}; +DEBUG_OUTPUT(f_var_vehicles_CIV); From 99fbd6d360f7930255b43e4c9f48d980053daa81 Mon Sep 17 00:00:00 2001 From: Pooter Date: Sat, 17 Jun 2017 00:12:37 -0700 Subject: [PATCH 014/407] Additional support for dragging Changes to medical system in general --- description.ext | 15 ++- f/functions.hpp | 104 ++++++++++++++++++ f/medical/fn_EjectWounded.sqf | 21 ++++ f/medical/fn_HasWounded.sqf | 13 +++ .../fn_addDragAction.sqf | 3 +- f/medical/fn_addEject.sqf | 4 + f/medical/fn_addServerKilledEh.sqf | 5 + f/medical/fn_clientKilledEh.sqf | 3 + .../fn_onDrag.sqf | 43 +++----- .../fn_onDragServer.sqf | 0 f/medical/fn_reInhabitBody.sqf | 0 f/medical/fn_reviveEhDammaged.sqf | 93 ++++++++++++++++ f/medical/fn_reviveEhKilledInVeh.sqf | 8 ++ f/{simplewoundingsystem => medical}/init.sqf | 12 +- .../fn_reviveEhDammaged.sqf | 55 --------- init.sqf | 13 +-- 16 files changed, 293 insertions(+), 99 deletions(-) create mode 100644 f/functions.hpp create mode 100644 f/medical/fn_EjectWounded.sqf create mode 100644 f/medical/fn_HasWounded.sqf rename f/{simplewoundingsystem => medical}/fn_addDragAction.sqf (89%) create mode 100644 f/medical/fn_addEject.sqf create mode 100644 f/medical/fn_addServerKilledEh.sqf create mode 100644 f/medical/fn_clientKilledEh.sqf rename f/{simplewoundingsystem => medical}/fn_onDrag.sqf (73%) rename f/{simplewoundingsystem => medical}/fn_onDragServer.sqf (100%) create mode 100644 f/medical/fn_reInhabitBody.sqf create mode 100644 f/medical/fn_reviveEhDammaged.sqf create mode 100644 f/medical/fn_reviveEhKilledInVeh.sqf rename f/{simplewoundingsystem => medical}/init.sqf (92%) delete mode 100644 f/simplewoundingsystem/fn_reviveEhDammaged.sqf diff --git a/description.ext b/description.ext index d5f0b6258..abc15d2be 100644 --- a/description.ext +++ b/description.ext @@ -325,7 +325,7 @@ class CfgRespawnTemplates class CfgFunctions { - #include "f\common\functions.hpp" + #include "f\functions.hpp" #include "ws_fnc\config.hpp" }; @@ -337,3 +337,16 @@ class CfgFunctions class CfgUnitInsignia { #include "f\assignGear\insignia\define.hpp" }; +class CfgRemoteExec +{ + // List of script functions allowed to be sent from client via remoteExec + class Functions + { + mode = 2; + }; + // List of script commands allowed to be sent from client via remoteExec + class Commands + { + mode = 2; + }; +}; \ No newline at end of file diff --git a/f/functions.hpp b/f/functions.hpp new file mode 100644 index 000000000..66dc9234d --- /dev/null +++ b/f/functions.hpp @@ -0,0 +1,104 @@ +// F3 Functions + +class F // Defines the "owner" +{ + class common // category + { + file = "f\common"; + class processParamsArray{preInit = 1; postInit=1;}; + class nearPlayer{}; + }; + class mpEnd + { + file = "f\mpEnd"; + class mpEnd{}; + class mpEndReceiver{}; + }; + class assignGear + { + file = "f\assignGear"; + class assignGear{}; + }; + class setGroupID + { + file = "f\setGroupID"; + class setGroupID{}; + }; + class missionConditions + { + file = "f\missionConditions"; + class SetTime{}; + class SetFog{}; + class SetWeather{}; + class SetWind{}; + }; + class groupMarkers { + file = "f\groupMarkers"; + class localGroupMarker{}; + class localSpecialistMarker{}; + }; + class authorisedCrew + { + file = "f\authorisedCrew"; + class authorisedCrewCheck {}; + }; + class FTMemberMarkers + { + file = "f\FTMemberMarkers"; + class SetLocalFTMemberMarkers{}; + class GetMarkerColor{}; + class LocalFTMarkerSync{}; + }; + class bodyRemoval + { + file = "f\removeBody"; + class removeBody{}; + }; + class setAISkill + { + file = "f\setAISKill"; + class setAISKill{}; + }; + class mapClickTeleport + { + file = "f\mapClickTeleport"; + class mapClickTeleportUnit{}; + class mapClickTeleportGroup{}; + }; + class nametag + { + file = "f\nametag"; + class drawNameTag{}; + }; + class preMount + { + file = "f\preMount"; + class mountGroups{}; + }; + class zeus + { + file = "f\zeus"; + class zeusInit{}; + class zeusAddAddons{}; + class zeusAddObjects{}; + }; + class safeStart + { + file = "f\safeStart"; + class safety{}; + }; + class woundingsystem + { + file = "f\medical"; + class reviveEhDammaged {}; + class reviveEhKilledInVeh {}; + class addServerKilledEh {}; + class clientKilledEh {}; + class addDragAction {}; + class onDrag {}; + class onDragServer {}; + class HasWounded {}; + class EjectWounded {}; + class addEject {}; + }; +}; diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf new file mode 100644 index 000000000..968965804 --- /dev/null +++ b/f/medical/fn_EjectWounded.sqf @@ -0,0 +1,21 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" +// F3 - SimpleWoundingSystem +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== +diag_log format ["%1 is going", _this]; +_veh = _this select 0; + +{ + diag_log format ["%1 is disabled %2", _x, IS_DISABLED(_x)]; + if(IS_DISABLED(_x)) then + { + SET_STATE(_x,STATE_REVIVED); + diag_log format ["%1 ejecting", _x]; + _x action["eject",_veh]; + sleep 0.2; + SET_STATE(_x,STATE_INCAPACITATED); + _originalOwnerId = _x getVariable["#revOwner", 2]; + [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; + }; +} forEach crew _veh; +_veh removeAction (_this select 2); \ No newline at end of file diff --git a/f/medical/fn_HasWounded.sqf b/f/medical/fn_HasWounded.sqf new file mode 100644 index 000000000..2dd439ba2 --- /dev/null +++ b/f/medical/fn_HasWounded.sqf @@ -0,0 +1,13 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" +// F3 - SimpleWoundingSystem +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== +_veh = _this select 0; +_ret = false; +{ + if(IS_DISABLED(_x)) then + { + _ret = true; + }; +} foreach crew _veh; +_ret \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf similarity index 89% rename from f/simplewoundingsystem/fn_addDragAction.sqf rename to f/medical/fn_addDragAction.sqf index 28330744a..cbdd6874c 100644 --- a/f/simplewoundingsystem/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -16,7 +16,8 @@ private _drag_action_cond = str { _target distance _this < 2 && { isNil '_var' && { GET_STATE(_target) == STATE_INCAPACITATED && { - !(_target getVariable ['f_wound_being_dragged',false]) + (_target getVariable ['f_wound_draggable',false]) + && !(_target getVariable ['f_wound_being_dragged',false]) } } } diff --git a/f/medical/fn_addEject.sqf b/f/medical/fn_addEject.sqf new file mode 100644 index 000000000..73901749b --- /dev/null +++ b/f/medical/fn_addEject.sqf @@ -0,0 +1,4 @@ +diag_log "adding eject "; +_unit = _this select 0; +_unit switchmove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); +(vehicle _unit) addAction ["Pull out wounded", {_this remoteExec ["f_fnc_EjectWounded", -2]}, nil, 5, false, true, "", "[_target] call f_fnc_HasWounded", 5]; \ No newline at end of file diff --git a/f/medical/fn_addServerKilledEh.sqf b/f/medical/fn_addServerKilledEh.sqf new file mode 100644 index 000000000..cb1f6f418 --- /dev/null +++ b/f/medical/fn_addServerKilledEh.sqf @@ -0,0 +1,5 @@ +_unit = _this select 0; +_originalOwnerId = _this select 1; +_eh = _unit addEventHandler ["Killed",f_fnc_reviveEhKilledInVeh]; +diag_log format["adding event handler %1", _eh]; +_unit setVariable ["f3_revive_ehKilled", _eh]; \ No newline at end of file diff --git a/f/medical/fn_clientKilledEh.sqf b/f/medical/fn_clientKilledEh.sqf new file mode 100644 index 000000000..ff9248f22 --- /dev/null +++ b/f/medical/fn_clientKilledEh.sqf @@ -0,0 +1,3 @@ +diag_log "client killedInVeh called"; +F_UncCC ppEffectEnable false; +selectPlayer (_this select 0); \ No newline at end of file diff --git a/f/simplewoundingsystem/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf similarity index 73% rename from f/simplewoundingsystem/fn_onDrag.sqf rename to f/medical/fn_onDrag.sqf index 49bb888a6..b46d9dc65 100644 --- a/f/simplewoundingsystem/fn_onDrag.sqf +++ b/f/medical/fn_onDrag.sqf @@ -1,5 +1,16 @@ // F3 - SimpleWoundingSystem +/* +//\ +unit placement post drag +post drag revive problems +revive ragdoll drag + +test: +dragger down +dragger dead + +*/ // ==================================================================================== #include "\a3\functions_f_mp_mark\Revive\defines.inc" @@ -10,7 +21,6 @@ _unit setVariable ["f_wound_being_dragged", true, true]; private _actionIdx = -1; -//TODO wait until animation ANIM_WOUNDED?? // the dragger gets a release option. if(local _dragger) then { @@ -60,32 +70,7 @@ if (_actionIdx != -1) then { _dragger removeAction _actionIdx; }; _dragger setVariable ["f_wound_dragging", nil, true]; _unit setVariable ["f_wound_being_dragged", false, true]; detach _unit; -_unit setPosATL getposATL _dragger; -/* -_unit switchmove ""; //otherwise player might get stuck -_dragger switchmove ""; //otherwise player might get stuck -*/ -/* -//Animations: -if( GET_STATE(_dragger) != STATE_INCAPACITATED && GET_STATE(_dragger) != STATE_DEAD) then { - _unit switchMove "AinjPpneMstpSnonWrflDb_release"; +[_unit, _dragger] spawn { + (_this select 0) setPosATL ([(getposATL (_this select 1)), 1.2, direction (_this select 1)] call BIS_fnc_relPos); }; - -sleep 0.1; -*/ -if( GET_STATE(_unit) == STATE_INCAPACITATED ) then { - //_unit switchMove ANIM_WOUNDED; - _unit switchMove ANIM_WOUNDED; -} else { - //_unit switchMove "amovppnemstpsraswrfldnon"; - //_unit switchmove "amovppnemstpsraswrfldnon" - _unit switchMove ""; -}; -/* -if( GET_STATE(_dragger) == STATE_INCAPACITATED ) then { - _dragger switchMove ANIM_WOUNDED; -} else { - //_dragger switchMove ""; - _dragger switchMove ""; -}; -*/ +_dragger switchmove ""; //otherwise player might get stuck diff --git a/f/simplewoundingsystem/fn_onDragServer.sqf b/f/medical/fn_onDragServer.sqf similarity index 100% rename from f/simplewoundingsystem/fn_onDragServer.sqf rename to f/medical/fn_onDragServer.sqf diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf new file mode 100644 index 000000000..e69de29bb diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf new file mode 100644 index 000000000..f74364d92 --- /dev/null +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -0,0 +1,93 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +/* +unit: Object - Object the event handler is assigned to +hitSelection: String - Name of the selection where the unit was damaged +damage: Number - Resulting level of damage +hitPartIndex: Number - hit index of the hit selection +hitPoint: String - hit point Cfg name +shooter: Object - shooter reference (to get instigator use getShotParents on projectile) +projectile: Object - the projectile that caused damage +*/ + +params ["_unit", "", "_damage","","_hitPoint","_source"]; +if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Incapacitated" && {IS_ACTIVE(_unit)}}}}) then +{ + //award attacker with +1 'infantry kill' point + [_source] spawn bis_fnc_reviveAwardKill; + + //incapacitate unit outside of vehicle + if (!IN_VEHICLE(_unit)) then + { + if (isNull _source || {!bis_revive_killfeedShow}) then + { + SET_STATE(_unit,STATE_INCAPACITATED); + diag_log format ["setting incapped outside damage: %1",_this]; + } + else + { + SET_STATE_XTRA(_unit,STATE_INCAPACITATED,_source); + diag_log format ["setting incapped outside damage: %1",_this]; + }; + + //tell others that we are draggable + [_unit ] spawn { + _unit = _this select 0; + waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", true, true]; + waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", false, true]; + }; + + //remove force-"respawn" action + [] spawn { + private _time = time + 10; //only wait for 10 seconds to avoid stacked threads + + waitUntil {sleep 0.05; (player getVariable [VAR_ACTION_ID_RESPAWN,-1] != -1) || (time > _time) }; + //remove user action + private _actionID = player getVariable [VAR_ACTION_ID_RESPAWN,-1]; + if (_actionID != -1) then { + [player,_actionID] call bis_fnc_holdActionRemove; + player setVariable [VAR_ACTION_ID_RESPAWN,-1]; + }; + //reset 'forcing respawn' flags + if (IS_FORCING_RESPAWN(player)) then {SET_FORCING_RESPAWN(player, false);}; + }; + } + //kill unit in vehicle + else + { + + F_UncCC = ppEffectCreate ["ColorCorrections", 1603]; + F_UncCC ppEffectEnable true; + F_UncCC ppEffectAdjust [ + 0, + 1, + 0, + 0, 0, 0, 0, + 1, 1, 1, 1, + 0.299, 0.587, 0.114, 0 + ]; + F_UncCC ppEffectCommit 1; + oldUnit = player; + _unit setVariable ["#revDownInVeh", true, true]; + _unit setVariable ["#revOwner", owner _unit, true]; + [_unit, (owner _unit)] remoteExec ["f_fnc_addServerKilledEh", 2]; + SET_STATE(_unit,STATE_INCAPACITATED); + diag_log format ["setting incapped damage: %1",_this]; + diag_log format ["event handler %1",_unit getVariable ["f3_revive_ehKilled", -1]]; + _unit playMove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); + [] spawn { + sleep 1; + _group = group player; + _unit = player; + _camera =_group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; + selectPlayer _camera; + [_unit] remoteExecCall ["f_fnc_addEject"]; + _camera attachTo [(vehicle _unit), [0,0,0]]; + + + }; + + }; +}; diff --git a/f/medical/fn_reviveEhKilledInVeh.sqf b/f/medical/fn_reviveEhKilledInVeh.sqf new file mode 100644 index 000000000..d00abe970 --- /dev/null +++ b/f/medical/fn_reviveEhKilledInVeh.sqf @@ -0,0 +1,8 @@ +_unit = _this select 0; +_downInVeh = _unit getVariable ["#revDownInVeh", false]; + +diag_log format["down in veh %1", _downInVeh]; +if (_downInVeh) then { + diag_log "remoteExecing back to client"; + [_unit] remoteExec ["f_fnc_clientKilledEh", (_unit getVariable ["#revOwner", 2])] +}; \ No newline at end of file diff --git a/f/simplewoundingsystem/init.sqf b/f/medical/init.sqf similarity index 92% rename from f/simplewoundingsystem/init.sqf rename to f/medical/init.sqf index f2d4fad57..ee66b1efe 100644 --- a/f/simplewoundingsystem/init.sqf +++ b/f/medical/init.sqf @@ -40,7 +40,7 @@ what happens if a dragging unit gets downed? */ params ["_unit"]; - +diag_log "adding to local start"; if (!hasInterface) exitWith {}; @@ -48,13 +48,19 @@ if (!hasInterface) exitWith {}; //set our own event handler: (to allow special handling of vehicles, and to remove the force-respawn action) [] spawn { waitUntil {sleep 1; (player getVariable ["bis_revive_ehDammaged", -1]) != -1}; + + diag_log "waitUntil done"; private _ehID = player getVariable ["bis_revive_ehDammaged", -1]; if (_ehID != -1) then { + + diag_log "removing old"; player removeEventHandler ["Dammaged", _ehID]; }; + + diag_log "adding new"; player setVariable ["bis_revive_ehDammaged", player addEventHandler ["Dammaged", f_fnc_reviveEhDammaged]]; + }; - //drag action: -[_unit] remoteExec ["f_fnc_addDragAction", 0, _unit]; +[player] remoteExec ["f_fnc_addDragAction", 0, player]; diff --git a/f/simplewoundingsystem/fn_reviveEhDammaged.sqf b/f/simplewoundingsystem/fn_reviveEhDammaged.sqf deleted file mode 100644 index 91f451c34..000000000 --- a/f/simplewoundingsystem/fn_reviveEhDammaged.sqf +++ /dev/null @@ -1,55 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - -/* -unit: Object - Object the event handler is assigned to -hitSelection: String - Name of the selection where the unit was damaged -damage: Number - Resulting level of damage -hitPartIndex: Number - hit index of the hit selection -hitPoint: String - hit point Cfg name -shooter: Object - shooter reference (to get instigator use getShotParents on projectile) -projectile: Object - the projectile that caused damage -*/ - -params ["_unit", "", "_damage","","_hitPoint","_source"]; - -if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Incapacitated" && {IS_ACTIVE(_unit)}}}}) then -{ - //["[i] Incapacitated by dependence: %1",_this] call bis_fnc_logFormat; - - //award attacker with +1 'infantry kill' point - [_source] spawn bis_fnc_reviveAwardKill; - - //incapacitate unit outside of vehicle - if (!IN_VEHICLE(_unit)) then - { - if (isNull _source || {!bis_revive_killfeedShow}) then - { - SET_STATE(_unit,STATE_INCAPACITATED); - } - else - { - SET_STATE_XTRA(_unit,STATE_INCAPACITATED,_source); - }; - - //remove force-"respawn" action - if (f_wound_disallowForceRespawn) then { - [] spawn { - private _time = time + 10; //only wait for 10 seconds to avoid stacked threads - waitUntil {sleep 0.05; (player getVariable [VAR_ACTION_ID_RESPAWN,-1] != -1) || (time > _time) }; - //remove user action - private _actionID = player getVariable [VAR_ACTION_ID_RESPAWN,-1]; - if (_actionID != -1) then { - [player,_actionID] call bis_fnc_holdActionRemove; - player setVariable [VAR_ACTION_ID_RESPAWN,-1]; - }; - //reset 'forcing respawn' flags - if (IS_FORCING_RESPAWN(player)) then {SET_FORCING_RESPAWN(player, false);}; - }; - }; - } - //kill unit in vehicle - else - { - _unit setDamage 1; - }; -}; diff --git a/init.sqf b/init.sqf index bbec70d71..21eab765f 100644 --- a/init.sqf +++ b/init.sqf @@ -27,7 +27,7 @@ enableSaving [false, false]; // F3 - Mission Timer/Safe Start // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -[] execVM "f\safeStart\f_safeStart.sqf"; +//\[] execVM "f\safeStart\f_safeStart.sqf"; // ==================================================================================== @@ -94,16 +94,9 @@ f_script_briefing = [] execVM "briefing.sqf"; // ==================================================================================== -// F3 - AI Unit Caching +// F3 - Revive // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - -[30] spawn f_fnc_cInit; - -// Note: Caching aggressiveness is set using the f_var_cachingAggressiveness variable; possible values: -// 1 - cache only non-leaders and non-drivers -// 2 - cache all non-moving units, always exclude vehicle drivers -// 3 - cache all units, incl. group leaders and vehicle drivers -f_var_cachingAggressiveness = 2; +[] execVM "f\medical\init.sqf"; // ==================================================================================== From 46fc10fb84bd01e979d7b5e6cd10509257c97942 Mon Sep 17 00:00:00 2001 From: Pooter Date: Sat, 17 Jun 2017 10:29:45 -0700 Subject: [PATCH 015/407] Adding support for downed in vehicle --- f/functions.hpp | 3 +-- f/medical/fn_EjectWounded.sqf | 4 ++-- f/medical/fn_addServerKilledEh.sqf | 5 ----- f/medical/fn_clientKilledEh.sqf | 3 --- f/medical/fn_reInhabitBody.sqf | 7 +++++++ f/medical/fn_reviveEhDammaged.sqf | 19 ++++++++++++------- f/medical/fn_reviveEhKilledInVeh.sqf | 8 ++++++-- 7 files changed, 28 insertions(+), 21 deletions(-) delete mode 100644 f/medical/fn_addServerKilledEh.sqf delete mode 100644 f/medical/fn_clientKilledEh.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 66dc9234d..8d11ca836 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -92,9 +92,8 @@ class F // Defines the "owner" file = "f\medical"; class reviveEhDammaged {}; class reviveEhKilledInVeh {}; - class addServerKilledEh {}; - class clientKilledEh {}; class addDragAction {}; + class reinhabitBody {}; class onDrag {}; class onDragServer {}; class HasWounded {}; diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf index 968965804..e596eacb3 100644 --- a/f/medical/fn_EjectWounded.sqf +++ b/f/medical/fn_EjectWounded.sqf @@ -9,12 +9,12 @@ _veh = _this select 0; diag_log format ["%1 is disabled %2", _x, IS_DISABLED(_x)]; if(IS_DISABLED(_x)) then { - SET_STATE(_x,STATE_REVIVED); diag_log format ["%1 ejecting", _x]; _x action["eject",_veh]; sleep 0.2; SET_STATE(_x,STATE_INCAPACITATED); - _originalOwnerId = _x getVariable["#revOwner", 2]; + _originalOwnerId = _x getVariable["#revOwner", 0]; + diag_log format ["telling %1 to reinhabit", _originalOwnerId]; [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; }; } forEach crew _veh; diff --git a/f/medical/fn_addServerKilledEh.sqf b/f/medical/fn_addServerKilledEh.sqf deleted file mode 100644 index cb1f6f418..000000000 --- a/f/medical/fn_addServerKilledEh.sqf +++ /dev/null @@ -1,5 +0,0 @@ -_unit = _this select 0; -_originalOwnerId = _this select 1; -_eh = _unit addEventHandler ["Killed",f_fnc_reviveEhKilledInVeh]; -diag_log format["adding event handler %1", _eh]; -_unit setVariable ["f3_revive_ehKilled", _eh]; \ No newline at end of file diff --git a/f/medical/fn_clientKilledEh.sqf b/f/medical/fn_clientKilledEh.sqf deleted file mode 100644 index ff9248f22..000000000 --- a/f/medical/fn_clientKilledEh.sqf +++ /dev/null @@ -1,3 +0,0 @@ -diag_log "client killedInVeh called"; -F_UncCC ppEffectEnable false; -selectPlayer (_this select 0); \ No newline at end of file diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf index e69de29bb..aac7f761d 100644 --- a/f/medical/fn_reInhabitBody.sqf +++ b/f/medical/fn_reInhabitBody.sqf @@ -0,0 +1,7 @@ +_camera = player; +F_UncCC ppEffectEnable false; +_unit = _this select 0; +selectPlayer _unit; + +(_unit) setPosATL ([(getposATL (_unit)), 1.2, direction (_unit)] call BIS_fnc_relPos); +deleteVehicle _camera; \ No newline at end of file diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index f74364d92..a5f7a7ac8 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -73,18 +73,23 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc _unit setVariable ["#revDownInVeh", true, true]; _unit setVariable ["#revOwner", owner _unit, true]; [_unit, (owner _unit)] remoteExec ["f_fnc_addServerKilledEh", 2]; - SET_STATE(_unit,STATE_INCAPACITATED); diag_log format ["setting incapped damage: %1",_this]; diag_log format ["event handler %1",_unit getVariable ["f3_revive_ehKilled", -1]]; _unit playMove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); [] spawn { sleep 1; - _group = group player; - _unit = player; - _camera =_group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; - selectPlayer _camera; - [_unit] remoteExecCall ["f_fnc_addEject"]; - _camera attachTo [(vehicle _unit), [0,0,0]]; + if(alive player) then { + _group = group player; + _unit = player; + player addMPEventHandler ["mpkilled", f_fnc_reviveEhKilledInVeh]; + _camera =_group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; + selectPlayer _camera; + [_unit] remoteExecCall ["f_fnc_addEject"]; + _camera attachTo [(vehicle _unit), [0,0,0]]; + }else { + F_UncCC ppEffectEnable false; + }; + }; diff --git a/f/medical/fn_reviveEhKilledInVeh.sqf b/f/medical/fn_reviveEhKilledInVeh.sqf index d00abe970..299171114 100644 --- a/f/medical/fn_reviveEhKilledInVeh.sqf +++ b/f/medical/fn_reviveEhKilledInVeh.sqf @@ -1,8 +1,12 @@ _unit = _this select 0; _downInVeh = _unit getVariable ["#revDownInVeh", false]; +_originalOwner = _unit getVariable ["#revOwner", -1]; diag_log format["down in veh %1", _downInVeh]; -if (_downInVeh) then { +if (_downInVeh && _originalOwner == clientOwner) then { + F_UncCC ppEffectEnable false; + _camera = player; + selectPlayer (_this select 0); + deleteVehicle _camera; diag_log "remoteExecing back to client"; - [_unit] remoteExec ["f_fnc_clientKilledEh", (_unit getVariable ["#revOwner", 2])] }; \ No newline at end of file From e08fe95a6abf9d6ee631f2383846aa910aa4ad60 Mon Sep 17 00:00:00 2001 From: Pooter Date: Sat, 17 Jun 2017 12:29:49 -0700 Subject: [PATCH 016/407] Adding support for downed in vehicle --- description.ext | 2 +- f/functions.hpp | 5 +++++ f/medical/fn_EjectWounded.sqf | 4 ---- f/medical/fn_reInhabitBody.sqf | 13 ++++++++++++- f/medical/fn_reviveEhDammaged.sqf | 3 ++- f/medical/fn_reviveEhKilledInVeh.sqf | 6 +++++- ...ivate_spectator.sqf => fn_activateSpectator.sqf} | 0 7 files changed, 25 insertions(+), 8 deletions(-) rename f/spect/{f_activate_spectator.sqf => fn_activateSpectator.sqf} (100%) diff --git a/description.ext b/description.ext index abc15d2be..38b3ee699 100644 --- a/description.ext +++ b/description.ext @@ -314,7 +314,7 @@ class CfgRespawnTemplates { class Seagull { - onPlayerRespawn = "f\spect\f_activate_spectator.sqf"; + onPlayerRespawn = "f\spect\fn_activateSpectator.sqf"; }; }; diff --git a/f/functions.hpp b/f/functions.hpp index 8d11ca836..31488267c 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -87,6 +87,11 @@ class F // Defines the "owner" file = "f\safeStart"; class safety{}; }; + class spect + { + file = "f\spect"; + class activateSpectator{}; + }; class woundingsystem { file = "f\medical"; diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf index e596eacb3..99fa83e3e 100644 --- a/f/medical/fn_EjectWounded.sqf +++ b/f/medical/fn_EjectWounded.sqf @@ -9,10 +9,6 @@ _veh = _this select 0; diag_log format ["%1 is disabled %2", _x, IS_DISABLED(_x)]; if(IS_DISABLED(_x)) then { - diag_log format ["%1 ejecting", _x]; - _x action["eject",_veh]; - sleep 0.2; - SET_STATE(_x,STATE_INCAPACITATED); _originalOwnerId = _x getVariable["#revOwner", 0]; diag_log format ["telling %1 to reinhabit", _originalOwnerId]; [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf index aac7f761d..38a78ffc4 100644 --- a/f/medical/fn_reInhabitBody.sqf +++ b/f/medical/fn_reInhabitBody.sqf @@ -1,7 +1,18 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + _camera = player; F_UncCC ppEffectEnable false; _unit = _this select 0; selectPlayer _unit; (_unit) setPosATL ([(getposATL (_unit)), 1.2, direction (_unit)] call BIS_fnc_relPos); -deleteVehicle _camera; \ No newline at end of file +[_camera] joinSilent grpNull; +deleteVehicle _camera; +sleep 0.05; +SET_STATE(_unit,STATE_REVIVED); +diag_log format ["%1 ejecting", _unit]; +sleep 0.05; +unassignVehicle _unit; +_unit action["eject",vehicle _unit]; +sleep 0.05; +SET_STATE(_unit,STATE_INCAPACITATED); \ No newline at end of file diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index a5f7a7ac8..33c07a026 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -73,6 +73,7 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc _unit setVariable ["#revDownInVeh", true, true]; _unit setVariable ["#revOwner", owner _unit, true]; [_unit, (owner _unit)] remoteExec ["f_fnc_addServerKilledEh", 2]; + SET_STATE(_unit,STATE_INCAPACITATED); diag_log format ["setting incapped damage: %1",_this]; diag_log format ["event handler %1",_unit getVariable ["f3_revive_ehKilled", -1]]; _unit playMove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); @@ -82,7 +83,7 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc _group = group player; _unit = player; player addMPEventHandler ["mpkilled", f_fnc_reviveEhKilledInVeh]; - _camera =_group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; + _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; selectPlayer _camera; [_unit] remoteExecCall ["f_fnc_addEject"]; _camera attachTo [(vehicle _unit), [0,0,0]]; diff --git a/f/medical/fn_reviveEhKilledInVeh.sqf b/f/medical/fn_reviveEhKilledInVeh.sqf index 299171114..25c980785 100644 --- a/f/medical/fn_reviveEhKilledInVeh.sqf +++ b/f/medical/fn_reviveEhKilledInVeh.sqf @@ -7,6 +7,10 @@ if (_downInVeh && _originalOwner == clientOwner) then { F_UncCC ppEffectEnable false; _camera = player; selectPlayer (_this select 0); + [_camera] joinSilent grpNull; deleteVehicle _camera; - diag_log "remoteExecing back to client"; + [] spawn { + sleep 0.5; + [] spawn f_fnc_activateSpectator; + } }; \ No newline at end of file diff --git a/f/spect/f_activate_spectator.sqf b/f/spect/fn_activateSpectator.sqf similarity index 100% rename from f/spect/f_activate_spectator.sqf rename to f/spect/fn_activateSpectator.sqf From 8657a2c9ab56750018561f11ca1622ca2bde3f8a Mon Sep 17 00:00:00 2001 From: Pooter Date: Sat, 17 Jun 2017 22:46:57 -0700 Subject: [PATCH 017/407] Adding support for downed in vehicle --- f/medical/fn_EjectWounded.sqf | 3 +-- f/medical/fn_HasWounded.sqf | 3 ++- f/medical/fn_reInhabitBody.sqf | 19 ++++++++++--------- f/medical/fn_reviveEhDammaged.sqf | 1 - 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf index 99fa83e3e..8cd30d15a 100644 --- a/f/medical/fn_EjectWounded.sqf +++ b/f/medical/fn_EjectWounded.sqf @@ -6,8 +6,7 @@ diag_log format ["%1 is going", _this]; _veh = _this select 0; { - diag_log format ["%1 is disabled %2", _x, IS_DISABLED(_x)]; - if(IS_DISABLED(_x)) then + if(_x getVariable ["#revDownInVeh", false]) then { _originalOwnerId = _x getVariable["#revOwner", 0]; diag_log format ["telling %1 to reinhabit", _originalOwnerId]; diff --git a/f/medical/fn_HasWounded.sqf b/f/medical/fn_HasWounded.sqf index 2dd439ba2..16d667b10 100644 --- a/f/medical/fn_HasWounded.sqf +++ b/f/medical/fn_HasWounded.sqf @@ -5,7 +5,8 @@ _veh = _this select 0; _ret = false; { - if(IS_DISABLED(_x)) then + + if(_x getVariable ["#revDownInVeh", false]) then { _ret = true; }; diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf index 38a78ffc4..6e18fa691 100644 --- a/f/medical/fn_reInhabitBody.sqf +++ b/f/medical/fn_reInhabitBody.sqf @@ -5,14 +5,15 @@ F_UncCC ppEffectEnable false; _unit = _this select 0; selectPlayer _unit; -(_unit) setPosATL ([(getposATL (_unit)), 1.2, direction (_unit)] call BIS_fnc_relPos); [_camera] joinSilent grpNull; +_unit setVariable ["#revDownInVeh", false, true]; deleteVehicle _camera; -sleep 0.05; -SET_STATE(_unit,STATE_REVIVED); -diag_log format ["%1 ejecting", _unit]; -sleep 0.05; -unassignVehicle _unit; -_unit action["eject",vehicle _unit]; -sleep 0.05; -SET_STATE(_unit,STATE_INCAPACITATED); \ No newline at end of file +[_unit ] spawn { + _unit = _this select 0; + sleep 0.5; + moveOut _unit; + diag_log format ["%1 ejecting", _unit]; + sleep 0.5; + (_unit) setPosATL ([(getPosATL (_unit)), 1.2, direction (_unit)] call BIS_fnc_relPos); + SET_STATE(_unit,STATE_INCAPACITATED); +}; \ No newline at end of file diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index 33c07a026..8b92dbf93 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -73,7 +73,6 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc _unit setVariable ["#revDownInVeh", true, true]; _unit setVariable ["#revOwner", owner _unit, true]; [_unit, (owner _unit)] remoteExec ["f_fnc_addServerKilledEh", 2]; - SET_STATE(_unit,STATE_INCAPACITATED); diag_log format ["setting incapped damage: %1",_this]; diag_log format ["event handler %1",_unit getVariable ["f3_revive_ehKilled", -1]]; _unit playMove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); From e6d1c783988c3a6b2f0fb7b03fdbbdc073f02276 Mon Sep 17 00:00:00 2001 From: Pooter Date: Sat, 17 Jun 2017 22:53:23 -0700 Subject: [PATCH 018/407] Adding support for downed in vehicle --- f/medical/fn_reInhabitBody.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf index 6e18fa691..2c3db81bf 100644 --- a/f/medical/fn_reInhabitBody.sqf +++ b/f/medical/fn_reInhabitBody.sqf @@ -10,10 +10,10 @@ _unit setVariable ["#revDownInVeh", false, true]; deleteVehicle _camera; [_unit ] spawn { _unit = _this select 0; - sleep 0.5; + sleep 0.05; moveOut _unit; diag_log format ["%1 ejecting", _unit]; - sleep 0.5; - (_unit) setPosATL ([(getPosATL (_unit)), 1.2, direction (_unit)] call BIS_fnc_relPos); + sleep 0.2; + (_unit) setPosATL ([(getPosATL (_unit)), 0.6, direction (_unit)] call BIS_fnc_relPos); SET_STATE(_unit,STATE_INCAPACITATED); }; \ No newline at end of file From d16d204101e5281024f65906dfcf1632cabdda17 Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 3 Jul 2017 11:58:46 -0700 Subject: [PATCH 019/407] various types of cleanup --- f/common/functions.hpp | 98 ---------------------------- f/medical/fn_EjectWounded.sqf | 24 +++---- f/medical/fn_HasWounded.sqf | 12 +--- f/medical/fn_addEject.sqf | 7 +- f/medical/fn_onDrag.sqf | 14 ++-- f/medical/fn_onDragServer.sqf | 15 +---- f/medical/fn_reInhabitBody.sqf | 9 ++- f/medical/fn_reviveEhDammaged.sqf | 9 +-- f/medical/fn_reviveEhKilledInVeh.sqf | 12 ++-- f/medical/init.sqf | 27 +------- f/spect/fn_activateSpectator.sqf | 10 ++- 11 files changed, 44 insertions(+), 193 deletions(-) delete mode 100644 f/common/functions.hpp diff --git a/f/common/functions.hpp b/f/common/functions.hpp deleted file mode 100644 index 7fdf73b47..000000000 --- a/f/common/functions.hpp +++ /dev/null @@ -1,98 +0,0 @@ -// F3 Functions - -class F // Defines the "owner" -{ - class common // category - { - file = "f\common"; - class processParamsArray{preInit = 1; postInit=1;}; - class nearPlayer{}; - }; - class mpEnd - { - file = "f\mpEnd"; - class mpEnd{}; - class mpEndReceiver{}; - }; - class assignGear - { - file = "f\assignGear"; - class assignGear{}; - }; - class setGroupID - { - file = "f\setGroupID"; - class setGroupID{}; - }; - class missionConditions - { - file = "f\missionConditions"; - class SetTime{}; - class SetFog{}; - class SetWeather{}; - class SetWind{}; - }; - class groupMarkers { - file = "f\groupMarkers"; - class localGroupMarker{}; - class localSpecialistMarker{}; - }; - class authorisedCrew - { - file = "f\authorisedCrew"; - class authorisedCrewCheck {}; - }; - class FTMemberMarkers - { - file = "f\FTMemberMarkers"; - class SetLocalFTMemberMarkers{}; - class GetMarkerColor{}; - class LocalFTMarkerSync{}; - }; - class bodyRemoval - { - file = "f\removeBody"; - class removeBody{}; - }; - class setAISkill - { - file = "f\setAISKill"; - class setAISKill{}; - }; - class mapClickTeleport - { - file = "f\mapClickTeleport"; - class mapClickTeleportUnit{}; - class mapClickTeleportGroup{}; - }; - class nametag - { - file = "f\nametag"; - class drawNameTag{}; - }; - class preMount - { - file = "f\preMount"; - class mountGroups{}; - }; - class zeus - { - file = "f\zeus"; - class zeusInit{}; - class zeusAddAddons{}; - class zeusAddObjects{}; - }; - class safeStart - { - file = "f\safeStart"; - class safety{}; - }; - class woundingsystem - { - file = "f\simplewoundingsystem"; - class reviveEhDammaged {}; - class addDragAction {}; - class onDrag {}; - class onDragServer {}; - }; -}; diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf index 8cd30d15a..8e249ce4e 100644 --- a/f/medical/fn_EjectWounded.sqf +++ b/f/medical/fn_EjectWounded.sqf @@ -2,15 +2,15 @@ // F3 - SimpleWoundingSystem // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -diag_log format ["%1 is going", _this]; -_veh = _this select 0; - -{ - if(_x getVariable ["#revDownInVeh", false]) then - { - _originalOwnerId = _x getVariable["#revOwner", 0]; - diag_log format ["telling %1 to reinhabit", _originalOwnerId]; - [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; - }; -} forEach crew _veh; -_veh removeAction (_this select 2); \ No newline at end of file +params ["_veh", "", "_action"]; +_veh removeAction (_action); +if(isServer) then { + { + if(_x getVariable ["#revDownInVeh", false]) then + { + _originalOwnerId = _x getVariable["#revOwner", 0]; + diag_log format ["telling %1 to reinhabit", _originalOwnerId]; + [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; + }; + } forEach crew _veh; +}; diff --git a/f/medical/fn_HasWounded.sqf b/f/medical/fn_HasWounded.sqf index 16d667b10..b6cb857f4 100644 --- a/f/medical/fn_HasWounded.sqf +++ b/f/medical/fn_HasWounded.sqf @@ -2,13 +2,5 @@ // F3 - SimpleWoundingSystem // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -_veh = _this select 0; -_ret = false; -{ - - if(_x getVariable ["#revDownInVeh", false]) then - { - _ret = true; - }; -} foreach crew _veh; -_ret \ No newline at end of file +params ["_veh"]; +{ _x getVariable ["#revDownInVeh", false] } count crew _veh > 0 diff --git a/f/medical/fn_addEject.sqf b/f/medical/fn_addEject.sqf index 73901749b..1a1091320 100644 --- a/f/medical/fn_addEject.sqf +++ b/f/medical/fn_addEject.sqf @@ -1,4 +1,3 @@ -diag_log "adding eject "; -_unit = _this select 0; -_unit switchmove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); -(vehicle _unit) addAction ["Pull out wounded", {_this remoteExec ["f_fnc_EjectWounded", -2]}, nil, 5, false, true, "", "[_target] call f_fnc_HasWounded", 5]; \ No newline at end of file +params ["_unit"]; +_unit switchMove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); +(vehicle _unit) addAction ["Pull out wounded", {_this remoteExec ["f_fnc_EjectWounded"];}, nil, 5, false, true, "", "[_target] call f_fnc_HasWounded", 5]; diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf index b46d9dc65..887e2bcd9 100644 --- a/f/medical/fn_onDrag.sqf +++ b/f/medical/fn_onDrag.sqf @@ -27,15 +27,6 @@ if(local _dragger) then { _this remoteExec ["f_fnc_onDragServer", 2]; _actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];(_this select 1) removeAction (_this select 2);}, nil, 6, false, true, "", "true"]; - - //switch (currentWeapon _dragger) do { - // case (primaryWeapon _dragger): { - // _dragger playMoveNow "acinpknlmstpsraswrfldnon"; - // }; - // case (secondaryWeapon _dragger): { - // _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; - // }; - //}; acinpknlmstpsraswrfldnon _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; }; //_unit switchMove "AinjPpneMrunSnonWnonDb"; @@ -56,6 +47,7 @@ waitUntil { isNil "_dragged_unit" //unit is released || !(_unit getVariable ["f_wound_being_dragged", false]) || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore + || GET_STATE(_dragger) == STATE_INCAPACITATED // dragger is incapacitated || IS_BEING_REVIVED(_unit) // someone else is reviving the unit || !alive _unit || !alive _dragger @@ -71,6 +63,8 @@ _dragger setVariable ["f_wound_dragging", nil, true]; _unit setVariable ["f_wound_being_dragged", false, true]; detach _unit; [_unit, _dragger] spawn { - (_this select 0) setPosATL ([(getposATL (_this select 1)), 1.2, direction (_this select 1)] call BIS_fnc_relPos); + params ["_unit", "_dragger"];' + + _unit setPosATL (_unit getPos [1.2, direction _dragger]); }; _dragger switchmove ""; //otherwise player might get stuck diff --git a/f/medical/fn_onDragServer.sqf b/f/medical/fn_onDragServer.sqf index c2ade95b8..060a102a1 100644 --- a/f/medical/fn_onDragServer.sqf +++ b/f/medical/fn_onDragServer.sqf @@ -1,5 +1,4 @@ #include "\a3\functions_f_mp_mark\Revive\defines.inc" -// F3 - SimpleWoundingSystem // ==================================================================================== params ["_unit", "_dragger"]; @@ -13,6 +12,7 @@ waitUntil { || !(_unit getVariable ["f_wound_being_dragged", false]) || !alive _dragger // dragger died || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore + || GET_STATE(_dragger) == STATE_INCAPACITATED // dragger is incapacitated || IS_BEING_REVIVED(_unit) // someone else is reviving the unit || !alive _unit || !alive _dragger @@ -25,21 +25,8 @@ _dragger setVariable ["f_wound_dragging", nil, true]; _unit setVariable ["f_wound_being_dragged", false, true]; detach _unit; _unit setPosATL getposATL _dragger; - -//_unit switchmove ""; //otherwise player might get stuck -//_dragger switchmove ""; //otherwise player might get stuck - if( GET_STATE(_dragger) == STATE_INCAPACITATED ) then { _dragger switchMove ANIM_WOUNDED; } else { - //_dragger switchMove ""; - //_unit switchmove "amovppnemstpsraswrfldnon" _dragger switchMove ""; }; -//if( GET_STATE(_unit) == STATE_INCAPACITATED ) then { -// //_unit switchMove ANIM_WOUNDED; -//} else { -// //_unit switchMove ANIM_OK; -// //_dragger switchMove ""; -// _unit switchMove ""; -//}; diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf index 2c3db81bf..fa81e257a 100644 --- a/f/medical/fn_reInhabitBody.sqf +++ b/f/medical/fn_reInhabitBody.sqf @@ -1,19 +1,18 @@ #include "\a3\functions_f_mp_mark\Revive\defines.inc" +params ["_unit"]; _camera = player; F_UncCC ppEffectEnable false; -_unit = _this select 0; selectPlayer _unit; [_camera] joinSilent grpNull; _unit setVariable ["#revDownInVeh", false, true]; deleteVehicle _camera; [_unit ] spawn { - _unit = _this select 0; + params ["_unit"]; sleep 0.05; moveOut _unit; - diag_log format ["%1 ejecting", _unit]; sleep 0.2; - (_unit) setPosATL ([(getPosATL (_unit)), 0.6, direction (_unit)] call BIS_fnc_relPos); + (_unit) setPosATL (_unit getPos [0.6, direction _unit]); SET_STATE(_unit,STATE_INCAPACITATED); -}; \ No newline at end of file +}; diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index 8b92dbf93..f8b90b086 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -32,7 +32,7 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc //tell others that we are draggable [_unit ] spawn { - _unit = _this select 0; + params ["_unit"]; waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; _unit setVariable ["f_wound_draggable", true, true]; waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; @@ -69,13 +69,10 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc 0.299, 0.587, 0.114, 0 ]; F_UncCC ppEffectCommit 1; - oldUnit = player; _unit setVariable ["#revDownInVeh", true, true]; _unit setVariable ["#revOwner", owner _unit, true]; [_unit, (owner _unit)] remoteExec ["f_fnc_addServerKilledEh", 2]; - diag_log format ["setting incapped damage: %1",_this]; - diag_log format ["event handler %1",_unit getVariable ["f3_revive_ehKilled", -1]]; - _unit playMove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); + _unit playMove ((getArray (configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); [] spawn { sleep 1; if(alive player) then { @@ -84,7 +81,7 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc player addMPEventHandler ["mpkilled", f_fnc_reviveEhKilledInVeh]; _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; selectPlayer _camera; - [_unit] remoteExecCall ["f_fnc_addEject"]; + [_unit] remoteExecCall ["f_fnc_addEject", 0, true]; _camera attachTo [(vehicle _unit), [0,0,0]]; }else { F_UncCC ppEffectEnable false; diff --git a/f/medical/fn_reviveEhKilledInVeh.sqf b/f/medical/fn_reviveEhKilledInVeh.sqf index 25c980785..6f900e479 100644 --- a/f/medical/fn_reviveEhKilledInVeh.sqf +++ b/f/medical/fn_reviveEhKilledInVeh.sqf @@ -1,16 +1,16 @@ -_unit = _this select 0; -_downInVeh = _unit getVariable ["#revDownInVeh", false]; -_originalOwner = _unit getVariable ["#revOwner", -1]; +params ["_unit"]; +private _downInVeh = _unit getVariable ["#revDownInVeh", false]; +private _originalOwner = _unit getVariable ["#revOwner", -1]; diag_log format["down in veh %1", _downInVeh]; if (_downInVeh && _originalOwner == clientOwner) then { F_UncCC ppEffectEnable false; _camera = player; - selectPlayer (_this select 0); + selectPlayer _unit; [_camera] joinSilent grpNull; deleteVehicle _camera; [] spawn { sleep 0.5; - [] spawn f_fnc_activateSpectator; + [] call f_fnc_activateSpectator; } -}; \ No newline at end of file +}; diff --git a/f/medical/init.sqf b/f/medical/init.sqf index ee66b1efe..ba1677390 100644 --- a/f/medical/init.sqf +++ b/f/medical/init.sqf @@ -5,11 +5,6 @@ /* CURRENT STATUS: -* DRAGGING. - * animations are weird. - * test all the things + dc while dragging. + wounding while dragging.... - * what if someone starts reviving? => dont do animation changes to dragged unit? - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * bis revive JIP is broken. maybe only because of me => test in new mission => maybe we have to go back to sws !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -18,29 +13,13 @@ CURRENT STATUS: https://feedback.bistudio.com/T85766 -* Vehicles - due to technical limitations, the unconscious state in vehicles is not supported. Players die immediately - maybe we can add our own damage handler if in vehicle... - fn_reviveEhDammaged if ! in vehicle => setdamage 0. can we prevent this? - yes, we can delete and recreate the EH: player setVariable ["bis_revive_ehDammaged", player addEventHandler ["Dammaged",bis_fnc_reviveEhDammaged]]; - -* Also, I think the respawn button has been and will be still in the pause menu, not sure if that's the case in SWS or if I'm mixing things up - -IF server side addon: can we override the old SWS? or just set a variable in description.ext to check if sws is a thing or not. (or just use the normal f_param...sws variable.. -https://github.com/darkChozo/fa_crosshair - -USE POST INIT in cfgfunctions instead of init.sqf for some things - TEST test if downed units can drag others. -(all the tests from modified sws todo list) what happens if a dragging unit gets downed? - - */ params ["_unit"]; -diag_log "adding to local start"; if (!hasInterface) exitWith {}; @@ -49,18 +28,16 @@ if (!hasInterface) exitWith {}; [] spawn { waitUntil {sleep 1; (player getVariable ["bis_revive_ehDammaged", -1]) != -1}; - diag_log "waitUntil done"; private _ehID = player getVariable ["bis_revive_ehDammaged", -1]; if (_ehID != -1) then { - - diag_log "removing old"; player removeEventHandler ["Dammaged", _ehID]; }; - diag_log "adding new"; player setVariable ["bis_revive_ehDammaged", player addEventHandler ["Dammaged", f_fnc_reviveEhDammaged]]; }; //drag action: [player] remoteExec ["f_fnc_addDragAction", 0, player]; +F_UncCC = ppEffectCreate ["ColorCorrections", 1603]; +F_UncCC ppEffectEnable false; diff --git a/f/spect/fn_activateSpectator.sqf b/f/spect/fn_activateSpectator.sqf index 8d3000f14..0f47f67dc 100644 --- a/f/spect/fn_activateSpectator.sqf +++ b/f/spect/fn_activateSpectator.sqf @@ -1,3 +1,7 @@ -BIS_DeathBlur ppEffectAdjust [0.0]; -BIS_DeathBlur ppEffectCommit 0.0; -["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; \ No newline at end of file +[] spawn { + sleep 0.5; + BIS_DeathBlur ppEffectEnable false; +}; + +diag_log "activating spect"; +["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; From 78f84c63c3c2292b4a4e5d5bd5fa38178924e16c Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 3 Jul 2017 12:17:46 -0700 Subject: [PATCH 020/407] Prevents multiple instances of drag action (possible due to reconnects) --- f/medical/fn_addDragAction.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/f/medical/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf index cbdd6874c..624d36702 100644 --- a/f/medical/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -5,6 +5,7 @@ params ["_unit"]; if (!hasInterface) exitWith {}; waitUntil {sleep 0.1; !isNull player}; if (_unit == player) exitWith {}; +if (_unit getVariable ["#revDragId", -1] != -1) exitWith {}; //_target (object to which action is attached to) @@ -25,7 +26,7 @@ private _drag_action_cond = str { //hacky method to remove the braces at the beginning and end, so that it's the format that addAction expects. _drag_action_cond = _drag_action_cond select [1, count _drag_action_cond - 2]; -_unit addAction [ +_resultId = _unit addAction [ format ["Drag %1", name _unit], // _this variable (in the code below) is: [target, caller, ID, arguments] @@ -37,3 +38,4 @@ _unit addAction [ "", _drag_action_cond ]; +_unit setVariable ['#revDragId', _resultId]; From d52983586638534f97ed52d9c4b2a2a388df4f71 Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 10 Jul 2017 19:43:11 -0700 Subject: [PATCH 021/407] More drag action stuff --- f/functions.hpp | 1 + f/medical/fn_EjectWounded.sqf | 8 +++++--- f/medical/fn_addEject.sqf | 3 ++- f/medical/fn_findDeadAnim.sqf | 34 +++++++++++++++++++++++++++++++ f/medical/fn_onDrag.sqf | 11 ++++++++++ f/medical/fn_reInhabitBody.sqf | 5 +++++ f/medical/fn_reviveEhDammaged.sqf | 7 +++++-- 7 files changed, 63 insertions(+), 6 deletions(-) create mode 100644 f/medical/fn_findDeadAnim.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 31488267c..bd2bf4928 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -96,6 +96,7 @@ class F // Defines the "owner" { file = "f\medical"; class reviveEhDammaged {}; + class findDeadAnim {}; class reviveEhKilledInVeh {}; class addDragAction {}; class reinhabitBody {}; diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf index 8e249ce4e..4911509bf 100644 --- a/f/medical/fn_EjectWounded.sqf +++ b/f/medical/fn_EjectWounded.sqf @@ -8,9 +8,11 @@ if(isServer) then { { if(_x getVariable ["#revDownInVeh", false]) then { - _originalOwnerId = _x getVariable["#revOwner", 0]; - diag_log format ["telling %1 to reinhabit", _originalOwnerId]; - [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; + _originalOwnerId = _x getVariable["#revOwner", -1]; + if(_originalOwnerId != -1) then { + diag_log format ["telling %1 to reinhabit", _originalOwnerId]; + [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; + }; }; } forEach crew _veh; }; diff --git a/f/medical/fn_addEject.sqf b/f/medical/fn_addEject.sqf index 1a1091320..a23b9a281 100644 --- a/f/medical/fn_addEject.sqf +++ b/f/medical/fn_addEject.sqf @@ -1,3 +1,4 @@ params ["_unit"]; -_unit switchMove ((getArray (configfile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); + +_unit playMove ([_unit] call f_fnc_findDeadAnim); (vehicle _unit) addAction ["Pull out wounded", {_this remoteExec ["f_fnc_EjectWounded"];}, nil, 5, false, true, "", "[_target] call f_fnc_HasWounded", 5]; diff --git a/f/medical/fn_findDeadAnim.sqf b/f/medical/fn_findDeadAnim.sqf new file mode 100644 index 000000000..bf530b34d --- /dev/null +++ b/f/medical/fn_findDeadAnim.sqf @@ -0,0 +1,34 @@ + +params ["_unit"]; + _countCondit = { + params["_animEntry", "_testString"]; + if(typeName _animEntry == "STRING") exitWith { + _animEntry find _testString != -1 + }; + false + }; +_anim = configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit; +if (!isNull _anim) then { + if(!isNull (_anim >> "interpolateTo")) then { + _anim = ((getArray (_anim >> "interpolateTo"))); + _kiaAnim = _anim select {[_x, "kia"] call _countCondit}; + _dieAnim = _anim select {[_x, "Die"] call _countCondit}; + _unconAnim = _anim select {[_x, "Unconscious"] call _countCondit}; + if(count _kiaAnim > 0) exitWith { + _anim = _kiaAnim select 0; + }; + if(count _dieAnim > 0) exitWith { + _anim = _dieAnim select 0; + }; + if(count _unconAnim > 0) exitWith { + _anim = _unconAnim select 0; + }; + _anim = "Unconscious"; + }else { + _anim = "Unconscious"; + } + +}else { + _anim = "Unconsious"; +}; +_anim; diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf index 887e2bcd9..ab4c64f57 100644 --- a/f/medical/fn_onDrag.sqf +++ b/f/medical/fn_onDrag.sqf @@ -21,6 +21,7 @@ _unit setVariable ["f_wound_being_dragged", true, true]; private _actionIdx = -1; +diag_log local _dragger; // the dragger gets a release option. if(local _dragger) then { @@ -40,6 +41,16 @@ if(local _unit) then }; // Wait until the unit is released, dead, downed, or revived) +diag_log "starting drag"; +diag_log isNil "_dragged_unit"; +diag_log !(_unit getVariable ["f_wound_being_dragged", false]); +diag_log GET_STATE(_unit) != STATE_INCAPACITATED; +diag_log GET_STATE(_dragger) == STATE_INCAPACITATED; +diag_log IS_BEING_REVIVED(_unit); +diag_log !alive _unit; +diag_log !alive _dragger; +diag_log !(isPlayer _dragger); +diag_log !(isPlayer _unit); waitUntil { sleep 0.1; _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf index fa81e257a..ea9a5c731 100644 --- a/f/medical/fn_reInhabitBody.sqf +++ b/f/medical/fn_reInhabitBody.sqf @@ -15,4 +15,9 @@ deleteVehicle _camera; sleep 0.2; (_unit) setPosATL (_unit getPos [0.6, direction _unit]); SET_STATE(_unit,STATE_INCAPACITATED); + //tell others we are draggable + waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", true, true]; + waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", false, true]; }; diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index f8b90b086..83b34830b 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -70,9 +70,12 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc ]; F_UncCC ppEffectCommit 1; _unit setVariable ["#revDownInVeh", true, true]; - _unit setVariable ["#revOwner", owner _unit, true]; + _unit setVariable ["#revOwner", clientOwner, true]; [_unit, (owner _unit)] remoteExec ["f_fnc_addServerKilledEh", 2]; - _unit playMove ((getArray (configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo")) select 0); + + + + _unit playMove ([_unit] call f_fnc_findDeadAnim); [] spawn { sleep 1; if(alive player) then { From 06a843f426b08efe797a902640707c8bf4f42d08 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sun, 23 Jul 2017 11:45:25 +0100 Subject: [PATCH 022/407] Briefing ORBAT now lists JTAC and FAC, similar to medic --- f/briefing/f_orbatNotes.sqf | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index d0d24067f..970d02f9b 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -11,7 +11,7 @@ if (!hasInterface) exitWith {}; //Exit if not a player. private ["_orbatText", "_groups", "_precompileGroups","_maxSlots","_freeSlots"]; _orbatText = "
NOTE: The ORBAT below is only accurate at mission start.

-GROUP LEADERS + MEDICS

"; +GROUP LEADERS + NOTABLE

"; _groups = []; _hiddenGroups = []; @@ -45,6 +45,16 @@ _groups = _groups - _hiddenGroups; if (_x getVariable ["f_var_assignGear",""] == "m" && {_x != leader group _x}) then { _orbatText = _orbatText + format["|- %1 [M]",name _x] + "
"; }; + + if (_x getVariable ["f_var_assignGear",""] == "jtac" && {_x != leader group _x}) then { + + // FAC is a specialised JTAC, so need some way to differentiate + if (["FAC", roleDescription _x, true] call BIS_fnc_inString) then { + _orbatText = _orbatText + format["|- %1 [FAC]",name _x] + "
"; + } else { + _orbatText = _orbatText + format["|- %1 [JTAC]",name _x] + "
"; + }; + }; } forEach units _x; } forEach _groups; @@ -118,4 +128,4 @@ _orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; // Insert final result into subsection ORBAT of section Notes waitUntil {scriptDone f_script_briefing}; -player createDiaryRecord ["diary", ["ORBAT", _orbatText]]; \ No newline at end of file +player createDiaryRecord ["diary", ["ORBAT", _orbatText]]; From adb880a920172bbc428a0a343fd19b25a62ebbb6 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 22 Jul 2017 18:16:59 +0100 Subject: [PATCH 023/407] SetWeather: Fixed _setFog/_transition confluation by adding new _transition parameter --- f/missionConditions/fn_SetWeather.sqf | 29 +++++++++------------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index 8d3714dc0..f2a6c8b1b 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -11,12 +11,17 @@ private ["_missionOvercast","_MissionRain","_MissionRainbow","_MissionLightnings // SET KEY VARIABLES // We interpret the values parsed to the script. If the function was called from the parameters those values are used. -params [["_weather",9,[0]],["_setFog",true,[true]],["_setWind",true,[true]]]; +// _setFog can be a Number for legacy calls +params [["_weather",9,[0]],["_setFog",true,[true,0]],["_setWind",true,[true]],["_transition",0,[0]]]; // Exit when using mission settings if ( _weather == 9 ) exitWith {}; -_transition = if (count _this > 1) then {_this select 1} else {false}; +// Support for legacy transition call +if (typeName _setFog == typeName 0) then { + _transition = _setFog; + _setFog = true; +}; _MissionOvercast = 0; _MissionRain = 0; @@ -180,35 +185,21 @@ switch (_weather) do // Use new values to set // mission conditions on server and all clients (including JIP clients). -if (typeName _transition == typeName 0) then { - _transition setOvercast _MissionOvercast; _transition setRain _MissionRain; _transition setRainbow _MissionRainbow; _transition setLightnings _MissionLightnings; + if (_setWind) then { _transition setWindStr _MissionWindStr; _transition setWindForce _MissionWindGusts; _transition setWaves _MissionWaves; }; + if (_setFog) then { _transition setFog [_MissionFogStrength,_MissionFogDecay,_MissionFogBase]; }; -} else { - 0 setOvercast _MissionOvercast; - 0 setRain _MissionRain; - 0 setRainbow _MissionRainbow; - 0 setLightnings _MissionLightnings; - if (_setWind) then { - 0 setWindStr _MissionWindStr; - 0 setWindForce _MissionWindGusts; - 0 setWaves _MissionWaves; - }; - if (_setFog) then { - 0 setFog [_MissionFogStrength,_MissionFogDecay,_MissionFogBase]; - }; - forceWeatherChange; -}; +forceWeatherChange; // ==================================================================================== From cf53ce1392468fffd0809858c432207c72dfd209 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 22 Jul 2017 18:39:38 +0100 Subject: [PATCH 024/407] stringtable.xml: Fixed opening French but closing English --- stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stringtable.xml b/stringtable.xml index a26875a72..ae7c588d1 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -88,7 +88,7 @@ Weather - Météo + Météo Clear From 76132b49340e16dc3ffbbb1119c1bd12dd40710a Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 22 Jul 2017 18:41:30 +0100 Subject: [PATCH 025/407] stringtable.xml: Everything but a Key has a 'name', not an 'ID' --- stringtable.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stringtable.xml b/stringtable.xml index ae7c588d1..eb578beae 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -1,8 +1,8 @@  - - - + + + Debug Mode Debug mód From 2adfbb3c12cd910a15b9f811ba63af96317c3f82 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sun, 23 Jul 2017 13:10:49 +0100 Subject: [PATCH 026/407] Replaced all calls to BIS_fnc_MP with remoteExec and remoteExecCall --- f/EandEcheck/f_EandECheckLoop.sqf | 4 +-- f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf | 6 ++--- f/JIP/f_JIP_nearTargetGroupCheck.sqf | 3 +-- f/assignGear/f_assignGear_AI.sqf | 4 +-- f/briefing/f_briefing_admin.sqf | 25 +++++++++---------- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 4 +-- f/groupJoin/f_groupJoinAction.sqf | 6 ++--- .../fn_mapClickTeleportUnit.sqf | 2 +- f/mpEnd/fn_mpEnd.sqf | 6 ++--- f/safeStart/f_safeStartLoop.sqf | 8 +++--- f/setAISkill/f_setAISkill.sqf | 3 +-- f/simplewoundingsystem/fn_OnDamage.sqf | 3 +-- f/simplewoundingsystem/fn_OnDeath.sqf | 4 +-- f/simplewoundingsystem/fn_OnHeal.sqf | 4 +-- f/simplewoundingsystem/fn_SetDowned.sqf | 4 +-- f/simplewoundingsystem/init.sqf | 3 +-- f/spect/fn_EventHandler.sqf | 3 +-- f/zeus/fn_zeusInit.sqf | 4 +-- ws_fnc/misc/fn_broadcast.sqf | 2 +- 19 files changed, 45 insertions(+), 53 deletions(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index cbe2752eb..527ddba6e 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -144,8 +144,8 @@ if (_safe > 0) then { }; if (typeName _end == typeName {}) exitWith { - [_end,"bis_fnc_spawn",true] call BIS_fnc_MP; + _end remoteExec ["bis_fnc_spawn",0]; }; }; -player GlobalChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; \ No newline at end of file +player GlobalChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; diff --git a/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf b/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf index a803978ef..e31b9412c 100644 --- a/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf +++ b/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf @@ -33,7 +33,7 @@ while{_unit == (leader _grp) && alive _unit} do if (f_param_debugMode == 1) then {player sidechat format["%1 ---- %2 by %3",(_x getvariable ["assignedTeam","ColorWhite"]) ,_colorTeam,_unit];}; // sends a call to each unit in the group to use the local with the [x_colorTeam] as args. - [[_x,_colorTeam] , "f_fnc_SetTeamValue", _grp, false] spawn BIS_fnc_MP; + [_x,_colorTeam] remoteExec ["f_fnc_SetTeamValue", _grp]; }; }; @@ -47,5 +47,5 @@ if(!isnil "_grp") then // get the new leader _x = leader _grp; // tell him to start running the sync. - [[_grp,_x] , "f_fnc_LocalFTMarkerSync",_x, false] spawn BIS_fnc_MP; -}; \ No newline at end of file + [_grp,_x] remoteExec ["f_fnc_LocalFTMarkerSync", _x]; +}; diff --git a/f/JIP/f_JIP_nearTargetGroupCheck.sqf b/f/JIP/f_JIP_nearTargetGroupCheck.sqf index 7c6ace6a3..0c3eb2855 100644 --- a/f/JIP/f_JIP_nearTargetGroupCheck.sqf +++ b/f/JIP/f_JIP_nearTargetGroupCheck.sqf @@ -54,10 +54,9 @@ sleep 3; ["JIP",[format ["You have joined %1",_grp]]] call BIS_fnc_showNotification; _unit = player; - [["JIP",[format ["%1 has joined your group.",name _unit]]],"BIS_fnc_showNotification",units (_this select 3) - [_unit]] spawn BIS_fnc_MP; + ["JIP",[format ["%1 has joined your group.",name _unit]]] remoteExec ["BIS_fnc_showNotification", units (_this select 3) - [_unit]]; sleep 1; }; }; - diff --git a/f/assignGear/f_assignGear_AI.sqf b/f/assignGear/f_assignGear_AI.sqf index 0f93698f3..76a5145cb 100644 --- a/f/assignGear/f_assignGear_AI.sqf +++ b/f/assignGear/f_assignGear_AI.sqf @@ -106,14 +106,14 @@ _units = if (count _this == 0) then [{waitUntil {scriptDone f_script_setLocalVar // If the unit's classname corresponds to a class in the assignment array, set it's gear accordingly if (_known) exitWith { - [[_x select 1, _unit], "f_fnc_assignGear", _unit,false,true] call BIS_fnc_MP; + [_x select 1, _unit] remoteExecCall ["f_fnc_assignGear", _unit]; }; } forEach _unitClasses; // If the class is not in the _unitClasses array if (!_known) then { if (_defaultclass != "") then { - [[_defaultclass, _unit], "f_fnc_assignGear", _unit,false,true] call BIS_fnc_MP; + [_defaultclass, _unit] remoteExecCall ["f_fnc_assignGear", _unit]; }; }; diff --git a/f/briefing/f_briefing_admin.sqf b/f/briefing/f_briefing_admin.sqf index 24962a718..017fb9c6d 100644 --- a/f/briefing/f_briefing_admin.sqf +++ b/f/briefing/f_briefing_admin.sqf @@ -58,7 +58,7 @@ These endings are available. To trigger an ending click on its link.

{ _end = _this select 0; _briefing = _briefing + format [ - "'end%1' - %2:
+ "'end%1' - %2:
%3

" ,_x select 0,_x select 1,_x select 2]; } forEach _endings; @@ -75,21 +75,20 @@ Increase Safe Start timer by 1 minute
|- Decrease Safe Start timer by 1 minute
-|- +|- Begin Safe Start timer
|- End Safe Start timer
-|- Force safety on for all players
-|- Force safety off for all players

"; @@ -102,25 +101,25 @@ _briefing = _briefing + " ZEUS SUPPORT
Assign ZEUS to host.
|- Add players and playable units to ZEUS object list.
+if (isNull (getAssignedCuratorLogic player)) then {hintsilent 'Assign ZEUS first!'} else {[player, playableUnits] remoteExec ['f_fnc_zeusAddObjects', 2]; hintsilent 'Added playable units.'};"">Add players and playable units to ZEUS object list
.
|- + [player,true,true] remoteExec ['f_fnc_zeusAddObjects', 2]; hintsilent 'Assigned control over all group leaders and empty vehicles.'};""> Add all group leaders and empty vehicles.
|- Add all mission objects (POSSIBLE DESYNC).
+if (isNull (getAssignedCuratorLogic player)) then {hintsilent 'Assign ZEUS first!'} else {[player,true] remoteExec ['f_fnc_zeusAddObjects', 2]; hintsilent 'Add all units.'};"">Add all mission objects (POSSIBLE DESYNC).
|- Remove all dead units from ZEUS.
|- Remove all powers and objects from ZEUS.
+if (isNull (getAssignedCuratorLogic player)) then {hintsilent 'Assign ZEUS first!'} else {[player,false] remoteExec ['f_fnc_zeusAddObjects', 2]; [player,false] remoteExec ['f_fnc_zeusAddAddons', 2]; hintsilent 'Removed powers and units.'};"">Remove all powers and objects from ZEUS.

"; @@ -130,4 +129,4 @@ if (isNull (getAssignedCuratorLogic player)) then {hintsilent 'Assign ZEUS first player createDiaryRecord ["diary", ["F3 Admin Menu",_briefing]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index 435f673cb..92a87a3c0 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -157,7 +157,7 @@ if (typeName _end == typeName 0) exitWith { }; if (typeName _end == typeName {}) exitWith { - [_end,"bis_fnc_spawn",true] call BIS_fnc_MP; + _end remoteExec ["bis_fnc_spawn", 0]; }; -player GlobalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; \ No newline at end of file +player GlobalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; diff --git a/f/groupJoin/f_groupJoinAction.sqf b/f/groupJoin/f_groupJoinAction.sqf index df3276562..216eda879 100644 --- a/f/groupJoin/f_groupJoinAction.sqf +++ b/f/groupJoin/f_groupJoinAction.sqf @@ -54,11 +54,11 @@ while {true} do { ["JIP",[format ["You have joined %1 (%2).",name leader _grp,_grp]]] call BIS_fnc_showNotification; { - if (isPlayer _x) then {[["JIP",[format ["%1 has joined your group.",name _unit]]],"BIS_fnc_showNotification",_x] call BIS_fnc_MP}; + if (isPlayer _x) then {["JIP",[format ["%1 has joined your group.",name _unit]]] remoteExec ["BIS_fnc_showNotification", _x]}; } forEach (units _grp - [_unit]); // Done using a forEach loop to avoid message spam should the group leader be controlling AI // Make sure the group leader is synchronized properly accross the network - [[_grp, leader _grp], "selectLeader", leader _grp, false] call BIS_fnc_mp; + [_grp, leader _grp] remoteExec ["selectLeader", leader _grp]; // Remove and reset the action after executing it player removeAction f_groupJoinAction; @@ -75,4 +75,4 @@ while {true} do { }; }; }; -}; \ No newline at end of file +}; diff --git a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf b/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf index 291e619f4..6a6936683 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf @@ -47,7 +47,7 @@ if (vehicle player != player && f_var_mapClickTeleport_Height == 0) then { if (f_var_mapClickTeleport_GroupTeleport) then { sleep 0.1; { - [[_x,f_var_mapClickTeleport_telePos],"f_fnc_mapClickTeleportGroup",_x] spawn BIS_fnc_MP; + [_x,f_var_mapClickTeleport_telePos] remoteExec ["f_fnc_mapClickTeleportGroup", _x]; } forEach ((units group player) - [player]); }; diff --git a/f/mpEnd/fn_mpEnd.sqf b/f/mpEnd/fn_mpEnd.sqf index 68dbd8440..468c48f98 100644 --- a/f/mpEnd/fn_mpEnd.sqf +++ b/f/mpEnd/fn_mpEnd.sqf @@ -14,11 +14,9 @@ if (!isServer) exitWith {}; // SET ENDING & BROADCAST // The desired ending # is taken from the arguments passed to this script. -// Using BIS_fnc_MP the function mpEndReceiver is being spawned on all clients (and server), +// Using remoteExec the function mpEndReceiver is being spawned on all clients (and server), // with the passed ending # as parameter - [_this,"f_fnc_mpEndReceiver",true] spawn BIS_fnc_MP; + _this remoteExec ["f_fnc_mpEndReceiver", 0]; // ==================================================================================== - - diff --git a/f/safeStart/f_safeStartLoop.sqf b/f/safeStart/f_safeStartLoop.sqf index a568c9d0f..bd67b61b2 100644 --- a/f/safeStart/f_safeStartLoop.sqf +++ b/f/safeStart/f_safeStartLoop.sqf @@ -11,7 +11,7 @@ sleep 2; while {f_param_mission_timer > 0} do { // Broadcast remaining time to players - [["SafeStart",[format["Time Remaining: %1 min",f_param_mission_timer]]],"bis_fnc_showNotification",true] call BIS_fnc_MP; + ["SafeStart",[format["Time Remaining: %1 min",f_param_mission_timer]]] remoteExec ["bis_fnc_showNotification", 0]; uisleep 60; // Sleep 60 seconds @@ -26,8 +26,8 @@ while {f_param_mission_timer > 0} do { //Once the mission timer has reached 0, disable the safeties if (f_param_mission_timer == 0) then { // Broadcast message to players - [["SafeStartMissionStarting",["Mission starting now!"]],"bis_fnc_showNotification",true] call BIS_fnc_MP; + ["SafeStartMissionStarting",["Mission starting now!"]] remoteExec ["bis_fnc_showNotification", 0]; // Remotely execute script to disable safety for all selectable units - [[false],"f_fnc_safety",playableUnits + switchableUnits] call BIS_fnc_MP; -}; \ No newline at end of file + [false] remoteExec ["f_fnc_safety", playableUnits + switchableUnits]; +}; diff --git a/f/setAISkill/f_setAISkill.sqf b/f/setAISkill/f_setAISkill.sqf index d7ac1d387..d5b9347e3 100644 --- a/f/setAISkill/f_setAISkill.sqf +++ b/f/setAISkill/f_setAISkill.sqf @@ -72,7 +72,6 @@ _units = if (count _this > 0) then [{_this},{allUnits}]; // SET SKILL LEVELS FOR ALL AI // AI Skill for all AIs is set using side levels (see above). -// By using the BI function BIS_fnc_MP we ensure that AI is set to the correct level for all connected clients, including the server { @@ -106,4 +105,4 @@ _skillArray = []; [_x,_skillArray] call f_fnc_setAISkill; }; -} forEach _units; \ No newline at end of file +} forEach _units; diff --git a/f/simplewoundingsystem/fn_OnDamage.sqf b/f/simplewoundingsystem/fn_OnDamage.sqf index dc2ed5e8c..da49f1408 100644 --- a/f/simplewoundingsystem/fn_OnDamage.sqf +++ b/f/simplewoundingsystem/fn_OnDamage.sqf @@ -15,7 +15,7 @@ if((_selection != "head") && _selection != "" && _selection != "hands" && _tot { if(!(_unit getVariable ["f_wound_down",false])) then { - [[_unit,true], "f_fnc_SetDowned", true] spawn BIS_fnc_MP; + [_unit,true] remoteExec ["f_fnc_SetDowned", 0]; _damage = 0; _unit spawn {_this allowDammage false;sleep 1;_this allowDammage true}; @@ -27,4 +27,3 @@ if(isBleeding _unit && _unit getVariable ["f_wound_bleeding",false]) then _unit setVariable ["f_wound_bleeding",true]; }; _damage - diff --git a/f/simplewoundingsystem/fn_OnDeath.sqf b/f/simplewoundingsystem/fn_OnDeath.sqf index e9278bc1b..4787863a1 100644 --- a/f/simplewoundingsystem/fn_OnDeath.sqf +++ b/f/simplewoundingsystem/fn_OnDeath.sqf @@ -5,5 +5,5 @@ _unit = _this select 0; if(_unit getVariable ["f_wound_down",false]) then { - [[_unit,false], "f_fnc_SetDowned", true] spawn BIS_fnc_MP; -}; \ No newline at end of file + [_unit,false] remoteExec ["f_fnc_SetDowned", 0]; +}; diff --git a/f/simplewoundingsystem/fn_OnHeal.sqf b/f/simplewoundingsystem/fn_OnHeal.sqf index 6219f5188..6882fe2b9 100644 --- a/f/simplewoundingsystem/fn_OnHeal.sqf +++ b/f/simplewoundingsystem/fn_OnHeal.sqf @@ -13,13 +13,13 @@ _ret = true; // if unit is bleeding, stop bleeding if(_unit getVariable ["f_wound_bleeding",false]) then { - [[_unit,false], "f_fnc_SetBleeding", true] spawn BIS_fnc_MP; + [_unit,false] remoteExec ["f_fnc_SetBleeding", 0]; }; // if unit is down , revive him. if(_unit getVariable ["f_wound_down",false] ) then { - [[_unit,false], "f_fnc_SetDowned", true] spawn BIS_fnc_MP; + [_unit,false] remoteExec ["f_fnc_SetDowned", 0]; }; }; _ret diff --git a/f/simplewoundingsystem/fn_SetDowned.sqf b/f/simplewoundingsystem/fn_SetDowned.sqf index 1400bfa70..7e85c4267 100644 --- a/f/simplewoundingsystem/fn_SetDowned.sqf +++ b/f/simplewoundingsystem/fn_SetDowned.sqf @@ -36,7 +36,7 @@ if(_bool && alive _unit) then // if _unit is not in a vehicle, play this animation otherwise fetch the dead animations from the vehicles. if(vehicle _unit != _unit) then { - (vehicle _unit) addAction ["Pull out wounded", {[_this, "f_fnc_EjectWounded", true] spawn BIS_fnc_MP;}, nil, 5, false, true, "", "_target distance _this < 5 && [_target] call f_fnc_HasWounded"]; + (vehicle _unit) addAction ["Pull out wounded", {_this remoteExec ["f_fnc_EjectWounded", 0];}, nil, 5, false, true, "", "_target distance _this < 5 && [_target] call f_fnc_HasWounded"]; }; } else @@ -75,4 +75,4 @@ else // force him into prone otherwise he can get stuck in the rolltofrontanimation. _unit playMove "amovppnemstpsraswrfldnon"; }; -}; \ No newline at end of file +}; diff --git a/f/simplewoundingsystem/init.sqf b/f/simplewoundingsystem/init.sqf index a647302c3..2ffbf68f8 100644 --- a/f/simplewoundingsystem/init.sqf +++ b/f/simplewoundingsystem/init.sqf @@ -57,7 +57,7 @@ _unit spawn f_fnc_LifeTick; _x setVariable ["f_wound_bleeding",false]; _x addEventHandler ["HandleHeal",{_this call f_fnc_OnHeal}]; // Drag Action. - _addIndex = _x addAction [format ["Drag %1", name _x],{[_this, "f_fnc_OnDrag", [_this select 0,_this select 1],false] spawn BIS_fnc_MP;}, nil, 6, false, true, "", "_var = _this getVariable ['f_wound_dragging',nil];_target distance _this < 2 && isNil '_var' && _target getVariable['f_wound_down',false] && !(_this getVariable ['f_wound_down',false])"]; + _addIndex = _x addAction [format ["Drag %1", name _x],{_this remoteExec ["f_fnc_OnDrag", [_this select 0,_this select 1]]}, nil, 6, false, true, "", "_var = _this getVariable ['f_wound_dragging',nil];_target distance _this < 2 && isNil '_var' && _target getVariable['f_wound_down',false] && !(_this getVariable ['f_wound_down',false])"]; } foreach playableUnits; // defines the PP effects for the downed effect. @@ -70,4 +70,3 @@ f_damage_effect = 1.1; // Eventhandlers for the player. _unit addEventHandler ["killed", {_this call f_fnc_OnDeath}]; _unit addEventHandler ["HandleDamage",{_this call f_fnc_OnDamage}]; - diff --git a/f/spect/fn_EventHandler.sqf b/f/spect/fn_EventHandler.sqf index cb0e3f7cf..5bf521cc8 100644 --- a/f/spect/fn_EventHandler.sqf +++ b/f/spect/fn_EventHandler.sqf @@ -233,7 +233,7 @@ case "KeyDown": ["F_ScreenSetup",false] call BIS_fnc_blackOut; if(isNull (getAssignedCuratorLogic player)) then { - [[player,true,playableUnits],'f_fnc_zeusInit',false] spawn BIS_fnc_MP; + [player,true,playableUnits] remoteExec ['f_fnc_zeusInit', 2]; }; [] spawn { waitUntil {!isNull (getAssignedCuratorLogic player)}; @@ -516,4 +516,3 @@ case "KeyUp": }; _handled }; - diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index d344df5ae..0bec6bab6 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -74,10 +74,10 @@ if({!isNil _x} count ["f_param_AISkill_BLUFOR","f_param_AISkill_INDP","f_param_A // If announce is set to true, the new curator will be announced to all players if (_announce) then { _curator setVariable ["owner",format["%1",_unit],true]; - [["Alert",[format ["%1 has become curator!",name _unit]]],"BIS_fnc_showNotification",true] call BIS_fnc_MP; + ["Alert",[format ["%1 has become curator!",name _unit]]] remoteExec ["BIS_fnc_showNotification", 0]; }; // ==================================================================================== // Return the newly created curator -_curator \ No newline at end of file +_curator diff --git a/ws_fnc/misc/fn_broadcast.sqf b/ws_fnc/misc/fn_broadcast.sqf index 0a4fd48c6..9bd803217 100644 --- a/ws_fnc/misc/fn_broadcast.sqf +++ b/ws_fnc/misc/fn_broadcast.sqf @@ -26,7 +26,7 @@ _code = format ["%1 [%2,%3]",_text,str _string,str _type]; ws_fnc_showText = compile _code; -[[],"ws_fnc_showText",true] spawn BIS_fnc_MP; +[] remoteExec ["ws_fnc_showText", 0]; _code = ""; ws_fnc_showText = compile _code; From e4960cb8af222305af4016f3e3adbc6e23dfe879 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Mon, 24 Jul 2017 21:34:00 +0100 Subject: [PATCH 027/407] SetWeather: Replaced 'typeName ==' with isEqualType --- f/missionConditions/fn_SetWeather.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index f2a6c8b1b..7c5c105d8 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -18,7 +18,7 @@ params [["_weather",9,[0]],["_setFog",true,[true,0]],["_setWind",true,[true]],[" if ( _weather == 9 ) exitWith {}; // Support for legacy transition call -if (typeName _setFog == typeName 0) then { +if (_setFog isEqualType 0) then { _transition = _setFog; _setFog = true; }; From b053a47f9cd7f94f88f914a37047e1876364c6a9 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Mon, 24 Jul 2017 21:28:53 +0100 Subject: [PATCH 028/407] Briefing ORBAT: Replaced BIS_fnc_inString with find --- f/briefing/f_orbatNotes.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 970d02f9b..f94754789 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -45,11 +45,11 @@ _groups = _groups - _hiddenGroups; if (_x getVariable ["f_var_assignGear",""] == "m" && {_x != leader group _x}) then { _orbatText = _orbatText + format["|- %1 [M]",name _x] + "
"; }; - + if (_x getVariable ["f_var_assignGear",""] == "jtac" && {_x != leader group _x}) then { // FAC is a specialised JTAC, so need some way to differentiate - if (["FAC", roleDescription _x, true] call BIS_fnc_inString) then { + if ((roleDescription _x) find "FAC" != -1) then { _orbatText = _orbatText + format["|- %1 [FAC]",name _x] + "
"; } else { _orbatText = _orbatText + format["|- %1 [JTAC]",name _x] + "
"; From f95a75fdf7dd0d8afcb7148e5c0458b1a1c94026 Mon Sep 17 00:00:00 2001 From: s Date: Mon, 24 Jul 2017 22:57:05 +0200 Subject: [PATCH 029/407] Fix unused and missing private variables --- f/EandEcheck/f_EandECheckLoop.sqf | 4 +- f/FTMemberMarkers/f_localFTMemberMarker.sqf | 3 +- f/FTMemberMarkers/fn_GetMarkerColor.sqf | 2 +- f/JIP/f_JIP_nearTargetGroupCheck.sqf | 9 +---- f/JIP/f_JIP_playerRespawn.sqf | 2 +- f/authorisedCrew/fn_authorisedCrewCheck.sqf | 8 ++-- f/briefing/f_loadoutNotes.sqf | 7 ++-- f/briefing/f_orbatNotes.sqf | 4 +- f/cache/fn_cInit.sqf | 8 +++- f/cache/fn_cTracker.sqf | 4 +- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 4 +- f/common/fn_processParamsArray.sqf | 2 + f/groupJoin/f_groupJoinAction.sqf | 4 +- f/groupMarkers/f_setLocalGroupMarkers.sqf | 3 +- f/groupMarkers/fn_localGroupMarker.sqf | 6 +-- .../f_mapClickTeleportAction.sqf | 4 +- .../fn_mapClickTeleportGroup.sqf | 2 +- f/missionConditions/fn_SetFog.sqf | 7 +--- f/missionConditions/fn_SetTime.sqf | 2 +- f/missionConditions/fn_SetWeather.sqf | 2 +- f/missionConditions/fn_SetWind.sqf | 2 +- f/nametag/f_nametags.sqf | 14 +++---- f/nametag/fn_drawNametag.sqf | 10 ++--- f/preMount/fn_mountGroups.sqf | 40 +++++++++---------- f/removeBody/fn_removeBody.sqf | 5 +-- f/setAISkill/f_setAISkill.sqf | 4 +- f/setAISkill/fn_setAISkill.sqf | 4 +- f/setGroupID/f_setGroupIDs.sqf | 4 +- f/setTeamColours/f_setTeamColours.sqf | 2 +- f/zeus/fn_zeusAddObjects.sqf | 4 +- f/zeus/fn_zeusInit.sqf | 4 +- 31 files changed, 85 insertions(+), 95 deletions(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index cbe2752eb..7077a27fe 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -11,7 +11,7 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_objects","_obj","_safeDistance","_alive","_safe","_end","_pos","_playersonly"]; +private ["_objects","_obj","_safeDistance","_alive","_safe","_end","_pos","_playersonly","_units","_temp"]; // ==================================================================================== @@ -148,4 +148,4 @@ if (_safe > 0) then { }; }; -player GlobalChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; \ No newline at end of file +player GlobalChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; diff --git a/f/FTMemberMarkers/f_localFTMemberMarker.sqf b/f/FTMemberMarkers/f_localFTMemberMarker.sqf index 034ad9a39..2f04e3e4d 100644 --- a/f/FTMemberMarkers/f_localFTMemberMarker.sqf +++ b/f/FTMemberMarkers/f_localFTMemberMarker.sqf @@ -4,7 +4,7 @@ // DECLARE PRIVATE VARIABLES -private ["_unit","_mkrType","_mkrColor","_mkrName","_mkr","_mkrBorder","_pos"]; +private ["_unit","_mkrName","_mkr","_mkrBorder","_pos","_mkrborderName","_dir"]; // ==================================================================================== @@ -67,4 +67,3 @@ while{alive _unit && (_unit in f_var_HandlerGroup)} do //He's dead Jim, let's clear up obsolete markers deleteMarkerLocal _mkrBorder; deleteMarkerLocal _mkr; - diff --git a/f/FTMemberMarkers/fn_GetMarkerColor.sqf b/f/FTMemberMarkers/fn_GetMarkerColor.sqf index 627e392fd..653bd0a56 100644 --- a/f/FTMemberMarkers/fn_GetMarkerColor.sqf +++ b/f/FTMemberMarkers/fn_GetMarkerColor.sqf @@ -9,7 +9,7 @@ // ["MAIN"] call f_fnc_GetMarkerColor; // // ==================================================================================== -_color = "ColorWhite"; +private _color = "ColorWhite"; switch ((_this select 0)) do { case "MAIN": {_color = "ColorWhite"}; diff --git a/f/JIP/f_JIP_nearTargetGroupCheck.sqf b/f/JIP/f_JIP_nearTargetGroupCheck.sqf index 7c6ace6a3..4967977e4 100644 --- a/f/JIP/f_JIP_nearTargetGroupCheck.sqf +++ b/f/JIP/f_JIP_nearTargetGroupCheck.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_grp","_joinDistance"]; +private ["_grp","_joinDistance", "_unit"]; // ==================================================================================== @@ -34,12 +34,6 @@ if ({alive _x} count (units _grp) == 0) exitWith { ["JIP",[format ["All members of %1 have died. Please select a new group",_grp]]] call BIS_fnc_showNotification; }; -// DEBUG -if (f_param_debugMode == 1) then -{ - player sideChat format ["DEBUG (f\JIP\f_JIP_nearTargetGroupCheck.sqf): _alive = %1",_alive]; -}; - // ==================================================================================== sleep 3; @@ -60,4 +54,3 @@ sleep 3; }; }; - diff --git a/f/JIP/f_JIP_playerRespawn.sqf b/f/JIP/f_JIP_playerRespawn.sqf index de51d9833..6ff870b67 100644 --- a/f/JIP/f_JIP_playerRespawn.sqf +++ b/f/JIP/f_JIP_playerRespawn.sqf @@ -17,7 +17,7 @@ if (!isDedicated && (isNull player)) then // DECLARE VARIABLES AND FUNCTIONS -private ["_unit","_corpse"]; +private ["_unit","_corpse", "_loadout"]; // ==================================================================================== diff --git a/f/authorisedCrew/fn_authorisedCrewCheck.sqf b/f/authorisedCrew/fn_authorisedCrewCheck.sqf index 3a302b233..c058f9f53 100644 --- a/f/authorisedCrew/fn_authorisedCrewCheck.sqf +++ b/f/authorisedCrew/fn_authorisedCrewCheck.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_fromEH","_vehicle","_vehicleRole","_unitToCheck","_restrictedCrew","_warningMsg","_restrictcargo"]; +private ["_fromEH","_vehicle","_vehicleRole","_unitToCheck","_restrictedCrew","_warningMsg","_restrictcargo","_restrictedList","_restrictedTypes","_restrictedUnits"]; // ==================================================================================== @@ -50,8 +50,8 @@ if (_vehicleRole == "CARGO" && !_restrictcargo) exitWith {}; _restrictedTypes = []; _restrictedUnits = []; { - if (typeName _x == typeName "") then {_restrictedTypes set [count _restrictedListTypes,_x]}; - if (typeName _x == typeName objNull) then {_restrictedUnits set [count _restrictedListTypes,_x]}; + if (typeName _x == typeName "") then {_restrictedTypes pushBack _x}; + if (typeName _x == typeName objNull) then {_restrictedUnits pushBack _x}; } forEach _restrictedList; // ==================================================================================== @@ -62,4 +62,4 @@ _restrictedUnits = []; if (_unitToCheck in _restrictedUnits || ({_unitToCheck isKindOf _x} count _restrictedTypes == 1)) exitWith {}; ["UnauthorisedCrew",[_warningMsg]] call BIS_fnc_showNotification; -_unitToCheck action ["getout",_vehicle]; \ No newline at end of file +_unitToCheck action ["getout",_vehicle]; diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index cc298f381..a139c7adc 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -6,11 +6,11 @@ if (!hasInterface) exitWith {}; //Exit if not a player. // DECLARE VARIABLES AND FUNCTIONS -private ["_text","_stuff","_weps","_items","_fnc_wepMags","_wepMags","_magArr","_s","_mags","_bp","_maxload"]; +private ["_text","_weps","_items","_fnc_wepMags","_mags","_bp","_maxload","_attachments","_wepItems"]; // Local function to set the proper magazine count. _fnc_wepMags = { - private ["_w","_magarr"]; + private ["_w","_magarr","_wepMags","_magArr","_s"]; _w = _this select 0; //Get possible magazines for weapon @@ -52,7 +52,6 @@ _fnc_wepMags = { _text = "
NOTE: The loadout shown below is only accurate at mission start.

"; -_stuff = []; // All weapons minus the field glasses _weps = weapons player - ["Rangefinder","Binocular","Laserdesignator"]; @@ -152,4 +151,4 @@ if (count _items > 0) then { // Wait for the briefing script to finish, then add the created text waitUntil {scriptDone f_script_briefing}; -player createDiaryRecord ["diary", ["Loadout", _text]]; \ No newline at end of file +player createDiaryRecord ["diary", ["Loadout", _text]]; diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index d0d24067f..191d57b09 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -8,7 +8,7 @@ if (!hasInterface) exitWith {}; //Exit if not a player. // waitUntil {scriptDone f_script_setGroupIDs}; // Define needed variables -private ["_orbatText", "_groups", "_precompileGroups","_maxSlots","_freeSlots"]; +private ["_orbatText", "_groups", "_precompileGroups","_maxSlots","_freeSlots","_hiddenGroups","_color","_veharray","_vehName","_veh","_crewrole","_groupList"]; _orbatText = "
NOTE: The ORBAT below is only accurate at mission start.

GROUP LEADERS + MEDICS

"; @@ -118,4 +118,4 @@ _orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; // Insert final result into subsection ORBAT of section Notes waitUntil {scriptDone f_script_briefing}; -player createDiaryRecord ["diary", ["ORBAT", _orbatText]]; \ No newline at end of file +player createDiaryRecord ["diary", ["ORBAT", _orbatText]]; diff --git a/f/cache/fn_cInit.sqf b/f/cache/fn_cInit.sqf index 3248b2de3..db3c7f005 100644 --- a/f/cache/fn_cInit.sqf +++ b/f/cache/fn_cInit.sqf @@ -15,6 +15,12 @@ waitUntil {time > (_this select 0)}; // ==================================================================================== +// DECLARE PRIVATE VARIABLES + +private ["_range", "_str1", "_str2", "_str3", "_str4", "_str5"]; + +// ==================================================================================== + // Player and the headless client's (if present) groups are always excluded from being cached if (!isDedicated && !(group player getVariable ["f_cacheExcl", false])) then { (group player) setVariable ["f_cacheExcl", true, true]; @@ -67,4 +73,4 @@ if (f_param_debugMode == 1) then { sleep f_var_cacheSleep; }; }; -}; \ No newline at end of file +}; diff --git a/f/cache/fn_cTracker.sqf b/f/cache/fn_cTracker.sqf index bef845651..7822e9029 100644 --- a/f/cache/fn_cTracker.sqf +++ b/f/cache/fn_cTracker.sqf @@ -3,7 +3,7 @@ // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS -private ["_range","_groups","_debug"]; +private ["_range","_groups","_debug", "_exclude", "_cached"]; _range = _this select 0; _groups = allGroups; @@ -65,4 +65,4 @@ While {f_var_cacheRun} do { _x spawn f_fnc_gUncache; _x setvariable ["f_cached", false]; }; -} forEach allGroups; \ No newline at end of file +} forEach allGroups; diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index 435f673cb..eb6d0ec7e 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -18,7 +18,7 @@ sleep 0.1; // DECLARE PRIVATE VARIABLES -private ["_grps","_pc","_end","_started","_remaining","_grpstemp","_alive","_faction","_temp_grp","_temp_grp2","_type","_onlyPlayers","_grpsno","_counter"]; +private ["_grps","_pc","_end","_started","_remaining","_grpstemp","_alive","_faction","_temp_grp","_temp_grp2","_type","_onlyPlayers","_grpsno","_counter", "_grp", "_Tgrp"]; // ==================================================================================== @@ -160,4 +160,4 @@ if (typeName _end == typeName {}) exitWith { [_end,"bis_fnc_spawn",true] call BIS_fnc_MP; }; -player GlobalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; \ No newline at end of file +player GlobalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; diff --git a/f/common/fn_processParamsArray.sqf b/f/common/fn_processParamsArray.sqf index 9527a753a..a908142fe 100644 --- a/f/common/fn_processParamsArray.sqf +++ b/f/common/fn_processParamsArray.sqf @@ -5,6 +5,8 @@ //Testing has shown that paramArrays only exists on the server during preInit //The publicVariable will synchronize the value to the clients. +private ["_paramName", "_paramValue"]; + //PreInit if (isServer) then { if (isNil "f_paramsArray_complete") then { diff --git a/f/groupJoin/f_groupJoinAction.sqf b/f/groupJoin/f_groupJoinAction.sqf index df3276562..4d367e178 100644 --- a/f/groupJoin/f_groupJoinAction.sqf +++ b/f/groupJoin/f_groupJoinAction.sqf @@ -18,7 +18,7 @@ if (!isDedicated && (isNull player)) then // ==================================================================================== -private ["_nearUnit", "_nearGroup", "_actionDistance", "_allowDifferentSide"]; +private ["_nearUnit", "_nearGroup", "_actionDistance", "_allowDifferentSide", "_actionString", "_unit", "_grp"]; // How many meters player needs to be from another group's leader for the join action to be shown _actionDistance = 2.5; @@ -75,4 +75,4 @@ while {true} do { }; }; }; -}; \ No newline at end of file +}; diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index 49770f860..5b2c856ad 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -4,7 +4,8 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_unitfaction"]; +private ["_unitfaction", "_hq", "_ft", "_sup", "_lau", "_mor", "_eng", "_ifv", "_tnk", "_rec", "_hel", "_pla", "_art", "_med", "_uav"]; + // ==================================================================================== diff --git a/f/groupMarkers/fn_localGroupMarker.sqf b/f/groupMarkers/fn_localGroupMarker.sqf index 5de247c69..6d7da47d7 100644 --- a/f/groupMarkers/fn_localGroupMarker.sqf +++ b/f/groupMarkers/fn_localGroupMarker.sqf @@ -36,8 +36,8 @@ if (isnil "_grp") exitWith {}; // CREATE MARKER // Depending on the value of _mkrType a different type of marker is created. -_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]]; -_mkr setMarkerShapeLocal "ICON"; +_mkrName = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]]; +_mkrName setMarkerShapeLocal "ICON"; _mkrName setMarkerTypeLocal _mkrType; _mkrName setMarkerColorLocal _mkrColor; _mkrName setMarkerSizeLocal [0.8, 0.8]; @@ -58,5 +58,3 @@ while {{!isNull _x} count units _grp > 0} do // ==================================================================================== - - diff --git a/f/mapClickTeleport/f_mapClickTeleportAction.sqf b/f/mapClickTeleport/f_mapClickTeleportAction.sqf index 0021e6b03..042684a82 100644 --- a/f/mapClickTeleport/f_mapClickTeleportAction.sqf +++ b/f/mapClickTeleport/f_mapClickTeleportAction.sqf @@ -51,7 +51,7 @@ if (f_var_mapClickTeleport_GroupTeleport && player != leader group player) exit // Setup the localized strings for the various stages of the component // Depending on the setting of the height variable the strings either use the teleport or the HALO option. -_string = if (f_var_mapClickTeleport_Height == 0) then {"Teleport"} else {"HALO"}; +private _string = if (f_var_mapClickTeleport_Height == 0) then {"Teleport"} else {"HALO"}; f_var_mapClickTeleport_textAction = localize format ["STR_f_mapClick%1Action",_string]; f_var_mapClickTeleport_textDone = localize format ["STR_f_mapClick%1Done",_string]; @@ -68,4 +68,4 @@ f_mapClickTeleportAction = player addaction [f_var_mapClickTeleport_textAction,{ if (f_var_mapClickTeleport_TimeLimit > 0) then { sleep f_var_mapClickTeleport_TimeLimit; player removeAction f_mapClickTeleportAction; -}; \ No newline at end of file +}; diff --git a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf b/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf index b581c3e31..8509e2182 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_pos","_units","_textDone","_dispersion"]; +private ["_unit","_pos","_units","_textDone","_dispersion","_string"]; // ==================================================================================== diff --git a/f/missionConditions/fn_SetFog.sqf b/f/missionConditions/fn_SetFog.sqf index 0423466e2..f02e8992a 100644 --- a/f/missionConditions/fn_SetFog.sqf +++ b/f/missionConditions/fn_SetFog.sqf @@ -4,19 +4,18 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_fog","_strength","_decay","_base"]; +private ["_strength","_decay","_base"]; // ==================================================================================== // SET KEY VARIABLES // We interpret the values parsed to the script. If the function was called from the parameters those values are used. -_fog = _this select 0; +params ["_fog", ["_transition",0]]; // Exit when using mission settings if ( _fog == 4 ) exitWith {}; -_transition = if (count _this > 1) then {_this select 1} else {0}; _strength = 0; // Value for fog at base level _decay = 0; // Decay of fog density with altitude. If set to 0 fog strength is consistent throughout. @@ -62,5 +61,3 @@ switch (_fog) do _transition setFog [_strength,_decay,_base]; // ==================================================================================== - - diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index 59bf01ebc..d1b2bf71a 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -8,7 +8,7 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_timeOfDay","_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time"]; +private ["_timeOfDay","_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time","_result","_date"]; // ==================================================================================== diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index 8d3714dc0..7671d6f72 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_missionOvercast","_MissionRain","_MissionRainbow","_MissionLightnings","_MissionWindStr","_MissionWindGusts","_MissionWaves","_MissionHumidity"]; +private ["_missionOvercast","_MissionRain","_MissionRainbow","_MissionLightnings","_MissionWindStr","_MissionWindGusts","_MissionWaves","_MissionHumidity","_MissionFogStrength","_MissionFogDecay","_MissionFogBase"]; // ==================================================================================== diff --git a/f/missionConditions/fn_SetWind.sqf b/f/missionConditions/fn_SetWind.sqf index ce13750ff..b5f0d57be 100644 --- a/f/missionConditions/fn_SetWind.sqf +++ b/f/missionConditions/fn_SetWind.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_wind","_strength","_decay","_base"]; +private ["_wind","_strength","_decay","_base","_gusts","_waves"]; // ==================================================================================== diff --git a/f/nametag/f_nametags.sqf b/f/nametag/f_nametags.sqf index 2c540d5db..62d471fc4 100644 --- a/f/nametag/f_nametags.sqf +++ b/f/nametag/f_nametags.sqf @@ -47,8 +47,8 @@ F_KEYNAME_NAMETAGS = actionKeysNames F_KEY_NAMETAGS; if (isNil "F_ACTIONKEY_NAMETAGS") then {F_ACTIONKEY_NAMETAGS = 20; F_KEYNAME_NAMETAGS = 'U';}; // If the user has not bound 'TeamSwitch' to a key we default to 'U' to toggle the tags F_KEYUP_NAMETAG = { - _key = _this select 1; - _handeld = false; + private _key = _this select 1; + private _handeld = false; if(_key == F_ACTIONKEY_NAMETAGS) then { _handeld = true; @@ -57,8 +57,8 @@ F_KEYUP_NAMETAG = { }; F_KEYDOWN_NAMETAG = { - _key = _this select 1; - _handeld = false; + private _key = _this select 1; + private _handeld = false; if(_key == F_ACTIONKEY_NAMETAGS) then { F_DRAW_NAMETAGS = !F_DRAW_NAMETAGS; @@ -75,7 +75,7 @@ F_KEYDOWN_NAMETAG = { [] spawn { waitUntil {scriptDone f_script_briefing}; - _bstr = format ["F3 NAME TAGS
Toggle name tags for friendly units by pressing %1.

+ private _bstr = format ["F3 NAME TAGS
Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to %4m away, and constantly for all units within %3m. ",F_KEYNAME_NAMETAGS, F_KEY_NAMETAGS,F_DISTALL_NAMETAGS,F_DISTCursor_NAMETAGS]; @@ -134,7 +134,7 @@ addMissionEventHandler ["Draw3D", { if(F_DRAW_NAMETAGS) then { - private ["_ents","_veh","_color","_inc","_suffix","_pos","_angle"]; + private ["_ents","_veh","_color","_inc","_suffix","_pos","_angle","_maxSlots","_freeSlots"]; _ents = []; @@ -176,7 +176,6 @@ addMissionEventHandler ["Draw3D", { _veh = _x; _inc = 1; - _alternate = 0; { // Get the various crew slots @@ -237,4 +236,3 @@ addMissionEventHandler ["Draw3D", { }; // Outmost if scope }]; // End of the Eventhandler Scope - diff --git a/f/nametag/fn_drawNametag.sqf b/f/nametag/fn_drawNametag.sqf index 684277a1b..13fb3e12c 100644 --- a/f/nametag/fn_drawNametag.sqf +++ b/f/nametag/fn_drawNametag.sqf @@ -27,7 +27,7 @@ if (!alive _u) exitWith {}; // Define the color of the nametag _color = F_COLOR_NAMETAGS; // Default color if (_suffix != "") then {_color = F_COLOR2_NAMETAGS}; // Mounted units -if(_x in units player) then { _color = f_groupColor_Nametags }; // Units of same group +if(_u in units player) then { _color = f_groupColor_Nametags }; // Units of same group // Check which tags to show _showgroup = if (!isNil "F_SHOWGROUP_NAMETAGS") then [{F_SHOWGROUP_NAMETAGS},{false}]; @@ -40,13 +40,13 @@ if (_showgroup && group _u != group player) then {_str = format ["%1 ",groupID ( // Show distance for units in over 3m distance only if (_showdis && {_pos distance player >= 3}) then { _str = _str + format [" - %1m",round (_pos distance player)]; - //drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _x select 2) - _height], 0, 0, 0, _str, F_SHADOW_NAMETAGS,(F_SIZE_NAMETAGS - 0.005), F_FONT_NAMETAGS]; + //drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _u select 2) - _height], 0, 0, 0, _str, F_SHADOW_NAMETAGS,(F_SIZE_NAMETAGS - 0.005), F_FONT_NAMETAGS]; }; -drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _x select 2) + _height], 0, 0, 0, _str, F_SHADOW_NAMETAGS,F_SIZE_NAMETAGS, F_FONT_NAMETAGS]; +drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _u select 2) + _height], 0, 0, 0, _str, F_SHADOW_NAMETAGS,F_SIZE_NAMETAGS, F_FONT_NAMETAGS]; // Show vehicle type only for vehicles the player is not crewing himself if (_showveh && {!(typeOf (vehicle _u) isKindof "Man") && vehicle _u != vehicle player && ((_u == driver vehicle _u) || (_u == gunner vehicle _u))}) then { _str = format ["%1",getText (configFile >> "CfgVehicles" >> (typeOf vehicle _u) >> "displayname")]; - drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _x select 2) + _height - 0.2], 0, 0, 0, _str,F_SHADOW_NAMETAGS,F_SIZE_NAMETAGS,F_FONT_NAMETAGS]; -}; \ No newline at end of file + drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _u select 2) + _height - 0.2], 0, 0, 0, _str,F_SHADOW_NAMETAGS,F_SIZE_NAMETAGS,F_FONT_NAMETAGS]; +}; diff --git a/f/preMount/fn_mountGroups.sqf b/f/preMount/fn_mountGroups.sqf index f72bd6747..51492f519 100644 --- a/f/preMount/fn_mountGroups.sqf +++ b/f/preMount/fn_mountGroups.sqf @@ -9,17 +9,18 @@ if (!isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_objects","_crew","_vehs","_grps","_units"]; +private ["_objects","_crew","_vehs","_grps","_units","_grp","_fill"]; // ==================================================================================== // SET KEY VARIABLES // Using the arguments passed to the script, we first define some local variables. -_vehs = _this select 0; // Array of vehicles (objects) -_grps = _this select 1; // Array of group names (as strings) -_crew = if (count _this > 2) then {_this select 2} else {true}; // Mount into crew positions? (optional - default:true) -_fill = if (count _this > 3) then {_this select 3} else {false}; // Ignore fireteam cohesion in favor of filling vehicles? (optional - default:false) +params ["_vehs", "_grps", ["_crew", true], ["_fill", false]]; +//_vehs: Array of vehicles (objects) +//_grps: Array of group names (as strings) +//_crew: Mount into crew positions? (optional - default:true) +//_fill: Ignore fireteam cohesion in favor of filling vehicles? (optional - default:false) // ==================================================================================== @@ -83,9 +84,8 @@ if (count _vehs == 0 || count _grps == 0) exitWith { // We loop through all vehicles and assign crew & cargo accordingly { - private ["_veh","_grpsT","_emptyPositions"]; + private ["_veh","_grpsT","_emptyPositions","_vehicleRoles"]; _veh = _x; - _crew = if (count _this > 2) then {_this select 2} else {true}; // Calculate the number of spare seats _emptyPositions = [typeOf _veh,true] call BIS_fnc_crewCount; // Count all available slots(this includes co-pilot, commander, main-gunner etc.) @@ -98,7 +98,7 @@ if (count _vehs == 0 || count _grps == 0) exitWith { while {_emptyPositions > 0 && count _grpsT > 0 && locked _veh != 2} do { - private ["_grp","_units","_run"]; + private ["_grp","_units","_run","_unit","_slot","_path"]; _grp = _grpsT select 0; _units = units _grp; @@ -113,21 +113,21 @@ if (count _vehs == 0 || count _grps == 0) exitWith { _grpsT = _grpsT - [_grp]; }; - if (_run) then { + if (_run) then { - // Loop through all vehicle roles and place the units in them accordingly - { - _unit = _units select 0; - _slot = _x select 0; - _path = _x select 1; + // Loop through all vehicle roles and place the units in them accordingly + { + _unit = _units select 0; + _slot = _x select 0; + _path = _x select 1; - // If the slot is not a cargo slot and crew should be slotted + // If the slot is not a cargo slot and crew should be slotted if (_crew && {_slot != "CARGO" && isNull assignedVehicle _unit}) then{ if (_slot == "Driver" && (_veh emptyPositions "Driver") > 0 && !(lockedDriver _veh)) exitWith {_unit assignAsDriver _veh;_unit moveInDriver _veh;}; if (_slot == "Turret" && !(_veh lockedTurret _path) && isNull (_veh TurretUnit _path)) exitWith {_unit assignAsTurret [_veh,_path];_unit moveInTurret [_veh,_path];}; }; - if (_slot == "CARGO" && isNull assignedVehicle _unit && !(_veh lockedCargo (_path select 0))) then { + if (_slot == "CARGO" && isNull assignedVehicle _unit && !(_veh lockedCargo (_path select 0))) then { _unit assignAsCargo _veh; _unit moveInCargo _veh; }; @@ -139,10 +139,10 @@ if (count _vehs == 0 || count _grps == 0) exitWith { // If no units are left, exit if (count _units == 0) exitWith {}; - } forEach _vehicleRoles; + } forEach _vehicleRoles; - // Remove the processed group from the temporary array - _grpsT = _grpsT - [_grp]; + // Remove the processed group from the temporary array + _grpsT = _grpsT - [_grp]; }; // Check if all units in the group have been assigned a vehicle, remove group from both group arrays @@ -161,4 +161,4 @@ if (count _vehs == 0 || count _grps == 0) exitWith { // OUTPUT // We return all groups that weren't fully loaded -_grps \ No newline at end of file +_grps diff --git a/f/removeBody/fn_removeBody.sqf b/f/removeBody/fn_removeBody.sqf index 9e4a49b0a..3fdee1142 100644 --- a/f/removeBody/fn_removeBody.sqf +++ b/f/removeBody/fn_removeBody.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_body","_wait","_group","_distance","_pos","_nearPlayers","_nearUnits","_check"]; +private ["_body","_wait","_group","_distance","_pos","_nearPlayers","_nearUnits","_check","_loop"]; // ==================================================================================== @@ -53,6 +53,3 @@ deleteVehicle _body; sleep 30; _check = count (units (_group)); if (_check == 0) then {deleteGroup _group}; - - - diff --git a/f/setAISkill/f_setAISkill.sqf b/f/setAISkill/f_setAISkill.sqf index d7ac1d387..17ffc3e7d 100644 --- a/f/setAISkill/f_setAISkill.sqf +++ b/f/setAISkill/f_setAISkill.sqf @@ -76,7 +76,7 @@ _units = if (count _this > 0) then [{_this},{allUnits}]; { -private ["_skill","_skillarray"]; +private ["_skill","_skillarray","_skilllevel"]; _skill = 0; _skillArray = []; @@ -106,4 +106,4 @@ _skillArray = []; [_x,_skillArray] call f_fnc_setAISkill; }; -} forEach _units; \ No newline at end of file +} forEach _units; diff --git a/f/setAISkill/fn_setAISkill.sqf b/f/setAISkill/fn_setAISkill.sqf index dbbbf474e..4baa1e094 100644 --- a/f/setAISkill/fn_setAISkill.sqf +++ b/f/setAISkill/fn_setAISkill.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES -private ["_unit","_skill","_skillset","_skillarray"]; +private ["_unit","_skill","_skillset","_skillarray","_skilllevel"]; // ==================================================================================== @@ -72,4 +72,4 @@ if (typename _skillset == typename 0) then { _unit setVariable ["f_setAISkill",true]; // Return true -true \ No newline at end of file +true diff --git a/f/setGroupID/f_setGroupIDs.sqf b/f/setGroupID/f_setGroupIDs.sqf index 4455ea35e..00a446c79 100644 --- a/f/setGroupID/f_setGroupIDs.sqf +++ b/f/setGroupID/f_setGroupIDs.sqf @@ -4,7 +4,7 @@ // OPEN THE ARRAY CONTAING ALL GROUPS // Do not comment or delete this line! -_groups = [ +private _groups = [ // ==================================================================================== @@ -424,4 +424,4 @@ _groups = [ // SET GROUP IDS // Execute setGroupID Function for all factions -{_x call f_fnc_setGroupID} forEach _groups; \ No newline at end of file +{_x call f_fnc_setGroupID} forEach _groups; diff --git a/f/setTeamColours/f_setTeamColours.sqf b/f/setTeamColours/f_setTeamColours.sqf index 9411aec35..480ae46a4 100644 --- a/f/setTeamColours/f_setTeamColours.sqf +++ b/f/setTeamColours/f_setTeamColours.sqf @@ -49,7 +49,7 @@ if(!_isFireteam) exitWith {}; // SET TEAM COLOURS { _unit = _x; - _unitStr = str _x; + private _unitStr = str _x; { if ((_unitStr find _x) != -1) then { diff --git a/f/zeus/fn_zeusAddObjects.sqf b/f/zeus/fn_zeusAddObjects.sqf index 5c29e9c1e..b5b7c6595 100644 --- a/f/zeus/fn_zeusAddObjects.sqf +++ b/f/zeus/fn_zeusAddObjects.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES -private ["_curator","_mode","_objects","_getGlobalVars"]; +private ["_curator","_mode","_objects","_getGlobalVars","_groupleaders","_leaders"]; // ==================================================================================== @@ -76,4 +76,4 @@ if (_groupLeaders) then { }; // Add all selected objects to curator lists -_curator addCuratorEditableObjects [_objects,true]; \ No newline at end of file +_curator addCuratorEditableObjects [_objects,true]; diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index d344df5ae..c191dc0e1 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -11,7 +11,7 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES -private ["_unit","_addons","_objects","_curator","_createModule"]; +private ["_unit","_addons","_objects","_curator","_createModule","_announce"]; // ==================================================================================== @@ -80,4 +80,4 @@ if (_announce) then { // ==================================================================================== // Return the newly created curator -_curator \ No newline at end of file +_curator From 25429583dab0615256acd094503d5c6ef5422c58 Mon Sep 17 00:00:00 2001 From: Lexer Date: Wed, 26 Jul 2017 14:44:52 +0100 Subject: [PATCH 030/407] Added F3 Disable Thermals component --- f/common/functions.hpp | 5 ++++ f/disableThermals/fn_disableThermals.sqf | 35 ++++++++++++++++++++++++ init.sqf | 5 ++++ 3 files changed, 45 insertions(+) create mode 100644 f/disableThermals/fn_disableThermals.sqf diff --git a/f/common/functions.hpp b/f/common/functions.hpp index bbe2b7f23..cd888739c 100644 --- a/f/common/functions.hpp +++ b/f/common/functions.hpp @@ -137,4 +137,9 @@ class F // Defines the "owner" class HandleMenu{}; class showMenu{}; }; + class disableThermals + { + file = "f\disableThermals"; + class disableThermals {}; + }; }; \ No newline at end of file diff --git a/f/disableThermals/fn_disableThermals.sqf b/f/disableThermals/fn_disableThermals.sqf new file mode 100644 index 000000000..e7a3381b5 --- /dev/null +++ b/f/disableThermals/fn_disableThermals.sqf @@ -0,0 +1,35 @@ +// F3 - Disable Thermals +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DECLARE VARIABLES AND FUNCTIONS + +private ["_allowedList", "_allowedTypes", "_allowedUnits"]; + +// SET KEY VARIABLES +// Using the arguments passed to the script, we first define some local variables. + +params [["_allowedList", [], [[]]]]; + +// INTERPRET RESTRICTED ARRAY +// Loop through the array containing the allowed classes and units and split them into two + +_allowedTypes = []; +_allowedUnits = []; +{ + if (_x isEqualType "") then {_allowedTypes pushBack _x}; + if (_x isEqualType objNull) then {_allowedUnits pushBack _x}; +} forEach _allowedList; + +// PERFORM CHECKS +// Check if any vehicle is one of the allowed vehicles or in the allowed types, if not, disable their thermals. + +{ + private _vehicleToCheck = _x; + + if (_vehicleToCheck in _allowedUnits || {{_vehicleToCheck isKindOf _x} count _allowedTypes > 0}) then { + // This is an allowed vehicle, ignore it + } else { + _vehicleToCheck disableTIEquipment true; + } +} foreach vehicles; \ No newline at end of file diff --git a/init.sqf b/init.sqf index d0b2f022e..bd097afb9 100644 --- a/init.sqf +++ b/init.sqf @@ -220,3 +220,8 @@ f_var_civAI = independent; // Optional: The civilian AI will use this side's s // INDEPENDENT > AAF // [INDEPENDENT,100,1] execVM "f\casualtiesCap\f_CasualtiesCapCheck.sqf"; + +// F3 - Disable Thermals +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +[] spawn f_fnc_disableThermals; +// [[UnitName1, "UnitClass1"]] spawn f_fnc_disableThermals; \ No newline at end of file From fcd909df5437280320e5cb04d1c81e0be6e8fc4c Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Thu, 27 Jul 2017 09:40:40 +0100 Subject: [PATCH 031/407] Revert included changes from 70afd2b and 9d41771 --- f/authorisedCrew/fn_authorisedCrewCheck.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/authorisedCrew/fn_authorisedCrewCheck.sqf b/f/authorisedCrew/fn_authorisedCrewCheck.sqf index c058f9f53..ac373bd17 100644 --- a/f/authorisedCrew/fn_authorisedCrewCheck.sqf +++ b/f/authorisedCrew/fn_authorisedCrewCheck.sqf @@ -50,8 +50,8 @@ if (_vehicleRole == "CARGO" && !_restrictcargo) exitWith {}; _restrictedTypes = []; _restrictedUnits = []; { - if (typeName _x == typeName "") then {_restrictedTypes pushBack _x}; - if (typeName _x == typeName objNull) then {_restrictedUnits pushBack _x}; + if (typeName _x == typeName "") then {_restrictedTypes set [count _restrictedListTypes,_x]}; + if (typeName _x == typeName objNull) then {_restrictedUnits set [count _restrictedListTypes,_x]}; } forEach _restrictedList; // ==================================================================================== @@ -62,4 +62,4 @@ _restrictedUnits = []; if (_unitToCheck in _restrictedUnits || ({_unitToCheck isKindOf _x} count _restrictedTypes == 1)) exitWith {}; ["UnauthorisedCrew",[_warningMsg]] call BIS_fnc_showNotification; -_unitToCheck action ["getout",_vehicle]; +_unitToCheck action ["getout",_vehicle]; \ No newline at end of file From 9fb1536af481b823bc219c917368158415cf1fd2 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 22 Jul 2017 18:32:11 +0100 Subject: [PATCH 032/407] Authorised Crew Check: Fixed array update bug --- f/authorisedCrew/fn_authorisedCrewCheck.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/authorisedCrew/fn_authorisedCrewCheck.sqf b/f/authorisedCrew/fn_authorisedCrewCheck.sqf index ac373bd17..c058f9f53 100644 --- a/f/authorisedCrew/fn_authorisedCrewCheck.sqf +++ b/f/authorisedCrew/fn_authorisedCrewCheck.sqf @@ -50,8 +50,8 @@ if (_vehicleRole == "CARGO" && !_restrictcargo) exitWith {}; _restrictedTypes = []; _restrictedUnits = []; { - if (typeName _x == typeName "") then {_restrictedTypes set [count _restrictedListTypes,_x]}; - if (typeName _x == typeName objNull) then {_restrictedUnits set [count _restrictedListTypes,_x]}; + if (typeName _x == typeName "") then {_restrictedTypes pushBack _x}; + if (typeName _x == typeName objNull) then {_restrictedUnits pushBack _x}; } forEach _restrictedList; // ==================================================================================== @@ -62,4 +62,4 @@ _restrictedUnits = []; if (_unitToCheck in _restrictedUnits || ({_unitToCheck isKindOf _x} count _restrictedTypes == 1)) exitWith {}; ["UnauthorisedCrew",[_warningMsg]] call BIS_fnc_showNotification; -_unitToCheck action ["getout",_vehicle]; \ No newline at end of file +_unitToCheck action ["getout",_vehicle]; From a1cc2f2f9924829891fb1f6cad796d1913c4f494 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Mon, 24 Jul 2017 21:30:43 +0100 Subject: [PATCH 033/407] Authorised Crew Check: Replaced 'typeName ==' with isEqualType --- f/authorisedCrew/fn_authorisedCrewCheck.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/authorisedCrew/fn_authorisedCrewCheck.sqf b/f/authorisedCrew/fn_authorisedCrewCheck.sqf index c058f9f53..3f697eb90 100644 --- a/f/authorisedCrew/fn_authorisedCrewCheck.sqf +++ b/f/authorisedCrew/fn_authorisedCrewCheck.sqf @@ -50,8 +50,8 @@ if (_vehicleRole == "CARGO" && !_restrictcargo) exitWith {}; _restrictedTypes = []; _restrictedUnits = []; { - if (typeName _x == typeName "") then {_restrictedTypes pushBack _x}; - if (typeName _x == typeName objNull) then {_restrictedUnits pushBack _x}; + if (_x isEqualType "") then {_restrictedTypes pushBack _x}; + if (_x isEqualType objNull) then {_restrictedUnits pushBack _x}; } forEach _restrictedList; // ==================================================================================== From d6bd73170c9958c4c2e0ee1adc4199aaa9a00154 Mon Sep 17 00:00:00 2001 From: Whalen Date: Mon, 28 Aug 2017 17:54:57 -0500 Subject: [PATCH 034/407] Update to current --- f/common/functions.hpp | 7 +- f/nametag/f_nametagCONFIG.sqf | 81 ++++++++ f/nametag/f_nametagCacheLoop.sqf | 54 ++++++ f/nametag/f_nametagCheckMods.sqf | 14 ++ f/nametag/f_nametagDisableKey.sqf | 48 +++++ f/nametag/f_nametagInit.sqf | 74 ++++++++ f/nametag/f_nametagInitTalking.sqf | 59 ++++++ f/nametag/f_nametagSettings.sqf | 173 +++++++++++++++++ f/nametag/f_nametags.sqf | 240 ------------------------ f/nametag/fn_drawNametag.sqf | 52 ------ f/nametag/fn_getZoom.sqf | 24 +++ f/nametag/fn_nametagCache.sqf | 69 +++++++ f/nametag/fn_nametagDraw.sqf | 177 ++++++++++++++++++ f/nametag/fn_nametagGetData.sqf | 288 +++++++++++++++++++++++++++++ f/nametag/fn_nametagResetFont.sqf | 115 ++++++++++++ f/nametag/fn_nametagUpdate.sqf | 204 ++++++++++++++++++++ init.sqf | 2 +- 17 files changed, 1387 insertions(+), 294 deletions(-) create mode 100644 f/nametag/f_nametagCONFIG.sqf create mode 100644 f/nametag/f_nametagCacheLoop.sqf create mode 100644 f/nametag/f_nametagCheckMods.sqf create mode 100644 f/nametag/f_nametagDisableKey.sqf create mode 100644 f/nametag/f_nametagInit.sqf create mode 100644 f/nametag/f_nametagInitTalking.sqf create mode 100644 f/nametag/f_nametagSettings.sqf delete mode 100644 f/nametag/f_nametags.sqf delete mode 100644 f/nametag/fn_drawNametag.sqf create mode 100644 f/nametag/fn_getZoom.sqf create mode 100644 f/nametag/fn_nametagCache.sqf create mode 100644 f/nametag/fn_nametagDraw.sqf create mode 100644 f/nametag/fn_nametagGetData.sqf create mode 100644 f/nametag/fn_nametagResetFont.sqf create mode 100644 f/nametag/fn_nametagUpdate.sqf diff --git a/f/common/functions.hpp b/f/common/functions.hpp index bbe2b7f23..255eebe9b 100644 --- a/f/common/functions.hpp +++ b/f/common/functions.hpp @@ -76,7 +76,12 @@ class F // Defines the "owner" class nametag { file = "f\nametag"; - class drawNameTag{}; + class nametagUpdate {}; + class nametagDraw {}; + class nametagGetData {}; + class nametagCache {}; + class nametagResetFont {}; + class getZoom {}; }; class preMount { diff --git a/f/nametag/f_nametagCONFIG.sqf b/f/nametag/f_nametagCONFIG.sqf new file mode 100644 index 000000000..ec25485fc --- /dev/null +++ b/f/nametag/f_nametagCONFIG.sqf @@ -0,0 +1,81 @@ +//======================================================================================= +// +// f_nametagConfig.sqf - Contains configurable values for WH nametags. +// +// Note: If CBA is enabled, many of these settings (DRAWCURSORONLY, for instance) can +// be altered by individual clients to their preference. +// +// @ /u/Whalen207 | Whale #5963 +// +//======================================================================================= + +//--------------------------------------------------------------------------------------- +// Configuration Values. Feel free to modify. +//--------------------------------------------------------------------------------------- + +// Main Values (Default values) +F_NT_DRAWCURSORONLY = false; // Only draw nametags on mouse cursor. (Default: false) + // Can save FPS in crowded areas. + // Clients can change with CBA settings menu. + +F_NT_ACTIONKEY = "timeInc"; // Key that can be pressed to toggle tags. ("timeInc") + // Default is "timeInc", which is normally + // the (=) key. Other keys available here: + // https://community.bistudio.com/wiki/inputAction/actions/bindings + // Don't want any key? Comment out the line. + +F_NT_NIGHT = true; // Whether night will affect tag visibility. (true) + +// Information Shown +F_NT_SHOW_GROUP = true; // Show group name under unit's name. (true) +F_NT_SHOW_ROLE = true; // Show unit's role (rifleman, driver). (true) +F_NT_SHOW_VEHICLEINFO = true; // Show vehicle info. Requires SHOW_ROLE. (true) + +// Draw Distances +F_NT_DRAWDISTANCE_CURSOR = 20; // Distance to draw nametags when pointing at a unit. (20) + // Should be greater than DISTANCE_ALL. + // Can be altered significantly depending on player FOV. +F_NT_DRAWDISTANCE_NEAR = 10; // Distance within which all nametags will be drawn. (10) + // Increasing this will cost performance. + // Due to a bug this will seem ~3m shorter in third person. + // If you want to truly disable non-cursor tags, set this to 0. +// Font Fade +F_NT_FADETIME = 1; // Fade time for cursor tags after player mouses away. (1) + +// Text Configuration: Typeface +// To manually alter these options, see functions\nametagResetFont.sqf. +// Options: +// - "Roboto" (DEFAULT) +// - "RobotoLight" +// - "Purista" +// - "PuristaLight" +// - "Etelka" +// - "Tahoma" +F_NT_FONT_FACE = "Roboto"; // Typeface set for nametag system. ("Roboto") + +// Text Configuration: Size +F_NT_FONT_SIZE_RAW = 0.036; // Default raw font size. (0.036) + // Used directly for names, and used with + // below modifiers for all else. +F_NT_FONT_SIZE_SEC_MULTI = 0.861; // Multiplier for group and role tags. (0.861) +F_NT_FONT_SIZE_MULTI = 1; // A general multiplier that can be used (1) + // if you don't like the other ones. + // Multipliers may be overriden by CBA settings. +// Text Configuration: Spacing +F_NT_FONT_SPREAD_MULTI = 1; // Multiplier for vertical font spacing. (1) + // may be overriden by CBA settings. + +// Text Configuration: Color +// To manually alter these options, see functions\nametagResetFont.sqf. +// Options: +// - WHGreen +// - ACERust +// - TMTMTeal +// - COALCrimson +// - FAWhite +// - STSand +// - BromaPurple +F_NT_FONT_COLOR = "WHGreen"; // Font color set for nametag system. ("WHGreen") + +// Text Configuration: Position +F_NT_FONT_HEIGHT_ONHEAD = false; // Attaches nametags to head (like ACE) (false) diff --git a/f/nametag/f_nametagCacheLoop.sqf b/f/nametag/f_nametagCacheLoop.sqf new file mode 100644 index 000000000..2344ee0a2 --- /dev/null +++ b/f/nametag/f_nametagCacheLoop.sqf @@ -0,0 +1,54 @@ +//==================================================================================== +// +// f_nametagCacheLoop.sqf - Checks near entities and processes them for tag data. +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Initial setup. +//------------------------------------------------------------------------------------ + +// Array that will hold all cache data. +F_NT_CACHE = []; + +// Variable that will be used to keep track of Arma's day/night cycle. +F_NT_VAR_NIGHT = 1; + + +//------------------------------------------------------------------------------------ +// Loops every second as long as the scheduler complies. +//------------------------------------------------------------------------------------ + +// Check if CBA is present. +if F_NT_MOD_CBA then +{ + F_NT_CACHE_LOOP = + [ + { + if F_NT_NAMETAGS_ON then + { call f_fnc_nametagCache }; + }, + 0.5, + [] + ] call CBA_fnc_addPerFrameHandler; +} +else +{ + F_NT_CACHE_LOOP = [] spawn + { + _delay = 0.5; + F_NT_CACHE_LOOP_RUN = true; + + // While the above variable is true, run the loop. + while {F_NT_CACHE_LOOP_RUN} do + { + // ...Cache all nearby units and their data... + if F_NT_NAMETAGS_ON then + { call f_fnc_nametagCache }; + + // ...and then wait for the delay before doing it again. + sleep _delay; + }; + }; +}; diff --git a/f/nametag/f_nametagCheckMods.sqf b/f/nametag/f_nametagCheckMods.sqf new file mode 100644 index 000000000..a98f40cd7 --- /dev/null +++ b/f/nametag/f_nametagCheckMods.sqf @@ -0,0 +1,14 @@ +//==================================================================================== +// +// f_nametagInitMods.sqf - Checks for ACE, ACRE, and/or TFAR presence. +// +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Checking for mods. +//------------------------------------------------------------------------------------ + +// CBA +F_NT_MOD_CBA = isClass(configFile >> "CfgPatches" >> "cba_settings"); \ No newline at end of file diff --git a/f/nametag/f_nametagDisableKey.sqf b/f/nametag/f_nametagDisableKey.sqf new file mode 100644 index 000000000..417fb62dd --- /dev/null +++ b/f/nametag/f_nametagDisableKey.sqf @@ -0,0 +1,48 @@ +//==================================================================================== +// +// f_nametagDisableKey.sqf - Sets up a key that can be used to flip the nametag +// system on and off with a press. +// +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Setup the Action Key, default '='. +//------------------------------------------------------------------------------------ + +// None of this will execute if the actionkey line in CONFIG is commented out. +if (!isNil "F_NT_ACTIONKEY") then +{ + F_NT_ACTIONKEY_KEY = (actionKeys F_NT_ACTIONKEY) select 0;// This key, a global variable. + F_NT_ACTIONKEY_KEYNAME = actionKeysNames F_NT_ACTIONKEY; // Which is named this... + + // Function that will determine when the disableKey is depressed. + F_NT_KEYDOWN = + { + _key = _this select 1; + _handled = false; + if(_key == F_NT_ACTIONKEY_KEY) then + { + F_NT_NAMETAGS_ON = !F_NT_NAMETAGS_ON; + _handled = true; + }; + _handled; + }; + + // Function that will determine when the disableKey is released. + F_NT_KEYUP = + { + _key = _this select 1; + _handled = false; + if(_key == F_NT_ACTIONKEY_KEY) then + { + _handled = true; + }; + _handled; + }; + + // Add eventhandlers (functions above). + (findDisplay 46) displayAddEventHandler ["keydown", "_this call F_NT_KEYDOWN"]; + (findDisplay 46) displayAddEventHandler ["keyup", "_this call F_NT_KEYUP"]; +}; \ No newline at end of file diff --git a/f/nametag/f_nametagInit.sqf b/f/nametag/f_nametagInit.sqf new file mode 100644 index 000000000..110781cad --- /dev/null +++ b/f/nametag/f_nametagInit.sqf @@ -0,0 +1,74 @@ +//==================================================================================== +// +// f_nametagInit.sqf - Initializes values for WH nametags. +// +// [] execVM "f\nametag\f_nametagInit.sqf"; +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Initial setup. +//------------------------------------------------------------------------------------ + +// Make sure this isn't a dedicated server or headless client. +if (!hasInterface) exitWith {}; + +// Global variable that will be flipped on and off using the disableKey and CBA. +F_NT_NAMETAGS_ON = true; + +// Determine which mods are active. +#include "f_nametagCheckMods.sqf"; + + +//------------------------------------------------------------------------------------ +// Configuration and settings import and setup. +//------------------------------------------------------------------------------------ + +// Allows for missionmaker configuration of important settings. +#include "f_nametagCONFIG.sqf" + +// Allows for player (client) configuration of other settings. +#include "f_nametagSettings.sqf" + + +//------------------------------------------------------------------------------------ +// More preparation. +//------------------------------------------------------------------------------------ + +// Let the player initialize properly. +waitUntil{!isNull player}; +waitUntil{player == player}; + +// Reset font spacing and size to (possibly) new conditions. +call f_fnc_nametagResetFont; + +// Setting up cursor cache and fader. +F_NT_CACHE_CURSOR = objNull; +F_NT_CACHE_CURSOR_DATA = []; +F_NT_CACHE_FADE = [[],[],[]]; + +// Wait for player to get ingame. +waitUntil {!isNull (findDisplay 46)}; + +// Setting up our disableKey (Default '+') +#include "f_nametagDisableKey.sqf" + + +//------------------------------------------------------------------------------------ +// Keep an updated cache of all tags to draw. +//------------------------------------------------------------------------------------ + +#include "f_nametagCacheLoop.sqf" + + +//------------------------------------------------------------------------------------ +// Render nametags from the cache every frame. +//------------------------------------------------------------------------------------ + +F_NT_EVENTHANDLER = addMissionEventHandler +["Draw3D", +{ + if F_NT_NAMETAGS_ON then + { call f_fnc_nametagUpdate }; +}]; \ No newline at end of file diff --git a/f/nametag/f_nametagInitTalking.sqf b/f/nametag/f_nametagInitTalking.sqf new file mode 100644 index 000000000..53bd519d0 --- /dev/null +++ b/f/nametag/f_nametagInitTalking.sqf @@ -0,0 +1,59 @@ +//==================================================================================== +// +// f_nametagInitTalking.sqf - Places monitors on all players to check if they are +// speaking. +// +// Adapted from code by Killzone Kid, and from ACE3 code. +// - http://killzonekid.com/arma-scripting-tutorials-whos-talking/ +// - https://github.com/acemod/ACE3 +// +// Code previously from CSE. Credit to commy2. +// +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// CBA version, if CBA is present. +//------------------------------------------------------------------------------------ + +if F_NT_MOD_CBA then +{ + [{ + // Change setting only if new isn't equal to old. + private _old = player getVariable ["wh_nt_isSpeaking", false]; + private _new = (!(isNull findDisplay 55)); + + // Broadcast variable across server. + if (!(_oldSetting isEqualTo _newSetting)) then + { player setVariable ["wh_nt_isSpeaking", _newSetting, true] }; + } , 0.25, []] call CBA_fnc_addPerFrameHandler; +} + +//------------------------------------------------------------------------------------ +// Scheduled version, if CBA is not present. +//------------------------------------------------------------------------------------ + +else +{ + F_NT_TALKING_LOOP = [] spawn + { + _delay = 0.25; + F_NT_TALKING_LOOP_RUN = true; + + // While the above variable is true, run the loop. + while {F_NT_TALKING_LOOP_RUN} do + { + // Change setting only if new isn't equal to old. + private _old = player getVariable ["wh_nt_isSpeaking", false]; + private _new = (!(isNull findDisplay 55)); + + // Broadcast variable across server. + if (!(_oldSetting isEqualTo _newSetting)) then + { player setVariable ["wh_nt_isSpeaking", _newSetting, true] }; + + // ...and then wait for the delay before doing it again. + sleep _delay; + }; + }; +}; \ No newline at end of file diff --git a/f/nametag/f_nametagSettings.sqf b/f/nametag/f_nametagSettings.sqf new file mode 100644 index 000000000..d5705cb47 --- /dev/null +++ b/f/nametag/f_nametagSettings.sqf @@ -0,0 +1,173 @@ +//==================================================================================== +// +// f_nametagSettings.sqf - Contains optional CBA addon settings. +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +// Check if CBA is present. +if F_NT_MOD_CBA then +{ + // Setting for disabling the entire system. + [ + "F_NT_NAMETAGS_ON", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "F3 Nametag System", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + true // Setting type-specific data. + ] call CBA_Settings_fnc_init; + + // Setting for changing the typeface. + [ + "F_NT_FONT_FACE", // Internal setting name and value set. + "LIST", // Setting type. + "Font Face", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + [ + [F_NT_FONT_FACE,"Roboto","RobotoLight","Purista","PuristaLight","Etelka","Tahoma"], + ["Default","Roboto (Bold) *","Roboto (Light)","Purista (Bold)","Purista (Light)","Etelka Narrow","Tahoma (Bold)"], + 0 + ], // Setting type-specific data. + nil, + { call f_fnc_nametagResetFont; } + // Executed at mission start and every change. + ] call CBA_Settings_fnc_init; + + // Setting for changing typeface color. + [ + "F_NT_FONT_COLOR", // Internal setting name and value set. + "LIST", // Setting type. + "Font Color", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + [ + [F_NT_FONT_COLOR,"WHGreen","ACERust","TMTMTeal","COALCrimson","FAWhite","STSand","BromaPurple"], + ["Default","WH Green *","ACE Rust","TMTM Teal","COAL Crimson","FA White","ST Sand","BromA Purple"], + 0 + ], // Setting type-specific data. + nil, + { call f_fnc_nametagResetFont; } + // Executed at mission start and every change. + ] call CBA_Settings_fnc_init; + + // Setting to dynamically alter font size. + [ + "F_NT_FONT_SIZE_MULTI", // Internal setting name and value set. + "SLIDER", // Setting type. + "Font Size", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + [0.75, 1.25, 1, 2], // Setting type-specific data. + nil, // Nil or 0 for changeable, 1 to reset to default, 2 to lock. + { call f_fnc_nametagResetFont; } + // Executed at mission start and every change. + ] call CBA_Settings_fnc_init; + + // Setting to dynamically alter font spread. + [ + "F_NT_FONT_SPREAD_MULTI", // Internal setting name and value set. + "SLIDER", // Setting type. + "Font Spread", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + [0.75, 1.25, 1, 2], // Setting type-specific data. + nil, // Nil or 0 for changeable, 1 to reset to default, 2 to lock. + { call f_fnc_nametagResetFont; } + // Executed at mission start and every change. + ] call CBA_Settings_fnc_init; + + // Setting to flip drawcursoronly. + if (!F_NT_DRAWCURSORONLY) then + { + [ + "F_NT_DRAWCURSORONLY", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Cursor Only (Saves FPS)", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + false // Setting type-specific data. + ] call CBA_Settings_fnc_init; + } + // Changes the default if the missionmaker changes it. + else + { + [ + "F_NT_DRAWCURSORONLY", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Cursor Only (Saves FPS)", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + true // Setting type-specific data. + ] call CBA_Settings_fnc_init; + }; + + // Changes whether nametags draw the role and group when under cursor. + // Missionmaker can force these off in nametagCONFIG. + if (F_NT_SHOW_ROLE || {F_NT_SHOW_GROUP}) then + { + switch true do + { + case (F_NT_SHOW_ROLE && F_NT_SHOW_GROUP): + { + // Option to not show role and group tags. + [ + "F_NT_SHOW_ROLEANDGROUP", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Show Role and Group", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + true, // Setting type-specific data. + nil, // Nil or 0 for changeable. + { + if F_NT_SHOW_ROLEANDGROUP + then { F_NT_SHOW_ROLE = true; F_NT_SHOW_GROUP = true; } + else { F_NT_SHOW_ROLE = false; F_NT_SHOW_GROUP = false; }; + } + ] call CBA_Settings_fnc_init; + }; + case (!F_NT_SHOW_ROLE&& F_NT_SHOW_GROUP): + { + // Option to not show group tags. + [ + "F_NT_SHOW_GROUP", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Show Group Names", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + true, // Setting type-specific data. + nil, // Nil or 0 for changeable. + {} + ] call CBA_Settings_fnc_init; + }; + case (F_NT_SHOW_ROLE &&!F_NT_SHOW_GROUP): + { + // Option to not show role tags. + [ + "F_NT_SHOW_ROLE", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Show Unit Roles", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + true, // Setting type-specific data. + nil, // Nil or 0 for changeable. + {} + ] call CBA_Settings_fnc_init; + }; + }; + }; + + // Attaches nametags to player heads, like ACE. + // Missionmaker can change the default setting. + if !F_NT_FONT_HEIGHT_ONHEAD then + { + [ + "F_NT_FONT_HEIGHT_ONHEAD", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Show Above Head", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + false // Setting type-specific data. + ] call CBA_Settings_fnc_init; + } + else + { + [ + "F_NT_FONT_HEIGHT_ONHEAD", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Show Above Head", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + true // Setting type-specific data. + ] call CBA_Settings_fnc_init; + }; +}; \ No newline at end of file diff --git a/f/nametag/f_nametags.sqf b/f/nametag/f_nametags.sqf deleted file mode 100644 index 2c540d5db..000000000 --- a/f/nametag/f_nametags.sqf +++ /dev/null @@ -1,240 +0,0 @@ -// F3 - Nametags -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// MAKE SURE THE PLAYER INITIALIZES PROPERLY - -if (!isDedicated && (isNull player)) then -{ - waitUntil {sleep 0.1; !isNull player}; -}; - -// ==================================================================================== - -// SET GLOBAL VARIABLES - -// MODIFYABLE - -// Default values (can be modified by players in the briefing entry) -// Comment any of these to deactivate the feature entirely -f_showGroup_Nametags = true; // Show unit's group next to unit name (except for player's own group) -f_showDistance_Nametags = false; // Show distance to unit under name -f_showVehicle_Nametags = false; // Show type of vehicle under driver's name -f_showCursorOnly_Nametags = false; // Show only units under cursor target (disable 360° view) - -// Other values -f_distCursor_Nametags = 28; // Distance to display name tag for unit under cursor -f_distAll_Nametags = 10; // Distance to display name tags for all units around -F_KEY_NAMETAGS = "TeamSwitch"; // The action key to toggle the name tags. See possible keys here: http://community.bistudio.com/wiki/Category:Key_Actions - -// Display values -f_size_Nametags = 0.023; // The size the names are displayed in -f_height_standing_Nametags = 2; // Height above standing infantry unit -f_height_crouch_Nametags = 1.5; // Height above crouching infantry unit -f_height_prone_Nametags = 0.9; // Height above prone infantry unit -f_vheight_Nametags = 0; // The height of the name tags for units in vehicles (0 = hovering over vehicle) -F_SHADOW_NAMETAGS = 2; // The shadow for the name tags (0 - 2) -f_color_Nametags = [1,1,1,0.9]; // The color for infantry and units in vehicle cargo (in [red,green, blue, opacity]) -f_color2_Nametags = [1,0.1,0.2,0.9]; // The color for units in driver, gunner and other vehicle positions positions -f_groupColor_Nametags = [0,1,0.7,0.9]; // The color for units of the same group -F_FONT_NAMETAGS = "EtelkaMonospaceProBold"; // Font for the names - -// SCRIPTSIDE - -F_DRAW_NAMETAGS = false; -F_ACTIONKEY_NAMETAGS = (actionKeys F_KEY_NAMETAGS) select 0; -F_KEYNAME_NAMETAGS = actionKeysNames F_KEY_NAMETAGS; -if (isNil "F_ACTIONKEY_NAMETAGS") then {F_ACTIONKEY_NAMETAGS = 20; F_KEYNAME_NAMETAGS = 'U';}; // If the user has not bound 'TeamSwitch' to a key we default to 'U' to toggle the tags - -F_KEYUP_NAMETAG = { - _key = _this select 1; - _handeld = false; - if(_key == F_ACTIONKEY_NAMETAGS) then - { - _handeld = true; - }; - _handeld; -}; - -F_KEYDOWN_NAMETAG = { - _key = _this select 1; - _handeld = false; - if(_key == F_ACTIONKEY_NAMETAGS) then - { - F_DRAW_NAMETAGS = !F_DRAW_NAMETAGS; - _handeld = true; - }; - _handeld; -}; - -// ==================================================================================== - -// ADD BRIEFING SECTION -// A section is added to the player's briefing to inform them about name tags being available. - -[] spawn { - waitUntil {scriptDone f_script_briefing}; - - _bstr = format ["F3 NAME TAGS
Toggle name tags for friendly units by pressing %1.

-Name tags are displayed when aiming at individual units up to %4m away, and constantly for all units within %3m. - ",F_KEYNAME_NAMETAGS, F_KEY_NAMETAGS,F_DISTALL_NAMETAGS,F_DISTCursor_NAMETAGS]; - - _bstr = _bstr + "

TOGGLE CONSTANT TAGS.
Constantly displays name tags for nearby units."; - - if !(isNil "F_SHOWGROUP_NAMETAGS") then { - _bstr = _bstr + "

TOGGLE GROUP NAME DISPLAY.
Displays the group name next to a unit's name."; - }; - - if !(isNil "F_SHOWDISTANCE_NAMETAGS") then { - _bstr = _bstr + "

TOGGLE DISTANCE DISPLAY.
Displays distance to other units under each name tag."; - }; - - if !(isNil "f_showVehicle_Nametags") then { - _bstr = _bstr + "

TOGGLE VEHICLE TYPE DISPLAY.
Displays the vehicle type under the driver's name."; - }; - - _bstr = _bstr + "

COLORS
- Friendly
- Fireteam
- Vehicle Crew"; - - player createDiaryRecord ["Diary", ["F3 NameTags (Options)",_bstr]]; - - // NOTIFY PLAYER ABOUT NAMETAGS VIA HINT - sleep 5; - hintsilent format ["Press %1 to toggle name tags", F_KEYNAME_NAMETAGS]; -}; - -// ==================================================================================== - -// ADD EVENTHANDLERS -// After the mission has initialized eventhandlers are added to the register keypresses. - -sleep 0.1; - -waitUntil {!isNull (findDisplay 46)}; // Make sure the display we need is initialized - -F_DRAW_NAMETAGS = true; // Enable nametags from the start - -(findDisplay 46) displayAddEventHandler ["keyup", "_this call F_KEYUP_NAMETAG"]; -(findDisplay 46) displayAddEventHandler ["keydown", "_this call F_KEYDOWN_NAMETAG"]; - -// ==================================================================================== -// the real code. - -addMissionEventHandler ["Draw3D", { - - if(F_DRAW_NAMETAGS) then - { - - private ["_ents","_veh","_color","_inc","_suffix","_pos","_angle"]; - - _ents = []; - - // Unless disabled, collect all entities in the relevant distance - if !(f_showCursorOnly_Nametags) then { - _ents = (position player) nearEntities [["CAManBase","LandVehicle","Helicopter","Plane","Ship_F"], f_distAll_Nametags]; - }; - - if (!(cursorTarget in _ents) && {((player distance cursorTarget) <= f_distCursor_Nametags) && player knowsAbout cursorTarget >= 1.5}) then {_ents append [cursorTarget]}; - - /*if (f_cursortarget_nametags) then { - if ((player distance cursorTarget) <= F_DIST_NAMETAGS) then {_ents = [cursortarget]}; - } else { - _ents = (position player) nearEntities [["CAManBase","LandVehicle","Helicopter","Plane","Ship_F"], f_distAll_Nametags]; - };*/ - - // Start looping through all entities - { - // Filter entities - if ( - // Only for the player's side - (faction _x == faction player || side _x == side player || group _x == group player) && - // Only other players & no virtual units - {_x != player && !(player iskindof "VirtualMan_F")} - ) - then - { - - // If the entity is Infantry - if((typeof _x) iskindof "Man") then - { - _pos = visiblePosition _x; - [_x,_pos] call f_fnc_drawNameTag; - } - - // Else (if it's a vehicle) - else - { - - _veh = _x; - _inc = 1; - _alternate = 0; - - { - // Get the various crew slots - _suffix = switch (true) do { - case (driver _veh == _x && !((_veh isKindOf "helicopter") || (_veh isKindOf "plane"))):{" - D"}; - case (driver _veh == _x && ((_veh isKindOf "helicopter") || (_veh isKindOf "plane"))):{" - P"}; - case (commander _veh == _x); - case (effectiveCommander _veh == _x):{" - CO"}; - case (gunner _veh == _x):{" - G"}; - case (assignedVehicleRole _x select 0 == "Turret" && commander _veh != _x && gunner _veh != _x && driver _veh != _x):{" - C"}; - default {""}; - }; - - _pos = visiblePosition _x; - - // Only display tags for non-driver crew and cargo if player is up close - if (effectiveCommander _veh == _x || group _x == group player || _pos distance player <= f_distAll_Nametags) then { - - // If the unit is the driver, calculate the available and taken seats - if (effectiveCommander _veh == _x) then { - // Workaround for http://feedback.arma3.com/view.php?id=21602 - _maxSlots = getNumber(configfile >> "CfgVehicles" >> typeof _veh >> "transportSoldier") + (count allTurrets [_veh, true] - count allTurrets _veh); - _freeSlots = _veh emptyPositions "cargo"; - - if (_maxSlots > 0) then { - _suffix = _suffix + format [" (%1/%2)",(_maxSlots-_freeSlots),_maxSlots]; - }; - }; - - // If the unit is in a turret, a passenger or the driver - if (_pos distance (getPosVisual (driver _veh)) > 0.1 || driver _veh == _x) then - { - [_x,_pos,_suffix] call f_fnc_drawNameTag; - } - else // Gunners and all other slots - { - if(_x == gunner _veh) then - { - _pos = [_veh modeltoworld (_veh selectionPosition "gunnerview") select 0,_veh modeltoworld (_veh selectionPosition "gunnerview") select 1,(visiblePosition _x) select 2]; - } - else - { - _angle = (getdir _veh)+180; - _pos = [((_pos select 0) + sin(_angle)*(0.6*_inc)) , (_pos select 1) + cos(_angle)*(0.6*_inc),_pos select 2 + F_VHEIGHT_NAMETAGS]; - _inc = _inc + 1; - }; - - [_x,_pos,_suffix] call f_fnc_drawNameTag; - }; - - }; - - } foreach crew _veh; - }; - }; - } foreach _ents; - - }; // Outmost if scope - -}]; // End of the Eventhandler Scope - diff --git a/f/nametag/fn_drawNametag.sqf b/f/nametag/fn_drawNametag.sqf deleted file mode 100644 index 684277a1b..000000000 --- a/f/nametag/fn_drawNametag.sqf +++ /dev/null @@ -1,52 +0,0 @@ -// F3 - Draw Nametag -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -private ["_u","_pos","_suffix","_color","_str","_height","_showgroup","_showdis","_showveh","_veh"]; - -// Declare variables -_u = _this select 0; -_pos = _this select 1; -_height = -switch (stance _u) do { - case "CROUCH": { - f_height_crouch_Nametags; - }; - case "PRONE": { - f_height_prone_Nametags; - }; - default {f_height_standing_Nametags}; -}; -_suffix = if (count _this > 2) then {_this select 2} else {""}; - -_str = name _u + _suffix; - -//If the unit is dead, exit. -if (!alive _u) exitWith {}; - -// Define the color of the nametag -_color = F_COLOR_NAMETAGS; // Default color -if (_suffix != "") then {_color = F_COLOR2_NAMETAGS}; // Mounted units -if(_x in units player) then { _color = f_groupColor_Nametags }; // Units of same group - -// Check which tags to show -_showgroup = if (!isNil "F_SHOWGROUP_NAMETAGS") then [{F_SHOWGROUP_NAMETAGS},{false}]; -_showdis = if (!isNil "F_SHOWDISTANCE_NAMETAGS") then [{F_SHOWDISTANCE_NAMETAGS},{false}]; -_showveh = if (!isNil "f_showVehicle_Nametags") then [{f_showVehicle_Nametags},{false}]; - -// Show group name for other groups only -if (_showgroup && group _u != group player) then {_str = format ["%1 ",groupID (group _u)] + _str}; - -// Show distance for units in over 3m distance only -if (_showdis && {_pos distance player >= 3}) then { - _str = _str + format [" - %1m",round (_pos distance player)]; - //drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _x select 2) - _height], 0, 0, 0, _str, F_SHADOW_NAMETAGS,(F_SIZE_NAMETAGS - 0.005), F_FONT_NAMETAGS]; -}; - -drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _x select 2) + _height], 0, 0, 0, _str, F_SHADOW_NAMETAGS,F_SIZE_NAMETAGS, F_FONT_NAMETAGS]; - -// Show vehicle type only for vehicles the player is not crewing himself -if (_showveh && {!(typeOf (vehicle _u) isKindof "Man") && vehicle _u != vehicle player && ((_u == driver vehicle _u) || (_u == gunner vehicle _u))}) then { - _str = format ["%1",getText (configFile >> "CfgVehicles" >> (typeOf vehicle _u) >> "displayname")]; - drawIcon3D ["", _color, [_pos select 0,_pos select 1,(getPosATL _x select 2) + _height - 0.2], 0, 0, 0, _str,F_SHADOW_NAMETAGS,F_SIZE_NAMETAGS,F_FONT_NAMETAGS]; -}; \ No newline at end of file diff --git a/f/nametag/fn_getZoom.sqf b/f/nametag/fn_getZoom.sqf new file mode 100644 index 000000000..a1eb01438 --- /dev/null +++ b/f/nametag/fn_getZoom.sqf @@ -0,0 +1,24 @@ +//==================================================================================== +// +// fn_getZoom.sqf - Gets player zoom, where default is 1.0 +// > _zoom = call f_fnc_getZoom; < +// +// Adapted from code by Killzone Kid. +// http://killzonekid.com/arma-scripting-tutorials-get-zoom/ +// +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +( + ( + [0.5,0.5] + distance2D + worldToScreen + positionCameraToWorld + [0,3,4] + ) * ( + getResolution + select 5 + ) / 2 +) + 0.66666 diff --git a/f/nametag/fn_nametagCache.sqf b/f/nametag/fn_nametagCache.sqf new file mode 100644 index 000000000..975d82c1f --- /dev/null +++ b/f/nametag/fn_nametagCache.sqf @@ -0,0 +1,69 @@ +//==================================================================================== +// +// fn_nametagCache.sqf - Updates global cache of near entities and their data. +// Updates some other stuff, too. +// +// > call f_fnc_nametagCache; < +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// If the nametag system is on, check all the stuff we need to check! +//------------------------------------------------------------------------------------ + +if F_NT_NAMETAGS_ON then +{ + // Collect the current player. + _player = player; + + // Check the day night cycle... + F_NT_VAR_NIGHT = if F_NT_NIGHT then + { linearConversion [0, 1, sunOrMoon, 0.25+0.5*(currentVisionMode _player),1,true]; } + else { 1 }; + + // Check the day night cycle... + F_NT_VAR_NIGHT = if F_NT_NIGHT then + { linearConversion [0, 1, sunOrMoon, 0.25+0.5*(currentVisionMode _player),1,true]; } + else { 1 }; + + //-------------------------------------------------------------------------------- + // If not set to only draw the cursor, collect nearEntities. + //-------------------------------------------------------------------------------- + + if !F_NT_DRAWCURSORONLY then + { + // Reset the data variable. + _data = []; + + // Collect the player's group. + _playerGroup = group _player; + + // Get the position of the player's camera. + _cameraPositionAGL = positionCameraToWorld[0,0,0]; + _cameraPositionASL = AGLtoASL _cameraPositionAGL; + + // Collect all nearEntities of the types we want. + _entities = + _player nearEntities [["CAManBase","LandVehicle","Helicopter","Plane","Ship_F"], + ((F_NT_DRAWDISTANCE_NEAR+(F_NT_DRAWDISTANCE_NEAR*0.25)+1)*F_NT_VAR_NIGHT)] + select + { + !(_x isEqualTo _player) && + {( + (side group _x isEqualTo side group _player) // 0.0018ms + //((side _x getFriend side player) > 0.6) // 0.0024ms + //|| {(group _x isEqualTo group player)} + )} + }; + + // Collect each filter entities' data. + _data = [_player,_playerGroup,_cameraPositionAGL,_cameraPositionASL,_entities,false] + call f_fnc_nametagGetData; + + // Push all those names and their data to the global cache. + F_NT_CACHE =+ _data; + } + else + { F_NT_CACHE = [[],[]] }; +}; \ No newline at end of file diff --git a/f/nametag/fn_nametagDraw.sqf b/f/nametag/fn_nametagDraw.sqf new file mode 100644 index 000000000..e17cf44d2 --- /dev/null +++ b/f/nametag/fn_nametagDraw.sqf @@ -0,0 +1,177 @@ +//==================================================================================== +// +// fn_nametagDraw.sqf - Initializes values for WH nametags (heavily based on F3 and ST) +// +// [_name,_nameColor,_locationData,_role,_groupName,_drawRoleAndGroup,_isCommander, +// _cameraPositionAGL,_zoom] call f_fnc_nametagDraw; +// +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Declare variables. +//------------------------------------------------------------------------------------ + +params ["_unit","_vehicle","_name","_nameColor","_locationData","_role","_groupName", + "_drawRoleAndGroup","_isPassenger","_isCommander","_cameraPositionAGL", + "_zoom","_time","_startTime"]; + +// _unit (CAManBase): Unit the tag is being rendered on. +// _vehicle (Entity): Vehicle the unit is in. Possibly the unit. +// _name (string): Friendly name of tag to be rendered. +// _nameColor (color array [[],[],[],]): Original color of center nametag. +// _locationData {code}: Code that will be used to find the location to draw the tag. +// _role (string): Friendly role name to be rendered on top. +// _groupName (string): Friendly group name to be rendered on bottom. +// _drawRoleAndGroup (boolean): A flag used to point out noncursor units and prevent +// them from having group and role tags. +// _isCommander (boolean): A flag used to point out vehicle non-commanders and prevent +// them from being rendered as far as vehicle commanders. +// _cameraPositionAGL (positionAGL array [[],[],[]]): Current position of player camera. +// _zoom (decimal): Current zoom level of player camera. +// _time (decimal): For fading tags and displaying voice comms -- current time. +// _startTime (OPTIONAL, decimal): For fading tags -- time tag was originally rendered. + +// Get player from global player setting. +// This is necessary for Zeus remote control support. +_player = player; + + +//------------------------------------------------------------------------------------ +// Get distance from player to target. +//------------------------------------------------------------------------------------ + +// Find position tag will be rendered at using location data. +_targetPositionAGL = call _locationData; + +// Find the distance from the player camera to this location. +_camDistance = _cameraPositionAGL distance _targetPositionAGL; +_distance = _player distance _targetPositionAGL; + + +//------------------------------------------------------------------------------------ +// Change the nametag if the target is speaking. +//------------------------------------------------------------------------------------ + +// If the unit is speaking, apply little carets around their name. +// TODO: move up a few scopes. GetData? Will stick on cursor + +if (_unit getVariable ["wh_nt_isSpeaking", false]) then +{ + _timeEven = ((round time) % 2 == 0); + _nameColor set [3,0.90]; + _name = + if _timeEven then + { "> " + _name + " <" } + else + { ">" + _name + "<" }; +}; + + +//------------------------------------------------------------------------------------ +// Applying initial transparency to tag depending on distance and time of day. +//------------------------------------------------------------------------------------ + +_alpha = +if (!_drawRoleAndGroup || {!(_isCommander)}) +then { linearConversion[F_NT_DRAWDISTANCE_NEAR/1.3,F_NT_DRAWDISTANCE_NEAR, + (_distance / F_NT_VAR_NIGHT),1,0,true] } +else { linearConversion[(((F_NT_DRAWDISTANCE_CURSOR)*(_zoom))/1.3), + (F_NT_DRAWDISTANCE_CURSOR*_zoom),(((_distance) / F_NT_VAR_NIGHT)),1,0,true] }; + +// Apply the alpha coating to each color's transparency. +_nameColor set [3, (_nameColor select 3) * _alpha]; + + +//------------------------------------------------------------------------------------ +// Adjust font size depending on player current zoom level. +//------------------------------------------------------------------------------------ + +// TODO: Move up to Update scope. +// Max out zoom at 1.67 regardless to avoid HUGE text. +_zmin = _zoom min 1.67; + +// Adjust font sizes. +_sizeMain = F_NT_FONT_SIZE_MAIN* _zmin; +_sizeSecondary = F_NT_FONT_SIZE_SEC * _zmin; +_sizeVehicle = F_NT_FONT_SIZE_VEH * _zmin; + + +//------------------------------------------------------------------------------------ +// If the tag being drawn is on cursor, render the role and group. +//------------------------------------------------------------------------------------ + +if (_drawRoleAndGroup && {!(_isPassenger)}) then +{ + // Set the color for secondary tags. + _color =+ F_NT_FONT_COLOR_OTHER; + _color set [3, (_color select 3) * _alpha]; + + // If we're working with a fading tag, fade it out according to the difference + // between the start time and now. + if (!isNil "_startTime") then + { + _alphaCoef = (((_startTime + F_NT_FADETIME) - _time)/F_NT_FADETIME); + _nameColor set [3, (_namecolor select 3) * _alphaCoef]; + _color set [3, (_color select 3) * _alphaCoef]; + }; + + //-------------------------------------------------------------------------------- + // Use space magic to realign the tags with the player's view. + // IE: If the player is above the target, normally the nametags (which are stacked - + // - vertically) would appear scrunched inside one another. + // This alleviates this by realigning them vertically. + // + // Special thanks to cptnnick for this idea, code, implementation, everything! + //-------------------------------------------------------------------------------- + + // First, get vector pointing directly forward from the player's view, wherever it is. + // TODO: Move up to update scope. + _vectorDir = _cameraPositionAGL vectorFromTo (positionCameraToWorld[0,0,1]); + + // Second, and the biggest step, get the normal (magnitude 1) vector going upwards + // along the player's screen (visually) by taking the cross product of the player's + // model upward vector and the player's view vector, and then take the cross product + // of that and a vector going directly from the camera to the nametag. + + // Better explanation here + // ( forums.bistudio.com/forums/topic/206072-multi-line-text-in-drawicon3d ) + + // TODO: Simplify this code if possible. + // If not possible, cache what you can (vectorUp player vectorCrossProduct _vectorDir) + // in nametagUpdate. + _vectorDiff = (vectorNormalized (((_vectorDir) vectorCrossProduct (vectorUp _player)) vectorCrossProduct (_targetPositionAGL vectorDiff _cameraPositionAGL))); + + // Take that new normal vector and multiply it by the distance, then divide it by the zoom. + + _targetPositionAGLTop = _targetPositionAGL vectorAdd (_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_TOP_MULTI * _camDistance / _zoom)); + _targetPositionAGLBottom = _targetPositionAGL vectorAdd ((_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_BOTTOM_MULTI * _camDistance / _zoom)) vectorMultiply -1); + + + //-------------------------------------------------------------------------------- + // Render the nametags. + //-------------------------------------------------------------------------------- + + // Role tag (top). + if ( !(_role isEqualTo "") && {F_NT_SHOW_ROLE} ) then + { + drawIcon3D ["", _color, _targetPositionAGLTop, + 0, 0, 0, _role,F_NT_FONT_SHADOW,_sizeSecondary,F_NT_FONT_FACE_SEC]; + }; + + // Group tag (bottom). + if ( !(_groupName isEqualTo "") && {F_NT_SHOW_GROUP} ) then + { + drawIcon3D ["", _color, _targetPositionAGLBottom, + 0, 0, 0, _groupName,F_NT_FONT_SHADOW,_sizeSecondary,F_NT_FONT_FACE_SEC]; + }; +}; + +// TODO: Remove this testing thing +// Name tag (middle). +//drawIcon3D ["\A3\ui_f\data\map\markers\flags\AAF_ca.paa", [0,0,0,1], _targetPositionAGL, 1, 1, 0, "",0,(_sizeMain+(_sizeMain*0.2)),F_NT_FONT_FACE_MAIN]; + +// Name tag (middle). +drawIcon3D ["", _nameColor, _targetPositionAGL, 0,0,0, _name,F_NT_FONT_SHADOW,_sizeMain,F_NT_FONT_FACE_MAIN]; + diff --git a/f/nametag/fn_nametagGetData.sqf b/f/nametag/fn_nametagGetData.sqf new file mode 100644 index 000000000..7717cfb8c --- /dev/null +++ b/f/nametag/fn_nametagGetData.sqf @@ -0,0 +1,288 @@ +//==================================================================================== +// +// fn_nametagUpdate.sqf - Updates values for F3 nametags +// Intended to be run each frame. +// +// > _data = [_player,_playerGroup,_cameraPositionAGL,_cameraPositionASL,_entities, +// false] call f_fnc_nametagGetData; < +// +// Returns [_names,_data]. +// Names is an array of references to units (CAManBase). +// Data is nametag data, for each. +// +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Initializing variables. +//------------------------------------------------------------------------------------ + +params ["_player","_playerGroup","_cameraPositionAGL","_cameraPositionASL", + "_entities","_isCursor"]; + +// _player (object CAManBase): Current player that will be rendering tags. +// _playerGroup: Group of said player. +// _cameraPositionAGL (positionAGL array [[],[],[]]): Current position of player camera. +// _cameraPositionASL (positionASL array [[],[],[]]): Current position of player camera. +// _entities (array of objects CAManBase or vehicle): Entities tags will be processed for. +// _isCursor (boolean): Flag signaling that said entities are under cursor. + + +//------------------------------------------------------------------------------------ +// Establishing arrays to be filled with unit names and unit data, respectively. +//------------------------------------------------------------------------------------ + +// TODO: Do these need to be private? +private _names= []; +private _data = []; + +// Temporary fix for zoom not being in here. +private _zoom = 1; + + +//------------------------------------------------------------------------------------ +// Main loop. Fills above arrays with data for each entity in _entities. +//------------------------------------------------------------------------------------ + +// For every entity in _entities... +{ + // Store said entity. It may be a vehicle (with multiple people inside), and it + // may just be a single unit. We do not know, so we will just process data for + // each of the "vehicles" (or units) "crew" (or self). + _entity = _x; + + if !(_entity in allUnitsUAV) then // TODO: Find a better solution for this. + { + { + // Reset variables used for each unit. + _locationData = {}; + _role = ""; + _show = false; + _drawRoleAndGroup = false; + _isCommander = false; + _isPassenger = false; // TODO : Find a smoother solution for this. + + if !(_x isEqualTo _player) then + { + // If the unit is NOT in a vehicle... + if (isNull objectParent _x) then + { + // Get the data that will be processed (later) to determine where + // to draw the nametag. Either their chest, or above their head. + _locationData = + if !F_NT_FONT_HEIGHT_ONHEAD + then { {_x modelToWorldVisual (_x selectionPosition "spine3")} } + else { {_x modelToWorldVisual (_x selectionPosition "pilot") + vectorAdd [0,0,((0.2 + (((_cameraPositionAGL distance _x) * 1.5 * + F_NT_FONT_SPREAD_BOTTOM_MULTI)/_zoom)))]} }; + + _isCommander = true; + + // If the unit is NOT in a vehicle and NOT under the cursor... + if !_isCursor then + { + // Get the location of that unit... + _targetPositionAGL = call _locationData; + _targetPositionASL = AGLtoASL _targetPositionAGL; + + // ...and check... + if + ( + // ( If the man is within the boundaries of the screen ) + !(worldToScreen _targetPositionAGL isEqualTo []) && + // AND ( If the game can draw a line from the player to the man without hitting anything ) + { lineIntersectsSurfaces [_cameraPositionASL, _targetPositionASL, _player, _x] isEqualTo [] } + ) + // If those criteria are met, let the system know that the tag will be shown. + then { _show = true }; + } + else + { + // If the unit is NOT in a vehicle but IS under the cursor, + // show it, and let the system know that the role and group + // should be rendered. + _show = true; + _drawRoleAndGroup = true; + }; + } + + // Otherwise (if the unit IS in a vehicle)... + else + { + // The vehicle is the thing we're processing the crew for. + _vehicle = vehicle _x; //objectParent _x + + // Depending on where the unit is in a vehicle, store it's 'role.' + _role = call + { + if ( commander _vehicle isEqualTo _x ) exitWith {"Commander"}; + if ( gunner _vehicle isEqualTo _x ) exitWith {"Gunner"}; + if ( !(driver _vehicle isEqualTo _x)) exitWith {""}; + if ( driver _vehicle isEqualTo _x && {!(_vehicle isKindOf "helicopter") && {!(_vehicle isKindOf "plane")}} ) exitWith {"Driver"}; + if ( driver _vehicle isEqualTo _x && { (_vehicle isKindOf "helicopter") || { (_vehicle isKindOf "plane")}} ) exitWith {"Pilot"}; + "" + }; + + // The location data is different for vehicles, since many vehicle + // positions do not work properly with modelToWorldVisual. + _locationData = + { ASLtoAGL (getPosASLVisual _x) vectorAdd [0,0,(0.4)] }; + + // Use the above location data to get the unit's location. + _targetPositionAGL = call _locationData; + _targetPositionASL = AGLtoASL _targetPositionAGL; + + // If the unit has a role (isn't a passenger) then... + if !(_role isEqualTo "") then + { + // ...if it's effectively the commander of the vehicle... + if ( effectiveCommander _vehicle isEqualTo _x ) then + { + // ...set a flag that lets the system know if a player has this + // vehicle under his cursor from far away, only this guy should + // be rendered. + _isCommander = true; + + // Also, if the missionmaker has configured vehicle information + // to be shown, store that for later. + if F_NT_SHOW_VEHICLEINFO then + { + // Get the vehicle's friendly name from configs. + _vehicleName = format ["%1",getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayname")]; + + // Get the maximum number of (passenger) seats from configs. + _maxSlots = getNumber(configfile >> "CfgVehicles" >> typeof _vehicle >> "transportSoldier") + (count allTurrets [_vehicle, true] - count allTurrets _vehicle); + + // Get the number of empty seats. + _freeSlots = _vehicle emptyPositions "cargo"; + + // If meaningful, append vehicle name. + if !(_vehicleName isEqualTo "") then + { _role = format ["%1 %2",_vehicleName,_role]}; + + // If meaningful, append some info on seats onto the vehicle info. + if (_maxSlots > 0) then + { _role = format["%1 [%2/%3]",_role,(_maxSlots-_freeSlots),_maxSlots]; }; + }; + + + }; + + // If the unit is the gunner and is uncomfortably close to the driver (many Arma APCs + // without interiors do this), then render the nametag where the turret is. + if ( _role isEqualTo "Gunner" && {_targetPositionASL distance (getPosASLVisual(driver _vehicle)) < 0.5} ) then + { + _locationData = + { _vehicle modelToWorldVisual (_vehicle selectionPosition "gunnerview") }; + }; + + // If the unit's location is on-screen... + if !(worldToScreen _targetPositionAGL isEqualTo []) then + { + // Then show it. + _show = true; + + // If it's player's vehicle, or if it's under the cursor, + // then draw the role and group, too. + if ( _vehicle isEqualTo vehicle _player || {_isCursor} ) then + { _drawRoleAndGroup = true }; + }; + } + + // Otherwise (if it IS a passenger)... + else + { + if + ( + // ( If the man is within the boundaries of the screen ) + !(worldToScreen _targetPositionAGL isEqualTo []) && + // AND ( If the game can draw a line from the player to the man without hitting anything ) + { lineIntersectsSurfaces [_cameraPositionASL, _targetPositionASL, _player, _x] isEqualTo [] } && + {_targetPositionAGL distance (ASLToAGL getPosASLVisual(driver _vehicle)) > 0.5} + ) + then + { + // Don't draw the role and group no matter what. + _isPassenger = true; + _show = true; + }; + } + }; + + //---------------------------------------------------------------------------- + // If the tag's going to be shown, get and add the data. + //---------------------------------------------------------------------------- + + // If it's shown... + if _show then + { + // Get the unit's name. + _name = name _x; + + // Default the unit's nametag color to the mission default. + _nameColor =+ F_NT_FONT_COLOR_DEFAULT; + + // Get the unit's group. + _unitGroup = group _x; + + // If the unit is in the same group as the player, + // then erase the group tag. It does not need to be shown. + _sameGroup = (_unitGroup isEqualTo _playerGroup); + _groupName = if !_sameGroup then { groupID _unitGroup } else { "" }; + + // ...For normal people... + if (_role isEqualTo "") then + { + // Grab the variable set in F3 AssignGear, if present. + // If it's not there, grab the possibly-ugly name from configs. + _role = (_x getVariable ["f_var_assignGear_friendly", + getText (configFile >> "CfgVehicles" >> typeOf _x >> "displayname")]); + } + // ...and for vehicle crew, where a role is already present. + else { _nameColor =+ F_NT_FONT_COLOR_CREW }; + + // For units in the same group as the player, set their color according to color team. + if _sameGroup then + { + _team = assignedTeam _x; + _nameColor = switch _team do + { + case "RED": { +F_NT_FONT_COLOR_GROUPR }; + case "GREEN": { +F_NT_FONT_COLOR_GROUPG }; + case "BLUE": { +F_NT_FONT_COLOR_GROUPB }; + case "YELLOW": { +F_NT_FONT_COLOR_GROUPY }; + default { +F_NT_FONT_COLOR_GROUP }; + }; + }; + + // Huck all this data into an array... + _unitData = []; + _unitData pushBack _x; + _unitData pushBack _entity; // Index 0 + _unitData pushBack _name; // Index 1 + _unitData pushBack _nameColor; // Index 2 + _unitData pushBack _locationData; // Index 3 + _unitData pushBack _role; // Index 4 + _unitData pushBack _groupName; // Index 5 + _unitData pushBack _drawRoleAndGroup; // Index 6 + _unitData pushBack _isPassenger; + _unitData pushBack _isCommander; + + // ...Then add the unit's name to the name array... + _names pushBack _x; + + // ...and the unit's data to the data array. + _data append [_unitData]; + }; + }; + } forEach (crew _entity); + }; +} count _entities; + + +//------------------------------------------------------------------------------------ +// Returns arrays of names and data for all valid entities. +//------------------------------------------------------------------------------------ + +[_names,_data] \ No newline at end of file diff --git a/f/nametag/fn_nametagResetFont.sqf b/f/nametag/fn_nametagResetFont.sqf new file mode 100644 index 000000000..4fa16d84a --- /dev/null +++ b/f/nametag/fn_nametagResetFont.sqf @@ -0,0 +1,115 @@ +//==================================================================================== +// +// fn_nametagResetFont.sqf - Interprets font sets into typefaces and weights. +// Updates font size and spread depending on a dynamic +// spread coefficient and possible CBA setting alterations. +// +// > call f_fnc_nametagResetFont; < +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Interpret font presets and parse into primary and secondary typefaces and weights. +//------------------------------------------------------------------------------------ + +// Spacing may very between fonts greatly. Etelka is especially broken. +// Format: [Primary font, secondary font, spacing top, spacing bottom, shadow] +_fontData = +switch F_NT_FONT_FACE do +{ + case "Roboto": {["RobotoCondensedBold","RobotoCondensed",0.50,0.65,2]}; + case "RobotoLight": {["RobotoCondensed","RobotoCondensedLight",0.50,0.65,2]}; + case "Purista": {["PuristaBold","PuristaMedium",0.47,0.65,2]}; + case "PuristaLight":{["PuristaMedium","PuristaLight",0.47,0.65,2]}; + case "Etelka": {["EtelkaNarrowMediumPro","EtelkaNarrowMediumPro",0.4,0.7,2]}; + case "Tahoma": {["TahomaB","TahomaB",0.55,0.65,2]}; + default {["RobotoCondensedBold","RobotoCondensed",0.50,0.65,2]}; +}; + +F_NT_FONT_FACE_MAIN = (_fontData select 0); +F_NT_FONT_FACE_SEC = (_fontData select 1); +F_NT_FONT_SHADOW = (_fontData select 4); + + +//------------------------------------------------------------------------------------ +// Interpret font color presets and parse accordingly. +//------------------------------------------------------------------------------------ + +// Spacing may very between fonts greatly. Etelka is especially broken. +// Format: [Main color, secondary color, crew color, same group team white color, +// team red color, team green color, team blue color, team yellow color] +_colorData = +switch F_NT_FONT_COLOR do +{ + case "WHGreen": + {[[0.68,0.90,0.36,0.85],[0.90,0.90,0.90,0.85],[0.95,0.80,0.10,0.85], + [0.90,0.90,0.90,0.85],[0.90,0.25,0.25,0.85],[0.50,0.90,0.40,0.85], + [0.45,0.45,0.90,0.85],[0.90,0.90,0.30,0.85]]}; + //case "UIColor": TODO: Implement + //{[[(profilenamespace getVariable ['IGUI_TEXT_RGB_R',0]),(profilenamespace getVariable ['IGUI_TEXT_RGB_G',0]),(profilenamespace getVariable ['IGUI_TEXT_RGB_B',0]),(profilenamespace getVariable ['IGUI_TEXT_RGB_A',0])],[0.90,0.90,0.90,0.85],[0.95,0.80,0.10,0.85], + //[0.90,0.90,0.90,0.85],[0.90,0.25,0.25,0.85],[0.50,0.90,0.40,0.85], + //[0.45,0.45,0.90,0.85],[0.90,0.90,0.30,0.85]]}; + case "ACERust": + {[[0.77, 0.51, 0.08, 0.95],[0.90,0.75,0,0.85],[0.77, 0.51, 0.08, 0.95], + [1, 1, 1, 0.95],[1,0,0,0.95],[0,1,0,0.95], + [0,0,1,0.95],[1,1,0,0.95]]}; + case "TMTMTeal": + {[[0.35,0.80,0.90,0.85],[0.90,0.90,0.90,0.85],[0.15,0.70,0.90,0.85], + [0.90,0.90,0.90,0.85],[0.90,0.25,0.25,0.85],[0.50,0.90,0.40,0.85], + [0.45,0.45,0.90,0.85],[0.90,0.90,0.30,0.85]]}; + case "COALCrimson": + {[[0.90,0.10,0.10,0.85],[0.80,0.78,0.78,0.85],[0.85,0.6,0.2,0.85], + [0.90,0.90,0.90,0.85],[0.90,0.25,0.25,0.85],[0.50,0.90,0.40,0.85], + [0.45,0.45,0.90,0.85],[0.90,0.90,0.30,0.85]]}; + case "FAWhite": + {[[0.90,0.90,0.90,0.85],[0.90,0.90,0.90,0.85],[0.80,0.80,0.80,0.85], + [0.90,0.90,0.90,0.85],[0.90,0.70,0.70,0.85],[0.70,0.90,0.70,0.85], + [0.75,0.75,0.90,0.85],[0.80,0.80,0.55,0.85]]}; + case "STSand": + {[[0.90,0.75,0,0.85],[0.90,0.90,0.90,0.85],[0.90,0.75,0,0.85], + [0.90,0.90,0.90,0.85],[0.90,0.25,0.25,0.85],[0.50,0.90,0.40,0.85], + [0.45,0.45,0.90,0.85],[0.90,0.90,0.30,0.85]]}; + case "BromaPurple": + {[[0.85,0.50,0.90,0.85],[0.68,0.90,0.36,0.85],[0.85,0.50,0.90,0.85], + [0.85,0.50,0.90,0.85],[0.90,0.4,0.4,0.85],[0.85,0.50,0.90,0.85], + [0.6,0.6,0.90,0.85],[0.90,0.90,0.6,0.85]]}; + default + {[[0.68,0.90,0.36,0.85],[0.90,0.90,0.90,0.85],[0.95,0.80,0.10,0.85], + [0.90,0.90,0.90,0.85],[0.90,0.25,0.25,0.85],[0.50,0.90,0.40,0.85], + [0.45,0.45,0.90,0.85],[0.90,0.90,0.30,0.85]]}; +}; + +// Distribute colors from data array to global color settings. +F_NT_FONT_COLOR_DEFAULT= (_colorData select 0); +F_NT_FONT_COLOR_OTHER = (_colorData select 1); +F_NT_FONT_COLOR_CREW = (_colorData select 2); + +F_NT_FONT_COLOR_GROUP = (_colorData select 3); +F_NT_FONT_COLOR_GROUPR = (_colorData select 4); +F_NT_FONT_COLOR_GROUPG = (_colorData select 5); +F_NT_FONT_COLOR_GROUPB = (_colorData select 6); +F_NT_FONT_COLOR_GROUPY = (_colorData select 7); + + +//------------------------------------------------------------------------------------ +// Update global font sizes. +//------------------------------------------------------------------------------------ + +F_NT_FONT_SIZE_MAIN = F_NT_FONT_SIZE_RAW * F_NT_FONT_SIZE_MULTI; +F_NT_FONT_SIZE_SEC = F_NT_FONT_SIZE_MAIN * F_NT_FONT_SIZE_SEC_MULTI; + + +//------------------------------------------------------------------------------------ +// Update global font spread. +//------------------------------------------------------------------------------------ + +_spacingMultiplier = F_NT_FONT_SPREAD_MULTI * F_NT_FONT_SIZE_SEC; + +// Coefficients are used. Should be changed if you change the default font, probably. +_topMultiplier = (_fontData select 2); // Default: (0.50) +_bottomMultiplier = (_fontData select 3); // Default: (0.65) + +// Top and bottom are separate to avoid a wonky appearance. +F_NT_FONT_SPREAD_TOP_MULTI = _spacingMultiplier * _topMultiplier; +F_NT_FONT_SPREAD_BOTTOM_MULTI = _spacingMultiplier * _bottomMultiplier; diff --git a/f/nametag/fn_nametagUpdate.sqf b/f/nametag/fn_nametagUpdate.sqf new file mode 100644 index 000000000..f966ad170 --- /dev/null +++ b/f/nametag/fn_nametagUpdate.sqf @@ -0,0 +1,204 @@ +//==================================================================================== +// +// fn_nametagUpdate.sqf - Updates values for F3 nametags +// Intended to be run each frame. +// +// > F_NT_EVENTHANDLER = addMissionEventHandler +// ["Draw3D", { call f_fnc_nametagUpdate }]; < +// +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Initializing variables. +//------------------------------------------------------------------------------------ +// TODO: all of this only if there's something to draw +// Store the player and the player's group. +_player = player; +_playerGroup = group _player; +// TODO: Maybe just use playerSide? + +// Find player camera's position. +_cameraPositionAGL = positionCameraToWorld[0,0,0]; +_cameraPositionASL = AGLtoASL _cameraPositionAGL; + +// Get zoom, which will be used to adjust size and spacing of text. +_zoom = call f_fnc_getZoom; + +// Make a copy of the global cache containing nearby entities and their data. +_toDraw =+ F_NT_CACHE; + +// Initialize other variables to be used. +_time = time; + + +//------------------------------------------------------------------------------------ +// Collect player cursor target for drawing tags. +//------------------------------------------------------------------------------------ + +// Only collect the cursor target if it's within range and on the player's side. +_cursorObject = +if ( (_player distance cursorTarget) <= (((F_NT_DRAWDISTANCE_CURSOR) * F_NT_VAR_NIGHT) * _zoom) && + {(side group cursorTarget isEqualTo side _playerGroup)} ) +then { cursorTarget } +else { objNull }; + + +//------------------------------------------------------------------------------------ +// If the cursor target fits above criteria, get the data for it. +//------------------------------------------------------------------------------------ + +// Only worry about the cursorObject at all if it's not null. +if !( isNull _cursorObject ) then +{ + // Clean out any previous data. + _newData = [[],[]]; + _cursorInCache = false; + { + // If the cursor target is already in the global cache (ie: cursor target + // is nearby)... + if ( _x in (_toDraw select 0) ) then + { + // ...then just take that data... + _index = (_toDraw select 0) find _x; + _unitData =+ ((_toDraw select 1) select _index); + + // ...adjust it so it knows it's the cursor target... + _unitData set [7,true]; + + // ...take it out of the copy of the global cache... + (_toDraw select 0) deleteAt _index; + (_toDraw select 1) deleteAt _index; + + // ...and save it for later. + (_newData select 0) pushBack _x; + (_newData select 1) pushBack _unitData; + + // Also, let us know we don't need to process cursor any further. + _cursorInCache = true; + } + else + { _cursorInCache = false }; + } count (crew _cursorObject); + + // If the cursor target is not already in our global cache... + if !_cursorInCache then + { + // Check the cursor cache, which is used in case we're staring continuously + // at something far away. + if ( _cursorObject isEqualTo F_NT_CACHE_CURSOR ) then + // If it's in there, just take that data. + { _newData =+ F_NT_CACHE_CURSOR_DATA } + else + { + // If all else fails and the data is not in the cursor cache nor the global + // cache, then find the data anew. + _newData = + [_player,_playerGroup,_cameraPositionAGL,_cameraPositionASL,[_cursorObject],true] + call f_fnc_nametagGetData; + }; + }; + + // Whatever data we did save for later, add it to the cursor cache... + F_NT_CACHE_CURSOR_DATA =+ _newData; + + // ...and add it to the temporary copy of the global cache, too. + (_toDraw select 0) append (_newData select 0); + (_toDraw select 1) append (_newData select 1); +}; + + +//------------------------------------------------------------------------------------ +// Draw everything currently in the temporary copy of the global cache. +// This usually means drawing all nearby entities and the cursor. +//------------------------------------------------------------------------------------ + +{ + _unitData =+ ( (_toDraw select 1) select _forEachIndex ); + + // Pass in the player's camera and zoom level. + _unitData append [_cameraPositionAGL,_zoom,_time,nil]; + + // Call the draw function with the above parameters. + _unitData call f_fnc_nametagDraw; +} forEach (_toDraw select 0); + + +//------------------------------------------------------------------------------------ +// Also, draw everything currently being faded out (ie: moused over it, moused away.) +//------------------------------------------------------------------------------------ + +// For every name in the cache of data for fading names... +{ + // Get the time we started rendering this tag. + _startTime = ( (F_NT_CACHE_FADE select 2) select _forEachIndex ); + + // If it hasn't been long enough that it should be invisible, draw it. + if ( _time < _startTime + F_NT_FADETIME) then + { + _unitData =+ ( (F_NT_CACHE_FADE select 1) select _forEachIndex ); + _unitData append [_cameraPositionAGL,_zoom,_time,_startTime]; + _unitData call f_fnc_nametagDraw; + } + // If it has been that long, delete it. + else + { + (F_NT_CACHE_FADE select 0) deleteAt _forEachIndex; + (F_NT_CACHE_FADE select 1) deleteAt _forEachIndex; + (F_NT_CACHE_FADE select 2) deleteAt _forEachIndex; + }; +} forEach (F_NT_CACHE_FADE select 0); + + +//------------------------------------------------------------------------------------ +// If the cursor changed last frame, add the previous cursor to the cache of things +// to fade out. +//------------------------------------------------------------------------------------ + +// TODO: move all fade shit to it's own function + +// If the last cursor is something we can draw a tag on... +// ...and if the last cursor is not the current cursor... +// ...and this thing isn't already being faded out... +// ...and we're not already fading too much stuff... +if ( + !(isNull F_NT_CACHE_CURSOR) + && {!(_cursorObject isEqualTo F_NT_CACHE_CURSOR)} + ) then +{ + // Prevent the fade system from fading more than four tags + // at a time. Give priority to new fades. + if ( count (F_NT_CACHE_FADE select 0) > 4) then + { + _index = (count (F_NT_CACHE_FADE select 0)) - 4; + + for "_i" from 0 to _index do + { + (F_NT_CACHE_FADE select 0) deleteAt 0; + (F_NT_CACHE_FADE select 1) deleteAt 0; + (F_NT_CACHE_FADE select 2) deleteAt 0; + }; + }; + + // Prevent the fade system from fading the same tag twice. + if (((F_NT_CACHE_CURSOR_DATA select 0) select 0) in (F_NT_CACHE_FADE select 0)) then + { + { + _index = + (F_NT_CACHE_FADE select 0) find ((F_NT_CACHE_CURSOR_DATA select 0) select _forEachIndex); + + (F_NT_CACHE_FADE select 0) deleteAt _index; + (F_NT_CACHE_FADE select 1) deleteAt _index; + (F_NT_CACHE_FADE select 2) deleteAt _index; + } forEach (F_NT_CACHE_CURSOR_DATA select 0); + }; + + // Then chuck all that data from the thing into the array of things to fade. + (F_NT_CACHE_FADE select 0) append (F_NT_CACHE_CURSOR_DATA select 0); + (F_NT_CACHE_FADE select 1) append (F_NT_CACHE_CURSOR_DATA select 1); + { (F_NT_CACHE_FADE select 2) pushBack time } forEach (F_NT_CACHE_CURSOR_DATA select 0); +}; + +// For the next frame, set the cache of the cursor to the current cursor. +F_NT_CACHE_CURSOR = _cursorObject; diff --git a/init.sqf b/init.sqf index d0b2f022e..b0eb8fd05 100644 --- a/init.sqf +++ b/init.sqf @@ -194,7 +194,7 @@ f_var_civAI = independent; // Optional: The civilian AI will use this side's s // F3 - Name Tags // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -[] execVM "f\nametag\f_nametags.sqf"; +[] execVM "f\nametag\f_nametagInit.sqf"; // ==================================================================================== From 3aba168a493536a285e72b5111adb1a10b5d22dd Mon Sep 17 00:00:00 2001 From: Whalen Date: Tue, 5 Sep 2017 15:06:39 -0500 Subject: [PATCH 035/407] Compartmentalization + Pull Updates - Moved files into more organized folders. - Included new briefing tab if client is NOT using CBA. - Made F_NT_FONT_ONHEAD default true instead of false. --- f/common/functions.hpp | 2 +- f/nametag/f_nametagCONFIG.sqf | 8 +-- f/nametag/f_nametagInit.sqf | 16 +++-- f/nametag/{ => functions}/fn_getZoom.sqf | 0 f/nametag/{ => functions}/fn_nametagCache.sqf | 0 f/nametag/{ => functions}/fn_nametagDraw.sqf | 0 .../{ => functions}/fn_nametagGetData.sqf | 0 .../{ => functions}/fn_nametagResetFont.sqf | 0 .../{ => functions}/fn_nametagUpdate.sqf | 0 f/nametag/include/f_nametagBrief.sqf | 60 +++++++++++++++++++ .../{ => include}/f_nametagCacheLoop.sqf | 0 .../{ => include}/f_nametagCheckMods.sqf | 0 .../{ => include}/f_nametagDisableKey.sqf | 0 .../{ => include}/f_nametagInitTalking.sqf | 0 f/nametag/{ => include}/f_nametagSettings.sqf | 0 15 files changed, 76 insertions(+), 10 deletions(-) rename f/nametag/{ => functions}/fn_getZoom.sqf (100%) rename f/nametag/{ => functions}/fn_nametagCache.sqf (100%) rename f/nametag/{ => functions}/fn_nametagDraw.sqf (100%) rename f/nametag/{ => functions}/fn_nametagGetData.sqf (100%) rename f/nametag/{ => functions}/fn_nametagResetFont.sqf (100%) rename f/nametag/{ => functions}/fn_nametagUpdate.sqf (100%) create mode 100644 f/nametag/include/f_nametagBrief.sqf rename f/nametag/{ => include}/f_nametagCacheLoop.sqf (100%) rename f/nametag/{ => include}/f_nametagCheckMods.sqf (100%) rename f/nametag/{ => include}/f_nametagDisableKey.sqf (100%) rename f/nametag/{ => include}/f_nametagInitTalking.sqf (100%) rename f/nametag/{ => include}/f_nametagSettings.sqf (100%) diff --git a/f/common/functions.hpp b/f/common/functions.hpp index 255eebe9b..2e4fe947f 100644 --- a/f/common/functions.hpp +++ b/f/common/functions.hpp @@ -75,7 +75,7 @@ class F // Defines the "owner" }; class nametag { - file = "f\nametag"; + file = "f\nametag\functions"; class nametagUpdate {}; class nametagDraw {}; class nametagGetData {}; diff --git a/f/nametag/f_nametagCONFIG.sqf b/f/nametag/f_nametagCONFIG.sqf index ec25485fc..e7b237dc0 100644 --- a/f/nametag/f_nametagCONFIG.sqf +++ b/f/nametag/f_nametagCONFIG.sqf @@ -32,7 +32,7 @@ F_NT_SHOW_ROLE = true; // Show unit's role (rifleman, driver). (true) F_NT_SHOW_VEHICLEINFO = true; // Show vehicle info. Requires SHOW_ROLE. (true) // Draw Distances -F_NT_DRAWDISTANCE_CURSOR = 20; // Distance to draw nametags when pointing at a unit. (20) +F_NT_DRAWDISTANCE_CURSOR = 20; // Distance to draw nametags when pointing at a unit. (20) // Should be greater than DISTANCE_ALL. // Can be altered significantly depending on player FOV. F_NT_DRAWDISTANCE_NEAR = 10; // Distance within which all nametags will be drawn. (10) @@ -54,7 +54,7 @@ F_NT_FADETIME = 1; // Fade time for cursor tags after player mouses away. (1) F_NT_FONT_FACE = "Roboto"; // Typeface set for nametag system. ("Roboto") // Text Configuration: Size -F_NT_FONT_SIZE_RAW = 0.036; // Default raw font size. (0.036) +F_NT_FONT_SIZE_RAW = 0.036; // Default raw font size. (0.036) // Used directly for names, and used with // below modifiers for all else. F_NT_FONT_SIZE_SEC_MULTI = 0.861; // Multiplier for group and role tags. (0.861) @@ -62,7 +62,7 @@ F_NT_FONT_SIZE_MULTI = 1; // A general multiplier that can be used (1) // if you don't like the other ones. // Multipliers may be overriden by CBA settings. // Text Configuration: Spacing -F_NT_FONT_SPREAD_MULTI = 1; // Multiplier for vertical font spacing. (1) +F_NT_FONT_SPREAD_MULTI = 1; // Multiplier for vertical font spacing. (1) // may be overriden by CBA settings. // Text Configuration: Color @@ -78,4 +78,4 @@ F_NT_FONT_SPREAD_MULTI = 1; // Multiplier for vertical font spacing. (1) F_NT_FONT_COLOR = "WHGreen"; // Font color set for nametag system. ("WHGreen") // Text Configuration: Position -F_NT_FONT_HEIGHT_ONHEAD = false; // Attaches nametags to head (like ACE) (false) +F_NT_FONT_HEIGHT_ONHEAD = true; // Attaches nametags to head (like ACE) (false) diff --git a/f/nametag/f_nametagInit.sqf b/f/nametag/f_nametagInit.sqf index 110781cad..5dbcb40e6 100644 --- a/f/nametag/f_nametagInit.sqf +++ b/f/nametag/f_nametagInit.sqf @@ -18,7 +18,7 @@ if (!hasInterface) exitWith {}; F_NT_NAMETAGS_ON = true; // Determine which mods are active. -#include "f_nametagCheckMods.sqf"; +#include "include\f_nametagCheckMods.sqf"; //------------------------------------------------------------------------------------ @@ -29,7 +29,7 @@ F_NT_NAMETAGS_ON = true; #include "f_nametagCONFIG.sqf" // Allows for player (client) configuration of other settings. -#include "f_nametagSettings.sqf" +#include "include\f_nametagSettings.sqf" //------------------------------------------------------------------------------------ @@ -52,14 +52,14 @@ F_NT_CACHE_FADE = [[],[],[]]; waitUntil {!isNull (findDisplay 46)}; // Setting up our disableKey (Default '+') -#include "f_nametagDisableKey.sqf" +#include "include\f_nametagDisableKey.sqf" //------------------------------------------------------------------------------------ // Keep an updated cache of all tags to draw. //------------------------------------------------------------------------------------ -#include "f_nametagCacheLoop.sqf" +#include "include\f_nametagCacheLoop.sqf" //------------------------------------------------------------------------------------ @@ -71,4 +71,10 @@ F_NT_EVENTHANDLER = addMissionEventHandler { if F_NT_NAMETAGS_ON then { call f_fnc_nametagUpdate }; -}]; \ No newline at end of file +}]; + +//------------------------------------------------------------------------------------ +// Add briefing with configurable options. +//------------------------------------------------------------------------------------ + +#include "include\f_nametagBrief.sqf" \ No newline at end of file diff --git a/f/nametag/fn_getZoom.sqf b/f/nametag/functions/fn_getZoom.sqf similarity index 100% rename from f/nametag/fn_getZoom.sqf rename to f/nametag/functions/fn_getZoom.sqf diff --git a/f/nametag/fn_nametagCache.sqf b/f/nametag/functions/fn_nametagCache.sqf similarity index 100% rename from f/nametag/fn_nametagCache.sqf rename to f/nametag/functions/fn_nametagCache.sqf diff --git a/f/nametag/fn_nametagDraw.sqf b/f/nametag/functions/fn_nametagDraw.sqf similarity index 100% rename from f/nametag/fn_nametagDraw.sqf rename to f/nametag/functions/fn_nametagDraw.sqf diff --git a/f/nametag/fn_nametagGetData.sqf b/f/nametag/functions/fn_nametagGetData.sqf similarity index 100% rename from f/nametag/fn_nametagGetData.sqf rename to f/nametag/functions/fn_nametagGetData.sqf diff --git a/f/nametag/fn_nametagResetFont.sqf b/f/nametag/functions/fn_nametagResetFont.sqf similarity index 100% rename from f/nametag/fn_nametagResetFont.sqf rename to f/nametag/functions/fn_nametagResetFont.sqf diff --git a/f/nametag/fn_nametagUpdate.sqf b/f/nametag/functions/fn_nametagUpdate.sqf similarity index 100% rename from f/nametag/fn_nametagUpdate.sqf rename to f/nametag/functions/fn_nametagUpdate.sqf diff --git a/f/nametag/include/f_nametagBrief.sqf b/f/nametag/include/f_nametagBrief.sqf new file mode 100644 index 000000000..a0e501f08 --- /dev/null +++ b/f/nametag/include/f_nametagBrief.sqf @@ -0,0 +1,60 @@ +//==================================================================================== +// +// f_nametagBrief.sqf - Gives non-CBA players options in briefing to config nametags. +// @ /u/Whalen207 | Whale #5963 +// +//==================================================================================== + +//------------------------------------------------------------------------------------ +// Construct a briefing depending on present settings. +//------------------------------------------------------------------------------------ + +[] spawn +{ + waitUntil {scriptDone f_script_briefing}; + + _bstr = format ["WH NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %4m away, and constantly for all units within %3m.

Note that using CBA will disable this menu and replace it with an enchanced one under ADDON OPTIONS. + ",F_NT_ACTIONKEY_KEYNAME, F_NT_ACTIONKEY_KEY,F_NT_DRAWDISTANCE_NEAR,F_NT_DRAWDISTANCE_CURSOR]; + + if !F_NT_MOD_CBA then + { + _bstr = _bstr + "

TOGGLE NEARBY TAGS
Constantly displays name tags for nearby units."; + + if !(isNil "F_NT_FONT_HEIGHT_ONHEAD") then + { + _bstr = _bstr + "

TOGGLE TAG POSITION
Whether tags are rendered on chest or above head."; + }; + + if !(isNil "F_NT_SHOW_ROLE") then + { + _bstr = _bstr + "

TOGGLE ROLE DISPLAY
Displays the unit's role above their name."; + }; + + if !(isNil "F_NT_SHOW_GROUP") then + { + _bstr = _bstr + "

TOGGLE GROUP DISPLAY
Displays the group name below a unit's name."; + }; + + if !(isNil "F_NT_SHOW_VEHICLEINFO") then + { + _bstr = _bstr + "

TOGGLE VEHICLE TYPE DISPLAY
Displays the vehicle type with the commander's name. Requires role display."; + }; + + //_bstr = _bstr + "

COLORS
+ //Friendly
+ //Fireteam
+ //Vehicle Crew"; + + // Add brief to map screen. + player createDiaryRecord ["Diary", ["F3 Nametags (Options)",_bstr]]; + }; +}; \ No newline at end of file diff --git a/f/nametag/f_nametagCacheLoop.sqf b/f/nametag/include/f_nametagCacheLoop.sqf similarity index 100% rename from f/nametag/f_nametagCacheLoop.sqf rename to f/nametag/include/f_nametagCacheLoop.sqf diff --git a/f/nametag/f_nametagCheckMods.sqf b/f/nametag/include/f_nametagCheckMods.sqf similarity index 100% rename from f/nametag/f_nametagCheckMods.sqf rename to f/nametag/include/f_nametagCheckMods.sqf diff --git a/f/nametag/f_nametagDisableKey.sqf b/f/nametag/include/f_nametagDisableKey.sqf similarity index 100% rename from f/nametag/f_nametagDisableKey.sqf rename to f/nametag/include/f_nametagDisableKey.sqf diff --git a/f/nametag/f_nametagInitTalking.sqf b/f/nametag/include/f_nametagInitTalking.sqf similarity index 100% rename from f/nametag/f_nametagInitTalking.sqf rename to f/nametag/include/f_nametagInitTalking.sqf diff --git a/f/nametag/f_nametagSettings.sqf b/f/nametag/include/f_nametagSettings.sqf similarity index 100% rename from f/nametag/f_nametagSettings.sqf rename to f/nametag/include/f_nametagSettings.sqf From c0481f0e492bb1b28ef288c550630b36d0cedea0 Mon Sep 17 00:00:00 2001 From: Whale Date: Tue, 5 Sep 2017 15:28:10 -0500 Subject: [PATCH 036/407] Quick hotfix Accidentally made it so NO BRIEFING would show if CBA was present. This fix makes it so that a shortened briefing will show, as intended. --- f/nametag/include/f_nametagBrief.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/f/nametag/include/f_nametagBrief.sqf b/f/nametag/include/f_nametagBrief.sqf index a0e501f08..64574df36 100644 --- a/f/nametag/include/f_nametagBrief.sqf +++ b/f/nametag/include/f_nametagBrief.sqf @@ -54,7 +54,9 @@ //Fireteam
//Vehicle Crew"; - // Add brief to map screen. - player createDiaryRecord ["Diary", ["F3 Nametags (Options)",_bstr]]; + }; -}; \ No newline at end of file + + // Add brief to map screen. + player createDiaryRecord ["Diary", ["F3 Nametags (Options)",_bstr]]; +}; From 816168b0f2f89e56b216350ab61fecaaa1627c20 Mon Sep 17 00:00:00 2001 From: Pooter Date: Wed, 6 Sep 2017 12:31:53 -0700 Subject: [PATCH 037/407] Merges --- f/simplewoundingsystem/init.sqf | 72 --------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 f/simplewoundingsystem/init.sqf diff --git a/f/simplewoundingsystem/init.sqf b/f/simplewoundingsystem/init.sqf deleted file mode 100644 index 2ffbf68f8..000000000 --- a/f/simplewoundingsystem/init.sqf +++ /dev/null @@ -1,72 +0,0 @@ - -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -if (isDedicated) ExitWith {}; -_unit = _this select 0; - - - -// add breifing -if(isNil "f_wound_briefing") then{f_wound_briefing = true;}; -if(isNil "f_wound_extraFAK") then {f_wound_extraFAK = 0}; - -if(f_wound_briefing) then -{ - [] spawn - { - waitUntil {scriptDone f_script_briefing}; - _bstr = format ["
OVERVIEW
-When a player is wounded to the point of being 'incapacitated' they become a casualty. Casualties are prone and unable to move. -

-TREATING CASUALTIES
-Players equipped with at least 1 x FAK can treat a casualty by moving next to them and selecting the relevant action menu option. Treatment uses up 1 x FAK. -

-DRAGGING CASUALTIES
-Players can drag a casualty by moving next to them and selecting the relevant action menu option. Whilst dragging, the player has an action menu option for releasing the casualty. -

-BLEEDING OUT
-An incapacitated player only has a few minutes before her/his wounds become fatal and they die."]; - player createDiaryRecord ["Diary", ["F3 Simple Wounding System",_bstr]]; - }; -}; - - - -for [{_i=1},{_i<=f_wound_extraFAK},{_i=_i+1}] do { - _unit addItem "FirstAidKit"; -}; - -/// lets wait a bit. -sleep 5; - -// default variables. -_unit setVariable ["f_wound_down",false]; -_unit setVariable ["f_wound_bleeding",false]; -_unit setVariable ["f_wound_blood",100]; // other player dont need know this -_unit setVariable ["f_wound_dragging",nil]; -f_wound_healAnimations = ["ainvpknlmstpslaywpstdnon_medic","ainvpknlmstpslaywrfldnon_medic","ainvpknlmstpslaywnondnon_medic","ainvppnemstpslaywnondnon_medic","AinvPpneMstpSlayWnonDnon_medic","AinvPpneMstpSlayWpstDnon_medic","AinvPpneMstpSlayWrflDnon_medic",""]; - -/// Lifeticker, manages bleeding and blood values. -_unit spawn f_fnc_LifeTick; - - -// HandleHeal needs to be one the player you heal. -{ - _x setVariable ["f_wound_down",false]; - _x setVariable ["f_wound_bleeding",false]; - _x addEventHandler ["HandleHeal",{_this call f_fnc_OnHeal}]; - // Drag Action. - _addIndex = _x addAction [format ["Drag %1", name _x],{_this remoteExec ["f_fnc_OnDrag", [_this select 0,_this select 1]]}, nil, 6, false, true, "", "_var = _this getVariable ['f_wound_dragging',nil];_target distance _this < 2 && isNil '_var' && _target getVariable['f_wound_down',false] && !(_this getVariable ['f_wound_down',false])"]; -} foreach playableUnits; - -// defines the PP effects for the downed effect. -F_UncCC = ppEffectCreate ["ColorCorrections", 1603]; -F_UncRadialBlur = ppEffectCreate ["RadialBlur", 280]; -F_UncBlur = ppEffectCreate ["DynamicBlur", 180]; -F_UncToggle = false; -f_damage_effect = 1.1; - -// Eventhandlers for the player. -_unit addEventHandler ["killed", {_this call f_fnc_OnDeath}]; -_unit addEventHandler ["HandleDamage",{_this call f_fnc_OnDamage}]; From 957150187e225ef37d4aaf71520d9f5b4ec0902f Mon Sep 17 00:00:00 2001 From: Pooter Date: Wed, 6 Sep 2017 16:07:39 -0700 Subject: [PATCH 038/407] Adding disablethermals to functions.hpp --- f/functions.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/f/functions.hpp b/f/functions.hpp index 6d5861257..398288cf1 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -111,4 +111,9 @@ class F // Defines the "owner" class EjectWounded {}; class addEject {}; }; + class disableThermals + { + file = "f\disableThermals"; + class disableThermals {}; + }; }; From 6f9d72c2c66e9c7d6845185b6fef030809d77954 Mon Sep 17 00:00:00 2001 From: Whale Date: Thu, 7 Sep 2017 00:01:45 -0500 Subject: [PATCH 039/407] QoL Change - Tag Clutter Pulling a change I made earlier today on WH nametags main branch -- if you're in third person and in a vehicle, no other units within your vehicle will be shown. This avoids a LOT of clutter, especially in large transports. --- f/nametag/functions/fn_nametagCache.sqf | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/f/nametag/functions/fn_nametagCache.sqf b/f/nametag/functions/fn_nametagCache.sqf index 975d82c1f..fff5a6521 100644 --- a/f/nametag/functions/fn_nametagCache.sqf +++ b/f/nametag/functions/fn_nametagCache.sqf @@ -26,7 +26,13 @@ if F_NT_NAMETAGS_ON then F_NT_VAR_NIGHT = if F_NT_NIGHT then { linearConversion [0, 1, sunOrMoon, 0.25+0.5*(currentVisionMode _player),1,true]; } else { 1 }; - + + WH_NT_VAR_VEHICLETPP = + if (!(isNull objectParent _player) && {(cameraView isEqualTo "EXTERNAL")}) + then { true } + else { false }; + + //-------------------------------------------------------------------------------- // If not set to only draw the cursor, collect nearEntities. //-------------------------------------------------------------------------------- @@ -49,12 +55,9 @@ if F_NT_NAMETAGS_ON then ((F_NT_DRAWDISTANCE_NEAR+(F_NT_DRAWDISTANCE_NEAR*0.25)+1)*F_NT_VAR_NIGHT)] select { - !(_x isEqualTo _player) && - {( - (side group _x isEqualTo side group _player) // 0.0018ms - //((side _x getFriend side player) > 0.6) // 0.0024ms - //|| {(group _x isEqualTo group player)} - )} + !(_x isEqualTo _player) + && (side group _x isEqualTo side group _player) + && {!WH_NT_VAR_VEHICLETPP || {(vehicle _x != vehicle _player)}} }; // Collect each filter entities' data. @@ -66,4 +69,4 @@ if F_NT_NAMETAGS_ON then } else { F_NT_CACHE = [[],[]] }; -}; \ No newline at end of file +}; From d6ac8363812d5f765788b1d8f8655dd411c49b1f Mon Sep 17 00:00:00 2001 From: Whale Date: Thu, 7 Sep 2017 00:04:33 -0500 Subject: [PATCH 040/407] Fixed naming scheme --- f/nametag/functions/fn_nametagCache.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/nametag/functions/fn_nametagCache.sqf b/f/nametag/functions/fn_nametagCache.sqf index fff5a6521..a6bf780d8 100644 --- a/f/nametag/functions/fn_nametagCache.sqf +++ b/f/nametag/functions/fn_nametagCache.sqf @@ -27,7 +27,7 @@ if F_NT_NAMETAGS_ON then { linearConversion [0, 1, sunOrMoon, 0.25+0.5*(currentVisionMode _player),1,true]; } else { 1 }; - WH_NT_VAR_VEHICLETPP = + F_NT_VAR_VEHICLETPP = if (!(isNull objectParent _player) && {(cameraView isEqualTo "EXTERNAL")}) then { true } else { false }; @@ -57,7 +57,7 @@ if F_NT_NAMETAGS_ON then { !(_x isEqualTo _player) && (side group _x isEqualTo side group _player) - && {!WH_NT_VAR_VEHICLETPP || {(vehicle _x != vehicle _player)}} + && {!F_NT_VAR_VEHICLETPP || {(vehicle _x != vehicle _player)}} }; // Collect each filter entities' data. From 8792d13ee481ef07d2560f15f97bb1a8b3a90b33 Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Sun, 17 Sep 2017 01:05:51 +0200 Subject: [PATCH 041/407] Removed redundant loading screen related variables from description.ext --- description.ext | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/description.ext b/description.ext index 62a8ea8be..740d7da9a 100644 --- a/description.ext +++ b/description.ext @@ -1,11 +1,8 @@ // ============================================================================================ // Loading Screen +// Set Author, overview image/text, loading image/text from Eden Editor onLoadName = "*** Insert Mission Name Here. ***"; -onLoadMission = "Made with the F3 Mission Development Framework"; -author = "*** Insert Author Here. ***"; -loadScreen = "loadLogo.jpg"; -overviewPicture = "overviewLogo.jpg"; // ============================================================================================ From d47ea15b74cabcb16b0a312839adadd258591d1a Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Sun, 17 Sep 2017 01:16:04 +0200 Subject: [PATCH 042/407] Indicated that Gendarmerie is BLUFOR, corrected CTRG to BLUFOR (was labled INDFOR). --- briefing.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/briefing.sqf b/briefing.sqf index ca06c55d6..ca17fd49d 100644 --- a/briefing.sqf +++ b/briefing.sqf @@ -82,7 +82,7 @@ if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f"]) exitwith { // ==================================================================================== -// BRIEFING: GENDARMERIE +// BRIEFING: BLUFOR > GENDARMERIE // The following block of code executes only if the player is in a gendarmerie slot; it // automatically includes a file which contains the appropriate briefing data. @@ -150,7 +150,7 @@ if (_unitfaction in ["ind_c_f"]) exitwith { // ==================================================================================== -// BRIEFING: INDEPENDENT > CTRG +// BRIEFING: BLUFOR > CTRG // The following block of code executes only if the player is in a Syndikat // slot; it automatically includes a file which contains the appropriate briefing data. From 52c47faec4d3c68c4bec95b11e0a52443eb5d86f Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Sun, 17 Sep 2017 01:40:14 +0200 Subject: [PATCH 043/407] IDAP will now correctly receive civilian briefing. --- briefing.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/briefing.sqf b/briefing.sqf index ca17fd49d..a237b6019 100644 --- a/briefing.sqf +++ b/briefing.sqf @@ -167,11 +167,11 @@ if (_unitfaction in ["blu_ctrg_f"]) exitwith { // ==================================================================================== -// BRIEFING: CIVILIAN +// BRIEFING: CIVILIAN and IDAP // The following block of code executes only if the player is in a CIVILIAN // slot; it automatically includes a file which contains the appropriate briefing data. -if (_unitfaction in ["civ_f"]) exitwith { +if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { #include "f\briefing\f_briefing_civ.sqf" From 4bfe154f5f806a807c5fde193daa74b57082aeaa Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Sun, 17 Sep 2017 01:40:57 +0200 Subject: [PATCH 044/407] Minor documentation errors. --- briefing.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/briefing.sqf b/briefing.sqf index a237b6019..29314adad 100644 --- a/briefing.sqf +++ b/briefing.sqf @@ -83,7 +83,7 @@ if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f"]) exitwith { // ==================================================================================== // BRIEFING: BLUFOR > GENDARMERIE -// The following block of code executes only if the player is in a gendarmerie slot; it +// The following block of code executes only if the player is in a Gendarmerie slot; it // automatically includes a file which contains the appropriate briefing data. if (_unitfaction in ["blu_gen_f"]) exitwith { @@ -151,7 +151,7 @@ if (_unitfaction in ["ind_c_f"]) exitwith { // ==================================================================================== // BRIEFING: BLUFOR > CTRG -// The following block of code executes only if the player is in a Syndikat +// The following block of code executes only if the player is in a CTRG // slot; it automatically includes a file which contains the appropriate briefing data. if (_unitfaction in ["blu_ctrg_f"]) exitwith { From 803ea31f22c406d15cd81571935640070468e911 Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Sun, 17 Sep 2017 01:44:44 +0200 Subject: [PATCH 045/407] Updated documentation for f_briefing_civ.sqf --- f/briefing/f_briefing_civ.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/f_briefing_civ.sqf b/f/briefing/f_briefing_civ.sqf index f8fb836c2..7dd7e3cdd 100644 --- a/f/briefing/f_briefing_civ.sqf +++ b/f/briefing/f_briefing_civ.sqf @@ -2,7 +2,7 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// FACTION: CIVILIAN +// FACTIONS: CIVILIAN, IDAP // ==================================================================================== From 0c0950b8df7b59cdc63ea52000e2a761010ec576 Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Sun, 17 Sep 2017 01:50:46 +0200 Subject: [PATCH 046/407] Made clear that the loading screen section is an F3 section. --- description.ext | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/description.ext b/description.ext index 740d7da9a..1f5d706d6 100644 --- a/description.ext +++ b/description.ext @@ -1,5 +1,5 @@ // ============================================================================================ -// Loading Screen +// F3 - Loading Screen // Set Author, overview image/text, loading image/text from Eden Editor onLoadName = "*** Insert Mission Name Here. ***"; From b11d61002927a4c5be3bf977e213c769101371bd Mon Sep 17 00:00:00 2001 From: Pooter Date: Sun, 17 Sep 2017 11:03:52 -0700 Subject: [PATCH 047/407] Allow units to have own goggles, overwritten by assignGear --- f/assignGear/f_assignGear_clothes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 84a3b979c..8321660be 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -13,7 +13,6 @@ _unit setVariable ["BIS_enableRandomization", false]; removeUniform _unit; removeHeadgear _unit; removeVest _unit; -removeGoggles _unit; // Assign default clothes _uniform = _baseUniform; @@ -87,5 +86,6 @@ if(count _rig > 0) then if(count _glasses > 0) then { + removeGoggles _unit; _unit addGoggles (_glasses call BIS_fnc_selectRandom); }; From 9edff7974710e2c189325b08681634f8ba27e95f Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 18 Sep 2017 19:52:01 -0700 Subject: [PATCH 048/407] Updates to down in vehicle so it doesn't spam logs --- f/functions.hpp | 5 +++++ f/medical/fn_reviveEhDammaged.sqf | 2 ++ 2 files changed, 7 insertions(+) diff --git a/f/functions.hpp b/f/functions.hpp index 6d5861257..653188ead 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -97,6 +97,11 @@ class F // Defines the "owner" file = "f\spect"; class activateSpectator{}; }; + class disableThermals + { + file = "f\disableThermals"; + class disableThermals{}; + }; class woundingsystem { file = "f\medical"; diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index 83b34830b..6379a32d4 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -83,7 +83,9 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc _unit = player; player addMPEventHandler ["mpkilled", f_fnc_reviveEhKilledInVeh]; _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; + _camera setName format ["Ressurection%1", round(random 20000)]; selectPlayer _camera; + _unit setName (name _camera); [_unit] remoteExecCall ["f_fnc_addEject", 0, true]; _camera attachTo [(vehicle _unit), [0,0,0]]; }else { From 236cdc5b34dfc3622b9c4dcdcf0e1169f9d31580 Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 18 Sep 2017 20:16:20 -0700 Subject: [PATCH 049/407] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 04e7ac960..3ce1177ea 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## -* F3 3-4-0 -* ws_fnc 05/07/2015 \ No newline at end of file +* F3 3-5 +* ws_fnc 05/07/2015 From 53f89abf441f76eb1532e33c788b2a608c0557ae Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 18 Sep 2017 20:16:34 -0700 Subject: [PATCH 050/407] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ce1177ea..fa4026e62 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## -* F3 3-5 +* F3 3-4-0 * ws_fnc 05/07/2015 From cc5f09afeb70479e3437edf23d07d9a7428ef1ed Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 18 Sep 2017 20:16:58 -0700 Subject: [PATCH 051/407] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 04e7ac960..fa7cd2d84 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## -* F3 3-4-0 -* ws_fnc 05/07/2015 \ No newline at end of file +* F3 3-5-0 +* ws_fnc 05/07/2015 From bee3a5e91cf66731ad2042ebd74e41e5486b0b68 Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 18 Sep 2017 20:24:29 -0700 Subject: [PATCH 052/407] Adding version.txt for FA-mut and FAmdb integrations --- version.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 version.txt diff --git a/version.txt b/version.txt new file mode 100644 index 000000000..cac1670ea --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +3-5-0 From b8c9b7da4edd1c18c8269e0e9a33bc957fe1bb00 Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 18 Sep 2017 20:38:49 -0700 Subject: [PATCH 053/407] Fixing merge artifact --- f/functions.hpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/f/functions.hpp b/f/functions.hpp index f3f61267a..398288cf1 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -97,11 +97,6 @@ class F // Defines the "owner" file = "f\spect"; class activateSpectator{}; }; - class disableThermals - { - file = "f\disableThermals"; - class disableThermals{}; - }; class woundingsystem { file = "f\medical"; From 8c0a8c30f05c72907ce41b9841662d02b7fdedf4 Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 18 Sep 2017 20:44:45 -0700 Subject: [PATCH 054/407] Issue-41 Replace BIS_fnc_selectRandom with selectRandom --- f/assignGear/f_assignGear_clothes.sqf | 8 ++-- f/assignGear/f_assignGear_fia_light.sqf | 56 +++++++++++----------- f/assignGear/f_assignGear_fia_standard.sqf | 56 +++++++++++----------- f/assignGear/f_assignGear_fia_v.sqf | 12 ++--- 4 files changed, 66 insertions(+), 66 deletions(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 8321660be..0f027c578 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -71,21 +71,21 @@ if (_typeOfUnit in _specOp) then { // Add clothing items to unit if(count _uniform > 0) then { - _unit forceAddUniform (_uniform call BIS_fnc_selectRandom); + _unit forceAddUniform (selectRandom _uniform); }; if(count _helmet > 0) then { - _unit addHeadgear (_helmet call BIS_fnc_selectRandom); + _unit addHeadgear (selectRandom _helmet); }; if(count _rig > 0) then { - _unit addVest (_rig call BIS_fnc_selectRandom); + _unit addVest (selectRandom _rig); }; if(count _glasses > 0) then { removeGoggles _unit; - _unit addGoggles (_glasses call BIS_fnc_selectRandom); + _unit addGoggles (selectRandom _glasses); }; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index 354add390..edee543ee 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -28,7 +28,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addmagazines [_RATmag, 1]; _unit addweapon _RAT; _unit addItem _firstaid; @@ -43,7 +43,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -57,7 +57,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_glriflemag, 2]; @@ -72,7 +72,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_glriflemag, 2]; @@ -87,7 +87,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_glriflemag, 2]; @@ -102,7 +102,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_glriflemag, 2]; @@ -116,7 +116,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -154,7 +154,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -168,7 +168,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -180,7 +180,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -193,7 +193,7 @@ switch (_typeofUnit) do { _unit addBackpack _baglarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; @@ -208,7 +208,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -222,7 +222,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; @@ -236,7 +236,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -250,7 +250,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -262,7 +262,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -275,7 +275,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; @@ -289,7 +289,7 @@ switch (_typeofUnit) do { _unit addBackpack _baglarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -303,7 +303,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -315,7 +315,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -340,7 +340,7 @@ switch (_typeofUnit) do case "sp": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 6]; _unit addmagazines [_riflemag, 2]; @@ -424,7 +424,7 @@ switch (_typeofUnit) do { _unit addBackpack _baglarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -440,7 +440,7 @@ switch (_typeofUnit) do { _unit addBackpack _baglarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -456,7 +456,7 @@ switch (_typeofUnit) do { _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -481,7 +481,7 @@ switch (_typeofUnit) do case "r": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 2]; @@ -493,7 +493,7 @@ switch (_typeofUnit) do case "car": { _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -517,7 +517,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_glriflemag, 2]; @@ -532,4 +532,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index ec8e0258f..999a9a037 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -29,7 +29,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addmagazines [_RATmag, 1]; _unit addweapon _RAT; _unit addItem _firstaid; @@ -44,7 +44,7 @@ switch (_typeofUnit) do case "aar": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -58,7 +58,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_glriflemag, 4]; @@ -73,7 +73,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; @@ -91,7 +91,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; @@ -109,7 +109,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; @@ -126,7 +126,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; @@ -164,7 +164,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -179,7 +179,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -191,7 +191,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -204,7 +204,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; @@ -219,7 +219,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -233,7 +233,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; @@ -248,7 +248,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -262,7 +262,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagmtrg ; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -274,7 +274,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -287,7 +287,7 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addweapon _SAM; _unit addmagazines [_SAMmag, 1]; _unit addItem _firstaid; @@ -301,7 +301,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -315,7 +315,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; @@ -327,7 +327,7 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -352,7 +352,7 @@ switch (_typeofUnit) do case "sp": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 5]; _unit addmagazines [_riflemag, 4]; @@ -436,7 +436,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; @@ -452,7 +452,7 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; @@ -469,7 +469,7 @@ switch (_typeofUnit) do { _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; @@ -494,7 +494,7 @@ switch (_typeofUnit) do case "r": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (_rifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_riflemag, 4]; @@ -506,7 +506,7 @@ switch (_typeofUnit) do case "car": { _unit addmagazines [_carbinemag, 1]; - _unit addweapon (_carbine call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; @@ -530,7 +530,7 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (_glrifle call BIS_fnc_selectRandom); + _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_glriflemag, 4]; @@ -545,4 +545,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_fia_v.sqf b/f/assignGear/f_assignGear_fia_v.sqf index 11dba3122..98cf745bc 100644 --- a/f/assignGear/f_assignGear_fia_v.sqf +++ b/f/assignGear/f_assignGear_fia_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 2]; + _unit addWeaponCargoGlobal [(selectRandom _carbine), 2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 10]; + _unit addWeaponCargoGlobal [(selectRandom _carbine), 10]; _unit addMagazineCargoGlobal [_riflemag, 40]; _unit addMagazineCargoGlobal [_glriflemag, 40]; _unit addMagazineCargoGlobal [_carbinemag, 40]; @@ -50,7 +50,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 4]; + _unit addWeaponCargoGlobal [(selectRandom _carbine), 4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -105,7 +105,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 2]; + _unit addWeaponCargoGlobal [(selectRandom _carbine), 2]; _unit addWeaponCargoGlobal [_rat,1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; @@ -131,7 +131,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 8]; + _unit addWeaponCargoGlobal [(selectRandom _carbine), 8]; _unit addWeaponCargoGlobal [_rat,2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; @@ -239,4 +239,4 @@ _unit addMagazineCargoGlobal [_smokegrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; _unit addItemCargoGlobal [_firstaid, 75]; - }; \ No newline at end of file + }; From 212fdd5a859a198ac23d222ee8c4739aa5940e7e Mon Sep 17 00:00:00 2001 From: Pooter Date: Wed, 20 Sep 2017 16:45:52 -0700 Subject: [PATCH 055/407] Issue-48 Update ws_fnc --- ws_fnc/AI/fn_addWaypoint.sqf | 2 +- ws_fnc/AI/fn_bettervehicle.sqf | 4 +- ws_fnc/AI/fn_createGarrison.sqf | 13 ++--- ws_fnc/AI/fn_createGroup.sqf | 8 ++- ws_fnc/AI/fn_createVehicle.sqf | 4 +- ws_fnc/AI/fn_enterBuilding.sqf | 13 ++--- ws_fnc/AI/fn_setAIMode.sqf | 3 - ws_fnc/AI/fn_taskAmbush.sqf | 6 +- ws_fnc/AI/fn_taskArtilleryFire.sqf | 2 +- ws_fnc/AI/fn_taskCrew.sqf | 8 +-- ws_fnc/AI/fn_taskDefend.sqf | 6 +- ws_fnc/Dbg/fn_debugText.sqf | 3 - ws_fnc/README.md | 4 +- ws_fnc/Tools/fn_checkHC.sqf | 6 +- ws_fnc/Tools/fn_gamecheck.sqf | 4 +- ws_fnc/Tools/fn_getObjectClasses.sqf | 19 +++++++ ws_fnc/Tools/fn_loadVehicle.sqf | 23 +++++--- ws_fnc/Tools/fn_nearPlayer.sqf | 4 +- ws_fnc/Tools/fn_selectRandom.sqf | 17 ------ ws_fnc/Tools/fn_showFPS.sqf | 4 +- ws_fnc/Tools/fn_shuffleArray.sqf | 19 +++++++ ws_fnc/cache/fn_cInit.sqf | 83 ++++++++++++++++++++++++++++ ws_fnc/cache/fn_cTracker.sqf | 64 +++++++++++++++++++++ ws_fnc/cache/fn_gCache.sqf | 42 ++++++++++++++ ws_fnc/cache/fn_gUncache.sqf | 26 +++++++++ ws_fnc/config.hpp | 13 +++-- ws_fnc/getPos/fn_NearestRoadPos.sqf | 4 +- ws_fnc/getPos/fn_getBpos.sqf | 19 ++----- ws_fnc/getPos/fn_getPosInArea.sqf | 7 +-- ws_fnc/misc/fn_broadcast.sqf | 2 +- ws_fnc/ws_fnc_init.sqf | 75 ------------------------- 31 files changed, 333 insertions(+), 174 deletions(-) create mode 100644 ws_fnc/Tools/fn_getObjectClasses.sqf delete mode 100644 ws_fnc/Tools/fn_selectRandom.sqf create mode 100644 ws_fnc/Tools/fn_shuffleArray.sqf create mode 100644 ws_fnc/cache/fn_cInit.sqf create mode 100644 ws_fnc/cache/fn_cTracker.sqf create mode 100644 ws_fnc/cache/fn_gCache.sqf create mode 100644 ws_fnc/cache/fn_gUncache.sqf delete mode 100644 ws_fnc/ws_fnc_init.sqf diff --git a/ws_fnc/AI/fn_addWaypoint.sqf b/ws_fnc/AI/fn_addWaypoint.sqf index a1f32f5e4..084d84dc6 100644 --- a/ws_fnc/AI/fn_addWaypoint.sqf +++ b/ws_fnc/AI/fn_addWaypoint.sqf @@ -105,7 +105,7 @@ switch (_mode) do { case "ambush": { _wp setWaypointType "MOVE"; - _wp setWaypointStatements ["true", format["[group this,getPos this,%2] spawn ws_fnc_taskAmbush;%1",_code,_modifier]]; + _wp setWaypointStatements ["true", format["[group this,getPos this] spawn ws_fnc_taskAmbush;%1",_code]]; _wp setWaypointCompletionRadius 50; }; diff --git a/ws_fnc/AI/fn_bettervehicle.sqf b/ws_fnc/AI/fn_bettervehicle.sqf index d94330b29..b288f87df 100644 --- a/ws_fnc/AI/fn_bettervehicle.sqf +++ b/ws_fnc/AI/fn_bettervehicle.sqf @@ -41,7 +41,7 @@ switch (typename _side) do { case "SIDE": { // All non-static vehicles with a turret on the map {if (!(_x isKindOf "StaticWeapon") && side _x == _side && canFire _x && (count crew _x > 0)) then [{ - _vehicles = _vehicles + [_x];},{if _debug then {player sidechat format ["ws_bettervehicles DBG: %1 has no crew or is a static weapon",_x]};}]; + _vehicles pushBack _x;},{if _debug then {player sidechat format ["ws_bettervehicles DBG: %1 has no crew or is a static weapon",_x]};}]; } forEach vehicles; }; case "OBJECT": { @@ -95,4 +95,4 @@ if (isNil "_handle") then { }; } forEach _vehicles; -if _debug then {player sidechat format ["ws_bettervehicles DBG: Exiting. Improved vehicles: %1",_vehicles]}; \ No newline at end of file +if _debug then {player sidechat format ["ws_bettervehicles DBG: Exiting. Improved vehicles: %1",_vehicles]}; diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index e170ddd3a..375773926 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -118,7 +118,7 @@ _grp = createGroup _side; for "_x" from 1 to _int do { private ["_b","_bpa","_bpl","_bu","_i","_u","_dir"]; - _b = _buildings call ws_fnc_selectRandom; + _b = selectRandom _buildings; _bpa = _b getVariable "ws_bPos"; _bpl = _b getVariable ["ws_bPosLeft",_bpa]; _bu = _b getVariable ["ws_bUnits",0]; @@ -131,7 +131,7 @@ for "_x" from 1 to _int do { if (count _buildings == 0) exitWith {}; - _b = _buildings call ws_fnc_selectRandom; + _b = selectRandom _buildings; _bpa = _b getVariable "ws_bPos"; _bpl = _b getVariable ["ws_bPosLeft",_bpa]; _bu = _b getVariable ["ws_bUnits",0]; @@ -143,7 +143,7 @@ for "_x" from 1 to _int do { if (count _buildings == 0) exitWith {}; - _b = _buildings call ws_fnc_selectRandom; + _b = selectRandom _buildings; _bpa = _b getVariable "ws_bPos"; _bpl = _b getVariable ["ws_bPosLeft",_bpa]; _bu = _b getVariable ["ws_bUnits",0]; @@ -157,11 +157,10 @@ for "_x" from 1 to _int do { _bp = _bpl select _i; // Remove the building position from the array - _bpl set [_i,0]; //Workaround as in http://community.bistudio.com/wiki/Array#Subtraction - _bpl = _bpl - [0]; + _bpl deleteAt _i; // Create a unit and move it into place - _u = _grp createUnit [_classes call ws_fnc_selectRandom,_area,[],5,"NONE"]; + _u = _grp createUnit [selectRandom _classes,_area,[],5,"NONE"]; _u setPosATL _bp; dostop _u; @@ -185,4 +184,4 @@ _grp enableAttack false; [_grp,"AWARE","YELLOW"] call ws_fnc_setAIMode; // Return created unis -(units _grp) \ No newline at end of file +(units _grp) diff --git a/ws_fnc/AI/fn_createGroup.sqf b/ws_fnc/AI/fn_createGroup.sqf index 75ad0c136..8f8b0abe2 100644 --- a/ws_fnc/AI/fn_createGroup.sqf +++ b/ws_fnc/AI/fn_createGroup.sqf @@ -42,7 +42,9 @@ _code = {}; //Optional parameters parsed with the call if (_count > 4) then {_code = _this select 4;}; -["ws_fnc_createGroup DBG: running with: ",_this,""] call ws_fnc_debugText; +if (_debug) then { + ["ws_fnc_createGroup DBG: running with: ",_this,""] call ws_fnc_debugText; +}; //Fault checks //Checking the variables we have enough against what we should have @@ -63,7 +65,7 @@ for "_x" from 2 to (_size) do { if (_x <= (count _forcedclasses)) then { _unit = _grp createUnit [_forcedclasses select (_x - 1),_pos,[],5,"NONE"]; } else { - _unit = _grp createUnit [_commonclasses call ws_fnc_selectrandom,_pos,[],5,"NONE"]; + _unit = _grp createUnit [selectRandom _commonclasses,_pos,[],5,"NONE"]; }; }; @@ -102,4 +104,4 @@ player globalchat format ["DEBUG: ws_fnc_createGroup done. _grp:%1 of size: %2 a }; //Output the created group and parameters -[_grp,_this] \ No newline at end of file +[_grp,_this] diff --git a/ws_fnc/AI/fn_createVehicle.sqf b/ws_fnc/AI/fn_createVehicle.sqf index abd118514..20a93a64b 100644 --- a/ws_fnc/AI/fn_createVehicle.sqf +++ b/ws_fnc/AI/fn_createVehicle.sqf @@ -114,7 +114,7 @@ if (_guards > 0) then { _grp = createGroup _side; for "_x" from 1 to _guards do { - _unit = _grp createUnit [_guardclasses call ws_fnc_selectRandom, getPos _veh, [], 2, "NONE"]; + _unit = _grp createUnit [selectRandom _guardclasses, getPos _veh, [], 2, "NONE"]; }; if (_load) then { @@ -176,4 +176,4 @@ if (_debug) then { }; //Script outputs the generated vehicle -[_veh,_vehgrp,_grp,_this] \ No newline at end of file +[_veh,_vehgrp,_grp,_this] diff --git a/ws_fnc/AI/fn_enterBuilding.sqf b/ws_fnc/AI/fn_enterBuilding.sqf index 34cb07b63..cdd36be17 100644 --- a/ws_fnc/AI/fn_enterBuilding.sqf +++ b/ws_fnc/AI/fn_enterBuilding.sqf @@ -23,12 +23,12 @@ _barray = _this select 1; _threshold = if (count _this > 2) then [{_this select 2},{1}]; //Percentage of building positions that can be taken before building is considered "full" if (typename _barray != "ARRAY") then {_barray = [_this select 1]}; -if (_threshold <= 0) then {_threshold = 0.1}; +if (_threshold <= 0) then {_threshold = 0.8}; // As long we have units and a more than one building we loop through either while {count _units > 0 && count _barray > 0} do { - _building = _barray call ws_fnc_selectRandom; + _building = selectRandom _barray; _bposarray = [_building] call ws_fnc_getBpos; if (count _bposarray > 0) then { @@ -41,7 +41,7 @@ while {count _units > 0 && count _barray > 0} do { while {count _barray > 0 && {count _bposLeft == 0 || (_bUnits / (count _bposarray) >= _threshold)}} do { _barray = _barray - [_building]; - _building = _barray call ws_fnc_selectRandom; + _building = selectRandom _barray; _bposarray = _building getVariable ["ws_bPos",[]]; if (count _bposleft == 0) then {_bposarray = [_building] call ws_fnc_getBpos;}; @@ -54,14 +54,13 @@ while {count _units > 0 && count _barray > 0} do { if (count _barray == 0) exitWith {}; // Otherwise continue to place unit: - _unit = _units call ws_fnc_selectrandom; + _unit = selectRandom _units; _units = _units - [_unit]; //Get a building position and remove it from the array _i = floor (random (count _bposleft)); _bpos = _bposleft select _i; - _bposleft set [_i,0]; //Workaround as in http://community.bistudio.com/wiki/Array#Subtraction - _bposleft = _bposleft - [0]; + _bposleft deleteAt _i; // Set the new variables for the building _building setVariable ["ws_bPosLeft",_bposleft,true]; @@ -119,4 +118,4 @@ while {count _units > 0 && count _barray > 0} do { }; }; -_units \ No newline at end of file +_units diff --git a/ws_fnc/AI/fn_setAIMode.sqf b/ws_fnc/AI/fn_setAIMode.sqf index c6524c331..e87866578 100644 --- a/ws_fnc/AI/fn_setAIMode.sqf +++ b/ws_fnc/AI/fn_setAIMode.sqf @@ -33,9 +33,6 @@ private ["_grp","_modes"]; _grp = _this select 0; _modes = _this - [_this select 0]; -//Debugging - _modearray shouldnt have over three entries -if (count _modes > 3) then {["ws_fnc_setAIMode DBG:",_modearray,"for some reason has over three entries. Why?"] call ws_fnc_debugText;}; - { switch (_x) do { diff --git a/ws_fnc/AI/fn_taskAmbush.sqf b/ws_fnc/AI/fn_taskAmbush.sqf index 2b8d19406..d6c11dce6 100644 --- a/ws_fnc/AI/fn_taskAmbush.sqf +++ b/ws_fnc/AI/fn_taskAmbush.sqf @@ -17,7 +17,7 @@ PARAMETERS 1. The ambush group | MANDATORY 2. The position to be ambushed | MANDATORY - can be marker, trigger, group or positional array 3. The killzone in [x,y,angle,rectangle(bool)] around the position | OPTIONAL (default: If marker or trigger was passed as position use their area, otherwise [50,50,0,false]) -4. The minimal distance and radius in which to find an overlook | OPTIONAL (default: [100,300] - if left empty ([]) the group will stay where they are) +4. The minimal distance and radius in which to find an overlook | OPTIONAL (default: [50,400] - if left empty ([]) the group will stay where they are) EXAMPLES A) nul = [group this,TrgAmbush] spawn ws_fnc_taskAmbush in Waypoint onAct: group will ambush enemies entering killzone as indicated by Trigger named TrgAmbush and look for a decent overwatch spot @@ -37,7 +37,7 @@ _count = count _this; _grp = _this select 0; _ambush = _this select 1; _killzone = if (_count > 2) then [{_this select 2},{[]}]; -_owatch = if (_count > 3) then [{_this select 3},{[100,300]}]; +_owatch = if (_count > 3) then [{_this select 3},{[50,200]}]; // Get positions for group and ambush location _pos = _ambush call ws_fnc_getEPos; @@ -74,7 +74,7 @@ if (count _owatch > 0) then { if (_mindis > _radius) then {_radius = _mindis * 4}; // Get a position overwatching the ambush point - _nPos = [_pos, _radius, _mindis, 10] call BIS_fnc_findOverwatch; + _nPos = [_pos, _radius, _mindis, 0] call BIS_fnc_findOverwatch; }; // Get group to move to overwatch position diff --git a/ws_fnc/AI/fn_taskArtilleryFire.sqf b/ws_fnc/AI/fn_taskArtilleryFire.sqf index c80043881..a2ba8e209 100644 --- a/ws_fnc/AI/fn_taskArtilleryFire.sqf +++ b/ws_fnc/AI/fn_taskArtilleryFire.sqf @@ -91,7 +91,7 @@ if ({isNull _x} count _art > 1 || str _target == "[0,0,0]" || count (getArtiller }; case (typeName []): { - _targetPos = (_target call ws_fnc_selectRandom) call ws_fnc_getEPos; + _targetPos = (selectRandom _target) call ws_fnc_getEPos; }; }; diff --git a/ws_fnc/AI/fn_taskCrew.sqf b/ws_fnc/AI/fn_taskCrew.sqf index 965af19d4..ba439435b 100644 --- a/ws_fnc/AI/fn_taskCrew.sqf +++ b/ws_fnc/AI/fn_taskCrew.sqf @@ -20,7 +20,7 @@ _pos = (_group) call ws_fnc_getEPos; //Get nearby vehicles to start populating the static weapons _vehicles = []; { - _vehicles = _vehicles + nearestObjects [_pos,[_x],_radius]; + _vehicles append nearestObjects [_pos,[_x],_radius]; } forEach ["StaticWeapon","Tank","Car"]; _staticarray = []; @@ -35,7 +35,7 @@ _units2 = _units - [leader _group]; if ((_x emptyPositions "gunner") > 0 && !(_locked) && ((count crew _x) == 0)) then { - _staticarray = _staticarray + [_x]; + _staticarray pushBack _x; }; } forEach _vehicles; @@ -43,7 +43,7 @@ _units2 = _units - [leader _group]; { // Make sure it doesn't have a gunner yet if (isNull (gunner _x) && isNUll (_x getVariable ["ws_StaticCrew",objNull])) then { - _unit = _units2 call ws_fnc_selectRandom; + _unit = selectRandom _units2; _unit assignasgunner _x; [_unit] ordergetin true; _units = _units - [_unit]; @@ -53,4 +53,4 @@ _units2 = _units - [leader _group]; }; } forEach _staticarray; -_units \ No newline at end of file +_units diff --git a/ws_fnc/AI/fn_taskDefend.sqf b/ws_fnc/AI/fn_taskDefend.sqf index 43a18e88b..9558cc14b 100644 --- a/ws_fnc/AI/fn_taskDefend.sqf +++ b/ws_fnc/AI/fn_taskDefend.sqf @@ -39,8 +39,8 @@ private ["_debug","_game","_count","_milarrayA2","_badarrayA2","_badarrayA3","_m "_buildings","_vehicles","_milbuildings","_staticarray","_badarray","_milarray","_units","_static","_mkr"]; //Customizable Variables -_mthreshold = 0.9; // Percentage of building positions to occupy in military buildings (1=all) -_cthreshold = 0.5; // Percentage of building positions to occupy in civilian buildings (1=all) +_mthreshold = 1; // Percentage of building positions to occupy in military buildings (1=all) +_cthreshold = 1; // Percentage of building positions to occupy in civilian buildings (1=all) // ARMA 2 only // Military buildings that are garrisoned before civilian buildings @@ -113,6 +113,8 @@ _units = [_units,_buildings,_cthreshold] call ws_fnc_enterbuilding; if (_debug) then {{_mkr = createMarker [format ["%1-bpos",_x],_x];_mkr setMarkerSize [0.4,0.4];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorWhite";}forEach _buildings;}; }; +// Give HOLD waypoint to ensure units focus on defending + //If there's one unit left they either patrol or hold the area. if (count _units >= 1) then { _group = createGroup (side (_units select 0)); diff --git a/ws_fnc/Dbg/fn_debugText.sqf b/ws_fnc/Dbg/fn_debugText.sqf index 797485b92..430c4cb12 100644 --- a/ws_fnc/Dbg/fn_debugText.sqf +++ b/ws_fnc/Dbg/fn_debugText.sqf @@ -4,9 +4,6 @@ private ["_debug","_string1","_variables","_string2"]; -_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; -if !(_debug) exitWith {}; - _string1= _this select 0; _variables = _this select 1; _string2 = _this select 2; diff --git a/ws_fnc/README.md b/ws_fnc/README.md index f8e682de0..c19ea6033 100644 --- a/ws_fnc/README.md +++ b/ws_fnc/README.md @@ -1,4 +1,4 @@ -ws_fnc for ArmA2:CO and ArmA3 +ws_fnc for ArmA3 == Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com @@ -17,5 +17,5 @@ https://github.com/Wolfenswan/ws_fnc/wiki * All major functions are documented in themselves. To see how they work open their .sqf with a text editor or their pages on github. -* If you're running ArmA 3 then you can also seem them all in the editor when opening the function viewer (CTRL+F). Make sure to select "missionConfigFile" in the top-left drop-down menu. +* If you're running ArmA 3 then you can browse them from inside the editor by opening the function viewer (CTRL+F). Make sure to select "missionConfigFile" in the top-left drop-down menu. diff --git a/ws_fnc/Tools/fn_checkHC.sqf b/ws_fnc/Tools/fn_checkHC.sqf index ddd8cb812..36c264fee 100644 --- a/ws_fnc/Tools/fn_checkHC.sqf +++ b/ws_fnc/Tools/fn_checkHC.sqf @@ -11,13 +11,15 @@ true/false for HC/not-HC _hc = false; ws_var_isHC = false; -["ws_var_HCs",[],true]call ws_fnc_setGVar; +["ws_var_HCs",[],true] call ws_fnc_setGVar; if (!hasInterface && !isServer) then { _hc = true; ws_var_isHC=true; - ws_var_HCs append (player); publicVariable "ws_var_HCs"; + if !(player in ws_var_HCs) then { + ws_var_HCs pushback (player); publicVariable "ws_var_HCs"; + }; }; _hc \ No newline at end of file diff --git a/ws_fnc/Tools/fn_gamecheck.sqf b/ws_fnc/Tools/fn_gamecheck.sqf index 63b59f5d1..13ee950fd 100644 --- a/ws_fnc/Tools/fn_gamecheck.sqf +++ b/ws_fnc/Tools/fn_gamecheck.sqf @@ -1,4 +1,4 @@ -/*ws_fnc_selectRandom +/*ws_fnc_gameCheck By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com FEATURE @@ -23,4 +23,4 @@ if (isNil "ws_game_a3") then { }; publicvariable "ws_game_a3";}; -_game \ No newline at end of file +_game diff --git a/ws_fnc/Tools/fn_getObjectClasses.sqf b/ws_fnc/Tools/fn_getObjectClasses.sqf new file mode 100644 index 000000000..cc9d3f540 --- /dev/null +++ b/ws_fnc/Tools/fn_getObjectClasses.sqf @@ -0,0 +1,19 @@ +/* ws_fnc_getObjectClasses +By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com + +FEATURE +Returns array of object classes + +USAGE +[ojects] call ws_fnc_getObjectClasses + +*/ + +params["_objects"]; +private _arr = []; + +{ + _arr pushback (typeOf _x); +} forEach _objects; + +_arr \ No newline at end of file diff --git a/ws_fnc/Tools/fn_loadVehicle.sqf b/ws_fnc/Tools/fn_loadVehicle.sqf index ed315b852..fcd43f0d4 100644 --- a/ws_fnc/Tools/fn_loadVehicle.sqf +++ b/ws_fnc/Tools/fn_loadVehicle.sqf @@ -15,9 +15,11 @@ Full: [[veh1],["Grp1","Grp2"],boolean,boolean] call ws_fnc_loadVehicle RETURNS -Units that weren't loaded. If all units were loaded an empty array is returned +Groups that weren't loaded. If all groups were loaded an empty array is returned */ +// ==================================================================================== + // DECLARE VARIABLES AND FUNCTIONS private ["_objects","_crew","_vehs","_grps","_units"]; @@ -35,29 +37,32 @@ _fill = if (count _this > 3) then {_this select 3} else {false}; // Ignore firet // ==================================================================================== // CLEAN THE GROUP ARRAY -// First we check if there are illegal groups (non-existent) in the array and fix it by replacing it with a null-group. -// At the end we remove all null-groups are removed and the array is clean +// First we check if there are illegal groups (non-existent) in the array and remove them. if ({isNil _x} count _grps > 0) then { { if (isNil _x) then { _grps set [_forEachIndex,grpNull]; }; - } forEach _grps; - _grps = _grps - [grpNull]; }; -// We check the passed groups to make sure none of them is empty and they have at least one unit that's not inside a vehicle +_grps = _grps - [grpNull]; + +// ==================================================================================== + +// PROCESS GROUPS +// Check the passed groups to make sure none of them is empty and they have at least one unit that's not inside a vehicle { _grp = call compile format ["%1",_x]; _grps set [_forEachIndex,_grp]; if (count (units _grp) == 0 || {isNull (assignedVehicle _x)} count (units _grp) == 0) then { - _grps set [_forEachIndex,grpNull]; + _grps set [_forEachIndex,grpNull]; }; } forEach _grps; + _grps = _grps - [grpNull]; // ==================================================================================== @@ -104,7 +109,7 @@ if (count _vehs == 0 || count _grps == 0) exitWith { _grpsT = _grps; // As long there are spare seats and groups left - while {_emptyPositions > 0 && count _grpsT > 0 && locked _veh < 2} do { + while {_emptyPositions > 0 && count _grpsT > 0 && locked _veh != 2} do { private ["_grp","_units","_run"]; @@ -169,4 +174,4 @@ if (count _vehs == 0 || count _grps == 0) exitWith { // OUTPUT // We return all groups that weren't fully loaded -_grps +_grps \ No newline at end of file diff --git a/ws_fnc/Tools/fn_nearPlayer.sqf b/ws_fnc/Tools/fn_nearPlayer.sqf index 999eb540e..624effbaf 100644 --- a/ws_fnc/Tools/fn_nearPlayer.sqf +++ b/ws_fnc/Tools/fn_nearPlayer.sqf @@ -28,5 +28,5 @@ _players = [] call ws_fnc_listPlayers; { if (_pos distance _x < _distance) exitWith {true}; - false; -} forEach _players; + false +} forEach _players; \ No newline at end of file diff --git a/ws_fnc/Tools/fn_selectRandom.sqf b/ws_fnc/Tools/fn_selectRandom.sqf deleted file mode 100644 index 0ece821f7..000000000 --- a/ws_fnc/Tools/fn_selectRandom.sqf +++ /dev/null @@ -1,17 +0,0 @@ -//ws_fnc_selectRandom -/* -FEATURE -Get a random value from an array -(As Bis_fnc_selectRandom is bugged: https://dev-heaven.net/issues/69439) - -USAGE -[array] call ws_fnc_selectRandom - -RETURNS -random selection -*/ - -[_this,["ARRAY"],format ["ws_fnc_selectRandom ERROR: %1",_this]] call ws_fnc_typecheck; -_selection = _this select (floor (random (count _this))); - -_selection \ No newline at end of file diff --git a/ws_fnc/Tools/fn_showFPS.sqf b/ws_fnc/Tools/fn_showFPS.sqf index c8ea470a3..a54327ccb 100644 --- a/ws_fnc/Tools/fn_showFPS.sqf +++ b/ws_fnc/Tools/fn_showFPS.sqf @@ -1,4 +1,4 @@ -// ws_fnc_broadcast +// ws_fnc_showFPS // By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com /* FEATURE @@ -19,4 +19,4 @@ private ["_time"]; _time = [_this,0,60,["SCALAR"]] call BIS_fnc_Param; -[_time,[format ["%1",name player]]] call BIS_fnc_FPS; \ No newline at end of file +[_time,[format ["%1",name player]]] call BIS_fnc_FPS; diff --git a/ws_fnc/Tools/fn_shuffleArray.sqf b/ws_fnc/Tools/fn_shuffleArray.sqf new file mode 100644 index 000000000..799acd705 --- /dev/null +++ b/ws_fnc/Tools/fn_shuffleArray.sqf @@ -0,0 +1,19 @@ +//ws_fnc_shuffleArray +/* +FEATURE +Shuffles given array + +USAGE +array call ws_fnc_shuffleArray + +RETURNS +shuffled array +*/ + +_arr = param [0,[]]; + +for "_i" from 1 to (count _arr) do { + _arr pushBack (_arr deleteAt floor random (count _arr)); +}; + +_arr diff --git a/ws_fnc/cache/fn_cInit.sqf b/ws_fnc/cache/fn_cInit.sqf new file mode 100644 index 000000000..a4ead5175 --- /dev/null +++ b/ws_fnc/cache/fn_cInit.sqf @@ -0,0 +1,83 @@ +/* +ws_fnc_cache +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Caches groups. + +USAGE +[min caching distance,agressiveness,sleep] call ws_fnc_cInit; + +To exclude a group from being cached: +a) In unit init: (group this) setVariable ["ws_cacheExcl",true]; +b) Anywhere: Groupname setVariable ["ws_cacheExcl",true,true]; + +NOTE +It's recommended to wait up until a minute into the mission before launching the caching script to make sure that all AI have settled + +PARAMETERS +1. Distance to players for units to be de-cached | OPTIONAL - default is 1000 +2. Agressiveness of the caching | OPTIONAL - default is 2 + 1 - cache only non-leaders and non-drivers + 2 - cache all non-moving units, always exclude vehicle drivers + 3 - cache all units, incl. group leaders and vehicle drivers +3. Amount of seconds between distance-checks to player units | OPTIONAL - default is 5 seconds + +RETURNS +true +*/ + +// Player and the headless client's groups are always excluded from being cached +if (!isDedicated) then { + group player setVariable ["ws_cacheExcl", true, true]; +}; + +// Script is only run server-side +if !(isServer) exitWith {}; + +// Make sure script is only run once +if (missionNameSpace getVariable ["ws_cInit", false]) exitWith {}; +ws_cInit = true; +waituntil {!isnil "bis_fnc_init"}; + +// All groups with playable units are set to be ignored as well +{ + if ({_x in playableUnits} count units _x > 0) then {_x setVariable ["ws_cacheExcl",true,true];}; +} forEach allGroups; + +// Define parameters +_range = if (count _this > 0) then [{_this select 0},{1000}]; +ws_var_cachingAggressiveness = if (count _this > 1) then [{_this select 1},{2}]; +_sleep = if (count _this > 2) then [{_this select 2},{6}]; + + +[_range, _sleep] spawn ws_fnc_cTracker; + +_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; + +if (_debug) then { + ["ws_fnc_cache DBG: Starting to track groups, range, sleep",[count allGroups,_range,_sleep],""] call ws_fnc_debugtext; + + [_sleep] spawn { + + // Giving the tracker a head start + sleep (_this select 0 * 1.1); + + while {true} do { + _str1 = "ws_fnc_cache DBG:
"; + _str2 = format["Total groups: %1
",count allGroups]; + _str3 = format ["Cached groups:%1
",{_x getvariable "ws_cached"} count allGroups]; + _str4 = format ["Activated groups:%1
",{!(_x getvariable "ws_cached")} count allGroups]; + _str5 = format ["Excluded groups:%1
",{(_x getvariable "ws_cacheExcl")} count allGroups]; + + hintsilent parseText (_str1+_str2+_str3+_str4+_str5); + + sleep (_this select 0); + }; + }; +}; + + +true \ No newline at end of file diff --git a/ws_fnc/cache/fn_cTracker.sqf b/ws_fnc/cache/fn_cTracker.sqf new file mode 100644 index 000000000..2051cffb9 --- /dev/null +++ b/ws_fnc/cache/fn_cTracker.sqf @@ -0,0 +1,64 @@ +/* +ws_fnc_cTracker +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Tracks all currently present AI-only groups and caches/uncaches them according to distance to parameters +*/ + +private ["_range","_sleep","_groups","_debug"]; + +_range = _this select 0; +_sleep = _this select 1; + +_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; + +_groups = allGroups; + +// BEGIN THE TRACKING LOOP +While {count _groups > 0} do { + { + _groups = allGroups; + + if (_debug) then{ ["ws_fnc_cache DBG: Tracking ",[count _groups]," groups"] call ws_fnc_debugtext;}; + + if (isnull _x) then { + _groups = _groups - [_x]; + + if (_debug) then{ ["ws_fnc_cache DBG: Group is null, deleting: ",[_x,count _groups]," groups left"] call ws_fnc_debugtext;}; + + } else { + _exclude = _x getvariable ["ws_cacheExcl",false]; + _cached = _x getvariable ["ws_cached", false]; + + if (!_exclude) then { + if (_cached) then { + + if (_debug) then {["ws_fnc_cache DBG: Checking group: ",[_x],""] call ws_fnc_debugtext;}; + + if ([leader _x, _range] call ws_fnc_nearPlayer) then { + + if (_debug) then {["ws_fnc_cache DBG: Caching: ",[_x],""] call ws_fnc_debugtext;}; + + _x setvariable ["ws_cached", false]; + _x spawn ws_fnc_gUncache; + }; + } else { + if !([leader _x, _range * 1.1] call ws_fnc_nearPlayer) then { + + if (_debug) then {player globalchat format ["ws_fnc_cache DBG: Caching: %1",_x]}; + + _x setvariable ["ws_cached", true]; + _x spawn ws_fnc_gCache; + }; + }; + + if (_debug) then {["ws_fnc_cache DBG: Group is excluded: ",[_x]," - Ignoring."] call ws_fnc_debugtext;}; + }; + }; + } foreach _groups; + + sleep _sleep; +}; \ No newline at end of file diff --git a/ws_fnc/cache/fn_gCache.sqf b/ws_fnc/cache/fn_gCache.sqf new file mode 100644 index 000000000..dc5c2fc7c --- /dev/null +++ b/ws_fnc/cache/fn_gCache.sqf @@ -0,0 +1,42 @@ +/* +ws_fnc_gCache +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Disables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. +*/ + +// LOOP THROUGH THE PASSED UNITS +// We loop through the units of the passed group and disable Simulation for those that are not vehicle drivers and are standing still +{ + + // Disable simulation based on aggressiveness + switch (ws_var_cachingAggressiveness) do { + case 1: { + if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _this)) then { + _x enableSimulationGlobal false; + }; + }; + case 2: { + if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { + if ((_x != leader _this) || (_x == leader _this && speed _x == 0)) then { + _x enableSimulationGlobal false; + }; + }; + }; + case 3: {_x enableSimulationGlobal false;}; + }; + + // All unit's are hidden + _x hideObjectGlobal true; + + if (ws_var_cachingAggressiveness == 3) then { + if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal true}; + }; + +sleep 0.1; +} forEach units _this; + +true \ No newline at end of file diff --git a/ws_fnc/cache/fn_gUncache.sqf b/ws_fnc/cache/fn_gUncache.sqf new file mode 100644 index 000000000..5ee57739e --- /dev/null +++ b/ws_fnc/cache/fn_gUncache.sqf @@ -0,0 +1,26 @@ +/* +ws_fnc_gUncache +Latest: 15.01.2014 + +based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) + +FEATURE +Enables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. +*/ + + { + _x enableSimulationGlobal true; + _x hideObjectGlobal false; + + + // If the group leader is moving, set his group back next to him + if (speed leader _this > 0 && vehicle _x == _x) then { + _x setPosATL (formationPosition _x); + }; + + if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal false}; + +sleep 0.1; +} forEach units _this; + +true \ No newline at end of file diff --git a/ws_fnc/config.hpp b/ws_fnc/config.hpp index d8712efe4..9e20d302b 100644 --- a/ws_fnc/config.hpp +++ b/ws_fnc/config.hpp @@ -14,7 +14,6 @@ class WS class tools { file = "ws_fnc\tools"; - class selectRandom {}; class gameCheck {preInit=1;}; class collectMarkers {}; class collectObjects {}; @@ -27,6 +26,8 @@ class WS class listPlayers {}; class setGVar {}; class isWallInDir {}; + class getObjectClasses {}; + class shuffleArray {}; }; class effects { @@ -74,9 +75,13 @@ class WS class setAIMode {}; class setInsidePos {}; }; - - class init { - class init {file = "ws_fnc\ws_fnc_init.sqf";preInit = 1;}; + class cache + { + file = "ws_fnc\cache"; + class cInit {}; + class gCache {}; + class gUncache {}; + class cTracker {}; }; }; \ No newline at end of file diff --git a/ws_fnc/getPos/fn_NearestRoadPos.sqf b/ws_fnc/getPos/fn_NearestRoadPos.sqf index 4100ac6de..b1665bd54 100644 --- a/ws_fnc/getPos/fn_NearestRoadPos.sqf +++ b/ws_fnc/getPos/fn_NearestRoadPos.sqf @@ -28,7 +28,7 @@ _done = false; while {!_done && _i <= 20} do { _roads = _pos nearroads _distance; if (count _roads > 0) then { - _pos = getPosATL (_roads call ws_fnc_selectRandom); + _pos = getPosATL (selectRandom _roads); _done = true; } else { _distance = _distance + _increment; @@ -37,4 +37,4 @@ while {!_done && _i <= 20} do { }; }; -[_pos select 0,_pos select 1,0] \ No newline at end of file +[_pos select 0,_pos select 1,0] diff --git a/ws_fnc/getPos/fn_getBpos.sqf b/ws_fnc/getPos/fn_getBpos.sqf index 0820c4342..8d7c64de7 100644 --- a/ws_fnc/getPos/fn_getBpos.sqf +++ b/ws_fnc/getPos/fn_getBpos.sqf @@ -13,30 +13,21 @@ RETURNS array containing all building positions */ -private ["_debug","_building","_bposarray","_i","_occupied"]; +private ["_debug","_building","_bposarray","_occupied"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; // Buildings to ignore _badarray = []; _building = _this select 0; + +if isNil "_building" exitWith {}; _bposarray = _building getVariable ["ws_bPos",false]; [_building,["OBJECT"],format ["ws_fnc_getBpos: %1",_building]] call ws_fnc_typecheck; -_i = 0; if (typeName _bposarray != typeName []) then { - _bposarray = []; - _bp = _building buildingpos _i; - - while {str _bp != "[0,0,0]"} do { - if (count _bp == 3) then { - _bposarray pushback (_bp); - }; - - _i = _i + 1; - _bp = _building buildingpos _i; - }; + _bposarray = _building buildingPos -1; if (_debug) then {{_mkr = createMarker [format ["%1-bpos",_x],_x];_mkr setMarkerSize [0.3,0.3];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorWhite";} forEach _bposarray;}; @@ -45,4 +36,4 @@ if (typeName _bposarray != typeName []) then { //["ws_fnc_getBpos DBG1: ",[_building,(_building getVariable "ws_bpos"),_occupied],""] call ws_fnc_debugText; -_bposarray \ No newline at end of file +_bposarray diff --git a/ws_fnc/getPos/fn_getPosInArea.sqf b/ws_fnc/getPos/fn_getPosInArea.sqf index f43de7a6a..81dd7c2ac 100644 --- a/ws_fnc/getPos/fn_getPosInArea.sqf +++ b/ws_fnc/getPos/fn_getPosInArea.sqf @@ -17,10 +17,9 @@ positional array */ -private ["_count","_area","_shape","_center","_pos","_px","_py","_vector"]; +private ["_area","_shape","_center","_pos","_px","_py","_vector"]; -_count = count _this; -_area = _this select 0; +params["_area"]; _shape = ""; _center = []; @@ -35,7 +34,7 @@ switch (typeName _area) do { case "STRING":{ _center = getMarkerPos _area; _shape = MarkerShape _area; _dir = markerDir _area;_area = markerSize _area;}; }; -if (typename _shape == typename "") then { +if (_shape isEqualType "STRING") then { switch (_shape) do { case "RECTANGLE": {_shape = true;}; case "ELLIPSE": {_shape = false;}; diff --git a/ws_fnc/misc/fn_broadcast.sqf b/ws_fnc/misc/fn_broadcast.sqf index 9bd803217..0a4fd48c6 100644 --- a/ws_fnc/misc/fn_broadcast.sqf +++ b/ws_fnc/misc/fn_broadcast.sqf @@ -26,7 +26,7 @@ _code = format ["%1 [%2,%3]",_text,str _string,str _type]; ws_fnc_showText = compile _code; -[] remoteExec ["ws_fnc_showText", 0]; +[[],"ws_fnc_showText",true] spawn BIS_fnc_MP; _code = ""; ws_fnc_showText = compile _code; diff --git a/ws_fnc/ws_fnc_init.sqf b/ws_fnc/ws_fnc_init.sqf deleted file mode 100644 index cedde5514..000000000 --- a/ws_fnc/ws_fnc_init.sqf +++ /dev/null @@ -1,75 +0,0 @@ -/* ws_fnc_init -By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com - -FEATURE -Compile all WS_fnc for Arma 2 - -USAGE (ARMA 2) -Use Call compile preprocessFile "ws_fnc\fn_init.sqf" from either a unit or module init. - -NOTE (ARMA 3) -In Arma3 This file only controls the global debug flag ws_debug. It is not necessary to call seperately. -*/ - -//Check if the functions are already compiled -if (isNil "ws_fnc_compiled") then {ws_fnc_compiled = false}; -if (ws_fnc_compiled) exitWith {}; - -// DEBUG -// To enable debug mode either change false to true or put ws_debug = true in any unit init -ws_debug = missionNameSpace getVariable ["ws_debug",false]; - -// Check if A3 is running - -if (isNil "ws_game_a3") then { - ws_fnc_gameCheck = call compile preprocessFile "ws_fnc\tools\fn_gamecheck.sqf"; -}; - -// Compile functions for Arma 2 -if !(ws_game_a3) then { - if (isnil "bis_fnc_init") then {_fm = createGroup sideLogic;_fm createUnit ["FunctionsManager", [0,0,0], [],0,"NONE"];}; - - //Debug Functions - ws_fnc_debugText = compile preprocessFile "ws_fnc\dbg\fn_debugText.sqf"; - ws_fnc_clipBoardCode = compile preprocessFile "ws_fnc\dbg\fn_clipBoardCode.sqf"; - ws_fnc_countUnits = compile preprocessFile "ws_fnc\dbg\fn_countUnits.sqf"; - ws_fnc_debugText = compile preprocessFile "ws_fnc\dbg\fn_debugText.sqf"; - ws_fnc_typecheck = compile preprocessFile "ws_fnc\dbg\fn_typecheck.sqf"; - call compile preprocessFile "ws_fnc\dbg\fn_debugTriggers.sqf"; - - //Tool Functions - ws_fnc_selectRandom = compile preprocessfile "ws_fnc\tools\fn_selectRandom.sqf"; - ws_fnc_collectMarkers = compile preprocessfile "ws_fnc\tools\fn_collectMarkers.sqf"; - ws_fnc_collectObjects = compile preprocessfile "ws_fnc\tools\fn_collectObjects.sqf"; - ws_fnc_collectObjectsNum = compile preprocessfile "ws_fnc\tools\fn_collectObjectsNum.sqf"; - ws_fnc_collectBuildings = compile preprocessfile "ws_fnc\tools\fn_collectBuildings.sqf"; - ws_fnc_loadVehicle = compile preprocessfile "ws_fnc\tools\fn_loadVehicle.sqf"; - ws_fnc_listPlayers = compile preprocessfile "ws_fnc\tools\fn_listPlayers.sqf"; - ws_fnc_nearPlayer = compile preprocessfile "ws_fnc\tools\fn_nearPlayer.sqf"; - ws_fnc_setGVar = compile preprocessfile "ws_fnc\tools\ws_fnc_setGVar"; - - //Misc Functions - ws_fnc_switchLights = compile preprocessfile "ws_fnc\misc\fn_switchLights.sqf"; - ws_fnc_attachLight = compile preprocessfile "ws_fnc\misc\fn_attachLight.sqf"; - - //GetPos Functions - ws_fnc_getPos = compile preprocessfile "ws_fnc\getPos\fn_getPos.sqf"; - ws_fnc_NearestRoadPos = compile preprocessfile "ws_fnc\getPos\fn_NearestRoadPos.sqf"; - ws_fnc_NearestLandPos = compile preprocessfile "ws_fnc\getPos\fn_NearestLandPos.sqf"; - ws_fnc_getPosInArea = compile preprocessfile "ws_fnc\getPos\fn_getPosInArea.sqf"; - ws_fnc_getBPos = compile preprocessfile "ws_fnc\getPos\fn_getBPos.sqf"; - ws_fnc_getEPos = compile preprocessfile "ws_fnc\getPos\fn_getEPos.sqf"; - - //AI Functions - ws_fnc_enterBuilding = compile preprocessfile "ws_fnc\AI\fn_enterBuilding.sqf"; - ws_fnc_taskDefend = compile preprocessfile "ws_fnc\AI\fn_taskDefend.sqf"; - ws_fnc_taskCrew = compile preprocessfile "ws_fnc\AI\fn_taskCrew.sqf"; - ws_fnc_createGroup = compile preprocessfile "ws_fnc\AI\fn_createGroup.sqf"; - ws_fnc_createVehicle = compile preprocessfile "ws_fnc\AI\fn_createVehicle.sqf"; - ws_fnc_createGarrison = compile preprocessfile "ws_fnc\AI\fn_createGarrison.sqf"; - ws_fnc_addWaypoint = compile preprocessfile "ws_fnc\AI\fn_addWaypoint.sqf"; - ws_fnc_bettervehicle = compile preprocessfile "ws_fnc\AI\fn_betterVehicle.sqf"; - ws_fnc_setAIMode = compile preprocessfile "ws_fnc\AI\fn_setAIMode.sqf"; -}; - -ws_fnc_compiled = true; \ No newline at end of file From a63d4cc7f78c23a5f52c40cecdb174a9294dffe0 Mon Sep 17 00:00:00 2001 From: Pooter Date: Wed, 20 Sep 2017 17:58:01 -0700 Subject: [PATCH 056/407] Drag updates --- f/medical/fn_onDrag.sqf | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf index ab4c64f57..e1eb8924f 100644 --- a/f/medical/fn_onDrag.sqf +++ b/f/medical/fn_onDrag.sqf @@ -41,16 +41,6 @@ if(local _unit) then }; // Wait until the unit is released, dead, downed, or revived) -diag_log "starting drag"; -diag_log isNil "_dragged_unit"; -diag_log !(_unit getVariable ["f_wound_being_dragged", false]); -diag_log GET_STATE(_unit) != STATE_INCAPACITATED; -diag_log GET_STATE(_dragger) == STATE_INCAPACITATED; -diag_log IS_BEING_REVIVED(_unit); -diag_log !alive _unit; -diag_log !alive _dragger; -diag_log !(isPlayer _dragger); -diag_log !(isPlayer _unit); waitUntil { sleep 0.1; _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; @@ -73,9 +63,13 @@ if (_actionIdx != -1) then { _dragger removeAction _actionIdx; }; _dragger setVariable ["f_wound_dragging", nil, true]; _unit setVariable ["f_wound_being_dragged", false, true]; detach _unit; -[_unit, _dragger] spawn { - params ["_unit", "_dragger"];' +if(local _unit) then { + [_unit, _dragger] spawn { + sleep 0.1; + params ["_unit", "_dragger"]; - _unit setPosATL (_unit getPos [1.2, direction _dragger]); + _unit setPosATL (_unit getPos [1.2, direction _dragger]); + }; }; + _dragger switchmove ""; //otherwise player might get stuck From 051bf1c246225c4dc8e4e484dd19c27c17696b6c Mon Sep 17 00:00:00 2001 From: Pooter Date: Wed, 20 Sep 2017 17:59:11 -0700 Subject: [PATCH 057/407] Drag updates --- f/medical/fn_EjectWounded.sqf | 1 - f/medical/fn_onDrag.sqf | 1 - f/medical/fn_reviveEhDammaged.sqf | 2 -- f/medical/fn_reviveEhKilledInVeh.sqf | 1 - 4 files changed, 5 deletions(-) diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf index 4911509bf..4308ea47e 100644 --- a/f/medical/fn_EjectWounded.sqf +++ b/f/medical/fn_EjectWounded.sqf @@ -10,7 +10,6 @@ if(isServer) then { { _originalOwnerId = _x getVariable["#revOwner", -1]; if(_originalOwnerId != -1) then { - diag_log format ["telling %1 to reinhabit", _originalOwnerId]; [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; }; }; diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf index e1eb8924f..96acaf1f9 100644 --- a/f/medical/fn_onDrag.sqf +++ b/f/medical/fn_onDrag.sqf @@ -21,7 +21,6 @@ _unit setVariable ["f_wound_being_dragged", true, true]; private _actionIdx = -1; -diag_log local _dragger; // the dragger gets a release option. if(local _dragger) then { diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index 6379a32d4..7058a4202 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -22,12 +22,10 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc if (isNull _source || {!bis_revive_killfeedShow}) then { SET_STATE(_unit,STATE_INCAPACITATED); - diag_log format ["setting incapped outside damage: %1",_this]; } else { SET_STATE_XTRA(_unit,STATE_INCAPACITATED,_source); - diag_log format ["setting incapped outside damage: %1",_this]; }; //tell others that we are draggable diff --git a/f/medical/fn_reviveEhKilledInVeh.sqf b/f/medical/fn_reviveEhKilledInVeh.sqf index 6f900e479..bf2b25501 100644 --- a/f/medical/fn_reviveEhKilledInVeh.sqf +++ b/f/medical/fn_reviveEhKilledInVeh.sqf @@ -2,7 +2,6 @@ params ["_unit"]; private _downInVeh = _unit getVariable ["#revDownInVeh", false]; private _originalOwner = _unit getVariable ["#revOwner", -1]; -diag_log format["down in veh %1", _downInVeh]; if (_downInVeh && _originalOwner == clientOwner) then { F_UncCC ppEffectEnable false; _camera = player; From 66d092d1c8320a5d367b6ba9e149764f5c16dab6 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sun, 24 Sep 2017 16:42:01 +0100 Subject: [PATCH 058/407] Replaced most comparision uses of typeName with isEqualType --- f/EandEcheck/f_EandECheckLoop.sqf | 8 ++++---- f/assignGear/f_assignGear_attachments.sqf | 6 +++--- f/briefing/f_loadoutNotes.sqf | 2 +- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 6 +++--- f/medical/fn_findDeadAnim.sqf | 2 +- f/setAISkill/fn_setAISkill.sqf | 6 +++--- ws_fnc/AI/fn_createVehicle.sqf | 4 ++-- ws_fnc/AI/fn_enterBuilding.sqf | 4 ++-- ws_fnc/Tools/fn_collectBuildings.sqf | 4 ++-- ws_fnc/Tools/fn_collectMarkers.sqf | 4 ++-- ws_fnc/Tools/fn_collectObjectsNum.sqf | 4 ++-- ws_fnc/getPos/fn_getBpos.sqf | 4 ++-- ws_fnc/getPos/fn_getPos.sqf | 4 ++-- ws_fnc/getPos/fn_getPosInArea.sqf | 4 ++-- 14 files changed, 31 insertions(+), 31 deletions(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index 12036a99a..2f427a251 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -35,7 +35,7 @@ waitUntil {sleep 0.1;scriptDone f_script_setLocalVars}; // Conduct several checks against the first variable to see if we're dealing with a specific unit, a group or an array of several groups or units. // If a side was passed, just use the global variable generated by F3 -if (typeName _objects == "SIDE") then { +if (_objects isEqualType sideUnknown) then { switch (_objects) do { case west: {_units = f_var_men_BLU}; case blufor: {_units = f_var_men_BLU}; @@ -60,7 +60,7 @@ if (typeName _objects == "SIDE") then { { _temp = call compile format ["%1",_x]; player globalchat format ["%1",typeName _temp]; - if (typename _temp == "GROUP") then { + if (_temp isEqualType grpNull) then { { if !(_x in _units) then { _units set [count _units,_x]; @@ -139,11 +139,11 @@ sleep 3; // Depending on input, either MPEnd or the parsed code itself is called if (_safe > 0) then { - if (typeName _end == typeName 0) exitWith { + if (_end isEqualType 0) exitWith { [_end] call f_fnc_mpEnd; }; - if (typeName _end == typeName {}) exitWith { + if (_end isEqualType {}) exitWith { _end remoteExec ["bis_fnc_spawn",0]; }; }; diff --git a/f/assignGear/f_assignGear_attachments.sqf b/f/assignGear/f_assignGear_attachments.sqf index e0256f309..16ec909ad 100644 --- a/f/assignGear/f_assignGear_attachments.sqf +++ b/f/assignGear/f_assignGear_attachments.sqf @@ -1,4 +1,4 @@ -if (typeName _attachments == typeName []) then { +if (_attachments isEqualType []) then { removeAllPrimaryWeaponItems _unit; { // loop trough the attachments and add them to the weapon @@ -7,10 +7,10 @@ if (typeName _attachments == typeName []) then { }; // Handle handgun attachments -if (typeName _hg_attachments == typeName []) then { +if (_hg_attachments isEqualType []) then { removeAllHandgunItems _unit; { // loop trough the attachments and add them to the weapon _unit addHandgunItem _x; } foreach _hg_attachments; -}; \ No newline at end of file +}; diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index a139c7adc..c71e9d6d0 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -90,7 +90,7 @@ if (count _weps > 0) then { _attachments = [_attachments,0] call BIS_fnc_removeIndex; // Remove the first element as it points to the weapon itself { - if (typeName _x != typeName [] && {_x != ""}) then { + if (!(_x isEqualType []) && {_x != ""}) then { _text = _text + format["
|- %1",getText (configFile >> "CfgWeapons" >> _x >> "displayname")]; }; } forEach _attachments; diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index 85b2987af..2ceb39f12 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -48,7 +48,7 @@ _faction = if (count _this > 4) then {_this select 4} else {[]}; _grps = []; -if(typeName _grpstemp == "SIDE") then // if the variable is any of the side variables use it to consturct a list of groups in that faction. +if(_grpstemp isEqualType sideUnknown) then // if the variable is any of the side variables use it to consturct a list of groups in that faction. { { @@ -152,11 +152,11 @@ while {true} do // END CASCAP // Depending on input, either MPEnd or the parsed code itself is called -if (typeName _end == typeName 0) exitWith { +if (_end isEqualType 0) exitWith { [_end] call f_fnc_mpEnd; }; -if (typeName _end == typeName {}) exitWith { +if (_end isEqualType {}) exitWith { _end remoteExec ["bis_fnc_spawn", 0]; }; diff --git a/f/medical/fn_findDeadAnim.sqf b/f/medical/fn_findDeadAnim.sqf index bf530b34d..11a1245a1 100644 --- a/f/medical/fn_findDeadAnim.sqf +++ b/f/medical/fn_findDeadAnim.sqf @@ -2,7 +2,7 @@ params ["_unit"]; _countCondit = { params["_animEntry", "_testString"]; - if(typeName _animEntry == "STRING") exitWith { + if(_animEntry isEqualType "") exitWith { _animEntry find _testString != -1 }; false diff --git a/f/setAISkill/fn_setAISkill.sqf b/f/setAISkill/fn_setAISkill.sqf index 4baa1e094..6f349d753 100644 --- a/f/setAISkill/fn_setAISkill.sqf +++ b/f/setAISkill/fn_setAISkill.sqf @@ -30,7 +30,7 @@ if (_unit getVariable ["f_setAISkill",false]) exitWith {}; // ==================================================================================== // If no skill-array was passed, set it to the relevant side's skill-level at first -if (typeName _skillset == typeName false) then { +if (_skillset isEqualType false) then { _skillset = switch (side _unit) do { case west: {f_var_skillBLU}; @@ -47,12 +47,12 @@ if (typeName _skillset == typeName false) then { // ==================================================================================== // If the faction's skill level is not configured, exit and ignore the unit from now on -if (typename _skillset == typename 0 && {_skillset == 99}) exitWith {_unit setVariable ["f_setAISkill",true];}; +if (_skillset isEqualType 0 && {_skillset == 99}) exitWith {_unit setVariable ["f_setAISkill",true];}; // ==================================================================================== // If a specific skill level was passed, populate _skillArray using the new value. -if (typename _skillset == typename 0) then { +if (_skillset isEqualType 0) then { _skill = _skillset; _skillArray = []; for '_x' from 0 to 8 do { diff --git a/ws_fnc/AI/fn_createVehicle.sqf b/ws_fnc/AI/fn_createVehicle.sqf index abd118514..005888375 100644 --- a/ws_fnc/AI/fn_createVehicle.sqf +++ b/ws_fnc/AI/fn_createVehicle.sqf @@ -81,7 +81,7 @@ if (_count > 5) then {_code = _this select 5}; {[_x,["SCALAR"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_guards,_pos select 0,_pos select 1]; {[_x,["STRING","CODE"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_code]; -if (typename _side == "SIDE") then { +if (_side isEqualType sideUnknown) then { _grp = createGroup _side;} else {_grp = _side}; @@ -176,4 +176,4 @@ if (_debug) then { }; //Script outputs the generated vehicle -[_veh,_vehgrp,_grp,_this] \ No newline at end of file +[_veh,_vehgrp,_grp,_this] diff --git a/ws_fnc/AI/fn_enterBuilding.sqf b/ws_fnc/AI/fn_enterBuilding.sqf index 34cb07b63..27e84db9d 100644 --- a/ws_fnc/AI/fn_enterBuilding.sqf +++ b/ws_fnc/AI/fn_enterBuilding.sqf @@ -22,7 +22,7 @@ _units = _this select 0; _barray = _this select 1; _threshold = if (count _this > 2) then [{_this select 2},{1}]; //Percentage of building positions that can be taken before building is considered "full" -if (typename _barray != "ARRAY") then {_barray = [_this select 1]}; +if (!(_barray isEqualType [])) then {_barray = [_this select 1]}; if (_threshold <= 0) then {_threshold = 0.1}; // As long we have units and a more than one building we loop through either @@ -119,4 +119,4 @@ while {count _units > 0 && count _barray > 0} do { }; }; -_units \ No newline at end of file +_units diff --git a/ws_fnc/Tools/fn_collectBuildings.sqf b/ws_fnc/Tools/fn_collectBuildings.sqf index c8453a208..82fb2b5f4 100644 --- a/ws_fnc/Tools/fn_collectBuildings.sqf +++ b/ws_fnc/Tools/fn_collectBuildings.sqf @@ -51,7 +51,7 @@ if !(ws_game_a3) then { if (_flag1) then { { _bp = _x buildingPos 0; - if (str _bp == "[0,0,0]" || typeName _bp != typeName []) then {_buildings = _buildings - [_x]}; + if (str _bp == "[0,0,0]" || !(_bp isEqualType [])) then {_buildings = _buildings - [_x]}; } forEach _buildings; }; @@ -62,4 +62,4 @@ if (_flag2) then { }; -_buildings \ No newline at end of file +_buildings diff --git a/ws_fnc/Tools/fn_collectMarkers.sqf b/ws_fnc/Tools/fn_collectMarkers.sqf index 8d53d90fa..e2158c1c9 100644 --- a/ws_fnc/Tools/fn_collectMarkers.sqf +++ b/ws_fnc/Tools/fn_collectMarkers.sqf @@ -21,7 +21,7 @@ private ["_arr"]; _arr = []; -if (typeName _this != typeName []) then { +if (!(_this isEqualType [])) then { _this = [_this]; }; @@ -34,4 +34,4 @@ if (typeName _this != typeName []) then { } forEach allMapMarkers; } forEach _this; -_arr \ No newline at end of file +_arr diff --git a/ws_fnc/Tools/fn_collectObjectsNum.sqf b/ws_fnc/Tools/fn_collectObjectsNum.sqf index c158e8b57..f28a846b8 100644 --- a/ws_fnc/Tools/fn_collectObjectsNum.sqf +++ b/ws_fnc/Tools/fn_collectObjectsNum.sqf @@ -25,7 +25,7 @@ _arr = []; _i = 0; _done = false; -if (typeName _this != typeName []) then { +if (!(_this isEqualType [])) then { _this = [_this]; }; @@ -47,4 +47,4 @@ if (typeName _this != typeName []) then { }; } forEach _this; -_arr \ No newline at end of file +_arr diff --git a/ws_fnc/getPos/fn_getBpos.sqf b/ws_fnc/getPos/fn_getBpos.sqf index 0820c4342..c261a9568 100644 --- a/ws_fnc/getPos/fn_getBpos.sqf +++ b/ws_fnc/getPos/fn_getBpos.sqf @@ -24,7 +24,7 @@ _bposarray = _building getVariable ["ws_bPos",false]; [_building,["OBJECT"],format ["ws_fnc_getBpos: %1",_building]] call ws_fnc_typecheck; _i = 0; -if (typeName _bposarray != typeName []) then { +if (!(_bposarray isEqualType [])) then { _bposarray = []; _bp = _building buildingpos _i; @@ -45,4 +45,4 @@ if (typeName _bposarray != typeName []) then { //["ws_fnc_getBpos DBG1: ",[_building,(_building getVariable "ws_bpos"),_occupied],""] call ws_fnc_debugText; -_bposarray \ No newline at end of file +_bposarray diff --git a/ws_fnc/getPos/fn_getPos.sqf b/ws_fnc/getPos/fn_getPos.sqf index c9561df98..505df2e5c 100644 --- a/ws_fnc/getPos/fn_getPos.sqf +++ b/ws_fnc/getPos/fn_getPos.sqf @@ -105,7 +105,7 @@ if (!_building && (count (_pos nearObjects ["House",5]) >= 1)) then { _done = false; while {!_done && _i <= 100} do { for "_x" from 0 to 340 step 20 do { - if (typeName _posradius == "BOOL") then {_pos = [_posloc] call ws_fnc_getPosInArea;} else { + if (_posradius isEqualType false) then {_pos = [_posloc] call ws_fnc_getPosInArea;} else { _distance = _distance + 5; _pos set [0,_posX + (_distance * sin _x)]; _pos set [1,_posY + (_distance * cos _x)]; @@ -131,4 +131,4 @@ player globalchat format ["DEBUG: ws_fnc_getPos done. Pos is %1, direction is %2 }; //Return the new position -_pos \ No newline at end of file +_pos diff --git a/ws_fnc/getPos/fn_getPosInArea.sqf b/ws_fnc/getPos/fn_getPosInArea.sqf index f43de7a6a..abf24b0c8 100644 --- a/ws_fnc/getPos/fn_getPosInArea.sqf +++ b/ws_fnc/getPos/fn_getPosInArea.sqf @@ -35,7 +35,7 @@ switch (typeName _area) do { case "STRING":{ _center = getMarkerPos _area; _shape = MarkerShape _area; _dir = markerDir _area;_area = markerSize _area;}; }; -if (typename _shape == typename "") then { +if (_shape isEqualType "") then { switch (_shape) do { case "RECTANGLE": {_shape = true;}; case "ELLIPSE": {_shape = false;}; @@ -81,4 +81,4 @@ _pos = [ 0 ]; -_pos \ No newline at end of file +_pos From 7bfa84778e31ce359bb33063696910c8b6a9fc84 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sun, 24 Sep 2017 17:01:28 +0100 Subject: [PATCH 059/407] Replaced BIS_fnc_inString with find --- f/assignGear/f_assignGear_AI.sqf | 2 +- f/setTeamColours/f_setTeamColours.sqf | 2 +- ws_fnc/Tools/fn_collectMarkers.sqf | 2 +- ws_fnc/Tools/fn_collectObjects.sqf | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/f/assignGear/f_assignGear_AI.sqf b/f/assignGear/f_assignGear_AI.sqf index 76a5145cb..20394358c 100644 --- a/f/assignGear/f_assignGear_AI.sqf +++ b/f/assignGear/f_assignGear_AI.sqf @@ -102,7 +102,7 @@ _units = if (count _this == 0) then [{waitUntil {scriptDone f_script_setLocalVar if !(_faction in _excludeFactions) then { _known = false; { - _known = [toLower (_x select 0),toLower (typeOf _unit)] call BIS_fnc_inString; + _known = (toLower (typeOf _unit)) find (toLower (_x select 0)) != -1; // If the unit's classname corresponds to a class in the assignment array, set it's gear accordingly if (_known) exitWith { diff --git a/f/setTeamColours/f_setTeamColours.sqf b/f/setTeamColours/f_setTeamColours.sqf index 480ae46a4..78d382fcd 100644 --- a/f/setTeamColours/f_setTeamColours.sqf +++ b/f/setTeamColours/f_setTeamColours.sqf @@ -41,7 +41,7 @@ private _isFireteam = false; // If the group isn't a full fireteam, leave teams as default. { - if ([_x, format["%1",(leader (group _unit))]] call BIS_fnc_inString) exitWith {_isFireteam = true;} + if ((format["%1",(leader (group _unit))] find _x) != -1) exitWith {_isFireteam = true;} } forEach _leaders; if(!_isFireteam) exitWith {}; diff --git a/ws_fnc/Tools/fn_collectMarkers.sqf b/ws_fnc/Tools/fn_collectMarkers.sqf index 8d53d90fa..566e5d518 100644 --- a/ws_fnc/Tools/fn_collectMarkers.sqf +++ b/ws_fnc/Tools/fn_collectMarkers.sqf @@ -28,7 +28,7 @@ if (typeName _this != typeName []) then { { _marker = _x; { - if ([_marker, _x] call BIS_fnc_inString) then { + if (_x find _marker != -1) then { _arr append [_x]; }; } forEach allMapMarkers; diff --git a/ws_fnc/Tools/fn_collectObjects.sqf b/ws_fnc/Tools/fn_collectObjects.sqf index edbfe8839..b67033788 100644 --- a/ws_fnc/Tools/fn_collectObjects.sqf +++ b/ws_fnc/Tools/fn_collectObjects.sqf @@ -27,10 +27,10 @@ _arr = []; { _obj = _x; { - if ([_obj, format ["%1",_x]] call BIS_fnc_inString) then { + if (((format ["%1",_x]) find _obj) != -1) then { _arr append [_x]; }; } forEach allMissionObjects "ALL"; } forEach _this; -_arr \ No newline at end of file +_arr From 292ee82aa04402bfe706c72391ba4743768ecbe2 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sun, 24 Sep 2017 17:17:45 +0100 Subject: [PATCH 060/407] Added support for assembled vehicles to Disable Thermals --- f/disableThermals/fn_disableThermals.sqf | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/f/disableThermals/fn_disableThermals.sqf b/f/disableThermals/fn_disableThermals.sqf index e7a3381b5..7f13cb744 100644 --- a/f/disableThermals/fn_disableThermals.sqf +++ b/f/disableThermals/fn_disableThermals.sqf @@ -32,4 +32,15 @@ _allowedUnits = []; } else { _vehicleToCheck disableTIEquipment true; } -} foreach vehicles; \ No newline at end of file +} foreach vehicles; + +// HANDLE ASSEMBLED VEHICLES +// Create event handler to disable thermals on assembled vehicles (e.g. UAV) unless that type is allowed to have thermals + +player addEventHandler ["WeaponAssembled", { + params ["", ["_assembled", objNull, [objNull]]]; + + if ({_assembled isKindOf _x} count _allowedTypes == 0) then { + _assembled disableTIEquipment true; + } +}]; From 3af29aa32dced1461557eaa377bab2a91150d1d2 Mon Sep 17 00:00:00 2001 From: Lexer Date: Sun, 24 Sep 2017 17:44:01 +0100 Subject: [PATCH 061/407] Fixed variable scoping issue in Disable Thermals --- f/disableThermals/fn_disableThermals.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/f/disableThermals/fn_disableThermals.sqf b/f/disableThermals/fn_disableThermals.sqf index 7f13cb744..30142ca42 100644 --- a/f/disableThermals/fn_disableThermals.sqf +++ b/f/disableThermals/fn_disableThermals.sqf @@ -37,10 +37,13 @@ _allowedUnits = []; // HANDLE ASSEMBLED VEHICLES // Create event handler to disable thermals on assembled vehicles (e.g. UAV) unless that type is allowed to have thermals +// Need to export _allowedTypes so that the event handler can access it +f_var_disableThermals_allowedTypes = _allowedTypes; + player addEventHandler ["WeaponAssembled", { params ["", ["_assembled", objNull, [objNull]]]; - if ({_assembled isKindOf _x} count _allowedTypes == 0) then { + if ({_assembled isKindOf _x} count f_var_disableThermals_allowedTypes == 0) then { _assembled disableTIEquipment true; } }]; From ebfebbcb5d76001a792085feff4ec895408876bb Mon Sep 17 00:00:00 2001 From: Pooter Date: Sun, 24 Sep 2017 19:41:11 -0700 Subject: [PATCH 062/407] Removing debugging code --- f/medical/fn_onDrag.sqf | 11 ----------- init.sqf | 4 ++-- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf index 96acaf1f9..af187e7c5 100644 --- a/f/medical/fn_onDrag.sqf +++ b/f/medical/fn_onDrag.sqf @@ -1,16 +1,5 @@ // F3 - SimpleWoundingSystem -/* -//\ -unit placement post drag -post drag revive problems -revive ragdoll drag -test: -dragger down -dragger dead - - -*/ // ==================================================================================== #include "\a3\functions_f_mp_mark\Revive\defines.inc" diff --git a/init.sqf b/init.sqf index 9697e5bfc..f7ef53e1f 100644 --- a/init.sqf +++ b/init.sqf @@ -27,7 +27,7 @@ enableSaving [false, false]; // F3 - Mission Timer/Safe Start // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -//\[] execVM "f\safeStart\f_safeStart.sqf"; +[] execVM "f\safeStart\f_safeStart.sqf"; // ==================================================================================== @@ -191,4 +191,4 @@ f_var_civAI = independent; // Optional: The civilian AI will use this side's s // F3 - Disable Thermals // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) [] spawn f_fnc_disableThermals; -// [[UnitName1, "UnitClass1"]] spawn f_fnc_disableThermals; \ No newline at end of file +// [[UnitName1, "UnitClass1"]] spawn f_fnc_disableThermals; From dba7b757326e2049ab2da606eb3437b6e07f084c Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Mon, 25 Sep 2017 14:55:53 +0200 Subject: [PATCH 063/407] AAF car and truck inventories now carries same number of items as other factions --- f/assignGear/f_assignGear_aaf_v.sqf | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf_v.sqf b/f/assignGear/f_assignGear_aaf_v.sqf index 56772a5dd..2bd43fda6 100644 --- a/f/assignGear/f_assignGear_aaf_v.sqf +++ b/f/assignGear/f_assignGear_aaf_v.sqf @@ -7,10 +7,10 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 1]; + _unit addWeaponCargoGlobal [_carbine, 2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; - _unit addMagazineCargoGlobal [_carbinemag, 8]; + _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; _unit addMagazineCargoGlobal [_ratmag, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; @@ -28,7 +28,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponCargoGlobal [_carbine, 10]; + _unit addMagazineCargoGlobal [_riflemag, 40]; + _unit addMagazineCargoGlobal [_glriflemag, 40]; + _unit addMagazineCargoGlobal [_carbinemag, 40]; + _unit addMagazineCargoGlobal [_armag, 22]; + _unit addMagazineCargoGlobal [_ratmag, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; From 6d26abb5f814621c582fc0b93647e71c54495d2f Mon Sep 17 00:00:00 2001 From: ninjaProtocol Date: Mon, 25 Sep 2017 15:28:32 +0200 Subject: [PATCH 064/407] Temporary fix to prevent issues with FIA AK vehicle loadout --- f/assignGear/f_assignGear_fiaAK_light.sqf | 3 +++ f/assignGear/f_assignGear_fiaAK_standard.sqf | 3 +++ 2 files changed, 6 insertions(+) diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index 52dda7304..ae547ebd6 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -527,6 +527,9 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 3]; _unit addmagazines [_smokegrenade, 5]; }; + +// Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf +_carbine = [_carbine]; // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index 5e45fb47a..ec03c935c 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -539,6 +539,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 4]; }; +// Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf +_carbine = [_carbine]; + // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; From b07ac9a3d04fa78ba540e0942d10b3bab6c8e09a Mon Sep 17 00:00:00 2001 From: Ciaran Date: Mon, 25 Sep 2017 15:18:23 +0100 Subject: [PATCH 065/407] Fixes/Tweaks for assignGear Vehicle Loadouts Fixes AAF having different loadout to other factions, reduces cargo carried by trucks and IFVs. Also includes a temporary fix for fiaAK vehicle loadouts. --- f/assignGear/f_assignGear_aaf_v.sqf | 23 +++++++++------ f/assignGear/f_assignGear_csat_v.sqf | 30 ++++++++++---------- f/assignGear/f_assignGear_ctrg_v.sqf | 30 ++++++++++---------- f/assignGear/f_assignGear_fiaAK_light.sqf | 5 +++- f/assignGear/f_assignGear_fiaAK_standard.sqf | 5 +++- f/assignGear/f_assignGear_fia_v.sqf | 20 ++++++------- f/assignGear/f_assignGear_nato_v.sqf | 30 ++++++++++---------- f/assignGear/f_assignGear_syndikat_v.sqf | 20 ++++++------- 8 files changed, 87 insertions(+), 76 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf_v.sqf b/f/assignGear/f_assignGear_aaf_v.sqf index 56772a5dd..78d94bc58 100644 --- a/f/assignGear/f_assignGear_aaf_v.sqf +++ b/f/assignGear/f_assignGear_aaf_v.sqf @@ -7,10 +7,10 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 1]; + _unit addWeaponCargoGlobal [_carbine, 2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; - _unit addMagazineCargoGlobal [_carbinemag, 8]; + _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; _unit addMagazineCargoGlobal [_ratmag, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; @@ -29,6 +29,11 @@ clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; + _unit addMagazineCargoGlobal [_ratmag, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; @@ -59,7 +64,7 @@ _unit addMagazineCargoGlobal [_glsmokewhite, 4]; _unit addItemCargoGlobal [_firstaid,6]; }; - + //CARGO: TANK case "v_tank": { @@ -73,7 +78,7 @@ _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Light case "v_helo_l": { @@ -92,7 +97,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Medium case "v_helo_m": { @@ -118,7 +123,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Heavy case "v_helo_h": { @@ -145,7 +150,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Attack case "v_helo_a": { @@ -158,7 +163,7 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; }; - + //CARGO: Jet case "v_jet": { @@ -234,4 +239,4 @@ _unit addMagazineCargoGlobal [_smokegrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; _unit addItemCargoGlobal [_firstaid, 75]; - }; \ No newline at end of file + }; diff --git a/f/assignGear/f_assignGear_csat_v.sqf b/f/assignGear/f_assignGear_csat_v.sqf index 387df3a6b..39d4f558c 100644 --- a/f/assignGear/f_assignGear_csat_v.sqf +++ b/f/assignGear/f_assignGear_csat_v.sqf @@ -28,11 +28,11 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 10]; - _unit addMagazineCargoGlobal [_riflemag, 40]; - _unit addMagazineCargoGlobal [_glriflemag, 40]; - _unit addMagazineCargoGlobal [_carbinemag, 40]; - _unit addMagazineCargoGlobal [_armag, 22]; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; _unit addMagazineCargoGlobal [_ratmag, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; @@ -50,10 +50,10 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; - _unit addMagazineCargoGlobal [_riflemag, 20]; - _unit addMagazineCargoGlobal [_glriflemag, 20]; - _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; _unit addMagazineCargoGlobal [_ratmag, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; @@ -78,7 +78,7 @@ _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Light case "v_helo_l": { @@ -97,7 +97,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Medium case "v_helo_m": { @@ -123,7 +123,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Heavy case "v_helo_h": { @@ -150,7 +150,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Attack case "v_helo_a": { @@ -163,7 +163,7 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; }; - + //CARGO: Jet case "v_jet": { @@ -239,4 +239,4 @@ _unit addMagazineCargoGlobal [_smokegrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; _unit addItemCargoGlobal [_firstaid, 75]; - }; \ No newline at end of file + }; diff --git a/f/assignGear/f_assignGear_ctrg_v.sqf b/f/assignGear/f_assignGear_ctrg_v.sqf index 344fff47e..1102e472e 100644 --- a/f/assignGear/f_assignGear_ctrg_v.sqf +++ b/f/assignGear/f_assignGear_ctrg_v.sqf @@ -28,11 +28,11 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 10]; - _unit addMagazineCargoGlobal [_riflemag, 40]; - _unit addMagazineCargoGlobal [_glriflemag, 40]; - _unit addMagazineCargoGlobal [_carbinemag, 40]; - _unit addMagazineCargoGlobal [_armag, 22]; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; _unit addMagazineCargoGlobal [_ratmag, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; @@ -50,10 +50,10 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; - _unit addMagazineCargoGlobal [_riflemag, 20]; - _unit addMagazineCargoGlobal [_glriflemag, 20]; - _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; _unit addMagazineCargoGlobal [_ratmag, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; @@ -78,7 +78,7 @@ _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Light case "v_helo_l": { @@ -97,7 +97,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Medium case "v_helo_m": { @@ -123,7 +123,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Heavy case "v_helo_h": { @@ -150,7 +150,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Attack case "v_helo_a": { @@ -163,7 +163,7 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; }; - + //CARGO: Jet case "v_jet": { @@ -239,4 +239,4 @@ _unit addMagazineCargoGlobal [_smokegrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; _unit addItemCargoGlobal [_firstaid, 75]; - }; \ No newline at end of file + }; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index 52dda7304..6efd2a9bb 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -528,10 +528,13 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 5]; }; +// Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf +_carbine = [_carbine]; + // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index 5e45fb47a..fcba3917a 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -539,10 +539,13 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 4]; }; +// Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf +_carbine = [_carbine]; + // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_fia_v.sqf b/f/assignGear/f_assignGear_fia_v.sqf index 11dba3122..6c8f587c4 100644 --- a/f/assignGear/f_assignGear_fia_v.sqf +++ b/f/assignGear/f_assignGear_fia_v.sqf @@ -28,11 +28,11 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 10]; - _unit addMagazineCargoGlobal [_riflemag, 40]; - _unit addMagazineCargoGlobal [_glriflemag, 40]; - _unit addMagazineCargoGlobal [_carbinemag, 40]; - _unit addMagazineCargoGlobal [_armag, 22]; + _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; _unit addMagazineCargoGlobal [_ratmag, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; @@ -50,10 +50,10 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(_carbine call BIS_fnc_selectRandom), 4]; - _unit addMagazineCargoGlobal [_riflemag, 20]; - _unit addMagazineCargoGlobal [_glriflemag, 20]; - _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; _unit addMagazineCargoGlobal [_ratmag, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; @@ -239,4 +239,4 @@ _unit addMagazineCargoGlobal [_smokegrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; _unit addItemCargoGlobal [_firstaid, 75]; - }; \ No newline at end of file + }; diff --git a/f/assignGear/f_assignGear_nato_v.sqf b/f/assignGear/f_assignGear_nato_v.sqf index 113750c36..7be7155f7 100644 --- a/f/assignGear/f_assignGear_nato_v.sqf +++ b/f/assignGear/f_assignGear_nato_v.sqf @@ -28,11 +28,11 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 10]; - _unit addMagazineCargoGlobal [_riflemag, 40]; - _unit addMagazineCargoGlobal [_glriflemag, 40]; - _unit addMagazineCargoGlobal [_carbinemag, 40]; - _unit addMagazineCargoGlobal [_armag, 22]; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; _unit addMagazineCargoGlobal [_ratmag, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; @@ -50,10 +50,10 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; - _unit addMagazineCargoGlobal [_riflemag, 20]; - _unit addMagazineCargoGlobal [_glriflemag, 20]; - _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; _unit addMagazineCargoGlobal [_ratmag, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; @@ -78,7 +78,7 @@ _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Light case "v_helo_l": { @@ -97,7 +97,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Medium case "v_helo_m": { @@ -123,7 +123,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Transport Heavy case "v_helo_h": { @@ -150,7 +150,7 @@ _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; - + //CARGO: Rotary Attack case "v_helo_a": { @@ -163,7 +163,7 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; }; - + //CARGO: Jet case "v_jet": { @@ -239,4 +239,4 @@ _unit addMagazineCargoGlobal [_smokegrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; _unit addItemCargoGlobal [_firstaid, 75]; - }; \ No newline at end of file + }; diff --git a/f/assignGear/f_assignGear_syndikat_v.sqf b/f/assignGear/f_assignGear_syndikat_v.sqf index a871aee3b..9737b348d 100644 --- a/f/assignGear/f_assignGear_syndikat_v.sqf +++ b/f/assignGear/f_assignGear_syndikat_v.sqf @@ -28,11 +28,11 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 10]; - _unit addMagazineCargoGlobal [_riflemag, 40]; - _unit addMagazineCargoGlobal [_glriflemag, 40]; - _unit addMagazineCargoGlobal [_carbinemag, 40]; - _unit addMagazineCargoGlobal [_armag, 22]; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; _unit addMagazineCargoGlobal [_ratmag, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; @@ -50,10 +50,10 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; - _unit addMagazineCargoGlobal [_riflemag, 20]; - _unit addMagazineCargoGlobal [_glriflemag, 20]; - _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; _unit addMagazineCargoGlobal [_ratmag, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; @@ -239,4 +239,4 @@ _unit addMagazineCargoGlobal [_smokegrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; _unit addItemCargoGlobal [_firstaid, 75]; - }; \ No newline at end of file + }; From 101b4954633b722140fe699e738d57d8aaf11558 Mon Sep 17 00:00:00 2001 From: Pooter Date: Mon, 25 Sep 2017 22:46:40 -0700 Subject: [PATCH 066/407] Updates briefing name --- mission.sqm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mission.sqm b/mission.sqm index 929fe6986..ab2590a07 100644 --- a/mission.sqm +++ b/mission.sqm @@ -237,7 +237,7 @@ class Mission { class Intel { - briefingName="f3-4-1dev_fa15_ws_140716"; + briefingName="fa f3 3.5.0 release"; resistanceWest=0; timeOfChanges=28800; startWeather=0.50001526; From fbd8d06ac434bddb687082154e8716639f30af28 Mon Sep 17 00:00:00 2001 From: Ciaran Date: Thu, 28 Sep 2017 15:38:21 +0100 Subject: [PATCH 067/407] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 7ea3801fb..fa7cd2d84 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## - * F3 3-5-0 * ws_fnc 05/07/2015 From 8d9ca7150872ff3b659941e0f38c5b1b4a7ae7b2 Mon Sep 17 00:00:00 2001 From: Lexer Date: Fri, 29 Sep 2017 22:32:36 +0100 Subject: [PATCH 068/407] Fixed issue with nametags if "Time acceleration" key is unbound --- f/nametag/include/f_nametagBrief.sqf | 2 +- f/nametag/include/f_nametagDisableKey.sqf | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/f/nametag/include/f_nametagBrief.sqf b/f/nametag/include/f_nametagBrief.sqf index 64574df36..9ff57c351 100644 --- a/f/nametag/include/f_nametagBrief.sqf +++ b/f/nametag/include/f_nametagBrief.sqf @@ -14,7 +14,7 @@ waitUntil {scriptDone f_script_briefing}; _bstr = format ["WH NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %4m away, and constantly for all units within %3m.

Note that using CBA will disable this menu and replace it with an enchanced one under ADDON OPTIONS. - ",F_NT_ACTIONKEY_KEYNAME, F_NT_ACTIONKEY_KEY,F_NT_DRAWDISTANCE_NEAR,F_NT_DRAWDISTANCE_CURSOR]; + ",F_NT_ACTIONKEY_KEYNAMES, F_NT_DRAWDISTANCE_NEAR,F_NT_DRAWDISTANCE_CURSOR]; if !F_NT_MOD_CBA then { diff --git a/f/nametag/include/f_nametagDisableKey.sqf b/f/nametag/include/f_nametagDisableKey.sqf index 417fb62dd..c550a65f9 100644 --- a/f/nametag/include/f_nametagDisableKey.sqf +++ b/f/nametag/include/f_nametagDisableKey.sqf @@ -14,15 +14,15 @@ // None of this will execute if the actionkey line in CONFIG is commented out. if (!isNil "F_NT_ACTIONKEY") then { - F_NT_ACTIONKEY_KEY = (actionKeys F_NT_ACTIONKEY) select 0;// This key, a global variable. - F_NT_ACTIONKEY_KEYNAME = actionKeysNames F_NT_ACTIONKEY; // Which is named this... + F_NT_ACTIONKEY_KEYS = actionKeys F_NT_ACTIONKEY;// This key, a global variable. + F_NT_ACTIONKEY_KEYNAMES = actionKeysNames F_NT_ACTIONKEY; // Which is named this... // Function that will determine when the disableKey is depressed. F_NT_KEYDOWN = { _key = _this select 1; _handled = false; - if(_key == F_NT_ACTIONKEY_KEY) then + if(_key in F_NT_ACTIONKEY_KEYS) then { F_NT_NAMETAGS_ON = !F_NT_NAMETAGS_ON; _handled = true; @@ -35,7 +35,7 @@ if (!isNil "F_NT_ACTIONKEY") then { _key = _this select 1; _handled = false; - if(_key == F_NT_ACTIONKEY_KEY) then + if(_key in F_NT_ACTIONKEY_KEYS) then { _handled = true; }; From 0b71c1db7c3f72cb850b74168c3719bed9169a2a Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 30 Sep 2017 22:42:44 +0100 Subject: [PATCH 069/407] Nametags: Fixed format indices --- f/nametag/include/f_nametagBrief.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/nametag/include/f_nametagBrief.sqf b/f/nametag/include/f_nametagBrief.sqf index 9ff57c351..f20d6f0ca 100644 --- a/f/nametag/include/f_nametagBrief.sqf +++ b/f/nametag/include/f_nametagBrief.sqf @@ -9,11 +9,11 @@ // Construct a briefing depending on present settings. //------------------------------------------------------------------------------------ -[] spawn +[] spawn { waitUntil {scriptDone f_script_briefing}; - _bstr = format ["WH NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %4m away, and constantly for all units within %3m.

Note that using CBA will disable this menu and replace it with an enchanced one under ADDON OPTIONS. + _bstr = format ["WH NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %3m away, and constantly for all units within %2m.

Note that using CBA will disable this menu and replace it with an enchanced one under ADDON OPTIONS. ",F_NT_ACTIONKEY_KEYNAMES, F_NT_DRAWDISTANCE_NEAR,F_NT_DRAWDISTANCE_CURSOR]; if !F_NT_MOD_CBA then From 7ece8a807502b5ad4c36d0d164833eecf9052d0c Mon Sep 17 00:00:00 2001 From: Pooter Date: Sun, 1 Oct 2017 10:37:43 -0700 Subject: [PATCH 070/407] Issue-66 spectator problems --- description.ext | 2 +- f/spect/fn_activateSpectator.sqf | 24 ++++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/description.ext b/description.ext index 9569c8d36..b6146d5fc 100644 --- a/description.ext +++ b/description.ext @@ -346,4 +346,4 @@ class CfgRemoteExec { mode = 2; }; -}; \ No newline at end of file +}; diff --git a/f/spect/fn_activateSpectator.sqf b/f/spect/fn_activateSpectator.sqf index 0f47f67dc..e17bbed15 100644 --- a/f/spect/fn_activateSpectator.sqf +++ b/f/spect/fn_activateSpectator.sqf @@ -1,7 +1,23 @@ + + [] spawn { - sleep 0.5; + + if (f_param_debugMode == 1) then { + diag_log "waiting to disable BIS death blur"; + }; + waitUntil {sleep 0.1; ppEffectEnabled BIS_DeathBlur}; + + if (f_param_debugMode == 1) then { + diag_log "diabling BIS death blur"; + }; BIS_DeathBlur ppEffectEnable false; }; - -diag_log "activating spect"; -["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; +if (f_param_debugMode == 1) then { + diag_log "activating spectator"; +}; +[] spawn { + sleep 3; + ["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; +}; +//Remove the bird +deleteVehicle (_this select 0); From e9f81f08f57b1cd46d9fd44fc862671a618d607b Mon Sep 17 00:00:00 2001 From: Pooter Date: Fri, 6 Oct 2017 10:39:51 -0700 Subject: [PATCH 071/407] Drag stuff --- f/functions.hpp | 3 +- f/medical/fn_addDragAction.sqf | 8 ++- .../{fn_onDrag.sqf => fn_onDragDragger.sqf} | 50 +++++++++---------- f/medical/fn_onDragServer.sqf | 13 ++--- f/medical/fn_onDragTarget.sqf | 47 +++++++++++++++++ f/medical/init.sqf | 16 ------ 6 files changed, 83 insertions(+), 54 deletions(-) rename f/medical/{fn_onDrag.sqf => fn_onDragDragger.sqf} (51%) create mode 100644 f/medical/fn_onDragTarget.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 398288cf1..5bd5ff70c 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -105,7 +105,8 @@ class F // Defines the "owner" class reviveEhKilledInVeh {}; class addDragAction {}; class reinhabitBody {}; - class onDrag {}; + class onDragDragger {}; + class onDragTarget {}; class onDragServer {}; class HasWounded {}; class EjectWounded {}; diff --git a/f/medical/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf index 624d36702..6fff02ba2 100644 --- a/f/medical/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -26,11 +26,17 @@ private _drag_action_cond = str { //hacky method to remove the braces at the beginning and end, so that it's the format that addAction expects. _drag_action_cond = _drag_action_cond select [1, count _drag_action_cond - 2]; +_drag_exec_code = { + _this remoteExec ["f_fnc_OnDragServer", 2]; + _this remoteExec ["f_fnc_OnDragDragger", [_this select 1]]; + _this remoteExec ["f_fnc_OnDragTarget", [_this select 0]]; +}; + _resultId = _unit addAction [ format ["Drag %1", name _unit], // _this variable (in the code below) is: [target, caller, ID, arguments] - { _this remoteExec ["f_fnc_OnDrag", [_this select 0,_this select 1]] }, //called for both players + _drag_exec_code, nil, 6, false, diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDragDragger.sqf similarity index 51% rename from f/medical/fn_onDrag.sqf rename to f/medical/fn_onDragDragger.sqf index af187e7c5..823e0c904 100644 --- a/f/medical/fn_onDrag.sqf +++ b/f/medical/fn_onDragDragger.sqf @@ -1,32 +1,26 @@ -// F3 - SimpleWoundingSystem // ==================================================================================== #include "\a3\functions_f_mp_mark\Revive\defines.inc" params ["_unit", "_dragger"]; -_dragger setVariable ["f_wound_dragging", _unit, true]; -_unit setVariable ["f_wound_being_dragged", true, true]; private _actionIdx = -1; +if (f_param_debugMode == 1) then { + diag_log format ["activating drag on %1, being dragged by %2", _unit, _dragger]; +}; // the dragger gets a release option. -if(local _dragger) then { - _this remoteExec ["f_fnc_onDragServer", 2]; - - _actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];(_this select 1) removeAction (_this select 2);}, nil, 6, false, true, "", "true"]; - _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; -}; +_actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];}, nil, 6, false, true, "", "true"]; +_dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; //_unit switchMove "AinjPpneMrunSnonWnonDb"; -if(local _unit) then -{ - // setup the unit and all that fun stuff. - _unit attachTo [_dragger, [0, 1.1, 0.092]]; - _unit SetDir 180; - _unit SetPos (getpos _unit); -}; +//setting these here to prevent race cconditions +_dragger setVariable ["f_wound_dragging", _unit, false]; +_unit setVariable ["f_wound_being_dragged", true, false]; +//though there will be a race condition between the 3 different execs, if the waitUntil +//on the server finishes before we reach here, which really should never happen. // Wait until the unit is released, dead, downed, or revived) waitUntil { @@ -45,19 +39,23 @@ waitUntil { ) }; -// release unit. -if (_actionIdx != -1) then { _dragger removeAction _actionIdx; }; + + + +detach _unit; + + _dragger setVariable ["f_wound_dragging", nil, true]; _unit setVariable ["f_wound_being_dragged", false, true]; -detach _unit; -if(local _unit) then { - [_unit, _dragger] spawn { - sleep 0.1; - params ["_unit", "_dragger"]; - _unit setPosATL (_unit getPos [1.2, direction _dragger]); - }; +if (f_param_debugMode == 1) then { + diag_log format ["releasing unit on dragger"]; +}; +if( GET_STATE(_dragger) == STATE_INCAPACITATED) then { + _dragger switchMove ANIM_WOUNDED; +} else { + _dragger switchMove ""; }; -_dragger switchmove ""; //otherwise player might get stuck +_dragger removeAction _actionIdx; diff --git a/f/medical/fn_onDragServer.sqf b/f/medical/fn_onDragServer.sqf index 060a102a1..bbdbb74c7 100644 --- a/f/medical/fn_onDragServer.sqf +++ b/f/medical/fn_onDragServer.sqf @@ -2,6 +2,9 @@ // ==================================================================================== params ["_unit", "_dragger"]; +_dragger setVariable ["f_wound_dragging", _unit, true]; +_unit setVariable ["f_wound_being_dragged", true, true]; + // Wait until the unit is released, dead or downed, or revived) waitUntil { @@ -20,13 +23,3 @@ waitUntil { || !(isPlayer _unit) ) }; - -_dragger setVariable ["f_wound_dragging", nil, true]; -_unit setVariable ["f_wound_being_dragged", false, true]; -detach _unit; -_unit setPosATL getposATL _dragger; -if( GET_STATE(_dragger) == STATE_INCAPACITATED ) then { - _dragger switchMove ANIM_WOUNDED; -} else { - _dragger switchMove ""; -}; diff --git a/f/medical/fn_onDragTarget.sqf b/f/medical/fn_onDragTarget.sqf new file mode 100644 index 000000000..923ff283f --- /dev/null +++ b/f/medical/fn_onDragTarget.sqf @@ -0,0 +1,47 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + + +params ["_unit", "_dragger"]; + +_dragger setVariable ["f_wound_dragging", _unit, true]; +_unit setVariable ["f_wound_being_dragged", true, true]; + + +if (f_param_debugMode == 1) then { + diag_log format ["receiving drag on %1, being dragged by %2", _unit, _dragger]; +}; + +_unit attachTo [_dragger, [0, 1.1, 0.092]]; +_unit setDir 180; +_unit setPos getPos _unit; + +//setting these here to prevent race cconditions +_dragger setVariable ["f_wound_dragging", _unit, false]; +_unit setVariable ["f_wound_being_dragged", true, false]; +//though there will be a race condition between the 3 different execs, if the waitUntil +//on the server finishes before we reach here + + +// Wait until the unit is released, dead, downed, or revived) +waitUntil { + sleep 0.1; + _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; + ( + isNil "_dragged_unit" //unit is released + || !(_unit getVariable ["f_wound_being_dragged", false]) + || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore + || GET_STATE(_dragger) == STATE_INCAPACITATED // dragger is incapacitated + || IS_BEING_REVIVED(_unit) // someone else is reviving the unit + || !alive _unit + || !alive _dragger + || !(isPlayer _dragger) + || !(isPlayer _unit) + ) +}; + +_dragger setVariable ["f_wound_dragging", nil, true]; +_unit setVariable ["f_wound_being_dragged", false, true]; + +if (f_param_debugMode == 1) then { + diag_log format ["releasing unit on target"]; +}; diff --git a/f/medical/init.sqf b/f/medical/init.sqf index ba1677390..1f7a88bc0 100644 --- a/f/medical/init.sqf +++ b/f/medical/init.sqf @@ -3,22 +3,6 @@ // ==================================================================================== #include "\a3\functions_f_mp_mark\Revive\defines.inc" -/* -CURRENT STATUS: -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -* bis revive JIP is broken. maybe only because of me => test in new mission => maybe we have to go back to sws -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -* test bis revive with zeus and admin tool - https://feedback.bistudio.com/T85766 - - -TEST -test if downed units can drag others. - -what happens if a dragging unit gets downed? - -*/ params ["_unit"]; if (!hasInterface) exitWith {}; From e86936af29b801b3c84396559ae6b4074f581cfc Mon Sep 17 00:00:00 2001 From: s Date: Sun, 8 Oct 2017 16:40:08 +0200 Subject: [PATCH 072/407] E&E: fix formatting, use params, remove switch-case --- f/EandEcheck/f_EandECheckLoop.sqf | 80 +++++++++++++------------------ 1 file changed, 32 insertions(+), 48 deletions(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index 2f427a251..73f71cf3a 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -11,18 +11,15 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_objects","_obj","_safeDistance","_alive","_safe","_end","_pos","_playersonly","_units","_temp"]; +params ["_objects", "_obj", "_safeDistance", "_end", ["_playersonly", true]]; + +private ["_alive","_safe","_pos","_playersonly","_units","_temp"]; // ==================================================================================== // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -_objects = _this select 0; -_obj = _this select 1; -_safeDistance = _this select 2; -_end = _this select 3; -_playersonly = if (count _this > 4) then {_this select 4} else {true}; _safe = 0; _units = []; _pos = []; @@ -34,23 +31,12 @@ waitUntil {sleep 0.1;scriptDone f_script_setLocalVars}; // POPULATE UNITS ARRAY // Conduct several checks against the first variable to see if we're dealing with a specific unit, a group or an array of several groups or units. -// If a side was passed, just use the global variable generated by F3 +// If a side was passed, take all Units from that side if (_objects isEqualType sideUnknown) then { - switch (_objects) do { - case west: {_units = f_var_men_BLU}; - case blufor: {_units = f_var_men_BLU}; - case east: {_units = f_var_men_OPF}; - case opfor: {_units = f_var_men_OPF}; - case resistance: {_units = f_var_men_RES}; - case independent: {_units = f_var_men_RES}; - case civilian: {_units = f_var_men_CIV}; - }; - - // If only players should be checked for, we process the units array to remove any unwanted units if (_playersonly) then { - { - if !(_x in playableUnits) then {_units = _units - [_x]}; - } forEach _units; + _units = playableUnits select { (side _x) == _objects}; + } else { + _units = f_var_men select { (side _x) == _objects}; }; // Otherwise populate the units array using the passed strings, checking if it's either a group or a unit } else { @@ -97,40 +83,40 @@ switch (typeName _obj) do { while {true} do { -// ESTABLISH GROUP SIZE -// We begin by establishing how many units remain alive in the group. We use this to -// establish a baseline value to compare against. + // ESTABLISH GROUP SIZE + // We begin by establishing how many units remain alive in the group. We use this to + // establish a baseline value to compare against. -_alive = {alive _x} count _units; -if (_alive == 0) exitWith {_safe = 0}; + _alive = {alive _x} count _units; + if (_alive == 0) exitWith {_safe = 0}; -// DEBUG -if (f_param_debugMode == 1) then -{ - player sideChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): _alive = %1",_alive]; -}; + // DEBUG + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): _alive = %1",_alive]; + }; -// ==================================================================================== + // ==================================================================================== -// CHECK PROXIMITY -// We then check how many of the units are within the required proximity to the -// objective; if all units qualify then we exit the script. + // CHECK PROXIMITY + // We then check how many of the units are within the required proximity to the + // objective; if all units qualify then we exit the script. -_safe = {(_x distance _pos < _safeDistance)} count _units; + _safe = {(_x distance _pos < _safeDistance)} count _units; -// DEBUG -if (f_param_debugMode == 1) then -{ - player sideChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): _safe = %1",_safe]; -}; + // DEBUG + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): _safe = %1",_safe]; + }; -// As soon as all units have reached the safe-zone, the loop exits -if (_alive == _safe) exitWith {}; -_safe = 0; + // As soon as all units have reached the safe-zone, the loop exits + if (_alive == _safe) exitWith {}; + _safe = 0; -// ==================================================================================== + // ==================================================================================== -sleep 3; + sleep 3; }; // ==================================================================================== @@ -147,5 +133,3 @@ if (_safe > 0) then { _end remoteExec ["bis_fnc_spawn",0]; }; }; - -player GlobalChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; From 263eb076c9b46bc40af19d2c3dab6ea6eca1e607 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 8 Oct 2017 16:40:51 +0200 Subject: [PATCH 073/407] E&E: add support for inArea --- f/EandEcheck/f_EandECheckLoop.sqf | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index 73f71cf3a..ab6458895 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -69,10 +69,12 @@ if (count _units == 0) exitWith {player globalchat format ["DEBUG (f\EandECheck\ // GET SAFE-ZONE POSITION // Get a position for the safe-zone -switch (typeName _obj) do { - case "STRING": {_pos = getMarkerPos _obj}; - case "OBJECT": {_pos = getPosATL _obj}; - default {_pos = getPosATL _obj}; +if (_safeDistance <= 0) then { + switch (typeName _obj) do { + case "STRING": {_pos = getMarkerPos _obj}; + case "OBJECT": {_pos = getPosATL _obj}; + default {_pos = getPosATL _obj}; + }; }; // ==================================================================================== @@ -102,7 +104,11 @@ while {true} do // We then check how many of the units are within the required proximity to the // objective; if all units qualify then we exit the script. - _safe = {(_x distance _pos < _safeDistance)} count _units; + if (_safeDistance <= 0) then { + _safe = {_x inArea _obj} count _units; + } else { + _safe = {(_x distance _pos < _safeDistance)} count _units; + }; // DEBUG if (f_param_debugMode == 1) then From 72e1213515a453edc29db1c6dfc2997979caee65 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 8 Oct 2017 16:57:38 +0200 Subject: [PATCH 074/407] E&E: add example to init.sqf --- init.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/init.sqf b/init.sqf index f7ef53e1f..56ebc472e 100644 --- a/init.sqf +++ b/init.sqf @@ -170,6 +170,8 @@ f_var_civAI = independent; // Optional: The civilian AI will use this side's s // [side,ObjectName or "MarkerName",100,1] execVM "f\EandEcheck\f_EandECheckLoop.sqf"; // [["Grp1","Grp2"],ObjectName or "MarkerName",100,1] execVM "f\EandEcheck\f_EandECheckLoop.sqf"; +// Note: If the 3rd parameter is <= 0 then the 2nd parameter will be used for inArea: +// [side,inArea argument,0,1] execVM "f\EandEcheck\f_EandECheckLoop.sqf"; // ==================================================================================== From 2b7c085a8a41e12b21e2c97dcfa45338f147ed80 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 8 Oct 2017 20:19:22 +0200 Subject: [PATCH 075/407] E&E: fix inverted _safeDistance comparison --- f/EandEcheck/f_EandECheckLoop.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index ab6458895..4b6e1b4d4 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -69,7 +69,7 @@ if (count _units == 0) exitWith {player globalchat format ["DEBUG (f\EandECheck\ // GET SAFE-ZONE POSITION // Get a position for the safe-zone -if (_safeDistance <= 0) then { +if (_safeDistance > 0) then { switch (typeName _obj) do { case "STRING": {_pos = getMarkerPos _obj}; case "OBJECT": {_pos = getPosATL _obj}; From 7d8b84135496a46066df4a93493d11c881474f5d Mon Sep 17 00:00:00 2001 From: Pooter Date: Tue, 17 Oct 2017 18:39:53 -0700 Subject: [PATCH 076/407] Dragging issues --- f/medical/fn_onDragDragger.sqf | 16 +++++++++------- f/medical/fn_onDragServer.sqf | 25 ------------------------- f/medical/fn_onDragTarget.sqf | 3 +-- 3 files changed, 10 insertions(+), 34 deletions(-) delete mode 100644 f/medical/fn_onDragServer.sqf diff --git a/f/medical/fn_onDragDragger.sqf b/f/medical/fn_onDragDragger.sqf index 823e0c904..031aa5b2c 100644 --- a/f/medical/fn_onDragDragger.sqf +++ b/f/medical/fn_onDragDragger.sqf @@ -14,13 +14,12 @@ if (f_param_debugMode == 1) then { // the dragger gets a release option. _actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];}, nil, 6, false, true, "", "true"]; _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; -//_unit switchMove "AinjPpneMrunSnonWnonDb"; -//setting these here to prevent race cconditions -_dragger setVariable ["f_wound_dragging", _unit, false]; -_unit setVariable ["f_wound_being_dragged", true, false]; -//though there will be a race condition between the 3 different execs, if the waitUntil -//on the server finishes before we reach here, which really should never happen. + +_dragger setVariable ["f_wound_dragging", _unit, true]; +_unit setVariable ["f_wound_being_dragged", true, true]; +//though there will be a race condition between the 2 different execs, if the waitUntil +//on the target finishes before we reach here, which really should never happen. // Wait until the unit is released, dead, downed, or revived) waitUntil { @@ -36,6 +35,7 @@ waitUntil { || !alive _dragger || !(isPlayer _dragger) || !(isPlayer _unit) + || (vehicle _dragger != _dragger) ) }; @@ -55,7 +55,9 @@ if (f_param_debugMode == 1) then { if( GET_STATE(_dragger) == STATE_INCAPACITATED) then { _dragger switchMove ANIM_WOUNDED; } else { - _dragger switchMove ""; + if(vehicle _dragger == _dragger) then { + _dragger switchMove ""; + } }; _dragger removeAction _actionIdx; diff --git a/f/medical/fn_onDragServer.sqf b/f/medical/fn_onDragServer.sqf deleted file mode 100644 index bbdbb74c7..000000000 --- a/f/medical/fn_onDragServer.sqf +++ /dev/null @@ -1,25 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - -// ==================================================================================== -params ["_unit", "_dragger"]; -_dragger setVariable ["f_wound_dragging", _unit, true]; -_unit setVariable ["f_wound_being_dragged", true, true]; - - -// Wait until the unit is released, dead or downed, or revived) -waitUntil { - sleep 0.1; - _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; - ( - isNil "_dragged_unit" //unit is released - || !(_unit getVariable ["f_wound_being_dragged", false]) - || !alive _dragger // dragger died - || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore - || GET_STATE(_dragger) == STATE_INCAPACITATED // dragger is incapacitated - || IS_BEING_REVIVED(_unit) // someone else is reviving the unit - || !alive _unit - || !alive _dragger - || !(isPlayer _dragger) - || !(isPlayer _unit) - ) -}; diff --git a/f/medical/fn_onDragTarget.sqf b/f/medical/fn_onDragTarget.sqf index 923ff283f..86eb11386 100644 --- a/f/medical/fn_onDragTarget.sqf +++ b/f/medical/fn_onDragTarget.sqf @@ -18,8 +18,6 @@ _unit setPos getPos _unit; //setting these here to prevent race cconditions _dragger setVariable ["f_wound_dragging", _unit, false]; _unit setVariable ["f_wound_being_dragged", true, false]; -//though there will be a race condition between the 3 different execs, if the waitUntil -//on the server finishes before we reach here // Wait until the unit is released, dead, downed, or revived) @@ -36,6 +34,7 @@ waitUntil { || !alive _dragger || !(isPlayer _dragger) || !(isPlayer _unit) + || (vehicle _dragger != _dragger) ) }; From e0cc7ed1e4c57f4cc9f2302e820fa67e45dc0f57 Mon Sep 17 00:00:00 2001 From: Pooter Date: Sat, 28 Oct 2017 09:32:24 -0700 Subject: [PATCH 077/407] Final Drag pieces --- description.ext | 2 +- f/functions.hpp | 1 - f/medical/fn_addDragAction.sqf | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/description.ext b/description.ext index b6146d5fc..7142f6df3 100644 --- a/description.ext +++ b/description.ext @@ -28,7 +28,7 @@ ReviveRequiredTrait = 0; ReviveRequiredItems = 2; ReviveRequiredItemsFakConsumed = 1; ReviveMedicSpeedMultiplier = 2; -reviveDelay = 6; +reviveDelay = 15; reviveForceRespawnDelay = 99999; reviveBleedOutDelay = 240; // F3 - Start of Notifications block. diff --git a/f/functions.hpp b/f/functions.hpp index 5bd5ff70c..43f320f81 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -107,7 +107,6 @@ class F // Defines the "owner" class reinhabitBody {}; class onDragDragger {}; class onDragTarget {}; - class onDragServer {}; class HasWounded {}; class EjectWounded {}; class addEject {}; diff --git a/f/medical/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf index 6fff02ba2..ec581b812 100644 --- a/f/medical/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -27,7 +27,6 @@ private _drag_action_cond = str { _drag_action_cond = _drag_action_cond select [1, count _drag_action_cond - 2]; _drag_exec_code = { - _this remoteExec ["f_fnc_OnDragServer", 2]; _this remoteExec ["f_fnc_OnDragDragger", [_this select 1]]; _this remoteExec ["f_fnc_OnDragTarget", [_this select 0]]; }; From 184cd55820a646f5606919fc377e8e56bff40d55 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 29 Oct 2017 15:10:40 +0100 Subject: [PATCH 078/407] medical: code deduplication and cleanup --- f/functions.hpp | 3 +- f/medical/fn_EjectWounded.sqf | 2 +- f/medical/fn_addDragAction.sqf | 20 ++++----- f/medical/fn_findDeadAnim.sqf | 53 ++++++++++------------ f/medical/fn_onDrag.sqf | 66 ++++++++++++++++++++++++++++ f/medical/fn_onDragDragger.sqf | 63 -------------------------- f/medical/fn_onDragTarget.sqf | 46 ------------------- f/medical/fn_reInhabitBody.sqf | 2 +- f/medical/fn_reviveEhDammaged.sqf | 4 +- f/medical/fn_reviveEhKilledInVeh.sqf | 2 +- 10 files changed, 105 insertions(+), 156 deletions(-) create mode 100644 f/medical/fn_onDrag.sqf delete mode 100644 f/medical/fn_onDragDragger.sqf delete mode 100644 f/medical/fn_onDragTarget.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 43f320f81..eb8c0f494 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -105,8 +105,7 @@ class F // Defines the "owner" class reviveEhKilledInVeh {}; class addDragAction {}; class reinhabitBody {}; - class onDragDragger {}; - class onDragTarget {}; + class onDrag {}; class HasWounded {}; class EjectWounded {}; class addEject {}; diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf index 4308ea47e..23c61668e 100644 --- a/f/medical/fn_EjectWounded.sqf +++ b/f/medical/fn_EjectWounded.sqf @@ -8,7 +8,7 @@ if(isServer) then { { if(_x getVariable ["#revDownInVeh", false]) then { - _originalOwnerId = _x getVariable["#revOwner", -1]; + private _originalOwnerId = _x getVariable["#revOwner", -1]; if(_originalOwnerId != -1) then { [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; }; diff --git a/f/medical/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf index ec581b812..3103fc57a 100644 --- a/f/medical/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -7,13 +7,11 @@ waitUntil {sleep 0.1; !isNull player}; if (_unit == player) exitWith {}; if (_unit getVariable ["#revDragId", -1] != -1) exitWith {}; - -//_target (object to which action is attached to) -// _this (caller/executing person) -//TODO CODE HAS TO BE A STRING -//TODO MAYBE {side group _this getFriend side group _target >= 0.6} (just like the bis revive thing) -private _drag_action_cond = str { - _var = _this getVariable ['f_wound_dragging',nil]; +//TODO maybe add a side-check: {side group _this getFriend side group _target >= 0.6} (just like the bis revive thing) +_drag_action_cond = str { + //_target (object to which action is attached to) + // _this (caller/executing person) + private _var = _this getVariable ['f_wound_dragging',nil]; _target distance _this < 2 && { isNil '_var' && { GET_STATE(_target) == STATE_INCAPACITATED && { @@ -27,14 +25,14 @@ private _drag_action_cond = str { _drag_action_cond = _drag_action_cond select [1, count _drag_action_cond - 2]; _drag_exec_code = { - _this remoteExec ["f_fnc_OnDragDragger", [_this select 1]]; - _this remoteExec ["f_fnc_OnDragTarget", [_this select 0]]; + _this remoteExec ["f_fnc_OnDrag", [_this select 1]]; //Dragger + _this remoteExec ["f_fnc_OnDrag", [_this select 0]]; //Target }; -_resultId = _unit addAction [ +private _resultId = _unit addAction [ format ["Drag %1", name _unit], - // _this variable (in the code below) is: [target, caller, ID, arguments] + // "_this" variable (in the code below) is: [target, caller, ID, arguments] _drag_exec_code, nil, 6, diff --git a/f/medical/fn_findDeadAnim.sqf b/f/medical/fn_findDeadAnim.sqf index 11a1245a1..017131334 100644 --- a/f/medical/fn_findDeadAnim.sqf +++ b/f/medical/fn_findDeadAnim.sqf @@ -1,34 +1,29 @@ params ["_unit"]; - _countCondit = { - params["_animEntry", "_testString"]; - if(_animEntry isEqualType "") exitWith { - _animEntry find _testString != -1 - }; - false - }; -_anim = configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit; -if (!isNull _anim) then { - if(!isNull (_anim >> "interpolateTo")) then { - _anim = ((getArray (_anim >> "interpolateTo"))); - _kiaAnim = _anim select {[_x, "kia"] call _countCondit}; - _dieAnim = _anim select {[_x, "Die"] call _countCondit}; - _unconAnim = _anim select {[_x, "Unconscious"] call _countCondit}; - if(count _kiaAnim > 0) exitWith { - _anim = _kiaAnim select 0; - }; - if(count _dieAnim > 0) exitWith { - _anim = _dieAnim select 0; - }; - if(count _unconAnim > 0) exitWith { - _anim = _unconAnim select 0; - }; - _anim = "Unconscious"; - }else { - _anim = "Unconscious"; - } - -}else { +private _countCondit = { + params["_animEntry", "_testString"]; + if(_animEntry isEqualType "") exitWith { + _animEntry find _testString != -1 + }; + false +}; +private _anim = configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit; +if (!isNull _anim && {!isNull (_anim >> "interpolateTo")}) then { + _anim = ((getArray (_anim >> "interpolateTo"))); + private _kiaAnim = _anim select {[_x, "kia"] call _countCondit}; + private _dieAnim = _anim select {[_x, "Die"] call _countCondit}; + private _unconAnim = _anim select {[_x, "Unconscious"] call _countCondit}; + if(count _kiaAnim > 0) exitWith { + _anim = _kiaAnim select 0; + }; + if(count _dieAnim > 0) exitWith { + _anim = _dieAnim select 0; + }; + if(count _unconAnim > 0) exitWith { + _anim = _unconAnim select 0; + }; + _anim = "Unconscious"; +} else { _anim = "Unconsious"; }; _anim; diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf new file mode 100644 index 000000000..9ad7bfba2 --- /dev/null +++ b/f/medical/fn_onDrag.sqf @@ -0,0 +1,66 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +params ["_unit", "_dragger"]; + +private _actionIdx = -1; //only relevant for dragger +private _isDragger = local _dragger; + +if (f_param_debugMode == 1) then { + diag_log format ["%2 drag on %1, being dragged by %2", _unit, _dragger, ["receiving", "activating"] select _isDragger]; +}; + +if (_isDragger) then { + // the dragger gets a release option. + _actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];}, nil, 6, false, true, "", "true"]; + _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; +} else { + _unit attachTo [_dragger, [0, 1.1, 0.092]]; + _unit setDir 180; + _unit setPos getPos _unit; +}; +//setting these here to prevent race cconditions +//although there will be a race condition between the 2 different execs, if the waitUntil +//on the target finishes before we reach here (at the dragger), which really should never happen. +_dragger setVariable ["f_wound_dragging", _unit, false]; +_unit setVariable ["f_wound_being_dragged", true, false]; + +// Wait until the unit is released, dead, downed, or revived) +private _dragged_unit = nil; +waitUntil { + sleep 0.1; + _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; + ( + isNil "_dragged_unit" //unit is released + || !(_unit getVariable ["f_wound_being_dragged", false]) + || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore + || GET_STATE(_dragger) == STATE_INCAPACITATED // dragger is incapacitated + || IS_BEING_REVIVED(_unit) // someone else is reviving the unit + || !alive _unit + || !alive _dragger + || !(isPlayer _dragger) + || !(isPlayer _unit) + || (vehicle _dragger != _dragger) + ) +}; + +if (_isDragger) then { + detach _unit; +}; + +_dragger setVariable ["f_wound_dragging", nil, true]; +_unit setVariable ["f_wound_being_dragged", false, true]; + +if (f_param_debugMode == 1) then { + diag_log format ["releasing unit on %1", ["target", "dragger"] select _isDragger]; +}; + +if (_isDragger) then { + if( GET_STATE(_dragger) == STATE_INCAPACITATED) then { + _dragger switchMove ANIM_WOUNDED; + } else { + if(vehicle _dragger == _dragger) then { + _dragger switchMove ""; + } + }; + _dragger removeAction _actionIdx; +}; diff --git a/f/medical/fn_onDragDragger.sqf b/f/medical/fn_onDragDragger.sqf deleted file mode 100644 index 031aa5b2c..000000000 --- a/f/medical/fn_onDragDragger.sqf +++ /dev/null @@ -1,63 +0,0 @@ - -// ==================================================================================== -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - -params ["_unit", "_dragger"]; - - -private _actionIdx = -1; - -if (f_param_debugMode == 1) then { - diag_log format ["activating drag on %1, being dragged by %2", _unit, _dragger]; -}; - -// the dragger gets a release option. -_actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];}, nil, 6, false, true, "", "true"]; -_dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; - - -_dragger setVariable ["f_wound_dragging", _unit, true]; -_unit setVariable ["f_wound_being_dragged", true, true]; -//though there will be a race condition between the 2 different execs, if the waitUntil -//on the target finishes before we reach here, which really should never happen. - -// Wait until the unit is released, dead, downed, or revived) -waitUntil { - sleep 0.1; - _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; - ( - isNil "_dragged_unit" //unit is released - || !(_unit getVariable ["f_wound_being_dragged", false]) - || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore - || GET_STATE(_dragger) == STATE_INCAPACITATED // dragger is incapacitated - || IS_BEING_REVIVED(_unit) // someone else is reviving the unit - || !alive _unit - || !alive _dragger - || !(isPlayer _dragger) - || !(isPlayer _unit) - || (vehicle _dragger != _dragger) - ) -}; - - - - -detach _unit; - - - -_dragger setVariable ["f_wound_dragging", nil, true]; -_unit setVariable ["f_wound_being_dragged", false, true]; - -if (f_param_debugMode == 1) then { - diag_log format ["releasing unit on dragger"]; -}; -if( GET_STATE(_dragger) == STATE_INCAPACITATED) then { - _dragger switchMove ANIM_WOUNDED; -} else { - if(vehicle _dragger == _dragger) then { - _dragger switchMove ""; - } -}; - -_dragger removeAction _actionIdx; diff --git a/f/medical/fn_onDragTarget.sqf b/f/medical/fn_onDragTarget.sqf deleted file mode 100644 index 86eb11386..000000000 --- a/f/medical/fn_onDragTarget.sqf +++ /dev/null @@ -1,46 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - - -params ["_unit", "_dragger"]; - -_dragger setVariable ["f_wound_dragging", _unit, true]; -_unit setVariable ["f_wound_being_dragged", true, true]; - - -if (f_param_debugMode == 1) then { - diag_log format ["receiving drag on %1, being dragged by %2", _unit, _dragger]; -}; - -_unit attachTo [_dragger, [0, 1.1, 0.092]]; -_unit setDir 180; -_unit setPos getPos _unit; - -//setting these here to prevent race cconditions -_dragger setVariable ["f_wound_dragging", _unit, false]; -_unit setVariable ["f_wound_being_dragged", true, false]; - - -// Wait until the unit is released, dead, downed, or revived) -waitUntil { - sleep 0.1; - _dragged_unit = _dragger getVariable ["f_wound_dragging",nil]; - ( - isNil "_dragged_unit" //unit is released - || !(_unit getVariable ["f_wound_being_dragged", false]) - || GET_STATE(_unit) != STATE_INCAPACITATED // unit isn't incapacitated anymore - || GET_STATE(_dragger) == STATE_INCAPACITATED // dragger is incapacitated - || IS_BEING_REVIVED(_unit) // someone else is reviving the unit - || !alive _unit - || !alive _dragger - || !(isPlayer _dragger) - || !(isPlayer _unit) - || (vehicle _dragger != _dragger) - ) -}; - -_dragger setVariable ["f_wound_dragging", nil, true]; -_unit setVariable ["f_wound_being_dragged", false, true]; - -if (f_param_debugMode == 1) then { - diag_log format ["releasing unit on target"]; -}; diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf index ea9a5c731..34a6fe802 100644 --- a/f/medical/fn_reInhabitBody.sqf +++ b/f/medical/fn_reInhabitBody.sqf @@ -1,7 +1,7 @@ #include "\a3\functions_f_mp_mark\Revive\defines.inc" params ["_unit"]; -_camera = player; +private _camera = player; F_UncCC ppEffectEnable false; selectPlayer _unit; diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index 7058a4202..76880935b 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -77,10 +77,10 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc [] spawn { sleep 1; if(alive player) then { - _group = group player; + private _group = group player; _unit = player; player addMPEventHandler ["mpkilled", f_fnc_reviveEhKilledInVeh]; - _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; + private _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; _camera setName format ["Ressurection%1", round(random 20000)]; selectPlayer _camera; _unit setName (name _camera); diff --git a/f/medical/fn_reviveEhKilledInVeh.sqf b/f/medical/fn_reviveEhKilledInVeh.sqf index bf2b25501..892339667 100644 --- a/f/medical/fn_reviveEhKilledInVeh.sqf +++ b/f/medical/fn_reviveEhKilledInVeh.sqf @@ -4,7 +4,7 @@ private _originalOwner = _unit getVariable ["#revOwner", -1]; if (_downInVeh && _originalOwner == clientOwner) then { F_UncCC ppEffectEnable false; - _camera = player; + private _camera = player; selectPlayer _unit; [_camera] joinSilent grpNull; deleteVehicle _camera; From 82a1a721a25539542d4664b38676aae83045a0fa Mon Sep 17 00:00:00 2001 From: s Date: Sun, 29 Oct 2017 15:30:59 +0100 Subject: [PATCH 079/407] E&E: add error checks and improve readability --- f/EandEcheck/f_EandECheckLoop.sqf | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index 4b6e1b4d4..fa57d480a 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -11,7 +11,7 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -params ["_objects", "_obj", "_safeDistance", "_end", ["_playersonly", true]]; +params [["_objects", sideUnknown, [sideUnknown, []]], "_obj", ["_safeDistance", 0, [0]], ["_end", 0, [0, {}]], ["_playersonly", true, [true]]]; private ["_alive","_safe","_pos","_playersonly","_units","_temp"]; @@ -31,17 +31,24 @@ waitUntil {sleep 0.1;scriptDone f_script_setLocalVars}; // POPULATE UNITS ARRAY // Conduct several checks against the first variable to see if we're dealing with a specific unit, a group or an array of several groups or units. +if ( !(_objects isEqualType sideUnknown || _objects isEqualType []) ) exitWith { + player globalChat format ["DEBUG (f\EandECheck\f_EandECheckLoop.sqf): _objects must be a side or an array! passed _objects = %1",_objects]; +}; + // If a side was passed, take all Units from that side if (_objects isEqualType sideUnknown) then { + private _units_available = nil; + //Select from all units or only from players if (_playersonly) then { - _units = playableUnits select { (side _x) == _objects}; + _units_available = playableUnits; } else { - _units = f_var_men select { (side _x) == _objects}; + _units_available = f_var_men; }; + //Filter available units by side + _units = _units_available select { (side _x) == _objects}; // Otherwise populate the units array using the passed strings, checking if it's either a group or a unit } else { { - if(!isnil _x) then { _temp = call compile format ["%1",_x]; From a146ed48c6d6611728b2e72c43162ec372117274 Mon Sep 17 00:00:00 2001 From: s Date: Fri, 3 Nov 2017 19:34:29 +0100 Subject: [PATCH 080/407] replace bis_fnc_param with params --- f/groupJoin/f_groupJoinAction.sqf | 8 ++++---- f/zeus/fn_zeusAddAddons.sqf | 10 ++++++---- f/zeus/fn_zeusAddObjects.sqf | 10 ++++++---- f/zeus/fn_zeusInit.sqf | 12 +++++++----- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/f/groupJoin/f_groupJoinAction.sqf b/f/groupJoin/f_groupJoinAction.sqf index 46eac7e3b..7acbc189a 100644 --- a/f/groupJoin/f_groupJoinAction.sqf +++ b/f/groupJoin/f_groupJoinAction.sqf @@ -18,13 +18,13 @@ if (!isDedicated && (isNull player)) then // ==================================================================================== -private ["_nearUnit", "_nearGroup", "_actionDistance", "_allowDifferentSide", "_actionString", "_unit", "_grp"]; +private ["_nearUnit", "_nearGroup", "_actionDistance", "_actionString", "_unit", "_grp"]; // How many meters player needs to be from another group's leader for the join action to be shown _actionDistance = 2.5; // Check if script caller wants to enable joining of groups on different sides, default to false -_allowDifferentSide = [_this,0,false] call bis_fnc_param; +params [["_allowDifferentSide", false, [false]]]; // Main loop to detect whether the action should be displayed while {true} do { @@ -40,9 +40,9 @@ while {true} do { // Using curly braces makes the if statement cheaper to evaluate if (group player != _nearGroup && alive _nearUnit && {(_allowDifferentSide || side player == side _nearGroup)}) then { - _actionString = format["Join %1 (%2)", name _nearUnit,_nearGroup]; + _actionString = format["Join %1 (%2)", name _nearUnit,_nearGroup]; - f_groupJoinAction = player addAction [_actionString, { + f_groupJoinAction = player addAction [_actionString, { _unit = player; _grp = (_this select 3); diff --git a/f/zeus/fn_zeusAddAddons.sqf b/f/zeus/fn_zeusAddAddons.sqf index 50eed723f..d5c200b4e 100644 --- a/f/zeus/fn_zeusAddAddons.sqf +++ b/f/zeus/fn_zeusAddAddons.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES -private ["_curator","_mode","_addons","_cfgPatches","_class"]; +private ["_addons","_cfgPatches","_class"]; // ==================================================================================== @@ -18,8 +18,10 @@ if !(isServer) exitWith {}; // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -_curator = [_this,0,objNull] call bis_fnc_param; -_mode = [_this,1,true,["",true,[]]] call bis_fnc_param; +params [ + ["_curator", objNull], + ["_mode", true, ["",true,[]]] +]; // ==================================================================================== @@ -63,4 +65,4 @@ switch (typeName _mode) do { }; // Enable addons to the curator -_curator addcuratoraddons _addons; \ No newline at end of file +_curator addcuratoraddons _addons; diff --git a/f/zeus/fn_zeusAddObjects.sqf b/f/zeus/fn_zeusAddObjects.sqf index b5b7c6595..48e7de73e 100644 --- a/f/zeus/fn_zeusAddObjects.sqf +++ b/f/zeus/fn_zeusAddObjects.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES -private ["_curator","_mode","_objects","_getGlobalVars","_groupleaders","_leaders"]; +private ["_objects","_leaders"]; // ==================================================================================== @@ -18,9 +18,11 @@ if !(isServer) exitWith {}; // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -_curator = [_this,0,objNull] call bis_fnc_param; -_mode = [_this,1,[],[true,west,objNull,[]]] call bis_fnc_param; -_groupleaders = [_this,2,false] call bis_fnc_param; +params [ + ["_curator", objNull], + ["_mode", [], [true,west,objNull,[]]], + ["_groupLeaders", false, [true]] +]; // ==================================================================================== diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index 26252b26d..fbfe9fe45 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -11,17 +11,19 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES -private ["_unit","_addons","_objects","_curator","_createModule","_announce"]; +private ["_curator"]; // ==================================================================================== // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -_unit = [_this,0,objNull] call bis_fnc_param; -_addons = [_this,1,true,["",true,[]]] call bis_fnc_param; -_objects = [_this,2,[],[objNull,true,[],west]] call bis_fnc_param; -_announce = [_this,3,false] call bis_fnc_param; +params [ + ["_unit", objNull], + ["_addons", true, ["",true,[]]], + ["_objects", [], [objNull,true,[],west]], + ["_announce", false, [true]] +]; // ==================================================================================== From 4268292ed2daf12b7c72c8493b81a46362afbc58 Mon Sep 17 00:00:00 2001 From: s Date: Fri, 3 Nov 2017 19:36:39 +0100 Subject: [PATCH 081/407] replace obsolete BIS_fnc functions --- ws_fnc/AI/fn_addWaypoint.sqf | 41 +++++++++++++----------------- ws_fnc/AI/fn_setInsidePos.sqf | 6 ++--- ws_fnc/AI/fn_taskArtilleryFire.sqf | 25 ++++++++---------- ws_fnc/AI/fn_taskConvoy.sqf | 15 +++++++---- ws_fnc/Tools/fn_showFPS.sqf | 4 +-- ws_fnc/misc/fn_broadcast.sqf | 13 +++++++--- 6 files changed, 50 insertions(+), 54 deletions(-) diff --git a/ws_fnc/AI/fn_addWaypoint.sqf b/ws_fnc/AI/fn_addWaypoint.sqf index 084d84dc6..3af122ac3 100644 --- a/ws_fnc/AI/fn_addWaypoint.sqf +++ b/ws_fnc/AI/fn_addWaypoint.sqf @@ -38,43 +38,36 @@ EXAMPLES */ private ["_debug", -"_grp","_count","_pos","_modes","_mode","_marray","_behaviour","_speed","_modifier","_compl","_code", -"_wp","_mkr"]; +"_pos","_modes","_wp","_mkr"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug //Declaring variables -_count = count _this; -_grp = _this select 0; -_marray = [_this,2,[]] call BIS_fnc_Param; -_behaviour = [_this,3,[]] call BIS_fnc_Param; -_code = [_this,4,""] call BIS_fnc_Param; +params [ + ["_grp", grpNull, [grpNull]], + ["_pos", [0,0,0]], + ["_marray", [], [[]]], + ["_behaviour", [], [[]]], + ["_code", "", [""]] +]; //Array of all legal possible modes. See http://community.bistudio.com/wiki/setWaypointType _modes = ["move","destroy","getin","sad","join","leader","getout","cycle","load","unload","tr unload","hold","sentry","guard","talk","scripted","support","getin nearest","dismiss","defend","garrison","patrol","ambush"]; -_modifier = 0; -_compl = 0; -_road = false; -_mode = "move"; //Interpreting variables //Setting up the array for the movepos -if (count _marray > 0) then {_mode = _marray select 0;}; -if (count _marray > 1) then {_modifier = _marray select 1;}; -if (count _marray > 2) then {_compl = _marray select 2;}; -if (count _marray > 3) then {_road = _marray select 3;}; -if (_count > 4) then {_code = _this select 4}; - -_pos = if !(_road) then {(_this select 1) call ws_fnc_getEPos;} else {[(_this select 1),150,5] call ws_fnc_NearestRoadPos}; +_marray params [ + ["_mode", "move", [""]], + ["_modifier", 0, [0]], + ["_compl", 0, [0]], + ["_road", false, [false]] +]; +_pos = if !(_road) then {(_pos) call ws_fnc_getEPos;} else {[(_pos),150,5] call ws_fnc_NearestRoadPos}; //Fault checks //Checking the variables we have enough against what we should have -[_grp,["GROUP"],format ["ws_fnc_createWaypoint: %1",_grp]] spawn ws_fnc_typecheck; -[_mode,["STRING"],format ["ws_fnc_createWaypoint: %1",_mode]] spawn ws_fnc_typecheck; -[_modifier,["SCALAR"],format ["ws_fnc_createWaypoint: %1",_modifier]] spawn ws_fnc_typecheck; -[_code,["STRING"],format ["ws_fnc_createWaypoint: %1",_code]] spawn ws_fnc_typecheck; -{[_x,["ARRAY"],format ["ws_fnc_createWaypoint: %1",_x]] spawn ws_fnc_typecheck;} forEach [_pos,_behaviour,_marray]; +[_pos,["ARRAY"],format ["ws_fnc_createWaypoint: %1",_pos]] spawn ws_fnc_typecheck; if !(toLower _mode in _modes) exitWith {["ws_fnc_addWaypoint ERROR: ",_mode," is not a legal waypoint mode"] call ws_fnc_debugText;}; @@ -136,4 +129,4 @@ player globalchat format ["DEBUG: ws_fnc_createWaypoint. Waypoint %1 for _grp%2 }; -_wp \ No newline at end of file +_wp diff --git a/ws_fnc/AI/fn_setInsidePos.sqf b/ws_fnc/AI/fn_setInsidePos.sqf index 8b16dee47..749a70248 100644 --- a/ws_fnc/AI/fn_setInsidePos.sqf +++ b/ws_fnc/AI/fn_setInsidePos.sqf @@ -17,7 +17,7 @@ RETURNS true */ -private ["_u","_b","_udir","_inside","_facingwall","_dirtob","_dir"]; +private ["_u","_b","_udir","_inside","_facingwall","_dirtob","_dir","_nb","_x"]; _u = _this; _nb = (nearestObjects [_u,["BagBunker_base_F","HouseBase"],50]); @@ -28,7 +28,7 @@ _b = _nb select 0; _inside = [_u,0,0,25] call ws_fnc_isWallInDir; _facingwall = false; -_dirtob = [_u,_b] call BIS_fnc_RelativeDirTo; +_dirtob = _u getRelDir _b; _udir = _dirtob - 180; // If unit is outside set to kneel and check for wall facing away from building @@ -57,4 +57,4 @@ if (_facingwall) then { _u doWatch ([_u, 20, _udir] call BIS_fnc_relPos); -true \ No newline at end of file +true diff --git a/ws_fnc/AI/fn_taskArtilleryFire.sqf b/ws_fnc/AI/fn_taskArtilleryFire.sqf index a2ba8e209..d4b9c39e4 100644 --- a/ws_fnc/AI/fn_taskArtilleryFire.sqf +++ b/ws_fnc/AI/fn_taskArtilleryFire.sqf @@ -32,14 +32,16 @@ true if !(ws_game_a3) exitWith {["ws_fnc_taskArtilleryFire DBG:",[]," Must be ARMA 3!"] call ws_fnc_debugtext}; -private ["_art","_dispersion","_fireMission","_ammo"]; +private ["_targetPos"]; -_art = [_this,0,objNull] call BIS_fnc_param; -_target = [_this,1,[0,0,0]] call BIS_fnc_param; -_fireMission = ([_this,2,[4,1]]) call BIS_fnc_param; -_dispersion = [_this,3,80] call BIS_fnc_param; -_sleep = ([_this,4,-1]) call BIS_fnc_param; -_ammo = [_this,5,""] call BIS_fnc_param; +params [ + ["_art", objNull, [objNull, []]], + ["_target", [0,0,0], [objNull, "", []]], + ["_fireMission", [4,1], [[]], 2], + ["_dispersion", 80, [0]], + ["_sleep", -1, [0]], + ["_ammo", "", [""]] +]; switch (typeName _art) do { case "OBJECT": {_art = [_art]}; @@ -54,14 +56,7 @@ if ({isNull _x} count _art > 1 || str _target == "[0,0,0]" || count (getArtiller { // Spawn a seperate fire mission for each artillery piece [_x,_target,_dispersion,_fireMission,_sleep,_ammo] spawn { - private ["_target","_dispersion","_fireMission","_ammo","_sleep","_artpiece"]; - - _artpiece = _this select 0; - _target = _this select 1; - _dispersion = _this select 2; - _fireMission = _this select 3; - _sleep = _this select 4; - _ammo = _this select 5; + params ["_artpiece", "_target", "_dispersion", "_fireMission", "_sleep", "_ammo"]; // Select the ammo if (_ammo == "") then { diff --git a/ws_fnc/AI/fn_taskConvoy.sqf b/ws_fnc/AI/fn_taskConvoy.sqf index 69bdebc3a..d2bf18eb5 100644 --- a/ws_fnc/AI/fn_taskConvoy.sqf +++ b/ws_fnc/AI/fn_taskConvoy.sqf @@ -24,16 +24,21 @@ Full: PARAMETERS 1. The leading vehicle (all other vehicles should share the same naming template) | MANDATORY - object 2. The first marker indicating the convoy route (all other markers should share the naming template) | MANDATORY - can be marker, object or positional array -3. Speed limit in km/h (the slower the more reliably the convoy will move) | OPTIONAL - any number (default: 14) +3. Speed limit in km/h (the slower the more reliably the convoy will move) | OPTIONAL - any number (default: 15) EXAMPLE [cv,"cvwp"] spawn ws_fnc_taskConvoy - All vehicles sharing the cv-name (cv,cv_1,cv_2...) would follow the route indicated by the markers sharing the "cvwp"-name ("cvwp","cvwp_1","cvwp_2"...) */ -_leadv = [_this,0,objNull] call BIS_fnc_param; -_marker = [_this,1,""] call BIS_fnc_param; -_speedLimit = [_this,2,15] call BIS_fnc_param; +private ["_finalwp","_convoy","_waypoints","_run","_wp","_veh","_vfront","_vback","_vback","_dir"]; + +params [ + ["_leadv", objNull], + ["_marker", "", ["",objNull,[]]], + ["_speedLimit", 15, [0]] +]; + // What waypoint-type the final/combat waypoint will be. Sentry or Hold work best _finalwp = "SENTRY"; @@ -168,4 +173,4 @@ _veh doMove (getPosATL _veh); } forEach _convoy; -true \ No newline at end of file +true diff --git a/ws_fnc/Tools/fn_showFPS.sqf b/ws_fnc/Tools/fn_showFPS.sqf index a54327ccb..247a71375 100644 --- a/ws_fnc/Tools/fn_showFPS.sqf +++ b/ws_fnc/Tools/fn_showFPS.sqf @@ -15,8 +15,6 @@ NOTE ARMA 3 only */ -private ["_time"]; - -_time = [_this,0,60,["SCALAR"]] call BIS_fnc_Param; +params [["_time", 60, [0]]]; [_time,[format ["%1",name player]]] call BIS_fnc_FPS; diff --git a/ws_fnc/misc/fn_broadcast.sqf b/ws_fnc/misc/fn_broadcast.sqf index 0a4fd48c6..f447b66c0 100644 --- a/ws_fnc/misc/fn_broadcast.sqf +++ b/ws_fnc/misc/fn_broadcast.sqf @@ -17,16 +17,21 @@ NOTE ARMA 3 only */ +private ["_game", "_code"]; + +_game = [] call ws_fnc_gameCheck; if !(ws_game_a3) exitWith {["ws_fnc_broadcast DBG: Game version: ",[_game]," Must be ARMA 3!"] call ws_fnc_debugtext}; -_string = [_this,0,"ws_fnc_broadcast DBG: No string parsed",["STRING"]] call BIS_fnc_Param; -_text = [_this,1,"cutText",["STRING"]] call BIS_fnc_Param; -_type = [_this,2,"PLAIN",["STRING"]] call BIS_fnc_Param; +params [ + ["_string", "ws_fnc_broadcast DBG: No string parsed", [""]], + ["_text", "cutText", [""]], + ["_type", "PLAIN", [""]] +]; _code = format ["%1 [%2,%3]",_text,str _string,str _type]; ws_fnc_showText = compile _code; -[[],"ws_fnc_showText",true] spawn BIS_fnc_MP; +[] remoteExec ["ws_fnc_showText", 0]; _code = ""; ws_fnc_showText = compile _code; From db41e5f0a5d56bb3456a199ceec68445e7ac7f82 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 4 Nov 2017 16:39:14 +0100 Subject: [PATCH 082/407] Fix incorrect smoke color --- f/assignGear/f_assignGear_aaf.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index a225c3675..709638cab 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -123,7 +123,7 @@ _glmag = "1Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc _glsmokewhite = "1Rnd_Smoke_Grenade_shell"; -_glsmokegreen = "1Rnd_SmokeRed_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; _glsmokered = "1Rnd_SmokeRed_Grenade_shell"; // Flares for FTLs, Squad Leaders, etc @@ -353,4 +353,4 @@ if !(_isMan) exitWith {}; // ==================================================================================== // ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; \ No newline at end of file +_unit selectweapon primaryweapon _unit; From 0a3ef4fc6fcd202e416cc415a0548b55ce071bcd Mon Sep 17 00:00:00 2001 From: s Date: Sat, 4 Nov 2017 18:03:41 +0100 Subject: [PATCH 083/407] fix linter warnings --- f/EandEcheck/f_EandECheckLoop.sqf | 2 +- f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf | 4 ++-- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 2 +- f/common/fn_nearPlayer.sqf | 2 +- f/groupMarkers/fn_localSpecialistMarker.sqf | 3 +-- f/mapClickTeleport/fn_mapClickTeleportGroup.sqf | 2 +- f/mapClickTeleport/fn_mapClickTeleportUnit.sqf | 6 ------ f/medical/fn_addDragAction.sqf | 4 ++-- f/medical/init.sqf | 3 +-- f/missionConditions/fn_SetWeather.sqf | 12 +----------- f/missionConditions/fn_SetWind.sqf | 2 +- f/preMount/fn_mountGroups.sqf | 2 +- f/removeBody/fn_removeBody.sqf | 6 +----- 13 files changed, 14 insertions(+), 36 deletions(-) diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index fa57d480a..d461df7f5 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -13,7 +13,7 @@ if !(isServer) exitWith {}; params [["_objects", sideUnknown, [sideUnknown, []]], "_obj", ["_safeDistance", 0, [0]], ["_end", 0, [0, {}]], ["_playersonly", true, [true]]]; -private ["_alive","_safe","_pos","_playersonly","_units","_temp"]; +private ["_alive","_safe","_pos","_units","_temp"]; // ==================================================================================== diff --git a/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf b/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf index e31b9412c..5171796ec 100644 --- a/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf +++ b/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf @@ -45,7 +45,7 @@ while{_unit == (leader _grp) && alive _unit} do if(!isnil "_grp") then { // get the new leader - _x = leader _grp; + private _leader = leader _grp; // tell him to start running the sync. - [_grp,_x] remoteExec ["f_fnc_LocalFTMarkerSync", _x]; + [_grp,_leader] remoteExec ["f_fnc_LocalFTMarkerSync", _leader]; }; diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index 2ceb39f12..31d25c21b 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -18,7 +18,7 @@ sleep 0.1; // DECLARE PRIVATE VARIABLES -private ["_grps","_pc","_end","_started","_remaining","_grpstemp","_alive","_faction","_temp_grp","_temp_grp2","_type","_onlyPlayers","_grpsno","_counter", "_grp", "_Tgrp"]; +private ["_grps","_pc","_end","_started","_remaining","_grpstemp","_alive","_faction","_onlyPlayers","_grp", "_Tgrp"]; // ==================================================================================== diff --git a/f/common/fn_nearPlayer.sqf b/f/common/fn_nearPlayer.sqf index a17b1056c..3216f900f 100644 --- a/f/common/fn_nearPlayer.sqf +++ b/f/common/fn_nearPlayer.sqf @@ -3,7 +3,7 @@ // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS -private ["_ent","_distance","_pos","_players"]; +private ["_distance","_pos","_players"]; _pos = getPosATL (_this select 0); _distance = _this select 1; diff --git a/f/groupMarkers/fn_localSpecialistMarker.sqf b/f/groupMarkers/fn_localSpecialistMarker.sqf index db4632165..a08ec48c3 100644 --- a/f/groupMarkers/fn_localSpecialistMarker.sqf +++ b/f/groupMarkers/fn_localSpecialistMarker.sqf @@ -64,7 +64,7 @@ while {alive _unt} do // If respawn is enabled we need to reset the marker should the unit die // Sleep for the set respawn delay plus a small grace period -sleep (getNumber (missionconfigfile >> "RespawnDelay")) + 3; +sleep ((getNumber (missionconfigfile >> "RespawnDelay")) + 3); // Re-compile the unit variable using the initially passed string waitUntil { sleep 0.1; _unt = missionNamespace getVariable [_untName,objNull]; !(isNull _unt) }; @@ -73,4 +73,3 @@ waitUntil { sleep 0.1; _unt = missionNamespace getVariable [_untName,objNull]; ! if (alive _unt) exitWith { [_untName, _mkrType, _mkrText, _mkrColor] spawn f_fnc_localSpecialistMarker; }; - diff --git a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf b/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf index 8509e2182..e1d985c70 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_unit","_pos","_units","_textDone","_dispersion","_string"]; +private ["_unit","_pos","_dispersion","_string"]; // ==================================================================================== diff --git a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf b/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf index 6a6936683..9d6564660 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf @@ -2,12 +2,6 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// DECLARE VARIABLES AND FUNCTIONS - -private ["_textSelect","_textDone"]; - -// ==================================================================================== - // SET KEY VARIABLES f_telePositionSelected = false; diff --git a/f/medical/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf index 3103fc57a..4b8d14a93 100644 --- a/f/medical/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -8,7 +8,7 @@ if (_unit == player) exitWith {}; if (_unit getVariable ["#revDragId", -1] != -1) exitWith {}; //TODO maybe add a side-check: {side group _this getFriend side group _target >= 0.6} (just like the bis revive thing) -_drag_action_cond = str { +private _drag_action_cond = str { //_target (object to which action is attached to) // _this (caller/executing person) private _var = _this getVariable ['f_wound_dragging',nil]; @@ -24,7 +24,7 @@ _drag_action_cond = str { //hacky method to remove the braces at the beginning and end, so that it's the format that addAction expects. _drag_action_cond = _drag_action_cond select [1, count _drag_action_cond - 2]; -_drag_exec_code = { +private _drag_exec_code = { _this remoteExec ["f_fnc_OnDrag", [_this select 1]]; //Dragger _this remoteExec ["f_fnc_OnDrag", [_this select 0]]; //Target }; diff --git a/f/medical/init.sqf b/f/medical/init.sqf index 1f7a88bc0..990b8fe61 100644 --- a/f/medical/init.sqf +++ b/f/medical/init.sqf @@ -3,7 +3,6 @@ // ==================================================================================== #include "\a3\functions_f_mp_mark\Revive\defines.inc" -params ["_unit"]; if (!hasInterface) exitWith {}; @@ -18,7 +17,7 @@ if (!hasInterface) exitWith {}; }; player setVariable ["bis_revive_ehDammaged", player addEventHandler ["Dammaged", f_fnc_reviveEhDammaged]]; - + }; //drag action: [player] remoteExec ["f_fnc_addDragAction", 0, player]; diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index ce5cd0685..3a4b05f89 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_missionOvercast","_MissionRain","_MissionRainbow","_MissionLightnings","_MissionWindStr","_MissionWindGusts","_MissionWaves","_MissionHumidity","_MissionFogStrength","_MissionFogDecay","_MissionFogBase"]; +private ["_missionOvercast","_MissionRain","_MissionRainbow","_MissionLightnings","_MissionWindStr","_MissionWindGusts","_MissionWaves","_MissionFogStrength","_MissionFogDecay","_MissionFogBase"]; // ==================================================================================== @@ -30,7 +30,6 @@ _MissionLightnings = 0; _MissionWindStr = 0.01; _MissionWindGusts = 0.01; _MissionWaves = 0; -_MissionHumidity = 0; _MissionFogStrength = 0; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -52,7 +51,6 @@ switch (_weather) do _MissionWindStr = 0.01; _MissionWindGusts = 0.01; _MissionWaves = 0; - _MissionHumidity = 0; _MissionFogStrength = 0; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -67,7 +65,6 @@ switch (_weather) do _MissionWindStr = 0.2; _MissionWindGusts = 0.2; _MissionWaves = 0.3; - _MissionHumidity = 0.2; _MissionFogStrength = 0; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -82,7 +79,6 @@ switch (_weather) do _MissionWindStr = 0.25; _MissionWindGusts = 0.25; _MissionWaves = 0.5; - _MissionHumidity = 0.2; _MissionFogStrength = 0; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -97,7 +93,6 @@ switch (_weather) do _MissionWindStr = 0.25; _MissionWindGusts = 0.25; _MissionWaves = 0.5; - _MissionHumidity = 0.2; _MissionFogStrength = 0; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -112,7 +107,6 @@ switch (_weather) do _MissionWindStr = 0.1; _MissionWindGusts = 0.1; _MissionWaves = 0.25; - _MissionHumidity = 0.2; _MissionFogStrength = 0.5; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -127,7 +121,6 @@ switch (_weather) do _MissionWindStr = 0.2; _MissionWindGusts = 0.2; _MissionWaves = 0.5; - _MissionHumidity = 0.2; _MissionFogStrength = 0.03; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -142,7 +135,6 @@ switch (_weather) do _MissionWindStr = 0.25; _MissionWindGusts = 0.25; _MissionWaves = 0.5; - _MissionHumidity = 0.9; _MissionFogStrength = 0.07; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -157,7 +149,6 @@ switch (_weather) do _MissionWindStr = 0.4; _MissionWindGusts = 0.4; _MissionWaves = 0.8; - _MissionHumidity = 0.9; _MissionFogStrength = 0.15; _MissionFogDecay = 0; _MissionFogBase = 0; @@ -172,7 +163,6 @@ switch (_weather) do _MissionWindStr = 0.75; _MissionWindGusts = 1; _MissionWaves = 1; - _MissionHumidity = 1; _MissionFogStrength = 0.3; _MissionFogDecay = 0; _MissionFogBase = 0; diff --git a/f/missionConditions/fn_SetWind.sqf b/f/missionConditions/fn_SetWind.sqf index b5f0d57be..1c15952d1 100644 --- a/f/missionConditions/fn_SetWind.sqf +++ b/f/missionConditions/fn_SetWind.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_wind","_strength","_decay","_base","_gusts","_waves"]; +private ["_wind","_strength","_gusts","_waves"]; // ==================================================================================== diff --git a/f/preMount/fn_mountGroups.sqf b/f/preMount/fn_mountGroups.sqf index 51492f519..250a3896f 100644 --- a/f/preMount/fn_mountGroups.sqf +++ b/f/preMount/fn_mountGroups.sqf @@ -9,7 +9,7 @@ if (!isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_objects","_crew","_vehs","_grps","_units","_grp","_fill"]; +private ["_crew","_vehs","_grps","_grp","_fill"]; // ==================================================================================== diff --git a/f/removeBody/fn_removeBody.sqf b/f/removeBody/fn_removeBody.sqf index 3fdee1142..14f55ada1 100644 --- a/f/removeBody/fn_removeBody.sqf +++ b/f/removeBody/fn_removeBody.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_body","_wait","_group","_distance","_pos","_nearPlayers","_nearUnits","_check","_loop"]; +private ["_body","_wait","_group","_distance","_check","_loop"]; // ==================================================================================== @@ -22,9 +22,6 @@ _distance = f_var_removeBodyDistance; waitUntil {!isNull _body}; -_pos = getPos _body; -_nearPlayers = [objNull]; - // ==================================================================================== // WAITING UNTIL ALL CONDITIONS ARE MET @@ -36,7 +33,6 @@ while {_loop} do { _loop = [_body,_distance] call f_fnc_nearPlayer; }; - // ==================================================================================== // REMOVE BODY From 3c068db8038fdfaa4625b131945cd372d336668d Mon Sep 17 00:00:00 2001 From: s Date: Tue, 7 Nov 2017 17:01:54 +0100 Subject: [PATCH 084/407] mpEnd: avoid triggering of multiple endings --- f/mpEnd/fn_mpEnd.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/f/mpEnd/fn_mpEnd.sqf b/f/mpEnd/fn_mpEnd.sqf index 468c48f98..1bf721957 100644 --- a/f/mpEnd/fn_mpEnd.sqf +++ b/f/mpEnd/fn_mpEnd.sqf @@ -15,8 +15,12 @@ if (!isServer) exitWith {}; // SET ENDING & BROADCAST // The desired ending # is taken from the arguments passed to this script. // Using remoteExec the function mpEndReceiver is being spawned on all clients (and server), -// with the passed ending # as parameter +// with the passed ending # as parameter. +// Once an ending has been triggered, no other ending is possible. +if (isNil "f_var_EndingTriggered") then { _this remoteExec ["f_fnc_mpEndReceiver", 0]; +}; +f_var_EndingTriggered = true; // ==================================================================================== From 37de0db101cc934fbf458a998e3ad0c76135bc66 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 11 Nov 2017 16:53:10 +0000 Subject: [PATCH 085/407] Gendarmerie vehicle loadouts referenced _smgm instead of _smgm --- f/assignGear/f_assignGear_gendarmerie.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index f45422f7c..2fad33580 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -322,7 +322,7 @@ switch (_typeofUnit) do clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_smgm, 2]; + _unit addWeaponCargoGlobal [_smg, 2]; _unit addMagazineCargoGlobal [_smgmag, 12]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addMagazineCargoGlobal [_chemred,4]; @@ -338,7 +338,7 @@ switch (_typeofUnit) do clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_smgm, 2]; + _unit addWeaponCargoGlobal [_smg, 2]; _unit addMagazineCargoGlobal [_smgmag, 12]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addMagazineCargoGlobal [_chemred,4]; @@ -368,4 +368,4 @@ if !(_isMan) exitWith {}; // ==================================================================================== // ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; \ No newline at end of file +_unit selectweapon primaryweapon _unit; From ddddb8ccbddc61f139020e47f9ee2a429d042f40 Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Thu, 30 Nov 2017 13:24:57 +0000 Subject: [PATCH 086/407] Brought across changes from https://github.com/Quailsnap/FA_NametagUpdate/commit/7320c868cb18f5575eee805066ec5e1af6fbd3f3, with permission --- f/nametag/f_nametagCONFIG.sqf | 2 +- f/nametag/include/f_nametagBrief.sqf | 46 ++------- f/nametag/include/f_nametagCheckMods.sqf | 3 +- f/nametag/include/f_nametagSettings.sqf | 124 +++++++---------------- 4 files changed, 45 insertions(+), 130 deletions(-) diff --git a/f/nametag/f_nametagCONFIG.sqf b/f/nametag/f_nametagCONFIG.sqf index e7b237dc0..e52b2ec73 100644 --- a/f/nametag/f_nametagCONFIG.sqf +++ b/f/nametag/f_nametagCONFIG.sqf @@ -28,7 +28,7 @@ F_NT_NIGHT = true; // Whether night will affect tag visibility. (true) // Information Shown F_NT_SHOW_GROUP = true; // Show group name under unit's name. (true) -F_NT_SHOW_ROLE = true; // Show unit's role (rifleman, driver). (true) +F_NT_SHOW_ROLE = false;// Show unit's role (rifleman, driver). (true) F_NT_SHOW_VEHICLEINFO = true; // Show vehicle info. Requires SHOW_ROLE. (true) // Draw Distances diff --git a/f/nametag/include/f_nametagBrief.sqf b/f/nametag/include/f_nametagBrief.sqf index f20d6f0ca..593eb0d67 100644 --- a/f/nametag/include/f_nametagBrief.sqf +++ b/f/nametag/include/f_nametagBrief.sqf @@ -13,50 +13,22 @@ { waitUntil {scriptDone f_script_briefing}; - _bstr = format ["WH NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %3m away, and constantly for all units within %2m.

Note that using CBA will disable this menu and replace it with an enchanced one under ADDON OPTIONS. + _bstr = format ["FA NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %3m away, and constantly for all units within %2m.

Note that using CBA will disable this menu and replace it with an enchanced and expanded one under ADDON OPTIONS. Code contributed by Whale#5963. ",F_NT_ACTIONKEY_KEYNAMES, F_NT_DRAWDISTANCE_NEAR,F_NT_DRAWDISTANCE_CURSOR]; if !F_NT_MOD_CBA then { - _bstr = _bstr + "

TOGGLE NEARBY TAGS
Constantly displays name tags for nearby units."; - - if !(isNil "F_NT_FONT_HEIGHT_ONHEAD") then - { - _bstr = _bstr + "

TOGGLE TAG POSITION
Whether tags are rendered on chest or above head."; - }; + _bstr = _bstr + "

NEARBY TAGS? ( YES / NO ) +
Should nametags be shown for all units nearby, rather than just those under cursor?"; - if !(isNil "F_NT_SHOW_ROLE") then - { - _bstr = _bstr + "

TOGGLE ROLE DISPLAY
Displays the unit's role above their name."; - }; - - if !(isNil "F_NT_SHOW_GROUP") then - { - _bstr = _bstr + "

TOGGLE GROUP DISPLAY
Displays the group name below a unit's name."; - }; - - if !(isNil "F_NT_SHOW_VEHICLEINFO") then - { - _bstr = _bstr + "

TOGGLE VEHICLE TYPE DISPLAY
Displays the vehicle type with the commander's name. Requires role display."; - }; - - //_bstr = _bstr + "

COLORS
- //Friendly
- //Fireteam
- //Vehicle Crew"; - + _bstr = _bstr + "

SHOW GROUP? ( YES / NO ) +
Display the unit's group on mouseover?"; + _bstr = _bstr + "

FONT SIZE? ( SMALL / MEDIUM / LARGE )
Font size of nametag text."; + }; // Add brief to map screen. - player createDiaryRecord ["Diary", ["F3 Nametags (Options)",_bstr]]; + player createDiaryRecord ["Diary", ["FA Nametags (Options)",_bstr]]; }; diff --git a/f/nametag/include/f_nametagCheckMods.sqf b/f/nametag/include/f_nametagCheckMods.sqf index a98f40cd7..b81741385 100644 --- a/f/nametag/include/f_nametagCheckMods.sqf +++ b/f/nametag/include/f_nametagCheckMods.sqf @@ -1,7 +1,6 @@ //==================================================================================== // // f_nametagInitMods.sqf - Checks for ACE, ACRE, and/or TFAR presence. -// // @ /u/Whalen207 | Whale #5963 // //==================================================================================== @@ -11,4 +10,4 @@ //------------------------------------------------------------------------------------ // CBA -F_NT_MOD_CBA = isClass(configFile >> "CfgPatches" >> "cba_settings"); \ No newline at end of file +F_NT_MOD_CBA = isClass(configFile >> "CfgPatches" >> "cba_settings"); diff --git a/f/nametag/include/f_nametagSettings.sqf b/f/nametag/include/f_nametagSettings.sqf index d5705cb47..2e0ce735c 100644 --- a/f/nametag/include/f_nametagSettings.sqf +++ b/f/nametag/include/f_nametagSettings.sqf @@ -74,100 +74,44 @@ if F_NT_MOD_CBA then ] call CBA_Settings_fnc_init; // Setting to flip drawcursoronly. - if (!F_NT_DRAWCURSORONLY) then - { - [ - "F_NT_DRAWCURSORONLY", // Internal setting name and value set. - "CHECKBOX", // Setting type. - "Cursor Only (Saves FPS)", // Name shown in menu. - "F3 Nametags", // Category shown in menu. - false // Setting type-specific data. - ] call CBA_Settings_fnc_init; - } - // Changes the default if the missionmaker changes it. - else - { - [ - "F_NT_DRAWCURSORONLY", // Internal setting name and value set. - "CHECKBOX", // Setting type. - "Cursor Only (Saves FPS)", // Name shown in menu. - "F3 Nametags", // Category shown in menu. - true // Setting type-specific data. - ] call CBA_Settings_fnc_init; - }; + [ + "F_NT_DRAWCURSORONLY", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Cursor Only (Saves FPS)", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + F_NT_DRAWCURSORONLY // Setting type-specific data. + ] call CBA_Settings_fnc_init; - // Changes whether nametags draw the role and group when under cursor. - // Missionmaker can force these off in nametagCONFIG. - if (F_NT_SHOW_ROLE || {F_NT_SHOW_GROUP}) then - { - switch true do - { - case (F_NT_SHOW_ROLE && F_NT_SHOW_GROUP): - { - // Option to not show role and group tags. - [ - "F_NT_SHOW_ROLEANDGROUP", // Internal setting name and value set. - "CHECKBOX", // Setting type. - "Show Role and Group", // Name shown in menu. - "F3 Nametags", // Category shown in menu. - true, // Setting type-specific data. - nil, // Nil or 0 for changeable. - { - if F_NT_SHOW_ROLEANDGROUP - then { F_NT_SHOW_ROLE = true; F_NT_SHOW_GROUP = true; } - else { F_NT_SHOW_ROLE = false; F_NT_SHOW_GROUP = false; }; - } - ] call CBA_Settings_fnc_init; - }; - case (!F_NT_SHOW_ROLE&& F_NT_SHOW_GROUP): - { - // Option to not show group tags. - [ - "F_NT_SHOW_GROUP", // Internal setting name and value set. - "CHECKBOX", // Setting type. - "Show Group Names", // Name shown in menu. - "F3 Nametags", // Category shown in menu. - true, // Setting type-specific data. - nil, // Nil or 0 for changeable. - {} - ] call CBA_Settings_fnc_init; - }; - case (F_NT_SHOW_ROLE &&!F_NT_SHOW_GROUP): - { - // Option to not show role tags. - [ - "F_NT_SHOW_ROLE", // Internal setting name and value set. - "CHECKBOX", // Setting type. - "Show Unit Roles", // Name shown in menu. - "F3 Nametags", // Category shown in menu. - true, // Setting type-specific data. - nil, // Nil or 0 for changeable. - {} - ] call CBA_Settings_fnc_init; - }; - }; - }; - // Attaches nametags to player heads, like ACE. - // Missionmaker can change the default setting. - if !F_NT_FONT_HEIGHT_ONHEAD then - { - [ - "F_NT_FONT_HEIGHT_ONHEAD", // Internal setting name and value set. + // Option to not show group tags. + [ + "F_NT_SHOW_GROUP", // Internal setting name and value set. "CHECKBOX", // Setting type. - "Show Above Head", // Name shown in menu. + "Show Group Names", // Name shown in menu. "F3 Nametags", // Category shown in menu. - false // Setting type-specific data. - ] call CBA_Settings_fnc_init; - } - else - { - [ - "F_NT_FONT_HEIGHT_ONHEAD", // Internal setting name and value set. + F_NT_SHOW_GROUP, // Setting type-specific data. + nil, // Nil or 0 for changeable. + {} + ] call CBA_Settings_fnc_init; + + // Option to not show role tags. + [ + "F_NT_SHOW_ROLE", // Internal setting name and value set. "CHECKBOX", // Setting type. - "Show Above Head", // Name shown in menu. + "Show Unit Roles", // Name shown in menu. "F3 Nametags", // Category shown in menu. - true // Setting type-specific data. - ] call CBA_Settings_fnc_init; - }; + F_NT_SHOW_ROLE, // Setting type-specific data. + nil, // Nil or 0 for changeable. + {} + ] call CBA_Settings_fnc_init; + + // Attaches nametags to player heads, like ACE. + // Missionmaker can change the default setting. + [ + "F_NT_FONT_HEIGHT_ONHEAD", // Internal setting name and value set. + "CHECKBOX", // Setting type. + "Show Above Head", // Name shown in menu. + "F3 Nametags", // Category shown in menu. + F_NT_FONT_HEIGHT_ONHEAD // Setting type-specific data. + ] call CBA_Settings_fnc_init; }; \ No newline at end of file From fa5a2f31ce3bf52ccf0491d32c3a6aa1587edd76 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 2 Dec 2017 16:16:25 +0000 Subject: [PATCH 087/407] [#82] Fixed script error due to invalid enum string --- f/zeus/fn_zeusInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index fbfe9fe45..539f05392 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -51,7 +51,7 @@ if (isNil "f_var_sideCenter") then { }; // Create a new curator logic -_curator = (createGroup f_var_sideCenter) createUnit ["ModuleCurator_F",[0,0,0] , [], 0, ""]; +_curator = (createGroup f_var_sideCenter) createUnit ["ModuleCurator_F", [0,0,0], [], 0, "NONE"]; // Assign the passed unit as curator _unit assignCurator _curator; From 9158760ccfb71899d8096c3cf7fc47b07c38f36f Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 2 Dec 2017 20:51:42 +0000 Subject: [PATCH 088/407] Fixed enum error on createUnit. NONE used as exact position unimportant due to camera blackout --- f/medical/fn_reviveEhDammaged.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index 76880935b..6b26ac607 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -80,7 +80,7 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc private _group = group player; _unit = player; player addMPEventHandler ["mpkilled", f_fnc_reviveEhKilledInVeh]; - private _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, ""]; + private _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, "NONE"]; _camera setName format ["Ressurection%1", round(random 20000)]; selectPlayer _camera; _unit setName (name _camera); From 094c66e724dad5fd3fec9717e3eb72ef9dbfac4d Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 2 Dec 2017 21:07:13 +0000 Subject: [PATCH 089/407] HOTFIX: fixed script error when _locationData is not Code --- f/nametag/functions/fn_nametagDraw.sqf | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/f/nametag/functions/fn_nametagDraw.sqf b/f/nametag/functions/fn_nametagDraw.sqf index e17cf44d2..1a40c6294 100644 --- a/f/nametag/functions/fn_nametagDraw.sqf +++ b/f/nametag/functions/fn_nametagDraw.sqf @@ -42,6 +42,10 @@ _player = player; // Get distance from player to target. //------------------------------------------------------------------------------------ +// HOTFIX: _locationData is sometimes not code. https://puu.sh/yy2QG/5a79f349f7.png +// If this happens, skip drawing the nametag +if (!(_locationData isEqualType {})) exitWith {}; + // Find position tag will be rendered at using location data. _targetPositionAGL = call _locationData; @@ -67,8 +71,8 @@ if (_unit getVariable ["wh_nt_isSpeaking", false]) then else { ">" + _name + "<" }; }; - - + + //------------------------------------------------------------------------------------ // Applying initial transparency to tag depending on distance and time of day. //------------------------------------------------------------------------------------ @@ -116,7 +120,7 @@ if (_drawRoleAndGroup && {!(_isPassenger)}) then _nameColor set [3, (_namecolor select 3) * _alphaCoef]; _color set [3, (_color select 3) * _alphaCoef]; }; - + //-------------------------------------------------------------------------------- // Use space magic to realign the tags with the player's view. // IE: If the player is above the target, normally the nametags (which are stacked - @@ -130,12 +134,12 @@ if (_drawRoleAndGroup && {!(_isPassenger)}) then // TODO: Move up to update scope. _vectorDir = _cameraPositionAGL vectorFromTo (positionCameraToWorld[0,0,1]); - // Second, and the biggest step, get the normal (magnitude 1) vector going upwards + // Second, and the biggest step, get the normal (magnitude 1) vector going upwards // along the player's screen (visually) by taking the cross product of the player's // model upward vector and the player's view vector, and then take the cross product // of that and a vector going directly from the camera to the nametag. - // Better explanation here + // Better explanation here // ( forums.bistudio.com/forums/topic/206072-multi-line-text-in-drawicon3d ) // TODO: Simplify this code if possible. @@ -144,11 +148,11 @@ if (_drawRoleAndGroup && {!(_isPassenger)}) then _vectorDiff = (vectorNormalized (((_vectorDir) vectorCrossProduct (vectorUp _player)) vectorCrossProduct (_targetPositionAGL vectorDiff _cameraPositionAGL))); // Take that new normal vector and multiply it by the distance, then divide it by the zoom. - + _targetPositionAGLTop = _targetPositionAGL vectorAdd (_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_TOP_MULTI * _camDistance / _zoom)); _targetPositionAGLBottom = _targetPositionAGL vectorAdd ((_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_BOTTOM_MULTI * _camDistance / _zoom)) vectorMultiply -1); - + //-------------------------------------------------------------------------------- // Render the nametags. //-------------------------------------------------------------------------------- @@ -156,22 +160,21 @@ if (_drawRoleAndGroup && {!(_isPassenger)}) then // Role tag (top). if ( !(_role isEqualTo "") && {F_NT_SHOW_ROLE} ) then { - drawIcon3D ["", _color, _targetPositionAGLTop, + drawIcon3D ["", _color, _targetPositionAGLTop, 0, 0, 0, _role,F_NT_FONT_SHADOW,_sizeSecondary,F_NT_FONT_FACE_SEC]; }; // Group tag (bottom). if ( !(_groupName isEqualTo "") && {F_NT_SHOW_GROUP} ) then { - drawIcon3D ["", _color, _targetPositionAGLBottom, + drawIcon3D ["", _color, _targetPositionAGLBottom, 0, 0, 0, _groupName,F_NT_FONT_SHADOW,_sizeSecondary,F_NT_FONT_FACE_SEC]; }; }; - + // TODO: Remove this testing thing // Name tag (middle). //drawIcon3D ["\A3\ui_f\data\map\markers\flags\AAF_ca.paa", [0,0,0,1], _targetPositionAGL, 1, 1, 0, "",0,(_sizeMain+(_sizeMain*0.2)),F_NT_FONT_FACE_MAIN]; // Name tag (middle). drawIcon3D ["", _nameColor, _targetPositionAGL, 0,0,0, _name,F_NT_FONT_SHADOW,_sizeMain,F_NT_FONT_FACE_MAIN]; - From 945429fa56cc14ae25786fcfe71971019c0d1f34 Mon Sep 17 00:00:00 2001 From: Lexer Date: Wed, 13 Dec 2017 20:54:42 +0000 Subject: [PATCH 090/407] Changed/fixed BIS Revive integration: - Restores vanilla behaviour of FAKs and medkits - Reviving no longer heals a player - Replace the "Force Respawn" hold action while downed with a "Wait to be revived" "infinite" hold-action - Pull out wounded is now a hold action (and fixed a bug where multiple actions could be added) - Players can now be properly 'downed' in vehicles - Tweaked current integration methods Changes not fully tested at this time. --- f/functions.hpp | 9 +-- f/medical/fn_EjectWounded.sqf | 17 ----- f/medical/fn_HasWounded.sqf | 6 -- f/medical/fn_addEject.sqf | 4 - f/medical/fn_addPullOutAction.sqf | 67 +++++++++++++++++ f/medical/fn_reInhabitBody.sqf | 23 ------ f/medical/fn_reviveEhDammaged.sqf | 88 ++++++---------------- f/medical/fn_reviveEhKilledInVeh.sqf | 15 ---- f/medical/fn_vehicleHasWounded.sqf | 11 +++ f/medical/init.sqf | 108 +++++++++++++++++++++++---- 10 files changed, 197 insertions(+), 151 deletions(-) delete mode 100644 f/medical/fn_EjectWounded.sqf delete mode 100644 f/medical/fn_HasWounded.sqf delete mode 100644 f/medical/fn_addEject.sqf create mode 100644 f/medical/fn_addPullOutAction.sqf delete mode 100644 f/medical/fn_reInhabitBody.sqf delete mode 100644 f/medical/fn_reviveEhKilledInVeh.sqf create mode 100644 f/medical/fn_vehicleHasWounded.sqf diff --git a/f/functions.hpp b/f/functions.hpp index eb8c0f494..405739d8f 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -101,14 +101,11 @@ class F // Defines the "owner" { file = "f\medical"; class reviveEhDammaged {}; - class findDeadAnim {}; - class reviveEhKilledInVeh {}; class addDragAction {}; - class reinhabitBody {}; class onDrag {}; - class HasWounded {}; - class EjectWounded {}; - class addEject {}; + class findDeadAnim {}; + class addPullOutAction {}; + class vehicleHasWounded {}; }; class disableThermals { diff --git a/f/medical/fn_EjectWounded.sqf b/f/medical/fn_EjectWounded.sqf deleted file mode 100644 index 23c61668e..000000000 --- a/f/medical/fn_EjectWounded.sqf +++ /dev/null @@ -1,17 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -params ["_veh", "", "_action"]; -_veh removeAction (_action); -if(isServer) then { - { - if(_x getVariable ["#revDownInVeh", false]) then - { - private _originalOwnerId = _x getVariable["#revOwner", -1]; - if(_originalOwnerId != -1) then { - [_x] remoteExec ["f_fnc_reInhabitBody", _originalOwnerId]; - }; - }; - } forEach crew _veh; -}; diff --git a/f/medical/fn_HasWounded.sqf b/f/medical/fn_HasWounded.sqf deleted file mode 100644 index b6cb857f4..000000000 --- a/f/medical/fn_HasWounded.sqf +++ /dev/null @@ -1,6 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" -// F3 - SimpleWoundingSystem -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== -params ["_veh"]; -{ _x getVariable ["#revDownInVeh", false] } count crew _veh > 0 diff --git a/f/medical/fn_addEject.sqf b/f/medical/fn_addEject.sqf deleted file mode 100644 index a23b9a281..000000000 --- a/f/medical/fn_addEject.sqf +++ /dev/null @@ -1,4 +0,0 @@ -params ["_unit"]; - -_unit playMove ([_unit] call f_fnc_findDeadAnim); -(vehicle _unit) addAction ["Pull out wounded", {_this remoteExec ["f_fnc_EjectWounded"];}, nil, 5, false, true, "", "[_target] call f_fnc_HasWounded", 5]; diff --git a/f/medical/fn_addPullOutAction.sqf b/f/medical/fn_addPullOutAction.sqf new file mode 100644 index 000000000..0a95362ed --- /dev/null +++ b/f/medical/fn_addPullOutAction.sqf @@ -0,0 +1,67 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +if (!hasInterface) exitWith {}; + +params ["_vehicle"]; + +private _actionId = _vehicle getVariable ["#revPullOutAction", -1]; + +// Vehicle already has a pull out action, don't try to add another +if (_actionId != -1) exitWith {}; + +// Code to run when the hold-action completes +private _action = { + params ["_target"]; + + { + private _unit = _x; + + // Pull the unit out if they are down + if (IS_DISABLED(_unit)) then { + // Hack: Despite the wiki claiming 'moveOut' works on unconscious players, it doesn't + // So make them conscious again until they are out + _unit setUnconscious false; + + // Eject the downed player from the vehicle + moveOut _unit; + + // Hack + _unit setUnconscious true; + + // Move them away from the vehicle slightly once they are out + [] spawn { + sleep 0.2; + (_unit) setPosATL (_unit getPos [0.6, direction _unit]); + }; + + // Make them draggable + [_unit] spawn { + params ["_unit"]; + waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", true, true]; + waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", false, true]; + }; + } + } forEach crew _target; +}; + +_actionId = [ + _vehicle, + "Pull out wounded", + "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa", + "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa", + "[_target] call f_fnc_vehicleHasWounded", + "", + {}, + {}, + _action, + {}, + [], + 5, + 1000, + false, + false +] call BIS_fnc_holdActionAdd; + +_vehicle setVariable ["#revPullOutAction", _actionId]; \ No newline at end of file diff --git a/f/medical/fn_reInhabitBody.sqf b/f/medical/fn_reInhabitBody.sqf deleted file mode 100644 index 34a6fe802..000000000 --- a/f/medical/fn_reInhabitBody.sqf +++ /dev/null @@ -1,23 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - -params ["_unit"]; -private _camera = player; -F_UncCC ppEffectEnable false; -selectPlayer _unit; - -[_camera] joinSilent grpNull; -_unit setVariable ["#revDownInVeh", false, true]; -deleteVehicle _camera; -[_unit ] spawn { - params ["_unit"]; - sleep 0.05; - moveOut _unit; - sleep 0.2; - (_unit) setPosATL (_unit getPos [0.6, direction _unit]); - SET_STATE(_unit,STATE_INCAPACITATED); - //tell others we are draggable - waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", true, true]; - waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", false, true]; -}; diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf index 6b26ac607..7b99c4726 100644 --- a/f/medical/fn_reviveEhDammaged.sqf +++ b/f/medical/fn_reviveEhDammaged.sqf @@ -1,3 +1,5 @@ +// This is a modified version of "\a3\functions_f_mp_mark\Revive\fn_reviveEhDammaged.sqf" + #include "\a3\functions_f_mp_mark\Revive\defines.inc" /* @@ -11,24 +13,17 @@ projectile: Object - the projectile that caused damage */ params ["_unit", "", "_damage","","_hitPoint","_source"]; + if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Incapacitated" && {IS_ACTIVE(_unit)}}}}) then { + //["[i] Incapacitated by dependence: %1",_this] call bis_fnc_logFormat; + //award attacker with +1 'infantry kill' point [_source] spawn bis_fnc_reviveAwardKill; - //incapacitate unit outside of vehicle + // Allow the downed player to be dragged if they are not in a vehicle if (!IN_VEHICLE(_unit)) then { - if (isNull _source || {!bis_revive_killfeedShow}) then - { - SET_STATE(_unit,STATE_INCAPACITATED); - } - else - { - SET_STATE_XTRA(_unit,STATE_INCAPACITATED,_source); - }; - - //tell others that we are draggable [_unit ] spawn { params ["_unit"]; waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; @@ -36,63 +31,22 @@ if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Inc waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; _unit setVariable ["f_wound_draggable", false, true]; }; - - //remove force-"respawn" action - [] spawn { - private _time = time + 10; //only wait for 10 seconds to avoid stacked threads - - waitUntil {sleep 0.05; (player getVariable [VAR_ACTION_ID_RESPAWN,-1] != -1) || (time > _time) }; - //remove user action - private _actionID = player getVariable [VAR_ACTION_ID_RESPAWN,-1]; - if (_actionID != -1) then { - [player,_actionID] call bis_fnc_holdActionRemove; - player setVariable [VAR_ACTION_ID_RESPAWN,-1]; - }; - //reset 'forcing respawn' flags - if (IS_FORCING_RESPAWN(player)) then {SET_FORCING_RESPAWN(player, false);}; - }; } - //kill unit in vehicle else { - - F_UncCC = ppEffectCreate ["ColorCorrections", 1603]; - F_UncCC ppEffectEnable true; - F_UncCC ppEffectAdjust [ - 0, - 1, - 0, - 0, 0, 0, 0, - 1, 1, 1, 1, - 0.299, 0.587, 0.114, 0 - ]; - F_UncCC ppEffectCommit 1; - _unit setVariable ["#revDownInVeh", true, true]; - _unit setVariable ["#revOwner", clientOwner, true]; - [_unit, (owner _unit)] remoteExec ["f_fnc_addServerKilledEh", 2]; - - - - _unit playMove ([_unit] call f_fnc_findDeadAnim); - [] spawn { - sleep 1; - if(alive player) then { - private _group = group player; - _unit = player; - player addMPEventHandler ["mpkilled", f_fnc_reviveEhKilledInVeh]; - private _camera = _group createUnit ["VirtualCurator_F", ASLToAGL eyePos player, [], 0, "NONE"]; - _camera setName format ["Ressurection%1", round(random 20000)]; - selectPlayer _camera; - _unit setName (name _camera); - [_unit] remoteExecCall ["f_fnc_addEject", 0, true]; - _camera attachTo [(vehicle _unit), [0,0,0]]; - }else { - F_UncCC ppEffectEnable false; - }; - - - - }; - + // Play the 'downed' animation in a vehicle + _unit playMove ([_unit] call f_fnc_findDeadAnim); + + // Add the 'pull out' action + [vehicle player] remoteExec ["f_fnc_addPullOutAction", 0, vehicle player]; + }; + + if (isNull _source || {!bis_revive_killfeedShow}) then + { + SET_STATE(_unit,STATE_INCAPACITATED); + } + else + { + SET_STATE_XTRA(_unit,STATE_INCAPACITATED,_source); }; -}; +}; \ No newline at end of file diff --git a/f/medical/fn_reviveEhKilledInVeh.sqf b/f/medical/fn_reviveEhKilledInVeh.sqf deleted file mode 100644 index 892339667..000000000 --- a/f/medical/fn_reviveEhKilledInVeh.sqf +++ /dev/null @@ -1,15 +0,0 @@ -params ["_unit"]; -private _downInVeh = _unit getVariable ["#revDownInVeh", false]; -private _originalOwner = _unit getVariable ["#revOwner", -1]; - -if (_downInVeh && _originalOwner == clientOwner) then { - F_UncCC ppEffectEnable false; - private _camera = player; - selectPlayer _unit; - [_camera] joinSilent grpNull; - deleteVehicle _camera; - [] spawn { - sleep 0.5; - [] call f_fnc_activateSpectator; - } -}; diff --git a/f/medical/fn_vehicleHasWounded.sqf b/f/medical/fn_vehicleHasWounded.sqf new file mode 100644 index 000000000..2210e68e1 --- /dev/null +++ b/f/medical/fn_vehicleHasWounded.sqf @@ -0,0 +1,11 @@ +#include "\a3\functions_f_mp_mark\Revive\defines.inc" + +params ["_vehicle"]; + +private _return = false; + +{ + if (IS_DISABLED(_x)) exitWith {_return = true}; +} forEach crew _vehicle; + +_return; \ No newline at end of file diff --git a/f/medical/init.sqf b/f/medical/init.sqf index 990b8fe61..27df3e39e 100644 --- a/f/medical/init.sqf +++ b/f/medical/init.sqf @@ -1,26 +1,108 @@ -// F3 - SimpleWoundingSystem +// FA3 - Wounding System +// Uses the standard Arma 3 revive system with a few modifications: +// - Restores vanilla behaviour of FAKs and medkits +// - Reviving no longer heals a player +// - Replace the "Force Respawn" hold action while downed with a "Wait to be revived" "infinite" hold-action +// - Players can be downed in vehicles and pulled out +// - Downed players can be dragged // ==================================================================================== + +// Allow access to the standard Arma 3 revive system macros #include "\a3\functions_f_mp_mark\Revive\defines.inc" if (!hasInterface) exitWith {}; - - -//set our own event handler: (to allow special handling of vehicles, and to remove the force-respawn action) +// Remove the HandleHeal event handler to restore vanilla behaviour of FAKs and medkits [] spawn { - waitUntil {sleep 1; (player getVariable ["bis_revive_ehDammaged", -1]) != -1}; + // Wait until the event handler has been set + waitUntil {sleep 1; (player getVariable ["bis_revive_ehHandleHeal", -1]) != -1}; + + // Remove the event handler and unset the variable + player removeEventHandler ["HandleHeal", player getVariable "bis_revive_ehHandleHeal"]; + player setVariable ["bis_revive_ehHandleHeal", nil]; +}; - private _ehID = player getVariable ["bis_revive_ehDammaged", -1]; - if (_ehID != -1) then { - player removeEventHandler ["Dammaged", _ehID]; +// Make revives not heal the player. +// More accurately, undo the damage reset +[] spawn { + while {true} do { + // Wait until the player is downed and being revived + waitUntil {sleep 1;IS_DISABLED(player) && {IS_BEING_REVIVED(player)}}; + + // Store current damage state + private _damage = damage player; + private _hitPartDamageAssocArray = []; + { + _hitPartDamageAssocArray pushBack [_x, player getHitPointDamage _x]; + } forEach (getAllHitPointsDamage player select 0); + + // Wait until the player has been revived + // This is a busy wait to ensure the reset is being done as soon as the reset as possible + waitUntil {IS_ACTIVE(player)}; + + // Wait the damage has been reset + // This is a busy wait to ensure the reset is being done as soon as the reset as possible + waitUntil {(damage player) > _damage}; + + // Reset the damage reset + player setDamage _damage; + { + player setHitPointDamage _x; + } forEach (_hitPartDamageAssocArray); }; +}; - player setVariable ["bis_revive_ehDammaged", player addEventHandler ["Dammaged", f_fnc_reviveEhDammaged]]; +// Remove the "Force Respawn" hold-action and replace with "Wait to be revived" +[] spawn { + while {true} do { + // Wait until the player is downed and being revived + waitUntil {sleep 1; IS_DISABLED(player)}; + + // Wait until the "Force Respawn" hold-action has been defined + // This is a busy wait to ensure the action is removed as soon as possible + waitUntil {(player getVariable [VAR_ACTION_ID_RESPAWN,-1]) != -1}; + + // Remove the hold-action + [player, (player getVariable [VAR_ACTION_ID_RESPAWN,-1])] call bis_fnc_holdActionRemove; + + // Reset 'forcing respawn' flags incase the player started the action before it was removed + if (IS_FORCING_RESPAWN(player)) then { + SET_FORCING_RESPAWN(player, false); + }; + + // Add "Wait to be revived" hold-action + [player, + "Wait to be revived", + bis_fnc_reviveGetActionIcon, + bis_fnc_reviveGetActionIcon, + "lifeState player == 'INCAPACITATED'", + "lifeState player == 'INCAPACITATED'", + {}, + {}, + {}, + {}, + [], + 999999, // basically infinite + 1000, + true, + true] call BIS_fnc_holdActionAdd; + + // Wait until the player's state changes to avoid adding the hold-action multiple times + private _prevState = GET_STATE(player); + waitUntil{sleep 1; GET_STATE(player) != _prevState}; + }; +}; +// Replace the damage handler to change vehicle behaviour +[] spawn { + // Wait until the event handler has been set + waitUntil {sleep 1; (player getVariable ["bis_revive_ehDammaged", -1]) != -1}; + + // Remove the event handler and unset the variable + player removeEventHandler ["Dammaged", player getVariable "bis_revive_ehDammaged"]; + player setVariable ["bis_revive_ehHandleDamage", player addEventHandler ["Dammaged", f_fnc_reviveEhDammaged]]; }; -//drag action: -[player] remoteExec ["f_fnc_addDragAction", 0, player]; -F_UncCC = ppEffectCreate ["ColorCorrections", 1603]; -F_UncCC ppEffectEnable false; +// Make downed players draggable +[player] remoteExec ["f_fnc_addDragAction", 0, player]; \ No newline at end of file From f2d53299e459952283d307136e046ac1e93c7586 Mon Sep 17 00:00:00 2001 From: Lexer Date: Fri, 15 Dec 2017 19:10:11 +0000 Subject: [PATCH 091/407] Fixed hold-action (progress and distance) and locality issue related to actually pulling the unit out --- f/functions.hpp | 1 + f/medical/fn_addPullOutAction.sqf | 33 +++++-------------------------- f/medical/fn_pullOutUnit.sqf | 27 +++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 f/medical/fn_pullOutUnit.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 405739d8f..62a00f52b 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -106,6 +106,7 @@ class F // Defines the "owner" class findDeadAnim {}; class addPullOutAction {}; class vehicleHasWounded {}; + class pullOutUnit {}; }; class disableThermals { diff --git a/f/medical/fn_addPullOutAction.sqf b/f/medical/fn_addPullOutAction.sqf index 0a95362ed..62f704913 100644 --- a/f/medical/fn_addPullOutAction.sqf +++ b/f/medical/fn_addPullOutAction.sqf @@ -18,30 +18,7 @@ private _action = { // Pull the unit out if they are down if (IS_DISABLED(_unit)) then { - // Hack: Despite the wiki claiming 'moveOut' works on unconscious players, it doesn't - // So make them conscious again until they are out - _unit setUnconscious false; - - // Eject the downed player from the vehicle - moveOut _unit; - - // Hack - _unit setUnconscious true; - - // Move them away from the vehicle slightly once they are out - [] spawn { - sleep 0.2; - (_unit) setPosATL (_unit getPos [0.6, direction _unit]); - }; - - // Make them draggable - [_unit] spawn { - params ["_unit"]; - waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", true, true]; - waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", false, true]; - }; + [_unit] remoteExec ["f_fnc_pullOutUnit", _unit]; } } forEach crew _target; }; @@ -49,10 +26,10 @@ private _action = { _actionId = [ _vehicle, "Pull out wounded", - "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa", - "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa", - "[_target] call f_fnc_vehicleHasWounded", - "", + "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_unbind_ca.paa", + "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_unbind_ca.paa", + "(_this distance _target < 5) && {[_target] call f_fnc_vehicleHasWounded}", + "(_caller distance _target < 5) && {[_target] call f_fnc_vehicleHasWounded}", {}, {}, _action, diff --git a/f/medical/fn_pullOutUnit.sqf b/f/medical/fn_pullOutUnit.sqf new file mode 100644 index 000000000..955c684bf --- /dev/null +++ b/f/medical/fn_pullOutUnit.sqf @@ -0,0 +1,27 @@ +params ["_unit"]; + +// Hack: Despite the wiki claiming 'moveOut' works on unconscious players, it doesn't +// So make them conscious again until they are out +_unit setUnconscious false; + +// Eject the downed player from the vehicle +moveOut _unit; + +// Hack +_unit setUnconscious true; + +// Move them away from the vehicle slightly once they are out +[_unit] spawn { + params ["_unit"]; + sleep 0.2; + (_unit) setPosATL (_unit getPos [0.6, direction _unit]); +}; + +// Make them draggable +[_unit] spawn { + params ["_unit"]; + waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", true, true]; + waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; + _unit setVariable ["f_wound_draggable", false, true]; +}; \ No newline at end of file From 0dd99109e7e106be37c90d6c367a8a5038a13fca Mon Sep 17 00:00:00 2001 From: Lexer Date: Fri, 15 Dec 2017 19:11:10 +0000 Subject: [PATCH 092/407] Changed it so revives heal a player as much as a FAK --- f/medical/init.sqf | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/f/medical/init.sqf b/f/medical/init.sqf index 27df3e39e..65af04271 100644 --- a/f/medical/init.sqf +++ b/f/medical/init.sqf @@ -1,9 +1,9 @@ // FA3 - Wounding System // Uses the standard Arma 3 revive system with a few modifications: // - Restores vanilla behaviour of FAKs and medkits -// - Reviving no longer heals a player -// - Replace the "Force Respawn" hold action while downed with a "Wait to be revived" "infinite" hold-action -// - Players can be downed in vehicles and pulled out +// - Reviving no only heals a player as much as a FAK +// - Replace the "Force Respawn" hold action while downed with a "Wait to be revived" "infinite" hold-action (keeps icon animation) +// - Players can be downed in vehicles, will bleed out in them, and can be pulled out // - Downed players can be dragged // ==================================================================================== @@ -23,33 +23,19 @@ if (!hasInterface) exitWith {}; player setVariable ["bis_revive_ehHandleHeal", nil]; }; -// Make revives not heal the player. -// More accurately, undo the damage reset +// Make revives only heal the player to the level of a AFK +// More accurately, damage the player a little once they are revived [] spawn { while {true} do { // Wait until the player is downed and being revived waitUntil {sleep 1;IS_DISABLED(player) && {IS_BEING_REVIVED(player)}}; - // Store current damage state - private _damage = damage player; - private _hitPartDamageAssocArray = []; - { - _hitPartDamageAssocArray pushBack [_x, player getHitPointDamage _x]; - } forEach (getAllHitPointsDamage player select 0); - // Wait until the player has been revived // This is a busy wait to ensure the reset is being done as soon as the reset as possible waitUntil {IS_ACTIVE(player)}; - // Wait the damage has been reset - // This is a busy wait to ensure the reset is being done as soon as the reset as possible - waitUntil {(damage player) > _damage}; - - // Reset the damage reset - player setDamage _damage; - { - player setHitPointDamage _x; - } forEach (_hitPartDamageAssocArray); + // Put damage down to FAK levels + player setDamage 0.25; }; }; From 9c2880062b722d5f71ee1735d8fee488f020ee3a Mon Sep 17 00:00:00 2001 From: s Date: Tue, 26 Dec 2017 03:11:31 +0100 Subject: [PATCH 093/407] preMount: add support for synchronized objects and re-add to mission.sqm --- f/preMount/fn_mountGroups.sqf | 74 +- mission.sqm | 1196 ++++++++++++++++++++++++++++++++- 2 files changed, 1214 insertions(+), 56 deletions(-) diff --git a/f/preMount/fn_mountGroups.sqf b/f/preMount/fn_mountGroups.sqf index 250a3896f..a834d9a02 100644 --- a/f/preMount/fn_mountGroups.sqf +++ b/f/preMount/fn_mountGroups.sqf @@ -9,74 +9,46 @@ if (!isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_crew","_vehs","_grps","_grp","_fill"]; +private ["_crew","_vehs","_grps","_all_grps","_fill"]; // ==================================================================================== // SET KEY VARIABLES // Using the arguments passed to the script, we first define some local variables. -params ["_vehs", "_grps", ["_crew", true], ["_fill", false]]; -//_vehs: Array of vehicles (objects) -//_grps: Array of group names (as strings) +params [["_objects", []], ["_crew", true], ["_fill", false]]; +//_objects: Vehicles and units. //_crew: Mount into crew positions? (optional - default:true) //_fill: Ignore fireteam cohesion in favor of filling vehicles? (optional - default:false) // ==================================================================================== -// CLEAN THE GROUP ARRAY -// First we check if there are illegal groups (non-existent) in the array and remove them. +// PROCESS UNITS/GROUPS -if ({isNil _x} count _grps > 0) then { - { - if (isNil _x) then { - _grps set [_forEachIndex,grpNull]; - }; - } forEach _grps; -}; - -_grps = _grps - [grpNull]; - -// ==================================================================================== - -// PROCESS GROUPS -// Check the passed groups to make sure none of them is empty and they have at least one unit that's not inside a vehicle -{ - _grp = call compile format ["%1",_x]; - _grps set [_forEachIndex,_grp]; - - if (count (units _grp) == 0 || {isNull (assignedVehicle _x)} count (units _grp) == 0) then { - _grps set [_forEachIndex,grpNull]; - }; - -} forEach _grps; - -_grps = _grps - [grpNull]; +//Get all non-vehicle groups +_all_grps = _objects select {_x isKindOf "CAManBase"} apply {group _x}; +//remove duplicates +_all_grps = _all_grps arrayintersect _all_grps; +//only take groups where at least one unit is not in a vehicle +_grps = _all_grps select { count (units _x) > 0 && {isNull (assignedVehicle _x)} count (units _x) > 0 }; // ==================================================================================== // PROCESS VEHICLES -// We make sure that there are only vehicles in the vehicle array -// If a soldier-unit is in the array then we check if we can use the vehicle he's in -{ - if (_x isKindOf "CAManBase") then { - if (vehicle _x != _x) then { - _vehs set [_forEachIndex,vehicle _x]; - } else { - _vehs = _vehs - [_x]; - }; - }; -} forEach _vehs; - -// ==================================================================================== -// CHECK ARRAY COUNT -// If any of the arrays is empty we don't need to execute the function and exit with a warning message. - -if (count _vehs == 0 || count _grps == 0) exitWith { - player globalchat format ["f_fnc_preMount DBG: No vehicles and/or groups were parsed! _vehicles: %1,_grps: %2",_vehs,_grps]; - diag_log format ["f_fnc_preMount DBG: No vehicles and/or groups were parsed! _vehicles: %1,_grps: %2",_vehs,_grps]; -}; +//Get all vehicles +_vehs = _objects select {!(_x isKindOf "CAManBase")}; +//remove duplicates +_vehs = _vehs arrayintersect _vehs; +//Add vehicles from synced units +{ + { + private _veh = assignedVehicle _x; + if (!isNull _veh) then { + _vehs pushBackUnique _veh; + }; + } forEach (units _x); +} forEach _all_grps; // ==================================================================================== diff --git a/mission.sqm b/mission.sqm index 929fe6986..05e4ec06e 100644 --- a/mission.sqm +++ b/mission.sqm @@ -8,7 +8,7 @@ class EditorData toggles=513; class ItemIDProvider { - nextID=1099; + nextID=1130; }; class Camera { @@ -56,7 +56,8 @@ addons[]= "A3_Soft_F_Exp_Offroad_02", "A3_Soft_F_Exp_Van_01", "A3_Soft_F_Exp_Offroad_01", - "A3_Soft_F_Gamma_SUV_01" + "A3_Soft_F_Gamma_SUV_01", + "A3_Modules_F" }; class AddonsMetaData { @@ -261,7 +262,7 @@ class Mission }; class Entities { - items=365; + items=390; class Item0 { dataType="Object"; @@ -32309,16 +32310,341 @@ class Mission id=1098; type="C_SUV_01_F"; }; + class Item365 + { + dataType="Logic"; + class PositionInfo + { + position[]={473.59708,0,776.08887}; + }; + name="F3_preMount_FIA"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1099; + type="Logic"; + atlOffset=185.97; + }; + class Item366 + { + dataType="Logic"; + class PositionInfo + { + position[]={517.23132,0,778.17627}; + }; + name="F3_preMount_FIA_1"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1105; + type="Logic"; + atlOffset=185.97; + }; + class Item367 + { + dataType="Logic"; + class PositionInfo + { + position[]={558.604,0,780.34607}; + }; + name="F3_preMount_FIA_2"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1106; + type="Logic"; + atlOffset=185.97; + }; + class Item368 + { + dataType="Logic"; + class PositionInfo + { + position[]={435.57681,0,770.43823}; + }; + name="F3_preMount_FIA_3"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1107; + type="Logic"; + atlOffset=185.97; + }; + class Item369 + { + dataType="Logic"; + class PositionInfo + { + position[]={437.03455,0,744.61487}; + }; + name="F3_preMount_FIA_4"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1108; + type="Logic"; + atlOffset=185.97; + }; + class Item370 + { + dataType="Logic"; + class PositionInfo + { + position[]={1441.297,0,786.68701}; + }; + name="F3_preMount_AAF"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1110; + type="Logic"; + atlOffset=185.97; + }; + class Item371 + { + dataType="Logic"; + class PositionInfo + { + position[]={1485.2041,0,788.32947}; + }; + name="F3_preMount_AAF_1"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1111; + type="Logic"; + atlOffset=185.97; + }; + class Item372 + { + dataType="Logic"; + class PositionInfo + { + position[]={1528.1724,0,788.09692}; + }; + name="F3_preMount_AAF_2"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1112; + type="Logic"; + atlOffset=185.97; + }; + class Item373 + { + dataType="Logic"; + class PositionInfo + { + position[]={1398.5631,0,781.28723}; + }; + name="F3_preMount_AAF_3"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1113; + type="Logic"; + atlOffset=185.97; + }; + class Item374 + { + dataType="Logic"; + class PositionInfo + { + position[]={1397.389,0,753.11096}; + }; + name="F3_preMount_AAF_4"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1114; + type="Logic"; + atlOffset=185.97; + }; + class Item375 + { + dataType="Logic"; + class PositionInfo + { + position[]={465.21799,0,1396.6851}; + }; + name="F3_preMount_NATO"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1115; + type="Logic"; + atlOffset=185.97; + }; + class Item376 + { + dataType="Logic"; + class PositionInfo + { + position[]={507.88394,0,1396.3147}; + }; + name="F3_preMount_NATO_1"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1116; + type="Logic"; + atlOffset=185.97; + }; + class Item377 + { + dataType="Logic"; + class PositionInfo + { + position[]={551.10376,0,1396.1316}; + }; + name="F3_preMount_NATO_2"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1117; + type="Logic"; + atlOffset=185.97; + }; + class Item378 + { + dataType="Logic"; + class PositionInfo + { + position[]={418.67398,0,1384.4952}; + }; + name="F3_preMount_NATO_3"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1118; + type="Logic"; + atlOffset=185.97; + }; + class Item379 + { + dataType="Logic"; + class PositionInfo + { + position[]={415.53409,0,1358.0823}; + }; + name="F3_preMount_NATO_4"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1119; + type="Logic"; + atlOffset=185.97; + }; + class Item380 + { + dataType="Logic"; + class PositionInfo + { + position[]={1413.598,0,1409.447}; + }; + name="F3_preMount_SYN"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1120; + type="Logic"; + atlOffset=185.97; + }; + class Item381 + { + dataType="Logic"; + class PositionInfo + { + position[]={1450.3208,0,1411.637}; + }; + name="F3_preMount_SYN_1"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1121; + type="Logic"; + atlOffset=185.97; + }; + class Item382 + { + dataType="Logic"; + class PositionInfo + { + position[]={1492.4077,0,1411.3385}; + }; + name="F3_preMount_SYN_2"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1122; + type="Logic"; + atlOffset=185.97; + }; + class Item383 + { + dataType="Logic"; + class PositionInfo + { + position[]={1360.4757,0,1389.549}; + }; + name="F3_preMount_SYN_3"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1123; + type="Logic"; + atlOffset=185.97; + }; + class Item384 + { + dataType="Logic"; + class PositionInfo + { + position[]={1362.8638,0,1356.7145}; + }; + name="F3_preMount_SYN_4"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1124; + type="Logic"; + atlOffset=185.97; + }; + class Item385 + { + dataType="Logic"; + class PositionInfo + { + position[]={2417.865,0,1411.641}; + }; + name="F3_preMount_CSAT"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1125; + type="Logic"; + atlOffset=185.97; + }; + class Item386 + { + dataType="Logic"; + class PositionInfo + { + position[]={2467.3704,0,1409.2566}; + }; + name="F3_preMount_CSAT_1"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1126; + type="Logic"; + atlOffset=185.97; + }; + class Item387 + { + dataType="Logic"; + class PositionInfo + { + position[]={2523.2297,0,1408.4637}; + }; + name="F3_preMount_CSAT_2"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1127; + type="Logic"; + atlOffset=185.97; + }; + class Item388 + { + dataType="Logic"; + class PositionInfo + { + position[]={2371.0068,0,1392.3138}; + }; + name="F3_preMount_CSAT_3"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1128; + type="Logic"; + atlOffset=185.97; + }; + class Item389 + { + dataType="Logic"; + class PositionInfo + { + position[]={2368.0945,0,1361.6034}; + }; + name="F3_preMount_CSAT_4"; + init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + id=1129; + type="Logic"; + atlOffset=185.97; + }; }; class Connections { class LinkIDProvider { - nextID=50; + nextID=136; }; class Links { - items=50; + items=136; class Item0 { linkID=0; @@ -32819,6 +33145,866 @@ class Mission type="Sync"; }; }; + class Item50 + { + linkID=50; + item0=690; + item1=1099; + class CustomData + { + type="Sync"; + }; + }; + class Item51 + { + linkID=51; + item0=54; + item1=1099; + class CustomData + { + type="Sync"; + }; + }; + class Item52 + { + linkID=52; + item0=55; + item1=1099; + class CustomData + { + type="Sync"; + }; + }; + class Item53 + { + linkID=53; + item0=680; + item1=1107; + class CustomData + { + type="Sync"; + }; + }; + class Item54 + { + linkID=54; + item0=51; + item1=1107; + class CustomData + { + type="Sync"; + }; + }; + class Item55 + { + linkID=55; + item0=707; + item1=1105; + class CustomData + { + type="Sync"; + }; + }; + class Item56 + { + linkID=56; + item0=56; + item1=1105; + class CustomData + { + type="Sync"; + }; + }; + class Item57 + { + linkID=57; + item0=87; + item1=1105; + class CustomData + { + type="Sync"; + }; + }; + class Item58 + { + linkID=58; + item0=88; + item1=1106; + class CustomData + { + type="Sync"; + }; + }; + class Item59 + { + linkID=59; + item0=89; + item1=1106; + class CustomData + { + type="Sync"; + }; + }; + class Item60 + { + linkID=60; + item0=724; + item1=1106; + class CustomData + { + type="Sync"; + }; + }; + class Item61 + { + linkID=61; + item0=727; + item1=1106; + class CustomData + { + type="Sync"; + }; + }; + class Item62 + { + linkID=62; + item0=734; + item1=1106; + class CustomData + { + type="Sync"; + }; + }; + class Item63 + { + linkID=63; + item0=52; + item1=1108; + class CustomData + { + type="Sync"; + }; + }; + class Item64 + { + linkID=64; + item0=685; + item1=1108; + class CustomData + { + type="Sync"; + }; + }; + class Item65 + { + linkID=65; + item0=710; + item1=1105; + class CustomData + { + type="Sync"; + }; + }; + class Item66 + { + linkID=66; + item0=717; + item1=1105; + class CustomData + { + type="Sync"; + }; + }; + class Item67 + { + linkID=67; + item0=693; + item1=1099; + class CustomData + { + type="Sync"; + }; + }; + class Item68 + { + linkID=68; + item0=700; + item1=1099; + class CustomData + { + type="Sync"; + }; + }; + class Item69 + { + linkID=69; + item0=536; + item1=1114; + class CustomData + { + type="Sync"; + }; + }; + class Item70 + { + linkID=70; + item0=531; + item1=1113; + class CustomData + { + type="Sync"; + }; + }; + class Item71 + { + linkID=71; + item0=545; + item1=1110; + class CustomData + { + type="Sync"; + }; + }; + class Item72 + { + linkID=72; + item0=566; + item1=1111; + class CustomData + { + type="Sync"; + }; + }; + class Item73 + { + linkID=73; + item0=587; + item1=1112; + class CustomData + { + type="Sync"; + }; + }; + class Item74 + { + linkID=74; + item0=548; + item1=1110; + class CustomData + { + type="Sync"; + }; + }; + class Item75 + { + linkID=75; + item0=555; + item1=1110; + class CustomData + { + type="Sync"; + }; + }; + class Item76 + { + linkID=76; + item0=569; + item1=1111; + class CustomData + { + type="Sync"; + }; + }; + class Item77 + { + linkID=77; + item0=576; + item1=1111; + class CustomData + { + type="Sync"; + }; + }; + class Item78 + { + linkID=78; + item0=590; + item1=1112; + class CustomData + { + type="Sync"; + }; + }; + class Item79 + { + linkID=79; + item0=597; + item1=1112; + class CustomData + { + type="Sync"; + }; + }; + class Item80 + { + linkID=80; + item0=205; + item1=1115; + class CustomData + { + type="Sync"; + }; + }; + class Item81 + { + linkID=81; + item0=191; + item1=1118; + class CustomData + { + type="Sync"; + }; + }; + class Item82 + { + linkID=82; + item0=196; + item1=1119; + class CustomData + { + type="Sync"; + }; + }; + class Item83 + { + linkID=83; + item0=59; + item1=1119; + class CustomData + { + type="Sync"; + }; + }; + class Item84 + { + linkID=84; + item0=42; + item1=1118; + class CustomData + { + type="Sync"; + }; + }; + class Item85 + { + linkID=85; + item0=43; + item1=1115; + class CustomData + { + type="Sync"; + }; + }; + class Item86 + { + linkID=86; + item0=44; + item1=1116; + class CustomData + { + type="Sync"; + }; + }; + class Item87 + { + linkID=87; + item0=45; + item1=1117; + class CustomData + { + type="Sync"; + }; + }; + class Item88 + { + linkID=88; + item0=226; + item1=1116; + class CustomData + { + type="Sync"; + }; + }; + class Item89 + { + linkID=89; + item0=57; + item1=1114; + class CustomData + { + type="Sync"; + }; + }; + class Item90 + { + linkID=90; + item0=41; + item1=1113; + class CustomData + { + type="Sync"; + }; + }; + class Item91 + { + linkID=91; + item0=38; + item1=1110; + class CustomData + { + type="Sync"; + }; + }; + class Item92 + { + linkID=92; + item0=39; + item1=1111; + class CustomData + { + type="Sync"; + }; + }; + class Item93 + { + linkID=93; + item0=40; + item1=1112; + class CustomData + { + type="Sync"; + }; + }; + class Item94 + { + linkID=94; + item0=247; + item1=1117; + class CustomData + { + type="Sync"; + }; + }; + class Item95 + { + linkID=95; + item0=250; + item1=1117; + class CustomData + { + type="Sync"; + }; + }; + class Item96 + { + linkID=96; + item0=257; + item1=1117; + class CustomData + { + type="Sync"; + }; + }; + class Item97 + { + linkID=97; + item0=229; + item1=1116; + class CustomData + { + type="Sync"; + }; + }; + class Item98 + { + linkID=98; + item0=236; + item1=1116; + class CustomData + { + type="Sync"; + }; + }; + class Item99 + { + linkID=99; + item0=208; + item1=1115; + class CustomData + { + type="Sync"; + }; + }; + class Item100 + { + linkID=100; + item0=215; + item1=1115; + class CustomData + { + type="Sync"; + }; + }; + class Item101 + { + linkID=101; + item0=952; + item1=1124; + class CustomData + { + type="Sync"; + }; + }; + class Item102 + { + linkID=102; + item0=842; + item1=1124; + class CustomData + { + type="Sync"; + }; + }; + class Item103 + { + linkID=103; + item0=951; + item1=1123; + class CustomData + { + type="Sync"; + }; + }; + class Item104 + { + linkID=104; + item0=827; + item1=1123; + class CustomData + { + type="Sync"; + }; + }; + class Item105 + { + linkID=105; + item0=953; + item1=1120; + class CustomData + { + type="Sync"; + }; + }; + class Item106 + { + linkID=106; + item0=954; + item1=1120; + class CustomData + { + type="Sync"; + }; + }; + class Item107 + { + linkID=107; + item0=855; + item1=1120; + class CustomData + { + type="Sync"; + }; + }; + class Item108 + { + linkID=108; + item0=862; + item1=1120; + class CustomData + { + type="Sync"; + }; + }; + class Item109 + { + linkID=109; + item0=869; + item1=1120; + class CustomData + { + type="Sync"; + }; + }; + class Item110 + { + linkID=110; + item0=955; + item1=1121; + class CustomData + { + type="Sync"; + }; + }; + class Item111 + { + linkID=111; + item0=956; + item1=1121; + class CustomData + { + type="Sync"; + }; + }; + class Item112 + { + linkID=112; + item0=872; + item1=1121; + class CustomData + { + type="Sync"; + }; + }; + class Item113 + { + linkID=113; + item0=879; + item1=1121; + class CustomData + { + type="Sync"; + }; + }; + class Item114 + { + linkID=114; + item0=886; + item1=1121; + class CustomData + { + type="Sync"; + }; + }; + class Item115 + { + linkID=115; + item0=957; + item1=1122; + class CustomData + { + type="Sync"; + }; + }; + class Item116 + { + linkID=116; + item0=958; + item1=1122; + class CustomData + { + type="Sync"; + }; + }; + class Item117 + { + linkID=117; + item0=889; + item1=1122; + class CustomData + { + type="Sync"; + }; + }; + class Item118 + { + linkID=118; + item0=896; + item1=1122; + class CustomData + { + type="Sync"; + }; + }; + class Item119 + { + linkID=119; + item0=903; + item1=1122; + class CustomData + { + type="Sync"; + }; + }; + class Item120 + { + linkID=120; + item0=58; + item1=1129; + class CustomData + { + type="Sync"; + }; + }; + class Item121 + { + linkID=121; + item0=373; + item1=1129; + class CustomData + { + type="Sync"; + }; + }; + class Item122 + { + linkID=122; + item0=46; + item1=1128; + class CustomData + { + type="Sync"; + }; + }; + class Item123 + { + linkID=123; + item0=368; + item1=1128; + class CustomData + { + type="Sync"; + }; + }; + class Item124 + { + linkID=124; + item0=47; + item1=1125; + class CustomData + { + type="Sync"; + }; + }; + class Item125 + { + linkID=125; + item0=48; + item1=1126; + class CustomData + { + type="Sync"; + }; + }; + class Item126 + { + linkID=126; + item0=49; + item1=1127; + class CustomData + { + type="Sync"; + }; + }; + class Item127 + { + linkID=127; + item0=424; + item1=1127; + class CustomData + { + type="Sync"; + }; + }; + class Item128 + { + linkID=128; + item0=403; + item1=1126; + class CustomData + { + type="Sync"; + }; + }; + class Item129 + { + linkID=129; + item0=382; + item1=1125; + class CustomData + { + type="Sync"; + }; + }; + class Item130 + { + linkID=130; + item0=385; + item1=1125; + class CustomData + { + type="Sync"; + }; + }; + class Item131 + { + linkID=131; + item0=392; + item1=1125; + class CustomData + { + type="Sync"; + }; + }; + class Item132 + { + linkID=132; + item0=406; + item1=1126; + class CustomData + { + type="Sync"; + }; + }; + class Item133 + { + linkID=133; + item0=413; + item1=1126; + class CustomData + { + type="Sync"; + }; + }; + class Item134 + { + linkID=134; + item0=427; + item1=1127; + class CustomData + { + type="Sync"; + }; + }; + class Item135 + { + linkID=135; + item0=434; + item1=1127; + class CustomData + { + type="Sync"; + }; + }; }; }; }; From d9a110afdfc062cc61f8a7dbcc7fa7bd1434b73a Mon Sep 17 00:00:00 2001 From: s Date: Tue, 26 Dec 2017 14:18:37 +0100 Subject: [PATCH 094/407] assignGear: add medic trait --- f/assignGear/f_assignGear_aaf_light.sqf | 3 ++- f/assignGear/f_assignGear_aaf_standard.sqf | 3 ++- f/assignGear/f_assignGear_csatPacific_light.sqf | 3 ++- f/assignGear/f_assignGear_csatPacific_standard.sqf | 3 ++- f/assignGear/f_assignGear_csat_light.sqf | 3 ++- f/assignGear/f_assignGear_csat_standard.sqf | 3 ++- f/assignGear/f_assignGear_ctrg_light.sqf | 3 ++- f/assignGear/f_assignGear_ctrg_standard.sqf | 3 ++- f/assignGear/f_assignGear_fiaAK_light.sqf | 1 + f/assignGear/f_assignGear_fiaAK_standard.sqf | 1 + f/assignGear/f_assignGear_fia_light.sqf | 1 + f/assignGear/f_assignGear_fia_standard.sqf | 1 + f/assignGear/f_assignGear_natoPacific_light.sqf | 3 ++- f/assignGear/f_assignGear_natoPacific_standard.sqf | 3 ++- f/assignGear/f_assignGear_nato_light.sqf | 3 ++- f/assignGear/f_assignGear_nato_standard.sqf | 3 ++- f/assignGear/f_assignGear_syndikat_light.sqf | 3 ++- f/assignGear/f_assignGear_syndikat_standard.sqf | 3 ++- 18 files changed, 32 insertions(+), 14 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index c82778ec1..02e37f7c2 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -120,6 +120,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -518,4 +519,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index d9077fb52..b08aadab1 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -124,6 +124,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -524,4 +525,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 12070656c..81d05fcf5 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -121,6 +121,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; @@ -519,4 +520,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 75b5733a6..17e5f7753 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -125,6 +125,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; @@ -525,4 +526,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 6f83bb2b3..a8fdcac3e 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -120,6 +120,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -518,4 +519,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 38813bd2d..3966ebc0c 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -125,6 +125,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -525,4 +526,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 239bee701..5694aa89d 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -121,6 +121,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; @@ -519,4 +520,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 8adec877a..488ba7167 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -124,6 +124,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; @@ -524,4 +525,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index 33ea693c6..dc19947db 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -115,6 +115,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index fcba3917a..b56d4249e 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -125,6 +125,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index edee543ee..c4320237d 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -114,6 +114,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 999a9a037..785d1a914 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -124,6 +124,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 839f41f13..da22a214c 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -122,6 +122,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -521,4 +522,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index c97ba9e50..c9f9b2d32 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -125,6 +125,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -526,4 +527,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index eca6ca4df..87442ab5f 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -122,6 +122,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -521,4 +522,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 9f9e97136..afe0536df 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -125,6 +125,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -527,4 +528,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index 6538310b5..e5a36cca1 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -117,6 +117,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -536,4 +537,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 94d9fca40..890862e03 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -125,6 +125,7 @@ switch (_typeofUnit) do // Medic Loadout: case "m": { + _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -545,4 +546,4 @@ switch (_typeofUnit) do // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file +}; From b449a0fad6f1dbf0cab3b5ab6609ad75bd37f432 Mon Sep 17 00:00:00 2001 From: s Date: Tue, 26 Dec 2017 14:28:05 +0100 Subject: [PATCH 095/407] assignGear: remove unused variables --- f/assignGear/f_assignGear_csat.sqf | 2 -- f/assignGear/f_assignGear_csatPacific.sqf | 2 -- f/assignGear/f_assignGear_ctrg.sqf | 2 -- f/assignGear/f_assignGear_fia.sqf | 4 +--- f/assignGear/f_assignGear_fiaAK.sqf | 4 +--- f/assignGear/f_assignGear_gendarmerie.sqf | 1 - f/assignGear/f_assignGear_nato.sqf | 2 -- f/assignGear/f_assignGear_natoPacific.sqf | 2 -- f/assignGear/f_assignGear_syndikat.sqf | 2 -- f/assignGear/fn_assignGear.sqf | 2 +- 10 files changed, 3 insertions(+), 20 deletions(-) diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 2416d307a..ca2ac52a1 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -239,8 +239,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 010a23a29..a6cce6088 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -238,8 +238,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 0b2517082..611bb583c 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -233,8 +233,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index c9cf53145..7c4dec2c1 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -238,8 +238,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; @@ -362,4 +360,4 @@ if !(_isMan) exitWith {}; // ==================================================================================== // ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; \ No newline at end of file +_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_fiaAK.sqf b/f/assignGear/f_assignGear_fiaAK.sqf index 3bcb012a6..3406092db 100644 --- a/f/assignGear/f_assignGear_fiaAK.sqf +++ b/f/assignGear/f_assignGear_fiaAK.sqf @@ -238,8 +238,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; @@ -362,4 +360,4 @@ if !(_isMan) exitWith {}; // ==================================================================================== // ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; \ No newline at end of file +_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 2fad33580..04fe53720 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -111,7 +111,6 @@ _DMriflemag = "20Rnd_762x51_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; _pilot = ["pp","pcc"]; _specOp = ["nf"]; diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index d52fce35d..94203775c 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -238,8 +238,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index b59384001..aa4cb1587 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -238,8 +238,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index b66c986ae..0b9c8695d 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -225,8 +225,6 @@ _APmine2 = "APERSMine_Range_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_light = []; -_heavy = ["eng","engm"]; _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index ab61da4fd..20ffbd6ec 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -54,7 +54,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bagsmall","_bagmedium","_baglarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_light","_heavy","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_typeofUnit","_unit","_isMan","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit"]; +private ["_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bagsmall","_bagmedium","_baglarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_typeofUnit","_unit","_isMan","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit"]; // ==================================================================================== From e8bd10c83543132ac377e847ef6cb8129c78cabc Mon Sep 17 00:00:00 2001 From: s Date: Tue, 26 Dec 2017 14:53:06 +0100 Subject: [PATCH 096/407] assignGear: add default case for error handling --- f/assignGear/f_assignGear_aaf_light.sqf | 3 +++ f/assignGear/f_assignGear_aaf_standard.sqf | 3 +++ f/assignGear/f_assignGear_csatPacific_light.sqf | 3 +++ f/assignGear/f_assignGear_csatPacific_standard.sqf | 3 +++ f/assignGear/f_assignGear_csat_light.sqf | 3 +++ f/assignGear/f_assignGear_csat_standard.sqf | 3 +++ f/assignGear/f_assignGear_ctrg_light.sqf | 3 +++ f/assignGear/f_assignGear_ctrg_standard.sqf | 3 +++ f/assignGear/f_assignGear_default.sqf | 8 ++++++++ f/assignGear/f_assignGear_fiaAK_light.sqf | 3 +++ f/assignGear/f_assignGear_fiaAK_standard.sqf | 3 +++ f/assignGear/f_assignGear_fia_light.sqf | 3 +++ f/assignGear/f_assignGear_fia_standard.sqf | 3 +++ f/assignGear/f_assignGear_gendarmerie.sqf | 4 ++++ f/assignGear/f_assignGear_natoPacific_light.sqf | 3 +++ f/assignGear/f_assignGear_natoPacific_standard.sqf | 3 +++ f/assignGear/f_assignGear_nato_light.sqf | 3 +++ f/assignGear/f_assignGear_nato_standard.sqf | 3 +++ f/assignGear/f_assignGear_syndikat_light.sqf | 3 +++ f/assignGear/f_assignGear_syndikat_standard.sqf | 3 +++ 20 files changed, 66 insertions(+) create mode 100644 f/assignGear/f_assignGear_default.sqf diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index 02e37f7c2..2631664dc 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -516,6 +516,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_aaf_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index b08aadab1..e53cdd071 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -522,6 +522,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_aaf_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 81d05fcf5..39a336f6b 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -517,6 +517,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_csat_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 17e5f7753..360e73f3a 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -523,6 +523,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_csat_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index a8fdcac3e..072a5b062 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -516,6 +516,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_csat_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 3966ebc0c..c225e25da 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -523,6 +523,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_csat_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 5694aa89d..03f3d3bad 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -517,6 +517,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_ctrg_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 488ba7167..20d0b91e9 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -522,6 +522,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_ctrg_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_default.sqf b/f/assignGear/f_assignGear_default.sqf new file mode 100644 index 000000000..ab5fe26e5 --- /dev/null +++ b/f/assignGear/f_assignGear_default.sqf @@ -0,0 +1,8 @@ + +// Default case for the _typeofUnit switch-case. + + default { + private _msg = format ["DEBUG (assignGear.sqf): Error: Unknown type %1 in faction %2 for unit %3.", _typeofUnit, _faction, _unit]; + systemChat _msg; + diag_log _msg; + }; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index dc19947db..b71be1533 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -538,6 +538,9 @@ _carbine = [_carbine]; // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index b56d4249e..74ede1aa3 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -546,6 +546,9 @@ _carbine = [_carbine]; // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index c4320237d..7d524775f 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -530,6 +530,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 785d1a914..3453646db 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -543,6 +543,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 04fe53720..47f52588d 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -349,6 +349,10 @@ switch (_typeofUnit) do _unit addItemCargoGlobal [_medkit,1]; }; + + // Include the default case for error handling + #include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index da22a214c..7ce538f7b 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -519,6 +519,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_nato_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index c9f9b2d32..8c68dd270 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -524,6 +524,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_nato_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index 87442ab5f..bc4d8b5b1 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -519,6 +519,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_nato_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index afe0536df..d9b3e8f85 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -525,6 +525,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_nato_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index e5a36cca1..a99c18515 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -534,6 +534,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_syndikat_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 890862e03..126cfe6d3 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -543,6 +543,9 @@ switch (_typeofUnit) do // Include the loadouts for vehicles and crates: #include "f_assignGear_syndikat_v.sqf"; +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + // ==================================================================================== // END SWITCH FOR DEFINE UNIT TYPE LOADOUTS From 3734c31baab7a2691b2bd6ddf955901d2dc31efa Mon Sep 17 00:00:00 2001 From: s Date: Tue, 26 Dec 2017 18:58:48 +0100 Subject: [PATCH 097/407] Use params instead of _this select. Use deleteAt instead of BIS_fnc_removeIndex. Use pushBack instead of "array set [count array". --- f/EandEcheck/f_EandECheckLoop.sqf | 4 +- f/FTMemberMarkers/f_localFTMemberMarker.sqf | 6 +-- f/FTMemberMarkers/fn_GetMarkerColor.sqf | 14 ++--- .../fn_SetLocalFTMemberMarkers.sqf | 8 ++- f/authorisedCrew/fn_authorisedCrewCheck.sqf | 23 ++++---- f/briefing/f_briefing_admin.sqf | 1 - f/briefing/f_loadoutNotes.sqf | 53 ++++++++----------- f/briefing/f_orbatNotes.sqf | 8 ++- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 31 ++++++----- f/common/fn_nearPlayer.sqf | 17 +++--- f/functions.hpp | 1 + f/groupMarkers/f_setLocalGroupMarkers.sqf | 16 ++---- .../fn_mapClickTeleportGroup.sqf | 27 +++------- .../fn_mapClickTeleportParachute.sqf | 21 ++++++++ .../fn_mapClickTeleportUnit.sqf | 16 +----- f/missionConditions/fn_SetTime.sqf | 6 ++- f/mpEnd/fn_mpEndReceiver.sqf | 9 ++-- f/setGroupID/fn_setGroupID.sqf | 6 ++- 18 files changed, 121 insertions(+), 146 deletions(-) create mode 100644 f/mapClickTeleport/fn_mapClickTeleportParachute.sqf diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index d461df7f5..3f37e1010 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -56,12 +56,12 @@ if (_objects isEqualType sideUnknown) then { if (_temp isEqualType grpNull) then { { if !(_x in _units) then { - _units set [count _units,_x]; + _units pushBack _x; }; } forEach units _temp; } else { if !(_x in _units) then { - _units set [count _units,_temp]; + _units pushBack _temp; }; }; }; diff --git a/f/FTMemberMarkers/f_localFTMemberMarker.sqf b/f/FTMemberMarkers/f_localFTMemberMarker.sqf index 2f04e3e4d..2a63ade3a 100644 --- a/f/FTMemberMarkers/f_localFTMemberMarker.sqf +++ b/f/FTMemberMarkers/f_localFTMemberMarker.sqf @@ -4,14 +4,15 @@ // DECLARE PRIVATE VARIABLES -private ["_unit","_mkrName","_mkr","_mkrBorder","_pos","_mkrborderName","_dir"]; +private ["_mkrName","_mkr","_mkrBorder","_pos","_mkrborderName","_dir"]; // ==================================================================================== // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -_unit = _this select 0; +params ["_unit"]; + _mkrName = Format ["mkr_%1",_unit]; _mkrborderName = Format ["mkrB_%1",_unit]; @@ -37,7 +38,6 @@ _mkr setMarkerSizeLocal [0.45, 0.45]; _mkr setMarkerDirLocal (direction _unit); - // ==================================================================================== // Run the loop that sets the marker position diff --git a/f/FTMemberMarkers/fn_GetMarkerColor.sqf b/f/FTMemberMarkers/fn_GetMarkerColor.sqf index 653bd0a56..f48f753f6 100644 --- a/f/FTMemberMarkers/fn_GetMarkerColor.sqf +++ b/f/FTMemberMarkers/fn_GetMarkerColor.sqf @@ -9,13 +9,15 @@ // ["MAIN"] call f_fnc_GetMarkerColor; // // ==================================================================================== +params [["_team", "MAIN", [""]]]; + private _color = "ColorWhite"; -switch ((_this select 0)) do +switch (_team) do { - case "MAIN": {_color = "ColorWhite"}; - case "RED": {_color = "ColorRed"}; - case "GREEN": {_color = "ColorGreen"}; - case "BLUE": {_color = "ColorBlue"}; - case "YELLOW": {_color = "ColorYellow"}; + case "MAIN": {_color = "ColorWhite"}; + case "RED": {_color = "ColorRed"}; + case "GREEN": {_color = "ColorGreen"}; + case "BLUE": {_color = "ColorBlue"}; + case "YELLOW": {_color = "ColorYellow"}; }; _color diff --git a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf index ad841b411..c176c0da2 100644 --- a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf +++ b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf @@ -13,7 +13,7 @@ // MAKE SURE THE PLAYER INITIALIZES PROPERLY if (!isDedicated && (isNull player)) then { - waitUntil {sleep 0.1; !isNull player}; + waitUntil {sleep 0.1; !isNull player}; }; // ==================================================================================== @@ -41,13 +41,11 @@ f_fnc_SetTeamValue = if(!(_x in f_var_HandlerGroup) && alive _x) then { [_x] execVM "f\FTMemberMarkers\f_localFTMemberMarker.sqf"; - f_var_HandlerGroup set [count f_var_HandlerGroup,_x]; + f_var_HandlerGroup pushBack _x; }; } forEach units (group player); - sleep 5; + sleep 5; }; - - //f_var_HandlerGroup = []; }; // ==================================================================================== diff --git a/f/authorisedCrew/fn_authorisedCrewCheck.sqf b/f/authorisedCrew/fn_authorisedCrewCheck.sqf index 3f697eb90..c2527dcce 100644 --- a/f/authorisedCrew/fn_authorisedCrewCheck.sqf +++ b/f/authorisedCrew/fn_authorisedCrewCheck.sqf @@ -4,20 +4,20 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_fromEH","_vehicle","_vehicleRole","_unitToCheck","_restrictedCrew","_warningMsg","_restrictcargo","_restrictedList","_restrictedTypes","_restrictedUnits"]; +private ["_warningMsg","_restrictedTypes","_restrictedUnits"]; // ==================================================================================== // SET KEY VARIABLES // Using the arguments passed to the script, we first define some local variables. -_fromEH = _this select 0; -_restrictedList= _this select 1; -_restrictcargo = if (count _this > 2) then {_this select 2} else {false}; +params [ + ["_fromEH", [], [[]]], + ["_restrictedList", [], [[]]], + ["_restrictcargo", false, [false]] +]; -_vehicle = _fromEH select 0; -_vehicleRole = _fromEH select 1; -_unitToCheck = _fromEH select 2; +_fromEH params ["_vehicle", "_vehicleRole", "_unitToCheck"]; _warningMsg = localize "STR_f_UnauthorisedCrew_Warning"; @@ -28,7 +28,6 @@ if (f_param_debugMode == 1) then player sideChat format ["DEBUG (f\authorisedCrew\f_isAuthorisedCrew.sqf): _vehicle = %1",_vehicle]; player sideChat format ["DEBUG (f\authorisedCrew\f_isAuthorisedCrew.sqf): _vehicleRole = %1",_vehicleRole]; player sideChat format ["DEBUG (f\authorisedCrew\f_isAuthorisedCrew.sqf): _unitToCheck = %1",_unitToCheck]; - player sideChat format ["DEBUG (f\authorisedCrew\f_isAuthorisedCrew.sqf): _restrictedCrew = %1",_restrictedCrew]; player sideChat format ["DEBUG (f\authorisedCrew\f_isAuthorisedCrew.sqf): _warningMsg = %1",_warningMsg]; }; @@ -47,12 +46,8 @@ if (_vehicleRole == "CARGO" && !_restrictcargo) exitWith {}; // INTERPRET RESTRICTED ARRAY // Loop through the array containing the allowed classes and units and split them into two -_restrictedTypes = []; -_restrictedUnits = []; -{ - if (_x isEqualType "") then {_restrictedTypes pushBack _x}; - if (_x isEqualType objNull) then {_restrictedUnits pushBack _x}; -} forEach _restrictedList; +_restrictedTypes = _restrictedList select {_x isEqualType ""}; +_restrictedUnits = _restrictedList select {_x isEqualType objNull}; // ==================================================================================== diff --git a/f/briefing/f_briefing_admin.sqf b/f/briefing/f_briefing_admin.sqf index 017fb9c6d..6907550ba 100644 --- a/f/briefing/f_briefing_admin.sqf +++ b/f/briefing/f_briefing_admin.sqf @@ -56,7 +56,6 @@ These endings are available. To trigger an ending click on its link.

"; { - _end = _this select 0; _briefing = _briefing + format [ "'end%1' - %2:
%3

" diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index c71e9d6d0..969321fa8 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -10,39 +10,32 @@ private ["_text","_weps","_items","_fnc_wepMags","_mags","_bp","_maxload","_atta // Local function to set the proper magazine count. _fnc_wepMags = { - private ["_w","_magarr","_wepMags","_magArr","_s"]; - _w = _this select 0; + private ["_wepMags","_magArr","_s"]; + params ["_w"]; - //Get possible magazines for weapon - _wepMags = getArray (configFile >> "CfgWeapons" >> _w >> "magazines"); + //Get possible magazines for weapon + _wepMags = getArray (configFile >> "CfgWeapons" >> _w >> "magazines"); - // Compare weapon magazines with player magazines - _magArr = []; - { - // findInPairs returns the first index that matches the checked for magazine - _s = [_mags,_x] call BIS_fnc_findInPairs; - - //If we have a match - if (_s != -1) then { - // Add the number of magazines to the list - _magArr set [count _magArr,([_mags,[_s, 1]] call BIS_fnc_returnNestedElement)]; - - // Remove the entry - _mags = [_mags, _s] call BIS_fnc_removeIndex; + // Compare weapon magazines with player magazines + _magArr = []; + { + // findInPairs returns the first index that matches the checked for magazine + _s = [_mags,_x] call BIS_fnc_findInPairs; - }; - } forEach _wepMags; + //If we have a match + if (_s != -1) then { + // Add the number of magazines to the list + _magArr pushBack ([_mags,[_s, 1]] call BIS_fnc_returnNestedElement); - if (count _magArr > 0) then { - _text = _text + " ["; + // Remove the entry + _mags deleteAt _s; - { - _text = _text + format ["%1",_x]; - if (count _magarr > (_forEachIndex + 1)) then {_text = _text + "+";} - } forEach _magArr; + }; + } forEach _wepMags; - _text = _text + "]"; - }; + if (count _magArr > 0) then { + _text = _text + format ["[%1]", _magArr joinString "+"]; + }; }; @@ -76,9 +69,9 @@ if (count _weps > 0) then { _text = _text + format["
%1",getText (configFile >> "CfgWeapons" >> _x >> "displayname")]; //Add magazines for weapon - [_x] call _fnc_wepMags; + [_x] call _fnc_wepMags; - // Check if weapon has an underslung grenade launcher + // Check if weapon has an underslung grenade launcher if ({_x in ["GL_3GL_F","EGLM","UGL_F"]} count (getArray (configFile >> "CfgWeapons" >> _x >> "muzzles")) > 0) then { _text = _text + "
|- UGL"; ["UGL_F"] call _fnc_wepMags; @@ -87,7 +80,7 @@ if (count _weps > 0) then { // List weapon attachments // Get attached items _attachments = _wepItems select (([_wepItems,_x] call BIS_fnc_findNestedElement) select 0); - _attachments = [_attachments,0] call BIS_fnc_removeIndex; // Remove the first element as it points to the weapon itself + _attachments deleteAt 0; // Remove the first element as it points to the weapon itself { if (!(_x isEqualType []) && {_x != ""}) then { diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 66e9af2ef..15038eac0 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -60,15 +60,13 @@ _groups = _groups - _hiddenGroups; _veharray = []; { - if ({vehicle _x != _x} count units _x > 0 ) then { { - if (vehicle _x != _x && {!(vehicle _x in _veharray)}) then { - _veharray set [count _veharray,vehicle _x]; + if (vehicle _x != _x) then { + _veharray pushBackUnique (vehicle _x); }; } forEach units _x; }; - } forEach _groups; if (count _veharray > 0) then { @@ -112,7 +110,7 @@ _orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; { if (!(group _x in _groupList) && {(assignedVehicleRole _x select 0) == "CARGO"} count (units group _x) > 0) then { - _groupList set [count _groupList,group _x]; + _groupList pushBack (group _x); }; } forEach crew _x; diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index 31d25c21b..99cdf83cf 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -18,28 +18,27 @@ sleep 0.1; // DECLARE PRIVATE VARIABLES -private ["_grps","_pc","_end","_started","_remaining","_grpstemp","_alive","_faction","_onlyPlayers","_grp", "_Tgrp"]; +private ["_grps","_started","_remaining","_alive","_grp", "_Tgrp"]; // ==================================================================================== // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables. // Up to 5 variables are passed to the script: +// The last two variables are optional, and may not be passed to the script. // 0: = Side (e.g. BLUFOR), or group name(s) as string array (e.g. ["mrGroup1","myGroup2"]) // 1: = What % of units must be dead before the ending is triggered // 2: = What ending will be executed. Can also be code. - -_grpstemp = _this select 0; // either SIDE or array with group strings -_pc = _this select 1; -_end = _this select 2; - -// SET OPTIONAL VARIABLES -// The last two variables are optional, and may not be passed to the script. // 3: = If only groups with a playable leader slot will be included (default is true) // 4: = What faction(s) to filter for if the first variable is a side (e.g. ["blu_f"]) -_onlyPlayers = if (count _this > 3) then {_this select 3} else {true}; -_faction = if (count _this > 4) then {_this select 4} else {[]}; +params [ + ["_grpstemp", sideUnknown, [sideUnknown,[]]], + ["_pc", 100, [0]], + ["_end", 1, [0,{}]], + ["_onlyPlayers", true, [true]], + ["_faction",[], [[]]] +]; // ==================================================================================== @@ -56,14 +55,14 @@ if(_grpstemp isEqualType sideUnknown) then // if the variable is any of the side { if((side _x == _grpstemp) && (leader _x in playableUnits)) then { - _grps set [count _grps,_x]; // Add group to array + _grps pushBack _x; // Add group to array }; } else { if (side _x == _grpstemp) then { - _grps set [count _grps,_x]; // Add group to array + _grps pushBack _x; // Add group to array }; }; @@ -88,7 +87,7 @@ else _Tgrp = call compile format ["%1",_x]; if(!isnil "_Tgrp") then { - _grps set [count _grps,_Tgrp]; + _grps pushBack _Tgrp; }; } foreach _grpstemp; }; @@ -131,9 +130,9 @@ while {true} do // Calculate how many units in the groups are still alive { - _grp = _x; - _alive = {alive _x} count (units _grp); - _remaining = _remaining + _alive; + _grp = _x; + _alive = {alive _x} count (units _grp); + _remaining = _remaining + _alive; } forEach _grps; // DEBUG diff --git a/f/common/fn_nearPlayer.sqf b/f/common/fn_nearPlayer.sqf index 3216f900f..277af2421 100644 --- a/f/common/fn_nearPlayer.sqf +++ b/f/common/fn_nearPlayer.sqf @@ -3,18 +3,19 @@ // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS -private ["_distance","_pos","_players"]; -_pos = getPosATL (_this select 0); -_distance = _this select 1; +private ["_pos","_players"]; + +params [ + ["_obj", objNull, [objNull]], + ["_distance", 0, [0]] +]; + +_pos = getPosATL _obj; // ==================================================================================== // Create a list of all players -_players = []; - -{ - if (isPlayer _x) then {_players pushBack _x}; -} forEach playableUnits; +_players = playableUnits select {isPlayer _x}; // ==================================================================================== diff --git a/f/functions.hpp b/f/functions.hpp index 62a00f52b..258dd1516 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -64,6 +64,7 @@ class F // Defines the "owner" file = "f\mapClickTeleport"; class mapClickTeleportUnit{}; class mapClickTeleportGroup{}; + class mapClickTeleportParachute{}; }; class nametag { diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index 5b2c856ad..bbb8837d3 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -4,7 +4,7 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_unitfaction", "_hq", "_ft", "_sup", "_lau", "_mor", "_eng", "_ifv", "_tnk", "_rec", "_hel", "_pla", "_art", "_med", "_uav"]; +private ["_hq", "_ft", "_sup", "_lau", "_mor", "_eng", "_ifv", "_tnk", "_rec", "_hel", "_pla", "_art", "_med", "_uav"]; // ==================================================================================== @@ -21,17 +21,9 @@ if (!isDedicated && (isNull player)) then // DETECT PLAYER FACTION // The following code detects what faction the player's slot belongs to, and stores // it in the private variable _unitfaction -if(count _this == 0) then -{ - _unitfaction = toLower (faction player); - - // If the unitfaction is different from the group leader's faction, the latters faction is used - if (_unitfaction != toLower (faction (leader group player))) then {_unitfaction = toLower (faction (leader group player))}; -} -else -{ - _unitfaction = (_this select 0); -}; +params [ + ["_unitfaction", toLower (faction (leader group player))] +]; // ==================================================================================== diff --git a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf b/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf index e1d985c70..b95ef140c 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf @@ -4,14 +4,17 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_unit","_pos","_dispersion","_string"]; +private ["_dispersion","_string"]; // ==================================================================================== // SET KEY VARIABLES -_unit = _this select 0; -_pos = _this select 1; +params [ + "_unit", + ["_pos", [0,0,0], [[]], 3] +]; + _dispersion = 100; // The maximum dispersion for units when HALO jumping _string = if (f_var_mapClickTeleport_Height == 0) then {"Teleport"} else {"HALO"}; @@ -44,21 +47,5 @@ if (_unit == vehicle player) then {["MapClickTeleport",[f_var_mapClickTeleport_t // If unit is parajumping, spawn the following code to add a parachute and restore the old backpack after landing if (f_var_mapClickTeleport_Height > 0) then { - [_unit] spawn { - private ["_unit","_bp","_bpi"]; - _unit = _this select 0; - _bp = backpack _unit; - _bpi = backPackItems _unit; - - removeBackpack _unit; - _unit addBackpack "B_parachute"; - waitUntil {sleep 0.1;isTouchingGround _unit;}; - if (alive _unit) then { - removeBackpack _unit; - _unit addBackPack _bp; - { - (unitbackpack _unit) addItemCargoGlobal [_x,1]; - } forEach _bpi; - }; - }; + [_unit] spawn f_fnc_mapClickTeleportParachute; }; diff --git a/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf new file mode 100644 index 000000000..403918b23 --- /dev/null +++ b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf @@ -0,0 +1,21 @@ +// F3 - Mission Maker Teleport +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +//add aparachute as backpack and restore the old backpack on landing + +private ["_bp","_bpi"]; +params ["_unit"]; +_bp = backpack _unit; +_bpi = backPackItems _unit; + +removeBackpack _unit; +_unit addBackpack "B_parachute"; +waitUntil {sleep 0.1;isTouchingGround _unit;}; +if (alive _unit) then { + removeBackpack _unit; + _unit addBackPack _bp; + { + (unitbackpack _unit) addItemCargoGlobal [_x,1]; + } forEach _bpi; +}; diff --git a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf b/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf index 9d6564660..42e5ceaf9 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf @@ -55,21 +55,7 @@ openMap false; // If the players are parajumping spawn the following code to add a backpack and restore the old backpack on landing if (f_var_mapClickTeleport_Height > 0) then { - [player] spawn { - private ["_unit","_bp","_bpi"]; - _unit = _this select 0; - _bp = backpack _unit; - _bpi = backPackItems _unit; - - removeBackpack _unit; - _unit addBackpack "B_parachute"; - waitUntil {sleep 0.1;isTouchingGround _unit;}; - removeBackpack _unit; - _unit addBackPack _bp; - { - (unitbackpack _unit) addItemCargoGlobal [_x,1]; - } forEach _bpi; - }; + [player] spawn f_fnc_mapClickTeleportParachute; }; // ==================================================================================== diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index d1b2bf71a..cfbf82a48 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -8,14 +8,16 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_timeOfDay","_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time","_result","_date"]; +private ["_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time","_result","_date"]; // ==================================================================================== // SET KEY VARIABLES // We interpret the values parsed to the script. If the function was called from the parameters those values are used. -_timeOfDay = _this select 0; +params [ + ["_timeOfDay", 0, [0]] +]; // Exit when using mission settings if ( _timeOfDay == 8 ) exitWith {}; diff --git a/f/mpEnd/fn_mpEndReceiver.sqf b/f/mpEnd/fn_mpEndReceiver.sqf index 3ad58d7c7..762136ba0 100644 --- a/f/mpEnd/fn_mpEndReceiver.sqf +++ b/f/mpEnd/fn_mpEndReceiver.sqf @@ -4,10 +4,10 @@ // DECLARE VARIABLES AND FUNCTIONS -private ["_ending","_state"]; - -_ending = _this select 0; -_state = if (count _this > 1) then {_this select 1} else {true}; +params [ + ["_ending", 1, [0]], + ["_state", true, [true]] +]; // ==================================================================================== @@ -116,4 +116,3 @@ if (dialog) then }; // ==================================================================================== - diff --git a/f/setGroupID/fn_setGroupID.sqf b/f/setGroupID/fn_setGroupID.sqf index 74bf5b33f..c48d03fef 100644 --- a/f/setGroupID/fn_setGroupID.sqf +++ b/f/setGroupID/fn_setGroupID.sqf @@ -5,9 +5,11 @@ // DECLARE VARIABLES private ["_grp"]; +params ["_grp_var", "_grp_id"]; + // Check first if the group exists -_grp = missionNamespace getVariable[(_this select 0),grpNull]; +_grp = missionNamespace getVariable[_grp_var,grpNull]; if(!isNull _grp) then { - _grp setGroupId [(_this select 1),"GroupColor0"]; + _grp setGroupId [_grp_id,"GroupColor0"]; }; From 98ccc208c47a4b96a2b5cbb074530a3c0eb67c52 Mon Sep 17 00:00:00 2001 From: s Date: Mon, 1 Jan 2018 18:53:32 +0100 Subject: [PATCH 098/407] ws_fnc_createGarrison: Add support for factions --- ws_fnc/AI/fn_createGarrison.sqf | 197 +++++++++++++++++--------------- 1 file changed, 106 insertions(+), 91 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index 375773926..a1410d70e 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -1,5 +1,4 @@ -/*ws_fnc_spawnGarrison -Latest: 01/03/2014 +/*ws_fnc_createGarrison By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com Usage Guide: http://www.folkarps.com/forum/viewtopic.php?f=48&t=1224 @@ -10,97 +9,128 @@ USAGE Minimal: [center,radius,side] call ws_fnc_createGarrison Full: -[center,radius,side,number,number,array] call ws_fnc_createGarrison +[center,radius,side,number,number,array,bool] call ws_fnc_createGarrison +or +[center,radius,side,number,number,string,bool] call ws_fnc_createGarrison NOTE Make sure to call this only on the server or headless client. The function itself does not check where it is run. PARAMETERS: -1. Center of town. Can be marker, object or location | MANDATORY - string (markername) or object name -2. Radius of area to be considered | MANDATORY - int -3. Side of units to spawn | MANDATORY - side (east, west, independent, civilian) -4. Number of units. | OPTIONAL - number - default is No. of available buildings/4 -5. threshold of building positions that can be occupied in the buildings in the area | OPTIONAL - number between 1 (=100%) and 0, default is set below -6. Array of classes to spawn | OPTIONAL - array w. strings - default are classes defined below +1. Center of town. Can be marker, object or location | MANDATORY - string (markername) or object name +2. Radius of area to be considered | MANDATORY - int +3. Side of units to spawn | MANDATORY - side (east, west, independent, civilian) +4. Number of units. | OPTIONAL - number - default is No. of available buildings/4 +5. threshold of building positions that can be occupied in the buildings in the area | OPTIONAL - number between 1 (=100%) and 0, default is set below +6. Array of classes to spawn | OPTIONAL - array w. strings - default are classes defined below +6. ALTERNATIVE: Faction to spawn | OPTIONAL - string - faction name +7. Only garrison empty buildings | OPTIONAL - bool - true, if only empty buildings should be garrisoned. This is useful for overlappnig garrison radii. EXAMPLE -["mkrOutpost",50,resistance] call ws_fnc_createGarrison; - his will create units in buildings 50m around the marker named "mkrOutpost". The number of units will the the number of buildings in the radius divided by 2. The classes of the units will be taken from the default array (by default light riflemen). +["mkrOutpost",50,resistance] call ws_fnc_createGarrison; +This will create units in buildings 50m around the marker named "mkrOutpost". +The number of units will the the number of buildings in the radius divided by 4. +The classes of the units will be taken from the default array (by default light riflemen). -[UnitNATO_General,150,west,50,0.7,["B_Soldier_AR","B_Soldier_GL"]] call ws_fnc_createGarrison; - Place 50 NATO soldiers in buildings in a 150m radius around the Object (unit) named UnitNATO_General. All of them will be either AT or Grenadier. Only fill the buildings to 70% percent. +[UnitNATO_General,150,west,50,0.7,["B_Soldier_AR","B_Soldier_GL"]] call ws_fnc_createGarrison; +Place 50 NATO soldiers in buildings in a 150m radius around the Object (unit) named UnitNATO_General. +All of them will be either AT or Grenadier. Only fill the buildings to 70% percent. + +["mkrOutpost",50,opfor,0,0.8,"gendarmerie"] call ws_fnc_createGarrison; +This will create units in buildings 50m around the marker named "mkrOutpost". +The number of units will the the number of buildings in the radius divided by 4. +The classes of the units will be Gendarmerie and their side opfor. RETURNS array of created units */ // DECLARE VARIABLES -private ["_garrisonWest","_garrisonEast","_garrisonIndp","_garrisonCIV","_threshold","_debug","_area","_radius","_side","_int","_thrsh","_classes","_buildings","_grp"]; - -_threshold = 0.8; // Default percentage of building positions that can be taken in any given building (1=all) - -// Default classes (Arma 3) -// To change which units are spawned for which side, replace the array or add additional units to it - -// NATO -_garrisonWest = ["B_Soldier_lite_F","B_Soldier_F"]; - -// CSAT -_garrisonEast = ["O_Soldier_lite_F","O_Soldier_F"]; - -// AAF -_garrisonIndp = ["I_Soldier_lite_F","I_Soldier_F"]; - -// CIVILIAN -_garrisonCIV = [""]; - -// NATO PAcific -// ["B_T_Soldier_F"] - -// CSAT Pacific -// ["O_T_Soldier_F"]; - -// Syndikat Paramilitary -// ["I_C_Soldier_Para_1_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_7_F"]; - -// Syndikat Bandit -// ["I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_5_F"]; - -// FIA -// ["B_G_Soldier_lite_F","B_G_Soldier_F"]; +private ["_debug","_buildings","_grp"]; + +// PARAMETERS +params [ + ["_area", "", ["", objNull, grpNull, locationNull, []]], + ["_radius", 50, [0]], + ["_side", sideEmpty, [sideEmpty]], + ["_int", 0, [0]], + ["_thrsh", 0.8, [0]], + ["_classes", [], ["", []]], + ["_onlyEmptyBuildings", false, [false]] +]; + +//Process parameters +_area = _area call ws_fnc_getEPos; +_classes = toLower _classes; // Debug. If ws_debug is globally defined it overrides _debug _debug = if !(isNil "ws_debug") then {ws_debug} else {false}; -// Declare Variables -_area = (_this select 0) call ws_fnc_getEPos; -_radius = _this select 1; -_side = (_this select 2); -_int = if (count _this > 3) then {_this select 3} else {0}; -_thrsh = if (count _this > 4) then {_this select 4} else {_threshold}; -_classes = if (count _this > 5) then {_this select 5} else {[]}; - -//Fault checks -//Checking the variables we have against what we should have -{[_x,["SIDE"],"ws_fnc_createGarrison"] call ws_fnc_typecheck;} forEach [_side]; -{[_x,["SCALAR"],"ws_fnc_createGarrison"] call ws_fnc_typecheck;} forEach [_int,_radius]; -{[_x,["ARRAY"],"ws_fnc_createGarrison"] call ws_fnc_typecheck;} forEach [_classes,_area]; - -// If default classes are being used, select the corresponding array +// Default classes based on side if (count _classes == 0) then { _classes = switch (_side) do { - case west: {_garrisonWest}; - case blufor: {_garrisonWest}; - case east: {_garrisonEast}; - case opfor: {_garrisonEast}; - case resistance: {_garrisonIndp}; - case independent: {_garrisonIndp}; - case civilian: {_garrisonCIV}; + case west; //or + case blufor: {"blu_f"}; + case east; //or + case opfor: {"opf_f"}; + case resistance; //or + case independent: {"ind_f"}; + case civilian: {"civ_f"}; + }; +}; + +// To change which units are spawned for which faction, replace the array or add additional units to it +if (_classes isEqualType "") then { + _classes = switch (true) do { + case (_classes in ["blu_f","nato"]): { // NATO + ["B_Soldier_lite_F","B_Soldier_F"] + }; + case (_classes in ["blu_t_f","natopacific"]): { // NATO Pacific + ["B_T_Soldier_F"] + }; + case (_classes in ["blu_ctrg_f","ctrg"]): { // CTRG + ["B_CTRG_Soldier_tna_F"] + }; + case (_classes in ["blu_gen_f","gendarmerie"]): { // Gendarmerie + ["B_GEN_Soldier_F"] + }; + case (_classes in ["opf_f","csat"]): { // CSAT + ["O_Soldier_lite_F","O_Soldier_F"] + }; + case (_classes in ["opf_t_f","csatpacific"]): { // CSAT Pacific + ["O_T_Soldier_F"] + }; + case (_classes in ["ind_f","aaf"]): { // AAF + ["I_Soldier_lite_F","I_Soldier_F"] + }; + case (_classes in ["blu_g_f","opf_g_f","ind_g_f","fia"]): { // FIA + ["B_G_Soldier_lite_F","B_G_Soldier_F"] + }; + case (_classes in ["ind_c_f","syndikatparamilitary"]): { // Syndikat Paramilitary + ["I_C_Soldier_Para_1_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_7_F"] + }; + case (_classes in ["syndikatbandit"]): { // Syndikat Bandit + ["I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_5_F"] + }; + case (_classes in ["civ_f","civ_idap_f","civilian"]): { // Civilian, IDAP + [""] + }; }; }; // Collect buildings and assign building positions _buildings = [_area,_radius,true,true] call ws_fnc_collectBuildings; +if (_onlyEmptyBuildings) then { + //only use buildings that haven't been garrisoned yet! (this is useful when having overlapping garrison areas) + _buildings = _buildings select { (_x getVariable ["ws_bunits",0]) == 0 }; +}; + +//remove buildings without building positions +_buildings = _buildings select { count (_x getVariable ["ws_bPos", []]) > 0}; + if (count _buildings == 0) exitWith {["ws_fnc_createGarrison DBG: no buildings found at ",[_area],""] call ws_fnc_debugText}; +//Note: At this point we have at least one building with at least one building position // If no amount of units is set, calculate default if (_int == 0) then { @@ -116,29 +146,15 @@ _grp = createGroup _side; [_grp,_area,["hold"]] call ws_fnc_addWaypoint; for "_x" from 1 to _int do { - private ["_b","_bpa","_bpl","_bu","_i","_u","_dir"]; + private ["_b","_bpa","_bpl","_bu","_i","_bp","_u","_mkr"]; _b = selectRandom _buildings; _bpa = _b getVariable "ws_bPos"; _bpl = _b getVariable ["ws_bPosLeft",_bpa]; _bu = _b getVariable ["ws_bUnits",0]; - // Loop until we get a building that has building positions at all - // Mostly a safety, not sure if there even are any buildings with no building positions in the game - - while {count _bpa == 0 && {count _buildings > 0}} do { - _buildings = _buildings - [_b]; - - if (count _buildings == 0) exitWith {}; - - _b = selectRandom _buildings; - _bpa = _b getVariable "ws_bPos"; - _bpl = _b getVariable ["ws_bPosLeft",_bpa]; - _bu = _b getVariable ["ws_bUnits",0]; - }; - // Loop until we have a building with enough free building positions - while {count _buildings > 0 && {count _bpl == 0 || _bu / count _bpa >= _thrsh}} do { + while { count _bpl == 0 || {(_bu / (count _bpa)) >= _thrsh} } do { _buildings = _buildings - [_b]; if (count _buildings == 0) exitWith {}; @@ -160,21 +176,20 @@ for "_x" from 1 to _int do { _bpl deleteAt _i; // Create a unit and move it into place - _u = _grp createUnit [selectRandom _classes,_area,[],5,"NONE"]; + _u = _grp createUnit [selectRandom _classes,_bp,[],5,"NONE"]; _u setPosATL _bp; - dostop _u; + [_u] joinsilent _grp; //otherwise the side might be wrong + dostop _u; + //_u disableAI "PATH"; _u spawn ws_fnc_setInsidePos; // SetInsidePos is fairly expensive, thus spawned - //_u setDir _dir; - // if (random 1 > 0.75) then {_u setunitpos "Middle";} else {_u setUnitPos "UP"}; - - // Set new variables - _u setVariable ["ws_bpos",_bp,true]; - _b setVariable ["ws_bUnits",_bu + 1,true]; + // Set new variables + _u setVariable ["ws_bpos",_bp,true]; + _b setVariable ["ws_bUnits",_bu + 1,true]; _b setVariable ["ws_bPosLeft",_bpl,true]; - if (_debug) then {_mkr = createMarker [format ["%1-bpos",_u],getPos _u];_mkr setMarkerSize [0.5,0.5];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorGreen";}; + if (_debug) then {_mkr = createMarker [format ["%1-bpos",_u],getPos _u];_mkr setMarkerSize [0.5,0.5];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorGreen";}; }; // Prevent the group leader to issue attack orders to the members, improving their attack from buildings From 3eb27739b90fbbf69889c9a81e0b1e0ff9674d93 Mon Sep 17 00:00:00 2001 From: "shadow-fa@users.noreply.github.com" Date: Thu, 4 Jan 2018 22:31:25 +0100 Subject: [PATCH 099/407] ws_fnc: Remove cache (again) --- ws_fnc/cache/fn_cInit.sqf | 83 ------------------------------------ ws_fnc/cache/fn_cTracker.sqf | 64 --------------------------- ws_fnc/cache/fn_gCache.sqf | 42 ------------------ ws_fnc/cache/fn_gUncache.sqf | 26 ----------- ws_fnc/config.hpp | 10 +---- 5 files changed, 1 insertion(+), 224 deletions(-) delete mode 100644 ws_fnc/cache/fn_cInit.sqf delete mode 100644 ws_fnc/cache/fn_cTracker.sqf delete mode 100644 ws_fnc/cache/fn_gCache.sqf delete mode 100644 ws_fnc/cache/fn_gUncache.sqf diff --git a/ws_fnc/cache/fn_cInit.sqf b/ws_fnc/cache/fn_cInit.sqf deleted file mode 100644 index a4ead5175..000000000 --- a/ws_fnc/cache/fn_cInit.sqf +++ /dev/null @@ -1,83 +0,0 @@ -/* -ws_fnc_cache -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Caches groups. - -USAGE -[min caching distance,agressiveness,sleep] call ws_fnc_cInit; - -To exclude a group from being cached: -a) In unit init: (group this) setVariable ["ws_cacheExcl",true]; -b) Anywhere: Groupname setVariable ["ws_cacheExcl",true,true]; - -NOTE -It's recommended to wait up until a minute into the mission before launching the caching script to make sure that all AI have settled - -PARAMETERS -1. Distance to players for units to be de-cached | OPTIONAL - default is 1000 -2. Agressiveness of the caching | OPTIONAL - default is 2 - 1 - cache only non-leaders and non-drivers - 2 - cache all non-moving units, always exclude vehicle drivers - 3 - cache all units, incl. group leaders and vehicle drivers -3. Amount of seconds between distance-checks to player units | OPTIONAL - default is 5 seconds - -RETURNS -true -*/ - -// Player and the headless client's groups are always excluded from being cached -if (!isDedicated) then { - group player setVariable ["ws_cacheExcl", true, true]; -}; - -// Script is only run server-side -if !(isServer) exitWith {}; - -// Make sure script is only run once -if (missionNameSpace getVariable ["ws_cInit", false]) exitWith {}; -ws_cInit = true; -waituntil {!isnil "bis_fnc_init"}; - -// All groups with playable units are set to be ignored as well -{ - if ({_x in playableUnits} count units _x > 0) then {_x setVariable ["ws_cacheExcl",true,true];}; -} forEach allGroups; - -// Define parameters -_range = if (count _this > 0) then [{_this select 0},{1000}]; -ws_var_cachingAggressiveness = if (count _this > 1) then [{_this select 1},{2}]; -_sleep = if (count _this > 2) then [{_this select 2},{6}]; - - -[_range, _sleep] spawn ws_fnc_cTracker; - -_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; - -if (_debug) then { - ["ws_fnc_cache DBG: Starting to track groups, range, sleep",[count allGroups,_range,_sleep],""] call ws_fnc_debugtext; - - [_sleep] spawn { - - // Giving the tracker a head start - sleep (_this select 0 * 1.1); - - while {true} do { - _str1 = "ws_fnc_cache DBG:
"; - _str2 = format["Total groups: %1
",count allGroups]; - _str3 = format ["Cached groups:%1
",{_x getvariable "ws_cached"} count allGroups]; - _str4 = format ["Activated groups:%1
",{!(_x getvariable "ws_cached")} count allGroups]; - _str5 = format ["Excluded groups:%1
",{(_x getvariable "ws_cacheExcl")} count allGroups]; - - hintsilent parseText (_str1+_str2+_str3+_str4+_str5); - - sleep (_this select 0); - }; - }; -}; - - -true \ No newline at end of file diff --git a/ws_fnc/cache/fn_cTracker.sqf b/ws_fnc/cache/fn_cTracker.sqf deleted file mode 100644 index 2051cffb9..000000000 --- a/ws_fnc/cache/fn_cTracker.sqf +++ /dev/null @@ -1,64 +0,0 @@ -/* -ws_fnc_cTracker -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Tracks all currently present AI-only groups and caches/uncaches them according to distance to parameters -*/ - -private ["_range","_sleep","_groups","_debug"]; - -_range = _this select 0; -_sleep = _this select 1; - -_debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; - -_groups = allGroups; - -// BEGIN THE TRACKING LOOP -While {count _groups > 0} do { - { - _groups = allGroups; - - if (_debug) then{ ["ws_fnc_cache DBG: Tracking ",[count _groups]," groups"] call ws_fnc_debugtext;}; - - if (isnull _x) then { - _groups = _groups - [_x]; - - if (_debug) then{ ["ws_fnc_cache DBG: Group is null, deleting: ",[_x,count _groups]," groups left"] call ws_fnc_debugtext;}; - - } else { - _exclude = _x getvariable ["ws_cacheExcl",false]; - _cached = _x getvariable ["ws_cached", false]; - - if (!_exclude) then { - if (_cached) then { - - if (_debug) then {["ws_fnc_cache DBG: Checking group: ",[_x],""] call ws_fnc_debugtext;}; - - if ([leader _x, _range] call ws_fnc_nearPlayer) then { - - if (_debug) then {["ws_fnc_cache DBG: Caching: ",[_x],""] call ws_fnc_debugtext;}; - - _x setvariable ["ws_cached", false]; - _x spawn ws_fnc_gUncache; - }; - } else { - if !([leader _x, _range * 1.1] call ws_fnc_nearPlayer) then { - - if (_debug) then {player globalchat format ["ws_fnc_cache DBG: Caching: %1",_x]}; - - _x setvariable ["ws_cached", true]; - _x spawn ws_fnc_gCache; - }; - }; - - if (_debug) then {["ws_fnc_cache DBG: Group is excluded: ",[_x]," - Ignoring."] call ws_fnc_debugtext;}; - }; - }; - } foreach _groups; - - sleep _sleep; -}; \ No newline at end of file diff --git a/ws_fnc/cache/fn_gCache.sqf b/ws_fnc/cache/fn_gCache.sqf deleted file mode 100644 index dc5c2fc7c..000000000 --- a/ws_fnc/cache/fn_gCache.sqf +++ /dev/null @@ -1,42 +0,0 @@ -/* -ws_fnc_gCache -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Disables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. -*/ - -// LOOP THROUGH THE PASSED UNITS -// We loop through the units of the passed group and disable Simulation for those that are not vehicle drivers and are standing still -{ - - // Disable simulation based on aggressiveness - switch (ws_var_cachingAggressiveness) do { - case 1: { - if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _this)) then { - _x enableSimulationGlobal false; - }; - }; - case 2: { - if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { - if ((_x != leader _this) || (_x == leader _this && speed _x == 0)) then { - _x enableSimulationGlobal false; - }; - }; - }; - case 3: {_x enableSimulationGlobal false;}; - }; - - // All unit's are hidden - _x hideObjectGlobal true; - - if (ws_var_cachingAggressiveness == 3) then { - if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal true}; - }; - -sleep 0.1; -} forEach units _this; - -true \ No newline at end of file diff --git a/ws_fnc/cache/fn_gUncache.sqf b/ws_fnc/cache/fn_gUncache.sqf deleted file mode 100644 index 5ee57739e..000000000 --- a/ws_fnc/cache/fn_gUncache.sqf +++ /dev/null @@ -1,26 +0,0 @@ -/* -ws_fnc_gUncache -Latest: 15.01.2014 - -based on Black Mamba's work, which in turn is based on Nou and Jaynus' work. (All credit to them) - -FEATURE -Enables Simulation and AI behaviour on all units but the group leader (or vehicle crew). Moves all disabled units out of view. -*/ - - { - _x enableSimulationGlobal true; - _x hideObjectGlobal false; - - - // If the group leader is moving, set his group back next to him - if (speed leader _this > 0 && vehicle _x == _x) then { - _x setPosATL (formationPosition _x); - }; - - if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal false}; - -sleep 0.1; -} forEach units _this; - -true \ No newline at end of file diff --git a/ws_fnc/config.hpp b/ws_fnc/config.hpp index 9e20d302b..5a01b2071 100644 --- a/ws_fnc/config.hpp +++ b/ws_fnc/config.hpp @@ -75,13 +75,5 @@ class WS class setAIMode {}; class setInsidePos {}; }; - class cache - { - file = "ws_fnc\cache"; - class cInit {}; - class gCache {}; - class gUncache {}; - class cTracker {}; - }; - }; \ No newline at end of file + }; From 3428751208f52558432b02b8731983a6433c0492 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 6 Jan 2018 15:01:12 +0100 Subject: [PATCH 100/407] ws_fnc replace '_this select' with params --- ws_fnc/AI/fn_addWaypoint.sqf | 9 ++- ws_fnc/AI/fn_bettervehicle.sqf | 67 +++++++-------------- ws_fnc/AI/fn_createGroup.sqf | 86 ++++++++++++--------------- ws_fnc/AI/fn_createVehicle.sqf | 69 ++++++++------------- ws_fnc/AI/fn_enterBuilding.sqf | 20 +++---- ws_fnc/AI/fn_setAIMode.sqf | 2 +- ws_fnc/AI/fn_setInsidePos.sqf | 4 +- ws_fnc/AI/fn_taskAmbush.sqf | 15 ++--- ws_fnc/AI/fn_taskArtilleryFire.sqf | 2 +- ws_fnc/AI/fn_taskCrew.sqf | 9 ++- ws_fnc/AI/fn_taskDefend.sqf | 32 +++++----- ws_fnc/AI/fn_taskLand.sqf | 23 +++---- ws_fnc/Dbg/fn_clipboardcode.sqf | 2 +- ws_fnc/Dbg/fn_copypos.sqf | 4 +- ws_fnc/Dbg/fn_countUnits.sqf | 2 +- ws_fnc/Dbg/fn_debugText.sqf | 13 ++-- ws_fnc/Dbg/fn_debugTriggers.sqf | 4 +- ws_fnc/Dbg/fn_typecheck.sqf | 30 +++++----- ws_fnc/Tools/fn_checkHC.sqf | 4 +- ws_fnc/Tools/fn_collectBuildings.sqf | 16 +++-- ws_fnc/Tools/fn_collectMarkers.sqf | 8 +-- ws_fnc/Tools/fn_collectObjects.sqf | 8 +-- ws_fnc/Tools/fn_collectObjectsNum.sqf | 3 +- ws_fnc/Tools/fn_gamecheck.sqf | 20 +++++-- ws_fnc/Tools/fn_getObjectClasses.sqf | 13 ++-- ws_fnc/Tools/fn_isWallInDir.sqf | 21 ++++--- ws_fnc/Tools/fn_listPlayers.sqf | 9 +-- ws_fnc/Tools/fn_loadVehicle.sqf | 56 ++++++----------- ws_fnc/Tools/fn_nearPlayer.sqf | 10 ++-- ws_fnc/Tools/fn_setGVar.sqf | 14 +++-- ws_fnc/Tools/fn_showFPS.sqf | 4 +- ws_fnc/Tools/fn_shuffleArray.sqf | 19 ------ ws_fnc/config.hpp | 3 +- ws_fnc/effects/fn_createCAS.sqf | 16 +++-- ws_fnc/effects/fn_createLightning.sqf | 2 +- ws_fnc/effects/fn_createOrdnance.sqf | 15 +++-- ws_fnc/effects/fn_createTripflare.sqf | 16 +++-- ws_fnc/getPos/fn_NearestLandPos.sqf | 25 ++++---- ws_fnc/getPos/fn_NearestRoadPos.sqf | 21 +++---- ws_fnc/getPos/fn_getBpos.sqf | 12 ++-- ws_fnc/getPos/fn_getEPos.sqf | 4 +- ws_fnc/getPos/fn_getPos.sqf | 54 ++++++----------- ws_fnc/getPos/fn_getPosInArea.sqf | 11 ++-- ws_fnc/misc/fn_attachChem.sqf | 20 +++---- ws_fnc/misc/fn_attachIR.sqf | 19 +++--- ws_fnc/misc/fn_attachLight.sqf | 23 ++++--- ws_fnc/misc/fn_showIntro.sqf | 10 +++- ws_fnc/misc/fn_switchLights.sqf | 22 +++---- 48 files changed, 396 insertions(+), 475 deletions(-) delete mode 100644 ws_fnc/Tools/fn_shuffleArray.sqf diff --git a/ws_fnc/AI/fn_addWaypoint.sqf b/ws_fnc/AI/fn_addWaypoint.sqf index 3af122ac3..a9300d41a 100644 --- a/ws_fnc/AI/fn_addWaypoint.sqf +++ b/ws_fnc/AI/fn_addWaypoint.sqf @@ -37,8 +37,7 @@ EXAMPLES [GrpUS_CO,[5,8,0],["sad",250],["COMBAT","RED","FULL"],"hint 'reinforcements have arrived'"] call ws_fnc_addWaypoint | move the group named "GrpUS_CO" to [5,8,0] with full speed and have them start a sweep in a radius of 250. When they reach the waypoint the hint "reinforcements have arrived!" will be displayed */ -private ["_debug", -"_pos","_modes","_wp","_mkr"]; +private ["_debug","_modes","_wp","_mkr"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug @@ -63,7 +62,11 @@ _marray params [ ["_road", false, [false]] ]; -_pos = if !(_road) then {(_pos) call ws_fnc_getEPos;} else {[(_pos),150,5] call ws_fnc_NearestRoadPos}; +if !(_road) then { + _pos = (_pos) call ws_fnc_getEPos; +} else { + _pos = [(_pos),150,5] call ws_fnc_NearestRoadPos; +}; //Fault checks //Checking the variables we have enough against what we should have diff --git a/ws_fnc/AI/fn_bettervehicle.sqf b/ws_fnc/AI/fn_bettervehicle.sqf index b288f87df..8a319177f 100644 --- a/ws_fnc/AI/fn_bettervehicle.sqf +++ b/ws_fnc/AI/fn_bettervehicle.sqf @@ -20,20 +20,16 @@ if !(isServer) exitWith {}; -private ["_debug","_side","_alloweddamage","_vehicles","_handle"]; +private ["_debug","_vehicles","_handle","_unit"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug -_side = _this select 0; -_alloweddamage = if(count _this > 1) then {_this select 1} else {0.8}; //damage allowed before the group bails no matter what -_vehicles = []; +params [ + ["_side", sideUnknown, [sideUnknown,[],objNull]], + ["_alloweddamage", 0.8, [0]] +]; -//Fault checks -//Checking the variables we have against what we should have -if !(isNil "ws_fnc_typecheck") then { - [_side,["ARRAY","OBJECT","SIDE"],"ws_fnc_betterVehicle"] call ws_fnc_typecheck; - [_alloweddamage,["SCALAR"],"ws_fnc_betterVehicle"] call ws_fnc_typecheck; -}; +_vehicles = []; ["ws_fnc_betterVehicle: ",[_side,typename _side],""] call ws_fnc_debugText; @@ -52,47 +48,28 @@ switch (typename _side) do { }; }; - { -_handle = _x getVariable "ws_better_vehicle"; -if (isNil "_handle") then { - if _debug then {player sidechat format ["ws_bettervehicles DBG: Improving: %1",_x]}; + _handle = _x getVariable "ws_better_vehicle"; + if (isNil "_handle") then { + if _debug then {player sidechat format ["ws_bettervehicles DBG: Improving: %1",_x]}; - /*[_x,_alloweddamage,_debug] spawn { - private ["_unit","_alloweddamage"]; - _unit = _this select 0; + _unit = _x; _unit allowCrewInImmobile true; - _unit setvariable ["ws_better_vehicle",1]; - _alloweddamage = _this select 1; - while {damage _unit < _alloweddamage && canFire _unit} do - { - sleep 2.5; - }; - _unit allowCrewInImmobile false; - {_x action ["eject", _unit];} forEach crew _unit; + _unit setvariable ["ws_better_vehicle",_alloweddamage,true]; - if (_this select 2) then {player sidechat format ["ws_bettervehicles DBG: %1 has taken enough damage or can't fire any more. crew bailing",_unit]}; - };*/ + _unit addEventHandler ["Hit", { + params ["_unit"]; + private _damage = getDammage _unit; - _unit = _x; - _unit allowCrewInImmobile true; - _unit setvariable ["ws_better_vehicle",_alloweddamage,true]; + if (_damage > (_unit getVariable "ws_better_vehicle") || !(canFire _unit)) then { + _unit allowCrewInImmobile false; + {_x action ["eject", _unit];} forEach crew _unit; + _unit removeEventHandler ["Hit",0]; + if (ws_debug) then {player sidechat format ["ws_bettervehicles DBG: %1 has taken enough damage or can't fire any more. crew bailing",_unit]}; + }; + }]; - _unit addEventHandler [ - "Hit", - { - _unit = _this select 0; - _damage = getDammage _unit; - - if (_damage > (_unit getVariable "ws_better_vehicle") || !(canFire _unit)) then { - _unit allowCrewInImmobile false; - {_x action ["eject", _unit];} forEach crew _unit; - _unit removeEventHandler ["Hit",0]; - if (ws_debug) then {player sidechat format ["ws_bettervehicles DBG: %1 has taken enough damage or can't fire any more. crew bailing",_unit]}; - }; - }]; - - }; + }; } forEach _vehicles; if _debug then {player sidechat format ["ws_bettervehicles DBG: Exiting. Improved vehicles: %1",_vehicles]}; diff --git a/ws_fnc/AI/fn_createGroup.sqf b/ws_fnc/AI/fn_createGroup.sqf index 8f8b0abe2..1a97282ba 100644 --- a/ws_fnc/AI/fn_createGroup.sqf +++ b/ws_fnc/AI/fn_createGroup.sqf @@ -1,5 +1,4 @@ // WS_fnc_createGroup -// v1 (13.04.2013) // By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com // // FEATURE @@ -23,50 +22,41 @@ // 4.2 Array of classes that fill up the group after all forced classes are used | MANDATORY // 5. code that is executed after the group is spawned | OPTIONAL - executed as [_grp,_this] spawn _code, code has to be string or code -private ["_debug","_count", -"_faction","_spawn","_waypoint","_classes_array","_commonclasses","_forcedclasses","_rareclasses","_rarechance","_respawns", -"_side","_pos","_behaviour","_code","_grp","_wp","_mkr"]; +private ["_debug","_grp","_mkr"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug -//Declaring variables -_count = count _this; -_pos = (_this select 0) call ws_fnc_getEPos; -_side = _this select 1; -_size = _this select 2; -_forcedclasses = (_this select 3) select 0; -_commonclasses = (_this select 3) select 1; - -_code = {}; +params [ + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_side", sideUnknown, [sideUnknown]], + ["_size", 0, [0]], + ["_classes", [], [[]]], + ["_code", {}, [{},""]] +]; +_pos = _pos call ws_fnc_getEpos; -//Optional parameters parsed with the call -if (_count > 4) then {_code = _this select 4;}; +//Declaring variables +_classes params [ + ["_forcedclasses", [], [[]]], + ["_commonclasses", [], [[]]] +]; if (_debug) then { ["ws_fnc_createGroup DBG: running with: ",_this,""] call ws_fnc_debugText; }; -//Fault checks -//Checking the variables we have enough against what we should have -{[_x,["SIDE"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_side]; -{[_x,["ARRAY"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_commonclasses,_forcedclasses]; -{[_x,["SCALAR"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_size]; -{[_x,["STRING","CODE"],"ws_fnc_spawnGroup"] call ws_fnc_typecheck;} forEach [_code]; - - //Creating the group _grp = createGroup _side; -//REWRITE: assign folk gear ? //Create the group leader around who the group assembles -_unit = _grp createUnit [_forcedclasses select 0,_pos,[],0,"NONE"]; +_grp createUnit [_forcedclasses select 0,_pos,[],0,"NONE"]; for "_x" from 2 to (_size) do { - if (_x <= (count _forcedclasses)) then { - _unit = _grp createUnit [_forcedclasses select (_x - 1),_pos,[],5,"NONE"]; - } else { - _unit = _grp createUnit [selectRandom _commonclasses,_pos,[],5,"NONE"]; - }; + if (_x <= (count _forcedclasses)) then { + _grp createUnit [_forcedclasses select (_x - 1),_pos,[],5,"NONE"]; + } else { + _grp createUnit [selectRandom _commonclasses,_pos,[],5,"NONE"]; + }; }; //Weird step necessary to get the correct side for the group @@ -82,25 +72,23 @@ for "_x" from 2 to (_size) do { //DEBUG //Debug creates various markers and text messages helping to indicate where/when groups are spawned. if (_debug) then { -player globalchat format ["DEBUG: ws_fnc_createGroup done. _grp:%1 of size: %2 and side %3",_grp,count (units _grp),side leader _grp]; - - _mkr = createMarker [format ["Grp_%1",_grp], _pos]; - _mkr setMarkerType "n_inf"; - _mkr setMarkerColor "ColorBlue"; - _mkr setMarkerText format ["DBG:Grp %1",_grp]; - _mkr setMarkerSize [0.5,0.5]; - - [_grp,_mkr] spawn { - _check = count (units (_this select 0)); - while {_check > 0} do { - _check = {alive _x} count (units (_this select 0)); - sleep 5; - (_this select 1) setMarkerPos (getPos (leader (_this select 0))); - }; - - (_this select 1) setMarkerColor "ColorRed"; - (_this select 1) setMarkerText format ["DBG:Grp %1 dead",_this select 0]; - }; + player globalchat format ["DEBUG: ws_fnc_createGroup done. _grp:%1 of size: %2 and side %3",_grp,count (units _grp),side leader _grp]; + + _mkr = createMarker [format ["Grp_%1",_grp], _pos]; + _mkr setMarkerType "n_inf"; + _mkr setMarkerColor "ColorBlue"; + _mkr setMarkerText format ["DBG:Grp %1",_grp]; + _mkr setMarkerSize [0.5,0.5]; + + [_grp,_mkr] spawn { + params ["_grp","_mkr"]; + while { {alive _x} count (units _grp) > 0 } do { + sleep 5; + _mkr setMarkerPos (getPos (leader _grp)); + }; + _mkr setMarkerColor "ColorRed"; + _mkr setMarkerText format ["DBG:Grp %1 dead",_grp]; + }; }; //Output the created group and parameters diff --git a/ws_fnc/AI/fn_createVehicle.sqf b/ws_fnc/AI/fn_createVehicle.sqf index d5dcac39a..239e6d175 100644 --- a/ws_fnc/AI/fn_createVehicle.sqf +++ b/ws_fnc/AI/fn_createVehicle.sqf @@ -37,49 +37,31 @@ [getPos t2,GrpOpfHQ,"BMP3",["lockturret","clearcargo"],[5,["RU_Soldier_2","RU_Soldier_1"],true]] call ws_fnc_createVehicle; - Spawn a BMP3 at object t2 that belongs to the group GrpOPFHQ, has a locked turret and empty cargo and 5 soldiers loaded inside. */ -private ["_debug", -"_count","_pos","_side","_type","_modarray","_behaviour", -"_guardarray","_guards","_guardclasses","_load","_code", -"_veh","_grp","_mod","_vehgrp"]; +private ["_debug","_veh","_grp","_mod","_vehgrp","_crew","_crewman","_mkr"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug +params [ + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_side", sideUnknown, [grpNull, sideUnknown]], + ["_type", "", [""]], + ["_modarray", [], [[]]], + ["_guardarray", [], [[]], [0,3]], + ["_code", {}, [{},""]] +]; + //Declare variables -_count = count _this; -_pos = [(_this select 0)] call ws_fnc_getPos; -_side = _this select 1; -_type = _this select 2; -_modarray = []; - -//The default behaviour -//_behaviour = ["AWARE","YELLOW"]; - -_guardarray = []; -_guards = 0; -_guardclasses = []; -_load = false; -_code = {}; - -//Optinal parameters -if (_count > 3) then {_modarray = _this select 3}; -if (_count > 4) then { - _guardarray = _this select 4; - if (count _guardarray == 3) then { - _guards = _guardarray select 0; //Number of troops spawned - _guardclasses = _guardarray select 1; //Classes of troops spawned - _load = _guardarray select 2; //if troops are loaded in - }; -}; -if (_count > 5) then {_code = _this select 5}; +_pos = [_pos] call ws_fnc_getPos; +_guardarray params [ + ["_guards", 0, [0]], //Number of troops spawned + ["_guardclasses", [], [[]]], //Classes of troops spawned + ["_load", false, [false]] //if troops are loaded in +]; //Fault checks //Checking the variables we have enough against what we should have -{[_x,["SIDE","GROUP"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_side]; -{[_x,["STRING"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_type]; -{[_x,["ARRAY"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_pos,_guardarray,_guardclasses,_modarray]; -{[_x,["BOOL"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_load]; -{[_x,["SCALAR"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_guards,_pos select 0,_pos select 1]; -{[_x,["STRING","CODE"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_code]; +{[_x,["ARRAY"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_pos]; +{[_x,["SCALAR"],"ws_fnc_createVehicle"] call ws_fnc_typecheck;} forEach [_pos select 0,_pos select 1]; if (_side isEqualType sideUnknown) then { _grp = createGroup _side;} else @@ -114,7 +96,7 @@ if (_guards > 0) then { _grp = createGroup _side; for "_x" from 1 to _guards do { - _unit = _grp createUnit [selectRandom _guardclasses, getPos _veh, [], 2, "NONE"]; + _grp createUnit [selectRandom _guardclasses, getPos _veh, [], 2, "NONE"]; }; if (_load) then { @@ -165,13 +147,14 @@ if (_debug) then { _mkr setMarkerSize [0.5,0.5]; [_veh,_mkr] spawn { - while {alive (_this select 0)} do { - sleep 5; - (_this select 1) setMarkerPos (getPos (_this select 0)); - }; + params ["_veh","_mkr"]; + while {alive _veh} do { + sleep 5; + _mkr setMarkerPos (getPos _veh); + }; - (_this select 1) setMarkerColor "ColorRed"; - (_this select 1) setMarkerText format ["DBG:Grp %1 dead",_this select 0]; + _mkr setMarkerColor "ColorRed"; + _mkr setMarkerText format ["DBG:Grp %1 dead",_veh]; }; }; diff --git a/ws_fnc/AI/fn_enterBuilding.sqf b/ws_fnc/AI/fn_enterBuilding.sqf index 6b059937d..ff8ca3113 100644 --- a/ws_fnc/AI/fn_enterBuilding.sqf +++ b/ws_fnc/AI/fn_enterBuilding.sqf @@ -15,12 +15,14 @@ RETURNS Units that haven't been put into a building position */ -private ["_debug","_units","_building","_threshold","_barray","_bpos","_bposarray","_bposleft","_bUnits","_occupied","_mkr"]; +private ["_debug","_building","_bpos","_bposarray","_bposleft","_bUnits","_mkr","_unit","_i"]; _debug = if !(isNil "ws_debug") then {ws_debug} else {false}; -_units = _this select 0; -_barray = _this select 1; -_threshold = if (count _this > 2) then [{_this select 2},{1}]; //Percentage of building positions that can be taken before building is considered "full" +params [ + ["_units", [], [[]]], + ["_barray", [], [[]]], + ["_threshold", 1.0, [0]] //Fraction of building positions that can be taken before building is considered "full" +]; if (!(_barray isEqualType [])) then {_barray = [_this select 1]}; if (_threshold <= 0) then {_threshold = 0.8}; @@ -67,11 +69,8 @@ while {count _units > 0 && count _barray > 0} do { _building setVariable ["ws_bUnits",_bUnits+1,true]; // For the unit spawn code to have it enter the building - [_unit,_bpos,_building] spawn { - private ["_unit","_pos","_dir"]; - - _unit = _this select 0; - _pos = _this select 1; + [_unit,_bpos] spawn { + params ["_unit","_pos"]; _unit setVariable ["ws_bpos",_pos,true]; _unit doMove _pos; @@ -88,7 +87,8 @@ while {count _units > 0 && count _barray > 0} do { //Check the distance to the building position and the distance between z-levels (if the unit got stuck) if (((getPosATL _unit) select 2) - (_pos select 2) < 0.2) then { - _unit setPosATL _pos;_unit moveTo _pos; + _unit setPosATL _pos; + _unit moveTo _pos; // Wait another 10 seconds for the unit to get ready for "_i" from 0 to 10 do { diff --git a/ws_fnc/AI/fn_setAIMode.sqf b/ws_fnc/AI/fn_setAIMode.sqf index e87866578..d2c453adc 100644 --- a/ws_fnc/AI/fn_setAIMode.sqf +++ b/ws_fnc/AI/fn_setAIMode.sqf @@ -71,4 +71,4 @@ switch (_x) do { } forEach _modes; -_grp \ No newline at end of file +_grp diff --git a/ws_fnc/AI/fn_setInsidePos.sqf b/ws_fnc/AI/fn_setInsidePos.sqf index 749a70248..d8709d5ce 100644 --- a/ws_fnc/AI/fn_setInsidePos.sqf +++ b/ws_fnc/AI/fn_setInsidePos.sqf @@ -17,7 +17,7 @@ RETURNS true */ -private ["_u","_b","_udir","_inside","_facingwall","_dirtob","_dir","_nb","_x"]; +private ["_u","_b","_udir","_inside","_facingwall","_dirtob","_dir","_nb"]; _u = _this; _nb = (nearestObjects [_u,["BagBunker_base_F","HouseBase"],50]); @@ -44,7 +44,7 @@ if !(_inside) then { if (_facingwall) then { // First check if there's a window nearby - for [{_x=0},{_x<=360},{_x=_x+5}] do { + for "_x" from 0 to 360 step 5 do { _dir = _x; if !([_u,_dir] call ws_fnc_isWallInDir) exitWith {_udir = _dir;_facingwall = false}; }; diff --git a/ws_fnc/AI/fn_taskAmbush.sqf b/ws_fnc/AI/fn_taskAmbush.sqf index d6c11dce6..3b61bd041 100644 --- a/ws_fnc/AI/fn_taskAmbush.sqf +++ b/ws_fnc/AI/fn_taskAmbush.sqf @@ -27,17 +27,18 @@ C) nul = [MyGroup,MyGroup] spawn ws_fnc_taskAmbush: The group named MyGroup will if !(ws_game_a3) exitWith {["ws_fnc_taskAmbush DBG:",[]," Must be ARMA 3!"] call ws_fnc_debugtext}; -private ["_debug","_grp","_pos","_nPos","_killzone","_radius","_mindis","_sidesEnemy","_wp","_mkr","_count","_ambush","_owatch","_npos","_trg"]; +private ["_debug","_pos","_nPos","_radius","_mindis","_sidesEnemy","_wp","_mkr","_npos","_trg"]; // Debug. If ws_debug is globally defined it overrides _debug _debug = if !(isNil "ws_debug") then {ws_debug} else {false}; // Interpret arguments -_count = count _this; -_grp = _this select 0; -_ambush = _this select 1; -_killzone = if (_count > 2) then [{_this select 2},{[]}]; -_owatch = if (_count > 3) then [{_this select 3},{[50,200]}]; +params [ + ["_grp", objNull, ["", objNull, grpNull, locationNull, []]], + ["_ambush", objNull, ["", objNull, grpNull, locationNull, []]], + ["_killzone", [], [[]]], + ["_owatch", [50,200], [[]], [0,2]] +]; // Get positions for group and ambush location _pos = _ambush call ws_fnc_getEPos; @@ -115,4 +116,4 @@ if (_debug) then { _mkr = createMarker [format ["%1-kpos",_pos],_pos];if (_killzone select 3) then [{_mkr setMarkerShape "RECTANGLE"},{_mkr setMarkerShape "ELLIPSE"}]; _mkr setMarkerSize [_killzone select 0,_killzone select 1]; _mkr setMarkerBrush "SOLIDBORDER";_mkr setMarkerColor "ColorRed"; _mkr setMarkerDir (_killzone select 2); }; -true \ No newline at end of file +true diff --git a/ws_fnc/AI/fn_taskArtilleryFire.sqf b/ws_fnc/AI/fn_taskArtilleryFire.sqf index d4b9c39e4..d78b59041 100644 --- a/ws_fnc/AI/fn_taskArtilleryFire.sqf +++ b/ws_fnc/AI/fn_taskArtilleryFire.sqf @@ -32,7 +32,6 @@ true if !(ws_game_a3) exitWith {["ws_fnc_taskArtilleryFire DBG:",[]," Must be ARMA 3!"] call ws_fnc_debugtext}; -private ["_targetPos"]; params [ ["_art", objNull, [objNull, []]], @@ -56,6 +55,7 @@ if ({isNull _x} count _art > 1 || str _target == "[0,0,0]" || count (getArtiller { // Spawn a seperate fire mission for each artillery piece [_x,_target,_dispersion,_fireMission,_sleep,_ammo] spawn { + private ["_targetPos"]; params ["_artpiece", "_target", "_dispersion", "_fireMission", "_sleep", "_ammo"]; // Select the ammo diff --git a/ws_fnc/AI/fn_taskCrew.sqf b/ws_fnc/AI/fn_taskCrew.sqf index ba439435b..511065635 100644 --- a/ws_fnc/AI/fn_taskCrew.sqf +++ b/ws_fnc/AI/fn_taskCrew.sqf @@ -11,10 +11,13 @@ RETURNS Array of units that didn't take a gunner seat */ -private ["_group","_radius","_pos","_vehicles","_staticarray","_units2","_locked"]; +private ["_pos","_vehicles","_staticarray","_units2","_locked","_units","_unit"]; + +params [ + ["_group", grpNull, [grpNull]], + ["_radius", 0, [0]] +]; -_group = _this select 0; -_radius = _this select 1; _pos = (_group) call ws_fnc_getEPos; //Get nearby vehicles to start populating the static weapons diff --git a/ws_fnc/AI/fn_taskDefend.sqf b/ws_fnc/AI/fn_taskDefend.sqf index 9558cc14b..0618bf03e 100644 --- a/ws_fnc/AI/fn_taskDefend.sqf +++ b/ws_fnc/AI/fn_taskDefend.sqf @@ -34,9 +34,19 @@ EXAMPLE */ -private ["_debug","_game","_count","_milarrayA2","_badarrayA2","_badarrayA3","_milarrayA3", -"_group","_newGroup","_pos","_radius","_guns","_garrison","_civil", -"_buildings","_vehicles","_milbuildings","_staticarray","_badarray","_milarray","_units","_static","_mkr"]; +private ["_debug","_milarrayA2","_badarrayA3","_milarrayA3","_badarrayA2", +"_mthreshold","_cthreshold","_buildings","_milbuildings","_badarray","_milarray","_units","_mkr"]; + +params [ + ["_group", grpNull, [grpNull]], + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_radius", 0, [0]], + ["_guns", true, [true]], + ["_garrison", true, [true]], + ["_civil", true, [true]] +]; + +_pos = _pos call ws_fnc_getEPos; //Customizable Variables _mthreshold = 1; // Percentage of building positions to occupy in military buildings (1=all) @@ -57,19 +67,6 @@ _badarrayA3 = []; //Debug mode. If ws_debug is globally defined it overrides _debug _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; -//Declaring variables -_count = count _this; - -_group = _this select 0; -_pos = (_this select 1) call ws_fnc_getEPos; -_radius = _this select 2; -_guns = true; //Man statics? -_garrison = true; //Garrison military structures? - defined in _milarray -_civil = true; //Garrison civilian buildings? -if (_count > 3) then {_guns = _this select 3}; -if (_count > 4) then {_garrison = _this select 4}; -if (_count > 5) then {_civil = _this select 5}; - _buildings = [_pos,_radius] call ws_fnc_collectBuildings; _milarray = []; _badarray = []; @@ -78,7 +75,7 @@ _milbuildings = []; //Add buildings specific to the game version if !(ws_game_a3) then { _milarray = _milarrayA2; - _badarray = _badarrayA3; + _badarray = _badarrayA2; }; if (ws_game_a3) then { @@ -125,4 +122,3 @@ if (count _units >= 1) then { }; _units - diff --git a/ws_fnc/AI/fn_taskLand.sqf b/ws_fnc/AI/fn_taskLand.sqf index 6a836e739..beb1ac80d 100644 --- a/ws_fnc/AI/fn_taskLand.sqf +++ b/ws_fnc/AI/fn_taskLand.sqf @@ -34,20 +34,23 @@ nul = [vehicle (leader group this),position this,30,"mkrExtract"] spawn ws_fnc_t if !(ws_game_a3) exitWith {["ws_fnc_taskLand:",[]," Must be ARMA 3!"] call ws_fnc_debugtext}; -private ["_debug","_helo","_pos","_wait","_extract","_pilot","_grp","_hp","_wp"]; +private ["_debug","_pilot","_grp","_hp","_wp"]; // Debug. If ws_debug is globally defined it overrides _debug _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; // Parse parameters -_helo = _this select 0; -_pos = (_this select 1) call ws_fnc_getEpos; -_wait = if (count _this > 2) then [{_this select 2},{15}]; -_extract = if (count _this > 3) then [{_this select 3},{getPosATL _helo}]; - -{[_x,["OBJECT"],"ws_fnc_taskLand"] call ws_fnc_typecheck;} forEach [_helo]; -{[_x,["SCALAR"],"ws_fnc_taskLand"] call ws_fnc_typecheck;} forEach [_wait]; -{[_x,["ARRAY"],"ws_fnc_taskLand"] call ws_fnc_typecheck;} forEach [_pos]; +params [ + ["_helo", objNull, [objNull]], + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_wait", 15, [0]], + ["_extract", "", ["", objNull, []]] +]; + +_pos = _pos call ws_fnc_getEpos; +if (_extract isEqualTo "") then { + _extract = getPosATL _helo; +}; if !(_helo isKindOf "Helicopter") exitWith {["ws_fnc_taskLand:",[_helo]," must be a helicopter!"] call ws_fnc_debugtext}; @@ -137,4 +140,4 @@ deleteVehicle _hp; _pilot enableai "AUTOTARGET"; _pilot enableai "TARGET"; _grp enableAttack true; -true \ No newline at end of file +true diff --git a/ws_fnc/Dbg/fn_clipboardcode.sqf b/ws_fnc/Dbg/fn_clipboardcode.sqf index 24c6e079f..f24e141ca 100644 --- a/ws_fnc/Dbg/fn_clipboardcode.sqf +++ b/ws_fnc/Dbg/fn_clipboardcode.sqf @@ -8,4 +8,4 @@ _code = copyFromClipboard; _error = [_code,["STRING","CODE"],"ws_fnc_clipboardcode"] call ws_fnc_typecheck; if (_error) exitWith {["ws_fnc_clipboardcode DBG: ",_code," invalid. exiting."] call ws_fnc_debugtext}; ["ws_fnc_clipboardcode DBG: ",_code," executing."] call ws_fnc_debugtext; -[] spawn (compile _code); \ No newline at end of file +[] spawn (compile _code); diff --git a/ws_fnc/Dbg/fn_copypos.sqf b/ws_fnc/Dbg/fn_copypos.sqf index 6f7304108..9c561caeb 100644 --- a/ws_fnc/Dbg/fn_copypos.sqf +++ b/ws_fnc/Dbg/fn_copypos.sqf @@ -1,3 +1,3 @@ -_pos = [(getposASL player) select 0,(getposASL player) select 1,(getposATL player) select 2]; +private _pos = [(getposASL player) select 0,(getposASL player) select 1,(getposATL player) select 2]; copyToClipboard format ["%1",_pos]; -["ws_fnc_copyPos: ",_pos," copied!"] call ws_fnc_debugtext; \ No newline at end of file +["ws_fnc_copyPos: ",_pos," copied!"] call ws_fnc_debugtext; diff --git a/ws_fnc/Dbg/fn_countUnits.sqf b/ws_fnc/Dbg/fn_countUnits.sqf index ffe8a90f4..8e14e2c24 100644 --- a/ws_fnc/Dbg/fn_countUnits.sqf +++ b/ws_fnc/Dbg/fn_countUnits.sqf @@ -6,4 +6,4 @@ _ur = {side _x == resistance && alive _x && !isPlayer _x} count allUnits; _up = {isPlayer _x} count allUnits; player globalchat format ["Players: %1, Playable Units: %2, AI: BLU/%3, OPF/%4, RES/%5",_up,count playableUnits,_uw,_ue,_ur]; -diag_log format ["Players: %1, Playable Units: %2, AI: BLU/%3, OPF/%4, RES/%5",_up,count playableUnits,_uw,_ue,_ur]; \ No newline at end of file +diag_log format ["Players: %1, Playable Units: %2, AI: BLU/%3, OPF/%4, RES/%5",_up,count playableUnits,_uw,_ue,_ur]; diff --git a/ws_fnc/Dbg/fn_debugText.sqf b/ws_fnc/Dbg/fn_debugText.sqf index 430c4cb12..277981684 100644 --- a/ws_fnc/Dbg/fn_debugText.sqf +++ b/ws_fnc/Dbg/fn_debugText.sqf @@ -2,12 +2,13 @@ //dump variables into sidechat and rpt //["String",[array of variables],"String"] call ws_fnc_debugtext -private ["_debug","_string1","_variables","_string2"]; +params [ + ["_string1", ""], + ["_variables", ""], + ["_string2", ""] +]; -_string1= _this select 0; -_variables = _this select 1; -_string2 = _this select 2; -_text = _string1 + format [" %1 ",_variables] + _string2 + format [" - Time: %1 ms",diag_tickTime]; +private _text = _string1 + format [" %1 ",_variables] + _string2 + format [" - Time: %1 ms",diag_tickTime]; systemchat _text; -diag_log _text; \ No newline at end of file +diag_log _text; diff --git a/ws_fnc/Dbg/fn_debugTriggers.sqf b/ws_fnc/Dbg/fn_debugTriggers.sqf index 43ccbdda1..060f4d385 100644 --- a/ws_fnc/Dbg/fn_debugTriggers.sqf +++ b/ws_fnc/Dbg/fn_debugTriggers.sqf @@ -1,7 +1,7 @@ //WS_fnc_debugTriggers //Creates various triggers to be used ingame. Does not need to run twice -_debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; +private _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; if !(_debug) exitWith {}; if !(isNil "ws_dbg_trg") exitWith {}; @@ -41,4 +41,4 @@ ws_dbg_trg setTriggerStatements["this", "ws_fnc_compiled = false;ws_fnc_compiled } else { ws_dbg_trg setTriggerStatements["this", "ws_fnc_compiled = false;publicVariable ""ws_fnc_compiled"";[] call BIS_fnc_Recompile;", ""]; }; -ws_dbg_trg setTriggerText "recompile all ws_fnc"; \ No newline at end of file +ws_dbg_trg setTriggerText "recompile all ws_fnc"; diff --git a/ws_fnc/Dbg/fn_typecheck.sqf b/ws_fnc/Dbg/fn_typecheck.sqf index f787eebcb..fd0ca4d16 100644 --- a/ws_fnc/Dbg/fn_typecheck.sqf +++ b/ws_fnc/Dbg/fn_typecheck.sqf @@ -2,29 +2,31 @@ //[variable to check,[array of expected types],descriptive string] call ws_fnc_typecheck; //returns true when type is wrong or variable is nil -private ["_variable","_check_array","_scriptname","_typenames","_false_types","_error"]; +private ["_typenames","_false_types","_error"]; + +params [ + ["_variable", nil], + ["_check_array", [], [[]]], + ["_scriptname", "", [""]] +]; -_variable = nil; -_variable = _this select 0; -_check_array = _this select 1; -_scriptname = _this select 2; //All possible typenames. http://community.bistudio.com/wiki/typeName _typenames = ["ARRAY","BOOL","CODE","CONFIG","CONTROL","DISPLAY","GROUP","LOCATION","OBJECT","SCALAR","SCRIPT","SIDE","STRING","TEXT"]; _false_types = _typenames - _check_array; _error = false; if (isNil {_variable}) exitWith { -player sidechat format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is NIL when it should be in %3 !",_variable,_scriptname,_check_array]; -diag_log format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is NIL when it should be in %3 !",_variable,_scriptname,_check_array]; -_error = true; + player sidechat format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is NIL when it should be in %3 !",_variable,_scriptname,_check_array]; + diag_log format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is NIL when it should be in %3 !",_variable,_scriptname,_check_array]; + _error = true; }; { -if (typename _variable == toUpper _x) then { -player sidechat format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is %3 when it should be of %4 !",_variable,_scriptname,format ["%1",_x],_check_array]; -diag_log format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is %3 when it should be of %4 !",_variable,_scriptname,format ["%1",_x],_check_array]; -_error = true; -}; + if (typename _variable == toUpper _x) then { + player sidechat format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is %3 when it should be of %4 !",_variable,_scriptname,format ["%1",_x],_check_array]; + diag_log format ["ws_fnc_typecheck: ERROR. _variable %1 parsed by %2 is %3 when it should be of %4 !",_variable,_scriptname,format ["%1",_x],_check_array]; + _error = true; + }; } forEach _false_types; -_error \ No newline at end of file +_error diff --git a/ws_fnc/Tools/fn_checkHC.sqf b/ws_fnc/Tools/fn_checkHC.sqf index 36c264fee..11eafa189 100644 --- a/ws_fnc/Tools/fn_checkHC.sqf +++ b/ws_fnc/Tools/fn_checkHC.sqf @@ -9,7 +9,7 @@ RETURNS true/false for HC/not-HC */ -_hc = false; +private _hc = false; ws_var_isHC = false; ["ws_var_HCs",[],true] call ws_fnc_setGVar; @@ -22,4 +22,4 @@ if (!hasInterface && !isServer) then { }; }; -_hc \ No newline at end of file +_hc diff --git a/ws_fnc/Tools/fn_collectBuildings.sqf b/ws_fnc/Tools/fn_collectBuildings.sqf index 82fb2b5f4..b9bd49069 100644 --- a/ws_fnc/Tools/fn_collectBuildings.sqf +++ b/ws_fnc/Tools/fn_collectBuildings.sqf @@ -21,18 +21,22 @@ RETURNS Array of useable buildings */ -private ["_pos","_radius","_flag1","_flag2","_buildings","_bp"]; +private ["_buildings","_bp"]; -_pos = (_this select 0) call ws_fnc_getEPos; -_radius = _this select 1; -_flag1 = if (count _this > 2) then {_this select 2} else {true}; -_flag2 = if (count _this > 3) then {_this select 3} else {false}; +params [ + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_radius", 0, [0]], + ["_flag1", true, [true]], + ["_flag2", false, [false]] +]; + +_pos = _pos call ws_fnc_getEPos; _buildings = []; //Fill buildings array with classes shared by both games { -_buildings append nearestObjects [_pos,[_x],_radius]; + _buildings append nearestObjects [_pos,[_x],_radius]; } forEach ["Fortress", "House","House_Small"]; //Add buildings specific to the game version diff --git a/ws_fnc/Tools/fn_collectMarkers.sqf b/ws_fnc/Tools/fn_collectMarkers.sqf index c96bc36a0..a1c872bdb 100644 --- a/ws_fnc/Tools/fn_collectMarkers.sqf +++ b/ws_fnc/Tools/fn_collectMarkers.sqf @@ -17,7 +17,7 @@ EXAMPLE ["mkrCache","mkrHouse"] call ws_fnc_collectMarkers - returns an array with all markers named mkrCache and mkrHouse ["mkrCache","mkrCache_1","mkrCache_2","mkrHouse_Defend","mkrHouse_Hold"] */ -private ["_arr"]; +private ["_arr", "_marker"]; _arr = []; @@ -28,9 +28,9 @@ if (!(_this isEqualType [])) then { { _marker = _x; { - if (_x find _marker != -1) then { - _arr append [_x]; - }; + if (_x find _marker != -1) then { + _arr append [_x]; + }; } forEach allMapMarkers; } forEach _this; diff --git a/ws_fnc/Tools/fn_collectObjects.sqf b/ws_fnc/Tools/fn_collectObjects.sqf index b67033788..033f401f0 100644 --- a/ws_fnc/Tools/fn_collectObjects.sqf +++ b/ws_fnc/Tools/fn_collectObjects.sqf @@ -20,16 +20,16 @@ EXAMPLE ["Cache","Church"] call ws_fnc_collectObjects - returns an array with all objects with "Cache" and "Church" in their name: [Cache,Cache_1,Cache_2,Church_Attack,Church_Hold] */ -private ["_arr"]; +private ["_arr", "_obj"]; _arr = []; { _obj = _x; { - if (((format ["%1",_x]) find _obj) != -1) then { - _arr append [_x]; - }; + if (((format ["%1",_x]) find _obj) != -1) then { + _arr append [_x]; + }; } forEach allMissionObjects "ALL"; } forEach _this; diff --git a/ws_fnc/Tools/fn_collectObjectsNum.sqf b/ws_fnc/Tools/fn_collectObjectsNum.sqf index f28a846b8..55c1c0cb6 100644 --- a/ws_fnc/Tools/fn_collectObjectsNum.sqf +++ b/ws_fnc/Tools/fn_collectObjectsNum.sqf @@ -17,13 +17,12 @@ EXAMPLE [Cache,Church] call ws_fnc_collectObjectsNum - returns an array with all objects with "Cache" and "Church" and those following in a numeric order: [Cache,Cache_1,Cache_2,Church,Church_1,Church_2] */ -private ["_arr","_done"]; +private ["_arr", "_i", "_obj"]; _arr = []; //Start the loop _i = 0; -_done = false; if (!(_this isEqualType [])) then { _this = [_this]; diff --git a/ws_fnc/Tools/fn_gamecheck.sqf b/ws_fnc/Tools/fn_gamecheck.sqf index 13ee950fd..84ab278c9 100644 --- a/ws_fnc/Tools/fn_gamecheck.sqf +++ b/ws_fnc/Tools/fn_gamecheck.sqf @@ -12,15 +12,23 @@ RETURNS "a3" for ARMA3 */ -_game = productVersion; //if productversion doesn't work we're on a A2 version <1.62 -if (isNil "_game") then {_game == "a2"} else { -if (_game select 1 != "ARMA3") then {_game = "a2"} else {_game = "a3"}}; +private _game = productVersion; //if productversion doesn't work we're on a A2 version <1.62 +if (isNil "_game") then { + _game = "a2"; +} else { + if (_game select 1 != "ARMA3") then { + _game = "a2"; + } else { + _game = "a3"; + }; +}; if (isNil "ws_game_a3") then { switch (_game) do { - case "a2": {ws_game_a3 = false;}; - case "a3": {ws_game_a3 = true;}; + case "a2": {ws_game_a3 = false;}; + case "a3": {ws_game_a3 = true;}; }; -publicvariable "ws_game_a3";}; + publicVariable "ws_game_a3"; +}; _game diff --git a/ws_fnc/Tools/fn_getObjectClasses.sqf b/ws_fnc/Tools/fn_getObjectClasses.sqf index cc9d3f540..3e01700bd 100644 --- a/ws_fnc/Tools/fn_getObjectClasses.sqf +++ b/ws_fnc/Tools/fn_getObjectClasses.sqf @@ -5,15 +5,12 @@ FEATURE Returns array of object classes USAGE -[ojects] call ws_fnc_getObjectClasses +[objects] call ws_fnc_getObjectClasses */ -params["_objects"]; -private _arr = []; +params[ + ["_objects", [], [[]]] +]; -{ - _arr pushback (typeOf _x); -} forEach _objects; - -_arr \ No newline at end of file +_objects apply {typeOf _x} diff --git a/ws_fnc/Tools/fn_isWallInDir.sqf b/ws_fnc/Tools/fn_isWallInDir.sqf index 703a48977..05d80d871 100644 --- a/ws_fnc/Tools/fn_isWallInDir.sqf +++ b/ws_fnc/Tools/fn_isWallInDir.sqf @@ -25,16 +25,19 @@ EXAMPLES [TestUnit,0,0,25] ws_fnc_isWallInDir - returns true if TestUnit is under a roof */ -private ["_pos","_dis","_count","_intersects"]; +private ["_pos","_relpos","_posASL","_intersects"]; -_o = _this select 0; -_pos = getPos _o; -_posASL = if (_o isKindOF "CAMANBASE") then [{eyePos _o},{GetPosASL (_o)}]; -_dir = _this select 1; -_dis = if (count _this > 2) then [{_this select 2},{15}]; -_height = if (count _this > 3) then [{_this select 3},{0}]; +params [ + ["_obj", objNull, [objNull]], + ["_dir", 0, [0]], + ["_dis", 15, [0]], + ["_height", 0, [0]] +]; -_relpos = [[_pos select 0,_pos select 1,(_pos select 2) + _height], _dis, _dir] call BIS_fnc_relPos; +_pos = getPos _obj; +_posASL = if (_obj isKindOF "CAMANBASE") then [{eyePos _obj},{GetPosASL (_obj)}]; + +_relpos = [_pos select 0,_pos select 1,(_pos select 2) + _height] getPos [_dis, _dir]; _intersects = lineIntersectsObjs [_posASL,ATLTOASL _relpos]; -if (count _intersects > 0 && {(({(_x isKindOf "HouseBase" || _x isKindOf "BagBunker_base_F")} count _intersects) > 0)}) then [{true},{false}]; \ No newline at end of file +if (count _intersects > 0 && {(({(_x isKindOf "HouseBase" || _x isKindOf "BagBunker_base_F")} count _intersects) > 0)}) then [{true},{false}]; diff --git a/ws_fnc/Tools/fn_listPlayers.sqf b/ws_fnc/Tools/fn_listPlayers.sqf index 698ea7635..78ca4af1d 100644 --- a/ws_fnc/Tools/fn_listPlayers.sqf +++ b/ws_fnc/Tools/fn_listPlayers.sqf @@ -1,6 +1,5 @@ /* ws_fnc_listPlayers -Latest: 16.01.2014 FEATURE Lists all players @@ -12,10 +11,4 @@ RETURNS array containing all players */ -_players = []; - -{ - if (isPlayer _x) then {_players append (_x)}; -} forEach playableUnits; - -_players \ No newline at end of file +playableUnits select {isPlayer _x} diff --git a/ws_fnc/Tools/fn_loadVehicle.sqf b/ws_fnc/Tools/fn_loadVehicle.sqf index fcd43f0d4..1013e7067 100644 --- a/ws_fnc/Tools/fn_loadVehicle.sqf +++ b/ws_fnc/Tools/fn_loadVehicle.sqf @@ -20,50 +20,29 @@ Groups that weren't loaded. If all groups were loaded an empty array is returned // ==================================================================================== -// DECLARE VARIABLES AND FUNCTIONS - -private ["_objects","_crew","_vehs","_grps","_units"]; - -// ==================================================================================== - // SET KEY VARIABLES // Using the arguments passed to the script, we first define some local variables. -_vehs = _this select 0; // Array of vehicles (objects) -_grps = _this select 1; // Array of group names (as strings) -_crew = if (count _this > 2) then {_this select 2} else {true}; // Mount into crew positions? (optional - default:true) -_fill = if (count _this > 3) then {_this select 3} else {false}; // Ignore fireteam cohesion in favor of filling vehicles? (optional - default:false) - +params [ + ["_vehs", [], [[]]], // Array of vehicles (objects) + ["_grps", [], [[]]], // Array of group names (as strings) + ["_crew", true, [true]], // Mount into crew positions? (optional - default:true) + ["_fill", false, [false]] // Ignore fireteam cohesion in favor of filling vehicles? (optional - default:false) +]; // ==================================================================================== // CLEAN THE GROUP ARRAY // First we check if there are illegal groups (non-existent) in the array and remove them. -if ({isNil _x} count _grps > 0) then { - { - if (isNil _x) then { - _grps set [_forEachIndex,grpNull]; - }; - } forEach _grps; -}; - -_grps = _grps - [grpNull]; +_grps = _grps select {! (isNil _x)}; // ==================================================================================== // PROCESS GROUPS // Check the passed groups to make sure none of them is empty and they have at least one unit that's not inside a vehicle -{ - _grp = call compile format ["%1",_x]; - _grps set [_forEachIndex,_grp]; - - if (count (units _grp) == 0 || {isNull (assignedVehicle _x)} count (units _grp) == 0) then { - _grps set [_forEachIndex,grpNull]; - }; - -} forEach _grps; -_grps = _grps - [grpNull]; +_grps = _grps apply { call compile format ["%1",_x] }; +_grps = _grps select { {isNull (assignedVehicle _x)} count (units _x) > 0 }; // ==================================================================================== @@ -86,8 +65,9 @@ _grps = _grps - [grpNull]; // If any of the arrays is empty we don't need to execute the function and exit with a warning message. if (count _vehs == 0 || count _grps == 0) exitWith { - player globalchat format ["f_fnc_preMount DBG: No vehicles and/or groups were parsed! _vehicles: %1,_grps: %2",_vehs,_grps]; - diag_log format ["f_fnc_preMount DBG: No vehicles and/or groups were parsed! _vehicles: %1,_grps: %2",_vehs,_grps]; + private _error = format ["f_fnc_preMount DBG: No vehicles and/or groups were parsed! _vehicles: %1,_grps: %2",_vehs,_grps]; + player globalchat _error; + diag_log _error; }; // ==================================================================================== @@ -96,9 +76,8 @@ if (count _vehs == 0 || count _grps == 0) exitWith { // We loop through all vehicles and assign crew & cargo accordingly { - private ["_veh","_grpsT","_emptyPositions"]; + private ["_veh","_grpsT","_emptyPositions","_vehicleRoles"]; _veh = _x; - _crew = if (count _this > 2) then {_this select 2} else {true}; // Calculate the number of spare seats _emptyPositions = [typeOf _veh,true] call BIS_fnc_crewCount; // Count all available slots(this includes co-pilot, commander, main-gunner etc.) @@ -111,11 +90,12 @@ if (count _vehs == 0 || count _grps == 0) exitWith { while {_emptyPositions > 0 && count _grpsT > 0 && locked _veh != 2} do { - private ["_grp","_units","_run"]; + private ["_grp","_units","_run","_unit"]; _grp = _grpsT select 0; _units = units _grp; _run = true; + _unit = _units select 0; // If fireteam cohesion should be kept count the available vehicle slots, compared to the units in the group that would need a seat if (!_fill && {{isNull assignedVehicle _x} count _units > _emptyPositions}) then { @@ -130,9 +110,7 @@ if (count _vehs == 0 || count _grps == 0) exitWith { // Loop through all vehicle roles and place the units in them accordingly { - _unit = _units select 0; - _slot = _x select 0; - _path = _x select 1; + _x params ["_slot","_path"]; // If the slot is not a cargo slot and crew should be slotted if (_crew && {_slot != "CARGO" && isNull assignedVehicle _unit}) then{ @@ -174,4 +152,4 @@ if (count _vehs == 0 || count _grps == 0) exitWith { // OUTPUT // We return all groups that weren't fully loaded -_grps \ No newline at end of file +_grps diff --git a/ws_fnc/Tools/fn_nearPlayer.sqf b/ws_fnc/Tools/fn_nearPlayer.sqf index 624effbaf..7352374e9 100644 --- a/ws_fnc/Tools/fn_nearPlayer.sqf +++ b/ws_fnc/Tools/fn_nearPlayer.sqf @@ -18,15 +18,17 @@ RETURNS true or false */ -_ent = _this select 0; -_distance = _this select 1; +params [ + ["_ent", objNull, ["", objNull, grpNull, locationNull, []]], + ["_distance", 0, [0]] +]; private ["_pos","_players"]; + _pos = _ent call ws_fnc_getEPos; _players = [] call ws_fnc_listPlayers; - { if (_pos distance _x < _distance) exitWith {true}; false -} forEach _players; \ No newline at end of file +} forEach _players; diff --git a/ws_fnc/Tools/fn_setGVar.sqf b/ws_fnc/Tools/fn_setGVar.sqf index 221cdd426..8d86ebc8a 100644 --- a/ws_fnc/Tools/fn_setGVar.sqf +++ b/ws_fnc/Tools/fn_setGVar.sqf @@ -21,12 +21,14 @@ RETURNS nothing */ -private ["_var","_val","_pub","_force","_debug"]; +private ["_debug"]; -_var = _this select 0; -_val = _this select 1; -_pub = if (count _this > 2) then [{_this select 2},{false}]; -_force = if (count _this > 3) then [{_this select 3},{false}]; +params [ + ["_var", "", [""]], + ["_val", 0], + ["_pub", false, [false]], + ["_force", false, [false]] +]; _debug = if !(isNil "ws_debug") then [{ws_debug},{false}]; @@ -40,4 +42,4 @@ call compile Format ["%1 = %2",_var,_val]; if (_pub) then { call compile format ["publicVariable '%1'",_var]; -}; \ No newline at end of file +}; diff --git a/ws_fnc/Tools/fn_showFPS.sqf b/ws_fnc/Tools/fn_showFPS.sqf index 247a71375..1187740e6 100644 --- a/ws_fnc/Tools/fn_showFPS.sqf +++ b/ws_fnc/Tools/fn_showFPS.sqf @@ -15,6 +15,8 @@ NOTE ARMA 3 only */ -params [["_time", 60, [0]]]; +params [ + ["_time", 60, [0]] +]; [_time,[format ["%1",name player]]] call BIS_fnc_FPS; diff --git a/ws_fnc/Tools/fn_shuffleArray.sqf b/ws_fnc/Tools/fn_shuffleArray.sqf deleted file mode 100644 index 799acd705..000000000 --- a/ws_fnc/Tools/fn_shuffleArray.sqf +++ /dev/null @@ -1,19 +0,0 @@ -//ws_fnc_shuffleArray -/* -FEATURE -Shuffles given array - -USAGE -array call ws_fnc_shuffleArray - -RETURNS -shuffled array -*/ - -_arr = param [0,[]]; - -for "_i" from 1 to (count _arr) do { - _arr pushBack (_arr deleteAt floor random (count _arr)); -}; - -_arr diff --git a/ws_fnc/config.hpp b/ws_fnc/config.hpp index 9e20d302b..3b872e482 100644 --- a/ws_fnc/config.hpp +++ b/ws_fnc/config.hpp @@ -27,7 +27,6 @@ class WS class setGVar {}; class isWallInDir {}; class getObjectClasses {}; - class shuffleArray {}; }; class effects { @@ -84,4 +83,4 @@ class WS class cTracker {}; }; - }; \ No newline at end of file + }; diff --git a/ws_fnc/effects/fn_createCAS.sqf b/ws_fnc/effects/fn_createCAS.sqf index 22fc11402..565bf2220 100644 --- a/ws_fnc/effects/fn_createCAS.sqf +++ b/ws_fnc/effects/fn_createCAS.sqf @@ -17,12 +17,16 @@ RETURNS true */ -private ["_pos","_class","_type","_dir","_dummy"]; +private ["_dummy"]; -_pos = (_this select 0) call ws_fnc_getEPos; -_dir = (_this select 1); -_type = if (count _this > 2) then {(_this select 2)} else {0}; -_class = if (count _this > 3) then {(_this select 3)} else {"B_Plane_CAS_01_F"}; +params [ + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_dir", 0, [0]], + ["_type", 0, [0]], + ["_class", "B_Plane_CAS_01_F", [""]] +]; + +_pos = _pos call ws_fnc_getEpos; _dummy = "LaserTargetCBase" createVehicle _pos; _dummy enableSimulationGlobal false; _dummy hideObjectGlobal true; @@ -38,4 +42,4 @@ _dummy setDir _dir; deleteVehicle (_this select 0); }; -true \ No newline at end of file +true diff --git a/ws_fnc/effects/fn_createLightning.sqf b/ws_fnc/effects/fn_createLightning.sqf index a28a7c503..b4da7a1e6 100644 --- a/ws_fnc/effects/fn_createLightning.sqf +++ b/ws_fnc/effects/fn_createLightning.sqf @@ -28,4 +28,4 @@ _dummy enableSimulationGlobal false; _dummy hideObjectGlobal true; deleteVehicle (_this select 0); }; -true \ No newline at end of file +true diff --git a/ws_fnc/effects/fn_createOrdnance.sqf b/ws_fnc/effects/fn_createOrdnance.sqf index 7dd710bdb..389649801 100644 --- a/ws_fnc/effects/fn_createOrdnance.sqf +++ b/ws_fnc/effects/fn_createOrdnance.sqf @@ -19,13 +19,18 @@ RETURNS true */ -private ["_pos","_class","_type","_dir","_dummy"]; +private ["_dummy"]; -_pos = (_this select 0) call ws_fnc_getEPos; -_class = (_this select 1); +params [ + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_class", "", [""]] +]; + +_pos = _pos call ws_fnc_getEpos; _dummy = "LaserTargetCBase" createVehicle _pos; -_dummy enableSimulation false; _dummy hideObject true; +_dummy enableSimulation false; +_dummy hideObject true; _dummy setVariable ["type",_class]; [_dummy,nil,true] call BIS_fnc_moduleProjectile; @@ -36,4 +41,4 @@ _dummy setVariable ["type",_class]; deleteVehicle (_this select 0); }; -true \ No newline at end of file +true diff --git a/ws_fnc/effects/fn_createTripflare.sqf b/ws_fnc/effects/fn_createTripflare.sqf index f16d519c0..2c02175cb 100644 --- a/ws_fnc/effects/fn_createTripflare.sqf +++ b/ws_fnc/effects/fn_createTripflare.sqf @@ -17,15 +17,19 @@ EXAMPLE if (isServer) then {[thisTrigger,"red"] spawn ws_fnc_createTripflare}; - in a trigger's on activation field will create a tripflare at the trigger's center when the trigger's conditions have been met */ -private ["_color","_flare","_smk","_duration"]; +private ["_smk"]; -_pos = (_this select 0) call ws_fnc_getEpos; -_color = toLower(_this select 1); -_duration = if (count _this > 2) then {_this select 2} else {0}; +params [ + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_color", "", [""]] +]; + +_pos = _pos call ws_fnc_getEpos; +_color = toLower _color; if !(_color in ["green","red","yellow","white"]) exitWith {["ws_fnc_tripFlare DBG: ",[_color]," is not one of: [""green"",red","yellow","white""]"] call ws_fnc_debugtext}; -_flare = (format ["F_40mm%1","_"+_color]) createVehicle _pos; +(format ["F_40mm%1","_"+_color]) createVehicle _pos; uisleep 0.5; if (_color == "white") then {_color =""}; _smk = (format ["Smokeshell%1",_color]) createVehicle _pos; @@ -34,7 +38,7 @@ _smk setVectorUp [1,0,0]; while {!isNull _smk} do { uisleep 21.5; // A flare takes roughly 25seconds to die off. As there's a delay between creating and illumination, the sleep is slightly shorter if (!isNull _smk) then { - _flare = (format ["F_40mm%1","_"+_color]) createVehicle _pos; + (format ["F_40mm%1","_"+_color]) createVehicle _pos; }; uisleep 0.01; }; diff --git a/ws_fnc/getPos/fn_NearestLandPos.sqf b/ws_fnc/getPos/fn_NearestLandPos.sqf index f9c61f2e7..c9234ecc8 100644 --- a/ws_fnc/getPos/fn_NearestLandPos.sqf +++ b/ws_fnc/getPos/fn_NearestLandPos.sqf @@ -13,26 +13,27 @@ RETURNS positional array */ -private ["_i","_distance","_increment","_roads","_done"]; +private ["_i","_done","_pos2"]; -_pos = _this select 0; +params [ + ["_pos", [0,0,0], [[]], [2,3]], + ["_distance", 10, [0]], + ["_increment", 50, [0]] +]; _i = 0; -_distance = 10; -if (count _this > 1) then {_distance = _this select 1}; -_increment = 50; -if (count _this > 2) then {_increment = _this select 2}; - _done = false; + +if !(surfaceIsWater _pos) exitWith {_pos}; + while {!_done && _i <= 50} do { + _distance = _distance + _increment; for "_x" from 0 to 340 step 20 do { - _distance = _distance + _increment; - _pos set [0,_posX + (_distance * sin _x)]; - _pos set [1,_posY + (_distance * cos _x)]; - if !(surfaceIsWater _pos) exitWith {_done = true}; + _pos2 = _pos vectorAdd [_distance * sin _x, _distance * cos _x, 0]; + if !(surfaceIsWater _pos2) exitWith {_pos = _pos2;_done = true}; }; _i = _i + 1; - if (_i == 50) exitWith {_pos = _this select 0; ["ws_fnc_NearestLandPos ERROR: No dry land found in radius of",(_increment*20),""] call ws_fnc_DebugText}; + if (_i == 50) exitWith {["ws_fnc_NearestLandPos ERROR: No dry land found in radius of",_distance,""] call ws_fnc_DebugText}; }; _pos diff --git a/ws_fnc/getPos/fn_NearestRoadPos.sqf b/ws_fnc/getPos/fn_NearestRoadPos.sqf index b1665bd54..aa78c52fc 100644 --- a/ws_fnc/getPos/fn_NearestRoadPos.sqf +++ b/ws_fnc/getPos/fn_NearestRoadPos.sqf @@ -1,5 +1,4 @@ /* ws_fnc_NearestRoadPos -Latest: 10.10.2013 By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com USAGE @@ -14,15 +13,17 @@ RETURNS positional array */ -private ["_i","_distance","_increment","_roads","_done"]; +private ["_i","_roads","_done"]; -_pos = (_this select 0) call ws_fnc_getEPos; +params [ + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_distance", 10, [0]], + ["_increment", 50, [0]] +]; + +_pos = _pos call ws_fnc_getEPos; _i = 0; -_distance = 10; -if (count _this > 1) then {_distance = _this select 1}; -_increment = 50; -if (count _this > 2) then {_increment = _this select 2}; _done = false; while {!_done && _i <= 20} do { @@ -31,9 +32,9 @@ while {!_done && _i <= 20} do { _pos = getPosATL (selectRandom _roads); _done = true; } else { - _distance = _distance + _increment; - _i = _i + 1; - if (_i == 20) exitWith {_pos = _this select 0; ["ws_fnc_NearestRoadPos ERROR: No roads found in radius of",(_increment*20),""] call ws_fnc_DebugText}; + _distance = _distance + _increment; + _i = _i + 1; + if (_i == 20) exitWith {["ws_fnc_NearestRoadPos ERROR: No roads found in radius of",(_increment*20),""] call ws_fnc_DebugText}; }; }; diff --git a/ws_fnc/getPos/fn_getBpos.sqf b/ws_fnc/getPos/fn_getBpos.sqf index df5970f51..171cfe84c 100644 --- a/ws_fnc/getPos/fn_getBpos.sqf +++ b/ws_fnc/getPos/fn_getBpos.sqf @@ -13,17 +13,15 @@ RETURNS array containing all building positions */ -private ["_debug","_building","_bposarray","_occupied"]; +private ["_debug","_bposarray","_mkr"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; -// Buildings to ignore -_badarray = []; - -_building = _this select 0; +params [ + ["_building", objNull, [objNull]] +]; if isNil "_building" exitWith {}; _bposarray = _building getVariable ["ws_bPos",false]; -[_building,["OBJECT"],format ["ws_fnc_getBpos: %1",_building]] call ws_fnc_typecheck; if (!(_bposarray isEqualType [])) then { @@ -34,6 +32,4 @@ if (!(_bposarray isEqualType [])) then { _building setVariable ["ws_bPos",_bposarray,true]; }; -//["ws_fnc_getBpos DBG1: ",[_building,(_building getVariable "ws_bpos"),_occupied],""] call ws_fnc_debugText; - _bposarray diff --git a/ws_fnc/getPos/fn_getEPos.sqf b/ws_fnc/getPos/fn_getEPos.sqf index 243f99375..41d9c20c1 100644 --- a/ws_fnc/getPos/fn_getEPos.sqf +++ b/ws_fnc/getPos/fn_getEPos.sqf @@ -23,7 +23,7 @@ switch (typename _e) do { case "GROUP": {_pos = getPosATL (leader _e)}; case "LOCATION": {_pos = position _e}; case "ARRAY": {_pos = _e;}; - default {[_e,["ARRAY","OBJECT","STRING","GROUP"],"ws_fnc_getEPos"] call ws_fnc_typecheck;}; + default {[_e,["ARRAY","OBJECT","STRING","GROUP","LOCATION"],"ws_fnc_getEPos"] call ws_fnc_typecheck;}; }; -_pos \ No newline at end of file +_pos diff --git a/ws_fnc/getPos/fn_getPos.sqf b/ws_fnc/getPos/fn_getPos.sqf index 505df2e5c..edd5fb31b 100644 --- a/ws_fnc/getPos/fn_getPos.sqf +++ b/ws_fnc/getPos/fn_getPos.sqf @@ -1,5 +1,4 @@ // GetPos function -// Latest: 11.11.2013 // By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com // Thanks to Shuko for SHK_pos // @@ -30,41 +29,26 @@ // [church,250] call ws_fnc_getPos; - gets a position in 250m radius to the object named "church" // [v1,500,100,180,false,true] call ws_fnc_getPos; - gets a position in 500m radius, 100m minimal distance and a 180° angle to the object named "v1" and also allows position to be on a building -private ["_debug","_count","_posloc","_pos","_posradius","_mindis","_dir","_road","_building","_water","_posX","_posY"]; +private ["_debug","_pos","_newX","_newY","_oldPos","_i","_distance","_done","_mkr"]; _debug = false; if !(isNil "ws_debug") then {_debug = ws_debug}; //Debug mode. If ws_debug is globally defined it overrides _debug -//Declaring variables -_count = count _this; -_posloc = _this select 0; -_pos = [0,0,0]; -_posradius = 0; -_mindis = 0; -_dir = random 360; -_road = false; -_building = false; -_water = false; - -//Optional variables parsed -if (_count > 1) then {_posradius = _this select 1;}; -if (_count > 2) then {_mindis = _this select 2;}; -if (_count > 3) then {_dir = (_this select 3)}; -if (_count > 4) then {_road = _this select 4;}; -if (_count > 5) then {_building = _this select 5;}; -if (_count > 6) then {_water = _this select 6;}; +params [ + ["_posloc", objNull, ["", objNull, grpNull, locationNull, []]], + ["_posradius", 0, [0,false]], + ["_mindis", 0, [0]], + ["_dir", random 360, [0]], + ["_road", false, [false]], + ["_building", false, [false]], + ["_water", false, [false]] +]; //Interpreting variables _pos = _posloc call ws_fnc_getEpos; - -_posX = (_pos select 0); -_posY = (_pos select 1); - -//Fault checks -//Checking the variables we have against what we should have -{[_x,["ARRAY"],"ws_fnc_getPos"] call ws_fnc_typecheck;} forEach [_pos]; -[_posradius,["SCALAR","BOOL"],"ws_fnc_getPos"] call ws_fnc_typecheck; -{[_x,["SCALAR"],"ws_fnc_getPos"] call ws_fnc_typecheck;} forEach [_mindis,_dir,_posX,_posY]; -{[_x,["BOOL"],"ws_fnc_getPos"] call ws_fnc_typecheck;} forEach [_road,_water]; +_pos params [ + ["_posX", 0, [0]], + ["_posY", 0, [0]] +]; switch (typename _posradius) do { case "SCALAR": { @@ -123,11 +107,11 @@ if (_road) then { }; if (_debug) then { -player globalchat format ["DEBUG: ws_fnc_getPos done. Pos is %1, direction is %2",_pos,_dir]; - _mkr = createMarker [format ["%1",_pos], _pos]; - _mkr setMarkerType "mil_dot"; - _mkr setMarkerColor "ColorGreen"; - _mkr setMarkerSize [0.5,0.5]; + player globalchat format ["DEBUG: ws_fnc_getPos done. Pos is %1, direction is %2",_pos,_dir]; + _mkr = createMarker [format ["%1",_pos], _pos]; + _mkr setMarkerType "mil_dot"; + _mkr setMarkerColor "ColorGreen"; + _mkr setMarkerSize [0.5,0.5]; }; //Return the new position diff --git a/ws_fnc/getPos/fn_getPosInArea.sqf b/ws_fnc/getPos/fn_getPosInArea.sqf index a62bfa9c8..ba968ac99 100644 --- a/ws_fnc/getPos/fn_getPosInArea.sqf +++ b/ws_fnc/getPos/fn_getPosInArea.sqf @@ -17,18 +17,17 @@ positional array */ -private ["_area","_shape","_center","_pos","_px","_py","_vector"]; +private ["_shape","_center","_pos","_px","_py","_vector","_dir"]; -params["_area"]; +params[ + ["_area", "", ["", objNull]] +]; _shape = ""; _center = []; _pos = [_area] call ws_fnc_getEPos; _dir = 360; -//Checking the variables we have against what is expected -[_area,["STRING","OBJECT"],"ws_fnc_getPosInAREA"] call ws_fnc_typecheck; - switch (typeName _area) do { case "OBJECT": { _center = getPos _area;_area = triggerarea _area; _shape = _area select 3; _dir = _area select 2;}; case "STRING":{ _center = getMarkerPos _area; _shape = MarkerShape _area; _dir = markerDir _area;_area = markerSize _area;}; @@ -76,7 +75,7 @@ _vector set [1, (sin _dir)*_px + (cos _dir)*_py]; // Return new position _pos = [ (_center select 0) + (_vector select 0), - (_center select 1)+ (_vector select 1), + (_center select 1) + (_vector select 1), 0 ]; diff --git a/ws_fnc/misc/fn_attachChem.sqf b/ws_fnc/misc/fn_attachChem.sqf index f47b1d7b2..c9c3ef91c 100644 --- a/ws_fnc/misc/fn_attachChem.sqf +++ b/ws_fnc/misc/fn_attachChem.sqf @@ -25,15 +25,15 @@ EXAMPLES */ -private ["_obj","_color","_duration","_offset","_mpoint","_chm"]; - -_obj = _this select 0; -_color = toLower(_this select 1); -_duration = if (count _this > 2) then {_this select 2} else {0}; -_offset = if (count _this > 3) then {_this select 3} else {[0,0,0]}; -_mpoint = if (count _this > 4) then {_this select 4} else {""}; - -_chm = (format ["Chemlight_%1",_color]) createVehicle [0,0,0]; +params [ + ["_obj", objNull, [objNull]], + ["_color", "red", [""]], + ["_duration", 0, [0]], + ["_offset", [0,0,0], [[]], 3], + ["_mpoint", "", [""]] +]; + +private _chm = (format ["Chemlight_%1",toLower _color]) createVehicle [0,0,0]; _chm attachTo [_obj, _offset, _mpoint]; _chm setDir (getDir _obj); _chm setVectorDir (vectorDir _obj); @@ -44,4 +44,4 @@ if (_duration > 0) then { deleteVehicle _chm; }; -true \ No newline at end of file +true diff --git a/ws_fnc/misc/fn_attachIR.sqf b/ws_fnc/misc/fn_attachIR.sqf index fb0bf77c2..4d4728b2c 100644 --- a/ws_fnc/misc/fn_attachIR.sqf +++ b/ws_fnc/misc/fn_attachIR.sqf @@ -22,17 +22,18 @@ EXAMPLES [UnitNATO_CO,[-0.05,0.05,0.1],"Spine3"] spawn ws_fnc_attachIR - attaches an IR to the left shoulder of UnitNATO_CO */ -private ["_obj","_duration","_offset","_mpoint","_class","_ir"]; +private ["_class","_ir"]; -_obj = _this select 0; -_offset = if (count _this > 1) then {_this select 1} else {[0,0,0]}; -_mpoint = if (count _this > 2) then {_this select 2} else {""}; +params [ + ["_obj", objNull, [objNull]], + ["_offset", [0,0,0], [[]], 3], + ["_mpoint", "", [""]] +]; -_class = "I_IR_Grenade"; switch (side _obj) do { - case west: {_class = "B_IRStrobe"}; - case east: {_class = "O_IRStrobe"}; - default {_class = "I_IRStrobe";}; + case west: {_class = "B_IRStrobe";}; + case east: {_class = "O_IRStrobe";}; + default {_class = "I_IRStrobe";}; }; _ir = _class createVehicle [0,0,0]; @@ -41,4 +42,4 @@ _ir setDir (getDir _obj); _ir setVectorDir (vectorDir _obj); _ir setVectorUp (vectorUp _obj); -true; \ No newline at end of file +true; diff --git a/ws_fnc/misc/fn_attachLight.sqf b/ws_fnc/misc/fn_attachLight.sqf index a6a8f9142..f8a0a9a0e 100644 --- a/ws_fnc/misc/fn_attachLight.sqf +++ b/ws_fnc/misc/fn_attachLight.sqf @@ -22,19 +22,18 @@ PARAMETERS 5. Attachpoint of the light (offset to the object it is attached to as array [x,y,z]) | OPTIONAL - default is [0,0,0] */ -private ["_count","_obj","_flare","_brightness","_color","_haze","_attach"]; - -_count = count _this; -_obj = _this select 0; - if (_count > 1) then {_brightness = _this select 1} else {_brigthness = 0.6}; - if (_count > 2) then {_color = _this select 2} else {_color = [1.0, 1.0, 1.0]}; //Color of the Light - if (_count > 3) then {_haze = _this select 3} else {_haze = [1.0, 0.2, 0.2]}; //Haze around the light source - if (_count > 4) then {_attach = _this select 4} else {_attach = [0,0,0]}; - -_flare = "#lightpoint" createVehicle (getPos _obj); +params [ + ["_obj", objNull, [objNull]], + ["_brightness", 0.6, [0]], + ["_color", [1.0, 1.0, 1.0], [[]], 3], + ["_haze", [1.0, 0.2, 0.2], [[]], 3], + ["_offset", [0,0,0], [[]], 3] +]; + +private _flare = "#lightpoint" createVehicle (getPos _obj); _flare setLightBrightness _brightness; _flare setLightAmbient _color; _flare setLightColor _haze; -_flare lightAttachObject [_obj,_attach]; +_flare lightAttachObject [_obj,_offset]; -true \ No newline at end of file +true diff --git a/ws_fnc/misc/fn_showIntro.sqf b/ws_fnc/misc/fn_showIntro.sqf index 07afb06dc..2ee1d6ba6 100644 --- a/ws_fnc/misc/fn_showIntro.sqf +++ b/ws_fnc/misc/fn_showIntro.sqf @@ -19,12 +19,18 @@ NOTE ARMA 3 only */ +private _game = [] call ws_fnc_gameCheck; if !(ws_game_a3) exitWith {["ws_fnc_showIntro DBG: Game version: ",[_game]," Must be ARMA 3!"] call ws_fnc_debugtext}; +params [ + ["_string1", "", [""]], + ["_string2", "", [""]] +]; + [ [ - [_this select 0, "%1
",5], - [_this select 1,"%1
",5], + [_string1, "%1
",5], + [_string2, "%1
",5], [format ["%3/%2/%1 %4:%5",date select 0, date select 1, date select 2,date select 3, date select 4],"%1",10] ] , 0, 0.7 ] spawn BIS_fnc_typeText; diff --git a/ws_fnc/misc/fn_switchLights.sqf b/ws_fnc/misc/fn_switchLights.sqf index 4c0643436..4910311ba 100644 --- a/ws_fnc/misc/fn_switchLights.sqf +++ b/ws_fnc/misc/fn_switchLights.sqf @@ -17,18 +17,19 @@ // ["OFF",church,1000] call ws_fnc_switchLights; - turn off all lights in 1k radius around the object named "church" // ["ON",player,20] call ws_fnc_switchLights; - turn on all lights in 20m radius around the player -_switch = _this select 0; -_pos = (_this select 1) call ws_fnc_getEPos; -_radius = _this select 2; +params [ + ["_switch", "", [""]], + ["_pos", objNull, ["", objNull, grpNull, locationNull, []]], + ["_radius", 0, [0]] +]; -[_switch,["STRING"],"ws_fnc_getPos"] call ws_fnc_typecheck; -[_radius,["SCALAR"],"ws_fnc_getPos"] call ws_fnc_typecheck; +_pos = _pos call ws_fnc_getEPos; if !(ws_game_a3) then { //ARMA 2 { - _lamps = _pos nearObjects [_x, _radius]; + private _lamps = _pos nearObjects [_x, _radius]; sleep 0.1; {_x switchLight _switch} forEach _lamps; } forEach ["Land_PowLines_WoodL", "Land_PowLines_ConcL", "Land_lampa_ind_zebr", "Land_lampa_sidl_3", "Land_lampa_vysoka", "Land_lampa_ind", "Land_lampa_ind_b", "Land_lampa_sidl"]; @@ -36,19 +37,14 @@ if !(ws_game_a3) then { else { //ARMA 3 { - _lamps = _pos nearObjects [_x, _radius]; + private _lamps = _pos nearObjects [_x, _radius]; sleep 0.1; { if (_switch == "OFF") then { - _lamp setHit ["light_1_hitpoint", 0.97]; //off + _x setHit ["light_1_hitpoint", 0.97]; //off } else { _x setHit ["light_1_hitpoint", 0]; //on }; } forEach _lamps; } forEach ["Lamps_Base_F", "PowerLines_base_F", "Land_PowerPoleWooden_L_F", "Land_PowerPoleWooden_F", "Land_LampHarbour_F", "Land_LampShabby_F", "Land_PowerPoleWooden_L_F", "Land_PowerPoleWooden_small_F", "Land_LampDecor_F", "Land_LampHalogen_F", "Land_LampSolar_F", "Land_LampStreet_small_F", "Land_LampStreet_F", "Land_LampAirport_F"]; }; - - - - - From 88c8d72b3744f4698bff29f6c7f8cb24c9f7e4ef Mon Sep 17 00:00:00 2001 From: "shadow-fa@users.noreply.github.com" Date: Mon, 8 Jan 2018 21:00:46 +0100 Subject: [PATCH 101/407] nametag: Fix uninitialized variables. Fix linter warnings. Make most variables private. --- f/nametag/functions/fn_nametagCache.sqf | 17 ++++----- f/nametag/functions/fn_nametagDraw.sqf | 32 ++++++++--------- f/nametag/functions/fn_nametagGetData.sqf | 38 +++++++++++++++------ f/nametag/functions/fn_nametagResetFont.sqf | 10 +++--- f/nametag/functions/fn_nametagUpdate.sqf | 22 ++++++------ f/nametag/include/f_nametagBrief.sqf | 2 +- f/nametag/include/f_nametagCacheLoop.sqf | 2 +- f/nametag/include/f_nametagDisableKey.sqf | 10 +++--- f/nametag/include/f_nametagInitTalking.sqf | 12 +++---- 9 files changed, 80 insertions(+), 65 deletions(-) diff --git a/f/nametag/functions/fn_nametagCache.sqf b/f/nametag/functions/fn_nametagCache.sqf index a6bf780d8..cda01ad8a 100644 --- a/f/nametag/functions/fn_nametagCache.sqf +++ b/f/nametag/functions/fn_nametagCache.sqf @@ -11,11 +11,11 @@ //------------------------------------------------------------------------------------ // If the nametag system is on, check all the stuff we need to check! //------------------------------------------------------------------------------------ - + if F_NT_NAMETAGS_ON then { // Collect the current player. - _player = player; + private _player = player; // Check the day night cycle... F_NT_VAR_NIGHT = if F_NT_NIGHT then @@ -39,18 +39,15 @@ if F_NT_NAMETAGS_ON then if !F_NT_DRAWCURSORONLY then { - // Reset the data variable. - _data = []; - // Collect the player's group. - _playerGroup = group _player; + private _playerGroup = group _player; // Get the position of the player's camera. - _cameraPositionAGL = positionCameraToWorld[0,0,0]; - _cameraPositionASL = AGLtoASL _cameraPositionAGL; + private _cameraPositionAGL = positionCameraToWorld[0,0,0]; + private _cameraPositionASL = AGLtoASL _cameraPositionAGL; // Collect all nearEntities of the types we want. - _entities = + private _entities = _player nearEntities [["CAManBase","LandVehicle","Helicopter","Plane","Ship_F"], ((F_NT_DRAWDISTANCE_NEAR+(F_NT_DRAWDISTANCE_NEAR*0.25)+1)*F_NT_VAR_NIGHT)] select @@ -61,7 +58,7 @@ if F_NT_NAMETAGS_ON then }; // Collect each filter entities' data. - _data = [_player,_playerGroup,_cameraPositionAGL,_cameraPositionASL,_entities,false] + private _data = [_player,_playerGroup,_cameraPositionAGL,_cameraPositionASL,_entities,false] call f_fnc_nametagGetData; // Push all those names and their data to the global cache. diff --git a/f/nametag/functions/fn_nametagDraw.sqf b/f/nametag/functions/fn_nametagDraw.sqf index 1a40c6294..6aa1d80e7 100644 --- a/f/nametag/functions/fn_nametagDraw.sqf +++ b/f/nametag/functions/fn_nametagDraw.sqf @@ -35,7 +35,7 @@ params ["_unit","_vehicle","_name","_nameColor","_locationData","_role","_groupN // Get player from global player setting. // This is necessary for Zeus remote control support. -_player = player; +private _player = player; //------------------------------------------------------------------------------------ @@ -47,11 +47,11 @@ _player = player; if (!(_locationData isEqualType {})) exitWith {}; // Find position tag will be rendered at using location data. -_targetPositionAGL = call _locationData; +private _targetPositionAGL = call _locationData; // Find the distance from the player camera to this location. -_camDistance = _cameraPositionAGL distance _targetPositionAGL; -_distance = _player distance _targetPositionAGL; +private _camDistance = _cameraPositionAGL distance _targetPositionAGL; +private _distance = _player distance _targetPositionAGL; //------------------------------------------------------------------------------------ @@ -63,7 +63,7 @@ _distance = _player distance _targetPositionAGL; if (_unit getVariable ["wh_nt_isSpeaking", false]) then { - _timeEven = ((round time) % 2 == 0); + private _timeEven = ((round time) % 2 == 0); _nameColor set [3,0.90]; _name = if _timeEven then @@ -77,7 +77,7 @@ if (_unit getVariable ["wh_nt_isSpeaking", false]) then // Applying initial transparency to tag depending on distance and time of day. //------------------------------------------------------------------------------------ -_alpha = +private _alpha = if (!_drawRoleAndGroup || {!(_isCommander)}) then { linearConversion[F_NT_DRAWDISTANCE_NEAR/1.3,F_NT_DRAWDISTANCE_NEAR, (_distance / F_NT_VAR_NIGHT),1,0,true] } @@ -94,12 +94,12 @@ _nameColor set [3, (_nameColor select 3) * _alpha]; // TODO: Move up to Update scope. // Max out zoom at 1.67 regardless to avoid HUGE text. -_zmin = _zoom min 1.67; +private _zmin = _zoom min 1.67; // Adjust font sizes. -_sizeMain = F_NT_FONT_SIZE_MAIN* _zmin; -_sizeSecondary = F_NT_FONT_SIZE_SEC * _zmin; -_sizeVehicle = F_NT_FONT_SIZE_VEH * _zmin; +private _sizeMain = F_NT_FONT_SIZE_MAIN* _zmin; +private _sizeSecondary = F_NT_FONT_SIZE_SEC * _zmin; +private _sizeVehicle = F_NT_FONT_SIZE_VEH * _zmin; //------------------------------------------------------------------------------------ @@ -109,14 +109,14 @@ _sizeVehicle = F_NT_FONT_SIZE_VEH * _zmin; if (_drawRoleAndGroup && {!(_isPassenger)}) then { // Set the color for secondary tags. - _color =+ F_NT_FONT_COLOR_OTHER; + private _color =+ F_NT_FONT_COLOR_OTHER; _color set [3, (_color select 3) * _alpha]; // If we're working with a fading tag, fade it out according to the difference // between the start time and now. if (!isNil "_startTime") then { - _alphaCoef = (((_startTime + F_NT_FADETIME) - _time)/F_NT_FADETIME); + private _alphaCoef = (((_startTime + F_NT_FADETIME) - _time)/F_NT_FADETIME); _nameColor set [3, (_namecolor select 3) * _alphaCoef]; _color set [3, (_color select 3) * _alphaCoef]; }; @@ -132,7 +132,7 @@ if (_drawRoleAndGroup && {!(_isPassenger)}) then // First, get vector pointing directly forward from the player's view, wherever it is. // TODO: Move up to update scope. - _vectorDir = _cameraPositionAGL vectorFromTo (positionCameraToWorld[0,0,1]); + private _vectorDir = _cameraPositionAGL vectorFromTo (positionCameraToWorld[0,0,1]); // Second, and the biggest step, get the normal (magnitude 1) vector going upwards // along the player's screen (visually) by taking the cross product of the player's @@ -145,12 +145,12 @@ if (_drawRoleAndGroup && {!(_isPassenger)}) then // TODO: Simplify this code if possible. // If not possible, cache what you can (vectorUp player vectorCrossProduct _vectorDir) // in nametagUpdate. - _vectorDiff = (vectorNormalized (((_vectorDir) vectorCrossProduct (vectorUp _player)) vectorCrossProduct (_targetPositionAGL vectorDiff _cameraPositionAGL))); + private _vectorDiff = (vectorNormalized (((_vectorDir) vectorCrossProduct (vectorUp _player)) vectorCrossProduct (_targetPositionAGL vectorDiff _cameraPositionAGL))); // Take that new normal vector and multiply it by the distance, then divide it by the zoom. - _targetPositionAGLTop = _targetPositionAGL vectorAdd (_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_TOP_MULTI * _camDistance / _zoom)); - _targetPositionAGLBottom = _targetPositionAGL vectorAdd ((_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_BOTTOM_MULTI * _camDistance / _zoom)) vectorMultiply -1); + private _targetPositionAGLTop = _targetPositionAGL vectorAdd (_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_TOP_MULTI * _camDistance / _zoom)); + private _targetPositionAGLBottom = _targetPositionAGL vectorAdd ((_vectorDiff vectorMultiply (F_NT_FONT_SPREAD_BOTTOM_MULTI * _camDistance / _zoom)) vectorMultiply -1); //-------------------------------------------------------------------------------- diff --git a/f/nametag/functions/fn_nametagGetData.sqf b/f/nametag/functions/fn_nametagGetData.sqf index 7717cfb8c..e8d1354cf 100644 --- a/f/nametag/functions/fn_nametagGetData.sqf +++ b/f/nametag/functions/fn_nametagGetData.sqf @@ -19,7 +19,12 @@ //------------------------------------------------------------------------------------ params ["_player","_playerGroup","_cameraPositionAGL","_cameraPositionASL", - "_entities","_isCursor"]; + "_entities","_isCursor"]; + +private ["_team","_entity","_locationData","_role","_show","_drawRoleAndGroup", + "_isCommander","_isPassenger","_targetPositionAGL","_targetPositionASL", + "_vehicle","_vehicleName","_maxSlots","_freeSlots","_name","_nameColor", + "_unitGroup","_sameGroup","_groupName","_unitData"]; // _player (object CAManBase): Current player that will be rendering tags. // _playerGroup: Group of said player. @@ -33,7 +38,6 @@ params ["_player","_playerGroup","_cameraPositionAGL","_cameraPositionASL", // Establishing arrays to be filled with unit names and unit data, respectively. //------------------------------------------------------------------------------------ -// TODO: Do these need to be private? private _names= []; private _data = []; @@ -52,7 +56,7 @@ private _zoom = 1; // each of the "vehicles" (or units) "crew" (or self). _entity = _x; - if !(_entity in allUnitsUAV) then // TODO: Find a better solution for this. + if (! (isNil "_entity" || {_entity in allUnitsUAV} ) ) then // TODO: Find a better solution for this. { { // Reset variables used for each unit. @@ -63,7 +67,7 @@ private _zoom = 1; _isCommander = false; _isPassenger = false; // TODO : Find a smoother solution for this. - if !(_x isEqualTo _player) then + if ( ! (isNil "_x" || {_x isEqualTo _player} ) ) then { // If the unit is NOT in a vehicle... if (isNull objectParent _x) then @@ -111,7 +115,10 @@ private _zoom = 1; else { // The vehicle is the thing we're processing the crew for. - _vehicle = vehicle _x; //objectParent _x + _vehicle = vehicle _x; //objectParent _x //Note: may be nil + if( isNil "_vehicle") then { + _vehicle = objNull; + }; // Depending on where the unit is in a vehicle, store it's 'role.' _role = call @@ -218,18 +225,24 @@ private _zoom = 1; if _show then { // Get the unit's name. - _name = name _x; + _name = name _x; //Note: may be nil + if( isNil "_name") then { + _name = ""; + }; // Default the unit's nametag color to the mission default. _nameColor =+ F_NT_FONT_COLOR_DEFAULT; // Get the unit's group. - _unitGroup = group _x; + _unitGroup = group _x; //Note: may be nil + if( isNil "_unitGroup") then { + _unitGroup = grpNull; + }; // If the unit is in the same group as the player, // then erase the group tag. It does not need to be shown. - _sameGroup = (_unitGroup isEqualTo _playerGroup); - _groupName = if !_sameGroup then { groupID _unitGroup } else { "" }; + _sameGroup = ( _unitGroup isEqualTo _playerGroup ); + _groupName = if ( ! _sameGroup ) then { groupID _unitGroup } else { "" }; // ...For normal people... if (_role isEqualTo "") then @@ -245,7 +258,10 @@ private _zoom = 1; // For units in the same group as the player, set their color according to color team. if _sameGroup then { - _team = assignedTeam _x; + _team = assignedTeam _x; //Note: may be nil + if( isNil "_team") then { + _team = ""; + }; _nameColor = switch _team do { case "RED": { +F_NT_FONT_COLOR_GROUPR }; @@ -285,4 +301,4 @@ private _zoom = 1; // Returns arrays of names and data for all valid entities. //------------------------------------------------------------------------------------ -[_names,_data] \ No newline at end of file +[_names,_data] diff --git a/f/nametag/functions/fn_nametagResetFont.sqf b/f/nametag/functions/fn_nametagResetFont.sqf index 4fa16d84a..10a528d0e 100644 --- a/f/nametag/functions/fn_nametagResetFont.sqf +++ b/f/nametag/functions/fn_nametagResetFont.sqf @@ -15,7 +15,7 @@ // Spacing may very between fonts greatly. Etelka is especially broken. // Format: [Primary font, secondary font, spacing top, spacing bottom, shadow] -_fontData = +private _fontData = switch F_NT_FONT_FACE do { case "Roboto": {["RobotoCondensedBold","RobotoCondensed",0.50,0.65,2]}; @@ -39,7 +39,7 @@ F_NT_FONT_SHADOW = (_fontData select 4); // Spacing may very between fonts greatly. Etelka is especially broken. // Format: [Main color, secondary color, crew color, same group team white color, // team red color, team green color, team blue color, team yellow color] -_colorData = +private _colorData = switch F_NT_FONT_COLOR do { case "WHGreen": @@ -104,11 +104,11 @@ F_NT_FONT_SIZE_SEC = F_NT_FONT_SIZE_MAIN * F_NT_FONT_SIZE_SEC_MULTI; // Update global font spread. //------------------------------------------------------------------------------------ -_spacingMultiplier = F_NT_FONT_SPREAD_MULTI * F_NT_FONT_SIZE_SEC; +private _spacingMultiplier = F_NT_FONT_SPREAD_MULTI * F_NT_FONT_SIZE_SEC; // Coefficients are used. Should be changed if you change the default font, probably. -_topMultiplier = (_fontData select 2); // Default: (0.50) -_bottomMultiplier = (_fontData select 3); // Default: (0.65) +private _topMultiplier = (_fontData select 2); // Default: (0.50) +private _bottomMultiplier = (_fontData select 3); // Default: (0.65) // Top and bottom are separate to avoid a wonky appearance. F_NT_FONT_SPREAD_TOP_MULTI = _spacingMultiplier * _topMultiplier; diff --git a/f/nametag/functions/fn_nametagUpdate.sqf b/f/nametag/functions/fn_nametagUpdate.sqf index f966ad170..8b5e245bf 100644 --- a/f/nametag/functions/fn_nametagUpdate.sqf +++ b/f/nametag/functions/fn_nametagUpdate.sqf @@ -15,30 +15,32 @@ //------------------------------------------------------------------------------------ // TODO: all of this only if there's something to draw // Store the player and the player's group. -_player = player; -_playerGroup = group _player; +private _player = player; +private _playerGroup = group _player; // TODO: Maybe just use playerSide? // Find player camera's position. -_cameraPositionAGL = positionCameraToWorld[0,0,0]; -_cameraPositionASL = AGLtoASL _cameraPositionAGL; +private _cameraPositionAGL = positionCameraToWorld[0,0,0]; +private _cameraPositionASL = AGLtoASL _cameraPositionAGL; // Get zoom, which will be used to adjust size and spacing of text. -_zoom = call f_fnc_getZoom; +private _zoom = call f_fnc_getZoom; // Make a copy of the global cache containing nearby entities and their data. -_toDraw =+ F_NT_CACHE; +private _toDraw =+ F_NT_CACHE; // Initialize other variables to be used. -_time = time; +private _time = time; +//For performance reasons, create private variables used in loops: +private ["_index", "_unitData", "_startTime"]; //------------------------------------------------------------------------------------ // Collect player cursor target for drawing tags. //------------------------------------------------------------------------------------ // Only collect the cursor target if it's within range and on the player's side. -_cursorObject = +private _cursorObject = if ( (_player distance cursorTarget) <= (((F_NT_DRAWDISTANCE_CURSOR) * F_NT_VAR_NIGHT) * _zoom) && {(side group cursorTarget isEqualTo side _playerGroup)} ) then { cursorTarget } @@ -53,8 +55,8 @@ else { objNull }; if !( isNull _cursorObject ) then { // Clean out any previous data. - _newData = [[],[]]; - _cursorInCache = false; + private _newData = [[],[]]; + private _cursorInCache = false; { // If the cursor target is already in the global cache (ie: cursor target // is nearby)... diff --git a/f/nametag/include/f_nametagBrief.sqf b/f/nametag/include/f_nametagBrief.sqf index 593eb0d67..e54a51ee0 100644 --- a/f/nametag/include/f_nametagBrief.sqf +++ b/f/nametag/include/f_nametagBrief.sqf @@ -13,7 +13,7 @@ { waitUntil {scriptDone f_script_briefing}; - _bstr = format ["FA NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %3m away, and constantly for all units within %2m.

Note that using CBA will disable this menu and replace it with an enchanced and expanded one under ADDON OPTIONS. Code contributed by Whale#5963. + private _bstr = format ["FA NAMETAGS

Toggle name tags for friendly units by pressing %1.

Name tags are displayed when aiming at individual units up to and above %3m away, and constantly for all units within %2m.

Note that using CBA will disable this menu and replace it with an enchanced and expanded one under ADDON OPTIONS. Code contributed by Whale#5963. ",F_NT_ACTIONKEY_KEYNAMES, F_NT_DRAWDISTANCE_NEAR,F_NT_DRAWDISTANCE_CURSOR]; if !F_NT_MOD_CBA then diff --git a/f/nametag/include/f_nametagCacheLoop.sqf b/f/nametag/include/f_nametagCacheLoop.sqf index 2344ee0a2..a2695a188 100644 --- a/f/nametag/include/f_nametagCacheLoop.sqf +++ b/f/nametag/include/f_nametagCacheLoop.sqf @@ -37,7 +37,7 @@ else { F_NT_CACHE_LOOP = [] spawn { - _delay = 0.5; + private _delay = 0.5; F_NT_CACHE_LOOP_RUN = true; // While the above variable is true, run the loop. diff --git a/f/nametag/include/f_nametagDisableKey.sqf b/f/nametag/include/f_nametagDisableKey.sqf index c550a65f9..abb4458e0 100644 --- a/f/nametag/include/f_nametagDisableKey.sqf +++ b/f/nametag/include/f_nametagDisableKey.sqf @@ -20,8 +20,8 @@ if (!isNil "F_NT_ACTIONKEY") then // Function that will determine when the disableKey is depressed. F_NT_KEYDOWN = { - _key = _this select 1; - _handled = false; + private _key = _this select 1; + private _handled = false; if(_key in F_NT_ACTIONKEY_KEYS) then { F_NT_NAMETAGS_ON = !F_NT_NAMETAGS_ON; @@ -33,8 +33,8 @@ if (!isNil "F_NT_ACTIONKEY") then // Function that will determine when the disableKey is released. F_NT_KEYUP = { - _key = _this select 1; - _handled = false; + private _key = _this select 1; + private _handled = false; if(_key in F_NT_ACTIONKEY_KEYS) then { _handled = true; @@ -45,4 +45,4 @@ if (!isNil "F_NT_ACTIONKEY") then // Add eventhandlers (functions above). (findDisplay 46) displayAddEventHandler ["keydown", "_this call F_NT_KEYDOWN"]; (findDisplay 46) displayAddEventHandler ["keyup", "_this call F_NT_KEYUP"]; -}; \ No newline at end of file +}; diff --git a/f/nametag/include/f_nametagInitTalking.sqf b/f/nametag/include/f_nametagInitTalking.sqf index 53bd519d0..d76710d55 100644 --- a/f/nametag/include/f_nametagInitTalking.sqf +++ b/f/nametag/include/f_nametagInitTalking.sqf @@ -25,8 +25,8 @@ if F_NT_MOD_CBA then private _new = (!(isNull findDisplay 55)); // Broadcast variable across server. - if (!(_oldSetting isEqualTo _newSetting)) then - { player setVariable ["wh_nt_isSpeaking", _newSetting, true] }; + if (!(_old isEqualTo _new)) then + { player setVariable ["wh_nt_isSpeaking", _new, true] }; } , 0.25, []] call CBA_fnc_addPerFrameHandler; } @@ -38,7 +38,7 @@ else { F_NT_TALKING_LOOP = [] spawn { - _delay = 0.25; + private _delay = 0.25; F_NT_TALKING_LOOP_RUN = true; // While the above variable is true, run the loop. @@ -49,11 +49,11 @@ else private _new = (!(isNull findDisplay 55)); // Broadcast variable across server. - if (!(_oldSetting isEqualTo _newSetting)) then - { player setVariable ["wh_nt_isSpeaking", _newSetting, true] }; + if (!(_old isEqualTo _new)) then + { player setVariable ["wh_nt_isSpeaking", _new, true] }; // ...and then wait for the delay before doing it again. sleep _delay; }; }; -}; \ No newline at end of file +}; From daf6f270d34203e5f7a6a7e3b64b9ca9970021bf Mon Sep 17 00:00:00 2001 From: s Date: Tue, 9 Jan 2018 00:40:50 +0100 Subject: [PATCH 102/407] EG spectator ending bug hotfix --- f/functions.hpp | 1 + f/mpEnd/fn_mpEndReceiver.sqf | 7 ++++++- f/spect/fn_terminateSpectator.sqf | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 f/spect/fn_terminateSpectator.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 62a00f52b..33028ed91 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -96,6 +96,7 @@ class F // Defines the "owner" { file = "f\spect"; class activateSpectator{}; + class terminateSpectator{}; }; class woundingsystem { diff --git a/f/mpEnd/fn_mpEndReceiver.sqf b/f/mpEnd/fn_mpEndReceiver.sqf index 3ad58d7c7..7d9ab9fcc 100644 --- a/f/mpEnd/fn_mpEndReceiver.sqf +++ b/f/mpEnd/fn_mpEndReceiver.sqf @@ -101,6 +101,12 @@ switch (_ending) do }; }; +// ==================================================================================== +// Exit the End-Game spectator +[] call f_fnc_terminateSpectator; + +// ==================================================================================== + // Using the integer we've got we use format to compile a string (e.g. "end1") and call the BIS function with it. _ending = format ["end%1",_ending]; [_ending,_state] spawn BIS_fnc_endMission; @@ -116,4 +122,3 @@ if (dialog) then }; // ==================================================================================== - diff --git a/f/spect/fn_terminateSpectator.sqf b/f/spect/fn_terminateSpectator.sqf new file mode 100644 index 000000000..0e788acc5 --- /dev/null +++ b/f/spect/fn_terminateSpectator.sqf @@ -0,0 +1,2 @@ + +["Terminate"] call BIS_fnc_EGSpectator; From 03e018a6fba72f08077151fd1992eaa1c65f8069 Mon Sep 17 00:00:00 2001 From: s Date: Tue, 9 Jan 2018 17:09:58 +0100 Subject: [PATCH 103/407] medical: Remove "Wait to be revived" holdAction --- f/medical/init.sqf | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/f/medical/init.sqf b/f/medical/init.sqf index 65af04271..4d0f80d4a 100644 --- a/f/medical/init.sqf +++ b/f/medical/init.sqf @@ -53,28 +53,11 @@ if (!hasInterface) exitWith {}; [player, (player getVariable [VAR_ACTION_ID_RESPAWN,-1])] call bis_fnc_holdActionRemove; // Reset 'forcing respawn' flags incase the player started the action before it was removed - if (IS_FORCING_RESPAWN(player)) then { + if (IS_FORCING_RESPAWN(player)) then { SET_FORCING_RESPAWN(player, false); }; - - // Add "Wait to be revived" hold-action - [player, - "Wait to be revived", - bis_fnc_reviveGetActionIcon, - bis_fnc_reviveGetActionIcon, - "lifeState player == 'INCAPACITATED'", - "lifeState player == 'INCAPACITATED'", - {}, - {}, - {}, - {}, - [], - 999999, // basically infinite - 1000, - true, - true] call BIS_fnc_holdActionAdd; - - // Wait until the player's state changes to avoid adding the hold-action multiple times + + // Wait until the player's state changes private _prevState = GET_STATE(player); waitUntil{sleep 1; GET_STATE(player) != _prevState}; }; @@ -91,4 +74,4 @@ if (!hasInterface) exitWith {}; }; // Make downed players draggable -[player] remoteExec ["f_fnc_addDragAction", 0, player]; \ No newline at end of file +[player] remoteExec ["f_fnc_addDragAction", 0, player]; From 5099da5d21daa91fe5f1d860634fa36d983f6cae Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Wed, 10 Jan 2018 18:44:32 +0000 Subject: [PATCH 104/407] Bumped version to FA3.5.0a for hotfix --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index cac1670ea..c8a3ffa70 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -3-5-0 +3-5-0-a From ed5cc4eed36302ab66596880da996adae5ac6dbc Mon Sep 17 00:00:00 2001 From: s Date: Fri, 12 Jan 2018 21:10:13 +0100 Subject: [PATCH 105/407] cache: restore cache component --- description.ext | 12 +++++++ f/cache/fn_cInit.sqf | 70 +++++++++++++++++++++++++++++++++++++++++ f/cache/fn_cTracker.sqf | 68 +++++++++++++++++++++++++++++++++++++++ f/cache/fn_gCache.sqf | 44 ++++++++++++++++++++++++++ f/cache/fn_gUncache.sqf | 20 ++++++++++++ f/functions.hpp | 8 +++++ init.sqf | 13 ++++++++ 7 files changed, 235 insertions(+) create mode 100644 f/cache/fn_cInit.sqf create mode 100644 f/cache/fn_cTracker.sqf create mode 100644 f/cache/fn_gCache.sqf create mode 100644 f/cache/fn_gUncache.sqf diff --git a/description.ext b/description.ext index 7142f6df3..7ec708681 100644 --- a/description.ext +++ b/description.ext @@ -224,6 +224,18 @@ class Params // ============================================================================================ +// F3 - Caching +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) + + class f_param_caching + { + title = "Cache AI outside distance (m)"; + values[] = {0,600,800,1000,1500,2000}; + default = 0; + }; + +// ============================================================================================ + // F3 - End of Params code blocks. // WARNING: DO NOT DELETE OR COMMENT OUT THIS CODE BLOCK diff --git a/f/cache/fn_cInit.sqf b/f/cache/fn_cInit.sqf new file mode 100644 index 000000000..3248b2de3 --- /dev/null +++ b/f/cache/fn_cInit.sqf @@ -0,0 +1,70 @@ +// F3 - Caching Script Init +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// Check whether the paramater is defined (or caching switched off)) - if not, just exit +if (isNil "f_param_caching" || {f_param_caching == 0}) exitWith {}; + +// ==================================================================================== + +// Wait for the mission to have launched before starting to cache. +sleep 0.1; + +// Wait up to the desired time into the mission to give AI and players time to settle +waitUntil {time > (_this select 0)}; + +// ==================================================================================== + +// Player and the headless client's (if present) groups are always excluded from being cached +if (!isDedicated && !(group player getVariable ["f_cacheExcl", false])) then { + (group player) setVariable ["f_cacheExcl", true, true]; +}; + +// ==================================================================================== + +// Rest of the Script is only run server-side +if !(isServer) exitWith {}; + +// ==================================================================================== + +// Make sure script is only run once +if (missionNameSpace getVariable ["f_cInit", false]) exitWith {}; +f_cInit = true; + +// ==================================================================================== + +// All groups with playable units are set to be ignored as well +{ + if ({_x in playableUnits} count units _x > 0) then {_x setVariable ["f_cacheExcl",true,true];}; +} forEach allGroups; + +// Define parameters +_range = f_param_caching; // The range outside of which to cache units +f_var_cacheSleep = 6; // The time to sleep between checking +f_var_cacheRun = true; + +[_range] spawn f_fnc_cTracker; + +// Start the debug tracker +if (f_param_debugMode == 1) then { + player globalchat format ["f_fnc_cInit DBG: Starting to track %1 groups, %2 range, %3 sleep",count allGroups,_range,f_var_cacheSleep]; + + [] spawn { + + // Giving the tracker a head start + sleep (f_var_cacheSleep * 1.1); + + while {f_var_cacheRun} do { + _str1 = "f_fnc_cache DBG:
"; + _str2 = format["Total groups: %1
",count allGroups]; + _str3 = format ["Cached groups:%1
",{_x getvariable "f_cached"} count allGroups]; + _str4 = format ["Activated groups:%1
",{!(_x getvariable "f_cached")} count allGroups]; + _str5 = format ["Excluded groups:%1
",{(_x getvariable "f_cacheExcl")} count allGroups]; + + hintsilent parseText (_str1+_str2+_str3+_str4+_str5); + diag_log (_str1+_str2+_str3+_str4+_str5); + + sleep f_var_cacheSleep; + }; + }; +}; \ No newline at end of file diff --git a/f/cache/fn_cTracker.sqf b/f/cache/fn_cTracker.sqf new file mode 100644 index 000000000..bef845651 --- /dev/null +++ b/f/cache/fn_cTracker.sqf @@ -0,0 +1,68 @@ +// F3 - Caching Script Tracker +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DECLARE VARIABLES AND FUNCTIONS +private ["_range","_groups","_debug"]; + +_range = _this select 0; +_groups = allGroups; + +_debug = if (f_param_debugMode == 1) then [{true},{false}]; + +// ==================================================================================== + +// BEGIN THE TRACKING LOOP +While {f_var_cacheRun} do { + { + _groups = allGroups; + + if (_debug) then{player globalchat format ["f_fnc_cache DBG: Tracking %1 groups",count _groups]}; + + if (isnull _x) then { + _groups = _groups - [_x]; + + if (_debug) then{player globalchat format ["f_fnc_cache DBG: Group is null, deleting: %1",_x,count _groups]}; + + } else { + _exclude = _x getvariable ["f_cacheExcl",false]; + _cached = _x getvariable ["f_cached", false]; + + if (!_exclude) then { + if (_cached) then { + + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Checking group: %1",_x]}; + + if ([leader _x, _range] call f_fnc_nearPlayer) then { + + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Decaching: %1",_x]}; + + _x setvariable ["f_cached", false]; + _x spawn f_fnc_gUncache; + + }; + } else { + if !([leader _x, _range * 1.1] call f_fnc_nearPlayer) then { + + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Caching: %1",_x]}; + + _x setvariable ["f_cached", true]; + [_x] spawn f_fnc_gCache; + }; + }; + + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Group is excluded: %1",_x]}; + }; + }; + } foreach _groups; + + sleep f_var_cacheSleep; +}; + +// If the caching loop is terminated, uncache all cached groups +{ + if (_x getvariable ["f_cached", false]) then { + _x spawn f_fnc_gUncache; + _x setvariable ["f_cached", false]; + }; +} forEach allGroups; \ No newline at end of file diff --git a/f/cache/fn_gCache.sqf b/f/cache/fn_gCache.sqf new file mode 100644 index 000000000..fb2b2f28e --- /dev/null +++ b/f/cache/fn_gCache.sqf @@ -0,0 +1,44 @@ +// F3 - Caching Script Group Cacher +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// LOOP THROUGH THE PASSED UNITS +// We loop through the units of the passed group and disable Simulation for those that are not vehicle drivers and are standing still + +private ["_group","_aggressiveness"]; + +_group = [_this,0,grpNull] call BIS_fnc_param; +_aggressiveness = [_this,1,f_var_cachingAggressiveness] call BIS_fnc_param; + +{ + + // Disable simulation based on aggressiveness + switch (_aggressiveness) do { + + case 1: { + if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _group)) then { + _x enableSimulationGlobal false; + }; + }; + case 2: { + if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { + if ((_x != leader _group) || (_x == leader _group && speed _x == 0)) then { + _x enableSimulationGlobal false; + }; + }; + }; + case 3: {_x enableSimulationGlobal false;}; + default {systemchat format ["f_fnc_gCache DBG: f_var_cachingAggressiveness is not an accepted value: %1",f_var_cachingAggressiveness];}; + }; + + // All unit's are hidden + _x hideObjectGlobal true; + + if (_aggressiveness == 3) then { + if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal true}; + }; + +sleep 0.1; +} forEach units _group; + +true \ No newline at end of file diff --git a/f/cache/fn_gUncache.sqf b/f/cache/fn_gUncache.sqf new file mode 100644 index 000000000..08a457e97 --- /dev/null +++ b/f/cache/fn_gUncache.sqf @@ -0,0 +1,20 @@ +// F3 - Caching Script Group Uncacher +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + + { + _x enableSimulationGlobal true; + _x hideObjectGlobal false; + + + // If the group leader is moving, set his group back next to him + if (speed leader _this > 0 && vehicle _x == _x) then { + _x setPosATL [(formationPosition _x) select 0, (formationPosition _x) select 1, 0]; + }; + + if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal false}; + +sleep 0.1; +} forEach units _this; + +true \ No newline at end of file diff --git a/f/functions.hpp b/f/functions.hpp index 62a00f52b..9513acb69 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -32,6 +32,14 @@ class F // Defines the "owner" class SetWeather{}; class SetWind{}; }; + class cache + { + file = "f\cache"; + class cInit {}; + class cTracker {}; + class gCache {}; + class gUncache {}; + }; class groupMarkers { file = "f\groupMarkers"; class localGroupMarker{}; diff --git a/init.sqf b/init.sqf index 56ebc472e..4d18bce2e 100644 --- a/init.sqf +++ b/init.sqf @@ -100,6 +100,19 @@ f_script_briefing = [] execVM "briefing.sqf"; // ==================================================================================== +// F3 - AI Unit Caching +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) + +[30] spawn f_fnc_cInit; + +// Note: Caching aggressiveness is set using the f_var_cachingAggressiveness variable; possible values: +// 1 - cache only non-leaders and non-drivers +// 2 - cache all non-moving units, always exclude vehicle drivers +// 3 - cache all units, incl. group leaders and vehicle drivers +f_var_cachingAggressiveness = 2; + +// ==================================================================================== + // F3 - Automatic Body Removal // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) From 9a61fdc4cee0d49fd71ea51c51c8acec3c143327 Mon Sep 17 00:00:00 2001 From: s Date: Fri, 12 Jan 2018 21:13:11 +0100 Subject: [PATCH 106/407] cache: disable cache component by default --- description.ext | 12 ++++++------ init.sqf | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/description.ext b/description.ext index 7ec708681..5276b6315 100644 --- a/description.ext +++ b/description.ext @@ -227,12 +227,12 @@ class Params // F3 - Caching // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - class f_param_caching - { - title = "Cache AI outside distance (m)"; - values[] = {0,600,800,1000,1500,2000}; - default = 0; - }; +// class f_param_caching +// { +// title = "Cache AI outside distance (m)"; +// values[] = {0,600,800,1000,1500,2000}; +// default = 0; +// }; // ============================================================================================ diff --git a/init.sqf b/init.sqf index 4d18bce2e..5aaedaf08 100644 --- a/init.sqf +++ b/init.sqf @@ -103,13 +103,13 @@ f_script_briefing = [] execVM "briefing.sqf"; // F3 - AI Unit Caching // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -[30] spawn f_fnc_cInit; +//[30] spawn f_fnc_cInit; // Note: Caching aggressiveness is set using the f_var_cachingAggressiveness variable; possible values: // 1 - cache only non-leaders and non-drivers // 2 - cache all non-moving units, always exclude vehicle drivers // 3 - cache all units, incl. group leaders and vehicle drivers -f_var_cachingAggressiveness = 2; +//f_var_cachingAggressiveness = 2; // ==================================================================================== From 1dfcacbb67cfc1705e8b347ddcc9943ed570458f Mon Sep 17 00:00:00 2001 From: s Date: Fri, 12 Jan 2018 21:14:59 +0100 Subject: [PATCH 107/407] cache: replace '_this select' with 'params'. Fix inconsistent indentation. --- f/cache/fn_cInit.sqf | 29 +++++++++------ f/cache/fn_cTracker.sqf | 80 +++++++++++++++++++---------------------- f/cache/fn_gCache.sqf | 66 +++++++++++++++++----------------- f/cache/fn_gUncache.sqf | 17 +++++---- 4 files changed, 97 insertions(+), 95 deletions(-) diff --git a/f/cache/fn_cInit.sqf b/f/cache/fn_cInit.sqf index 3248b2de3..82d4c653f 100644 --- a/f/cache/fn_cInit.sqf +++ b/f/cache/fn_cInit.sqf @@ -7,17 +7,26 @@ if (isNil "f_param_caching" || {f_param_caching == 0}) exitWith {}; // ==================================================================================== +// DECLARE VARIABLES AND FUNCTIONS +private ["_range", "_str1"]; + +params [ + ["_sleep", 0, [0]] +]; + +// ==================================================================================== + // Wait for the mission to have launched before starting to cache. sleep 0.1; // Wait up to the desired time into the mission to give AI and players time to settle -waitUntil {time > (_this select 0)}; +waitUntil {sleep 0.1; time > _sleep}; // ==================================================================================== // Player and the headless client's (if present) groups are always excluded from being cached if (!isDedicated && !(group player getVariable ["f_cacheExcl", false])) then { - (group player) setVariable ["f_cacheExcl", true, true]; + (group player) setVariable ["f_cacheExcl", true, true]; }; // ==================================================================================== @@ -55,16 +64,16 @@ if (f_param_debugMode == 1) then { sleep (f_var_cacheSleep * 1.1); while {f_var_cacheRun} do { - _str1 = "f_fnc_cache DBG:
"; - _str2 = format["Total groups: %1
",count allGroups]; - _str3 = format ["Cached groups:%1
",{_x getvariable "f_cached"} count allGroups]; - _str4 = format ["Activated groups:%1
",{!(_x getvariable "f_cached")} count allGroups]; - _str5 = format ["Excluded groups:%1
",{(_x getvariable "f_cacheExcl")} count allGroups]; + _str1 = "f_fnc_cache DBG:
" + + format ["Total groups: %1
",count allGroups] + + format ["Cached groups:%1
",{_x getvariable "f_cached"} count allGroups] + + format ["Activated groups:%1
",{!(_x getvariable "f_cached")} count allGroups] + + format ["Excluded groups:%1
",{(_x getvariable "f_cacheExcl")} count allGroups]; - hintsilent parseText (_str1+_str2+_str3+_str4+_str5); - diag_log (_str1+_str2+_str3+_str4+_str5); + hintsilent parseText (_str1); + diag_log (_str1); sleep f_var_cacheSleep; }; }; -}; \ No newline at end of file +}; diff --git a/f/cache/fn_cTracker.sqf b/f/cache/fn_cTracker.sqf index bef845651..ad78bffb3 100644 --- a/f/cache/fn_cTracker.sqf +++ b/f/cache/fn_cTracker.sqf @@ -2,67 +2,59 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// DECLARE VARIABLES AND FUNCTIONS -private ["_range","_groups","_debug"]; +// DECLARE VARIABLES AND PARAMETERS +private ["_groups","_debug","_exclude","_cached"]; -_range = _this select 0; -_groups = allGroups; +params [ + ["_range", 0, [0]] +]; _debug = if (f_param_debugMode == 1) then [{true},{false}]; // ==================================================================================== // BEGIN THE TRACKING LOOP -While {f_var_cacheRun} do { - { - _groups = allGroups; +while {f_var_cacheRun} do { + _groups = allGroups select { ! isNull _x }; + if (_debug) then{player globalchat format ["f_fnc_cache DBG: Tracking %1 groups",count _groups]}; + { + _exclude = _x getvariable ["f_cacheExcl",false]; + _cached = _x getvariable ["f_cached", false]; - if (_debug) then{player globalchat format ["f_fnc_cache DBG: Tracking %1 groups",count _groups]}; + if (!_exclude) then { + if (_cached) then { - if (isnull _x) then { - _groups = _groups - [_x]; + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Checking group: %1",_x]}; - if (_debug) then{player globalchat format ["f_fnc_cache DBG: Group is null, deleting: %1",_x,count _groups]}; + if ([leader _x, _range] call f_fnc_nearPlayer) then { - } else { - _exclude = _x getvariable ["f_cacheExcl",false]; - _cached = _x getvariable ["f_cached", false]; + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Decaching: %1",_x]}; - if (!_exclude) then { - if (_cached) then { + _x setvariable ["f_cached", false]; + _x spawn f_fnc_gUncache; - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Checking group: %1",_x]}; + }; + } else { + if !([leader _x, _range * 1.1] call f_fnc_nearPlayer) then { - if ([leader _x, _range] call f_fnc_nearPlayer) then { + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Caching: %1",_x]}; - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Decaching: %1",_x]}; + _x setvariable ["f_cached", true]; + [_x] spawn f_fnc_gCache; + }; + }; + } else { + if (_debug) then {player globalchat format ["f_fnc_cache DBG: Group is excluded: %1",_x]}; + }; + } foreach _groups; - _x setvariable ["f_cached", false]; - _x spawn f_fnc_gUncache; - - }; - } else { - if !([leader _x, _range * 1.1] call f_fnc_nearPlayer) then { - - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Caching: %1",_x]}; - - _x setvariable ["f_cached", true]; - [_x] spawn f_fnc_gCache; - }; - }; - - if (_debug) then {player globalchat format ["f_fnc_cache DBG: Group is excluded: %1",_x]}; - }; - }; - } foreach _groups; - - sleep f_var_cacheSleep; + sleep f_var_cacheSleep; }; // If the caching loop is terminated, uncache all cached groups { - if (_x getvariable ["f_cached", false]) then { - _x spawn f_fnc_gUncache; - _x setvariable ["f_cached", false]; - }; -} forEach allGroups; \ No newline at end of file + if (_x getvariable ["f_cached", false]) then { + _x spawn f_fnc_gUncache; + _x setvariable ["f_cached", false]; + }; +} forEach allGroups; diff --git a/f/cache/fn_gCache.sqf b/f/cache/fn_gCache.sqf index fb2b2f28e..d6c91ce13 100644 --- a/f/cache/fn_gCache.sqf +++ b/f/cache/fn_gCache.sqf @@ -5,40 +5,42 @@ // LOOP THROUGH THE PASSED UNITS // We loop through the units of the passed group and disable Simulation for those that are not vehicle drivers and are standing still -private ["_group","_aggressiveness"]; - -_group = [_this,0,grpNull] call BIS_fnc_param; -_aggressiveness = [_this,1,f_var_cachingAggressiveness] call BIS_fnc_param; +params [ + ["_group", grpNull, [grpNull]], + ["_aggressiveness", f_var_cachingAggressiveness, [0]] +]; { - // Disable simulation based on aggressiveness - switch (_aggressiveness) do { - - case 1: { - if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _group)) then { - _x enableSimulationGlobal false; - }; - }; - case 2: { - if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { - if ((_x != leader _group) || (_x == leader _group && speed _x == 0)) then { - _x enableSimulationGlobal false; - }; - }; - }; - case 3: {_x enableSimulationGlobal false;}; - default {systemchat format ["f_fnc_gCache DBG: f_var_cachingAggressiveness is not an accepted value: %1",f_var_cachingAggressiveness];}; - }; - - // All unit's are hidden - _x hideObjectGlobal true; - - if (_aggressiveness == 3) then { - if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal true}; - }; - -sleep 0.1; + // Disable simulation based on aggressiveness + switch (_aggressiveness) do { + + case 1: { + if ((count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) && (_x != leader _group)) then { + _x enableSimulationGlobal false; + }; + }; + case 2: { + if (count (assignedVehicleRole _x) == 0 || {"Driver" != (assignedVehicleRole _x) select 0}) then { + if ((_x != leader _group) || (_x == leader _group && speed _x == 0)) then { + _x enableSimulationGlobal false; + }; + }; + }; + case 3: {_x enableSimulationGlobal false;}; + default {systemchat format ["f_fnc_gCache DBG: f_var_cachingAggressiveness is not an accepted value: %1",f_var_cachingAggressiveness];}; + }; + + // All units are hidden + _x hideObjectGlobal true; + + if (_aggressiveness == 3) then { + if (vehicle _x != _x) then { + (vehicle _x) hideObjectGlobal true; + }; + }; + + sleep 0.1; } forEach units _group; -true \ No newline at end of file +true diff --git a/f/cache/fn_gUncache.sqf b/f/cache/fn_gUncache.sqf index 08a457e97..6e3dd9f44 100644 --- a/f/cache/fn_gUncache.sqf +++ b/f/cache/fn_gUncache.sqf @@ -2,19 +2,18 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== - { - _x enableSimulationGlobal true; - _x hideObjectGlobal false; +{ + _x enableSimulationGlobal true; + _x hideObjectGlobal false; - - // If the group leader is moving, set his group back next to him - if (speed leader _this > 0 && vehicle _x == _x) then { - _x setPosATL [(formationPosition _x) select 0, (formationPosition _x) select 1, 0]; + // If the group leader is moving, set his group back next to him + if (speed leader _this > 0 && vehicle _x == _x) then { + _x setPosATL [(formationPosition _x) select 0, (formationPosition _x) select 1, 0]; }; if (vehicle _x != _x) then {(vehicle _x) hideObjectGlobal false}; -sleep 0.1; + sleep 0.1; } forEach units _this; -true \ No newline at end of file +true From b2c3ecf558889c7365aea4c8efce5583c6614a39 Mon Sep 17 00:00:00 2001 From: s Date: Fri, 29 Sep 2017 15:12:16 +0200 Subject: [PATCH 108/407] Re-implement dynamic view distance using event handlers and add support for UAVs --- .../f_setViewDistanceInit.sqf | 23 ++++++ .../f_setViewDistanceLoop.sqf | 70 ------------------- .../fn_ehSetViewDistance.sqf | 50 +++++++++++++ f/functions.hpp | 5 ++ init.sqf | 14 ++-- 5 files changed, 85 insertions(+), 77 deletions(-) create mode 100644 f/dynamicViewDistance/f_setViewDistanceInit.sqf delete mode 100644 f/dynamicViewDistance/f_setViewDistanceLoop.sqf create mode 100644 f/dynamicViewDistance/fn_ehSetViewDistance.sqf diff --git a/f/dynamicViewDistance/f_setViewDistanceInit.sqf b/f/dynamicViewDistance/f_setViewDistanceInit.sqf new file mode 100644 index 000000000..8b422ac17 --- /dev/null +++ b/f/dynamicViewDistance/f_setViewDistanceInit.sqf @@ -0,0 +1,23 @@ +// FA3 - Dynamic View Distance +// ==================================================================================== + +if (!hasInterface) exitWith {}; + +if (!isDedicated && (isNull player)) then +{ + waitUntil {sleep 0.1; !isNull player}; +}; + +//Set view distance in case the player starts in vehicle +[player, objNull, vehicle player] spawn f_fnc_ehSetViewDistance; + +// Add event handlers: +// Note: Using PlayerViewChanged instead of GetInMan and GetOutMan to cover UAVs as well. +f_ehIndex_dynamicViewDistance_0 = player addEventHandler ['SeatSwitchedMan', f_fnc_ehSetViewDistance]; +f_ehIndex_dynamicViewDistance_1 = addMissionEventHandler ['PlayerViewChanged', f_fnc_ehSetViewDistance]; + +if (f_param_debugMode == 1) then +{ + player sideChat format ["DEBUG (f\dynamicViewDistance\f_setViewDistanceInit.sqf): Added Event Handler SeatSwitchedMan ID: %1", f_ehIndex_dynamicViewDistance_0]; + player sideChat format ["DEBUG (f\dynamicViewDistance\f_setViewDistanceInit.sqf): Added Event Handler PlayerViewChanged ID: %1", f_ehIndex_dynamicViewDistance_1]; +}; diff --git a/f/dynamicViewDistance/f_setViewDistanceLoop.sqf b/f/dynamicViewDistance/f_setViewDistanceLoop.sqf deleted file mode 100644 index abb522d6c..000000000 --- a/f/dynamicViewDistance/f_setViewDistanceLoop.sqf +++ /dev/null @@ -1,70 +0,0 @@ -// F3 - Dynamic View Distance -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// PLAYER-ONLY COMPONENT -// No need to run this on the server - -if (isDedicated) exitWith {}; - -// ==================================================================================== - -// MAKE SURE THE PLAYER INITIALIZES PROPERLY - -if (!isDedicated && (isNull player)) then -{ - waitUntil {sleep 0.1; !isNull player}; -}; - -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_veh","_vd","_seat","_sleep"]; - -// ==================================================================================== - -// SETUP KEY VARIABLES -// The sleep governs how often the scripts checks if the player has changed the vehicle - -_sleep = 3; - -// ==================================================================================== - -// SET VIEW DISTANCE -// If the player is in a cargo position, the default view distance is set. If the -// player is in a non-cargo position within an actual vehicle, the appropriate view -// distance is set. - -while {!isNull player} do { - _veh = vehicle player; - _seat = ""; - _vd = f_var_viewDistance_default; - - if (_veh != player) then { - if (_veh isKindOf "Car") then {_vd = f_var_viewDistance_car;}; - if (_veh isKindOf "Tank") then {_vd = f_var_viewDistance_tank;}; - if (_veh isKindOf "Helicopter_Base_F") then {_vd = f_var_viewDistance_rotaryWing;}; - if (_veh isKindOf "Plane") then {_vd = f_var_viewDistance_fixedWing;}; - - _seat = (assignedVehicleRole player select 0); - if (_seat == "CARGO" && f_var_viewDistance_crewOnly) then {_vd = f_var_viewDistance_default;}; - }; - - setViewDistance _vd; - - // DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (f\setViewDistance\f_addSetViewDistanceEHs.sqf): Viewdistance set to: = %1",_vd]; - }; - - // Wait until player changes the vehicle or changes seats. Sleep 1s between every check. - while {_veh == vehicle player} do { - - // Check if the player has changed seats. - if (_veh != player && {_seat != (assignedVehicleRole player select 0)}) exitWith {}; - - sleep _sleep; - }; -}; diff --git a/f/dynamicViewDistance/fn_ehSetViewDistance.sqf b/f/dynamicViewDistance/fn_ehSetViewDistance.sqf new file mode 100644 index 000000000..3ed0520e7 --- /dev/null +++ b/f/dynamicViewDistance/fn_ehSetViewDistance.sqf @@ -0,0 +1,50 @@ +// FA3 - Dynamic View Distance +// ==================================================================================== + +// Parameters +// Note: _oldCameraOn, _newCameraOn, and _uav are only used for the PlayerViewChanged event. +params [ ["_unit", player], + ["_unit2_or_position", nil], + ["_veh", vehicle player], + ["_oldCameraOn", objNull], + ["_newCameraOn", objNull], + ["_uav", objNull] +]; + +private _vd = f_var_viewDistance_default; + +private _isInCargo = _unit in assignedCargo _veh; + +if (!(f_var_viewDistance_crewOnly && _isInCargo) && vehicle player != player) then +{ + if (_veh isKindOf "Car") then {_vd = f_var_viewDistance_car;}; + if (_veh isKindOf "Tank") then {_vd = f_var_viewDistance_tank;}; + if (_veh isKindOf "Helicopter_Base_F") then {_vd = f_var_viewDistance_rotaryWing;}; + if (_veh isKindOf "Plane") then {_vd = f_var_viewDistance_fixedWing;}; +}; +if (!(isNull _uav) && {unitIsUAV _uav }) then +{ + //Note: Helicopter_Base_F includes quadcopters/hexacopters as well as the bigger Falcon + if (_uav isKindof "Land") then {_vd = f_var_viewDistance_car;}; + if (_uav isKindOf "Tank") then {_vd = f_var_viewDistance_tank;}; + if (_uav isKindOf "Helicopter_Base_F") then {_vd = f_var_viewDistance_rotaryWing;}; + if (_uav isKindOf "Plane") then {_vd = f_var_viewDistance_fixedWing;}; +}; + +// if new viewDistance is different from the one in previous seat, change it, otherwise do nothing. +if (_vd != viewDistance) then +{ + setViewDistance _vd; + + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f\dynamicViewDistance\fn_ehSetViewDistance.sqf): Viewdistance set to %1",_vd]; + }; +} +else +{ + if (f_param_debugMode == 1) then + { + player sideChat "DEBUG (f\dynamicViewDistance\fn_ehSetViewDistance.sqf): No Viewdistance change required"; + }; +}; diff --git a/f/functions.hpp b/f/functions.hpp index eb8c0f494..9fcf1f18c 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -115,4 +115,9 @@ class F // Defines the "owner" file = "f\disableThermals"; class disableThermals {}; }; + class dynamicViewDistance + { + file = "f\dynamicViewDistance"; + class ehSetViewDistance {}; + }; }; diff --git a/init.sqf b/init.sqf index 56ebc472e..762d85fc5 100644 --- a/init.sqf +++ b/init.sqf @@ -128,13 +128,13 @@ f_var_civAI = independent; // Optional: The civilian AI will use this side's s // F3 - Dynamic View Distance // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// f_var_viewDistance_default = 1250; -// f_var_viewDistance_tank = 2000; -// f_var_viewDistance_car = 2000; -// f_var_viewDistance_rotaryWing = 2500; -// f_var_viewDistance_fixedWing = 5000; -// f_var_viewDistance_crewOnly = true; -// [] execVM "f\dynamicViewDistance\f_setViewDistanceLoop.sqf"; +f_var_viewDistance_default = 1600; +f_var_viewDistance_tank = 2500; +f_var_viewDistance_car = 2000; +f_var_viewDistance_rotaryWing = 3000; +f_var_viewDistance_fixedWing = 5000; +f_var_viewDistance_crewOnly = true; +[] execVM "f\dynamicViewDistance\f_setViewDistanceInit.sqf"; // ==================================================================================== From 955ef25d8355e1a6acb20decf679ea89057fec81 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 28 Jan 2018 00:21:31 +0100 Subject: [PATCH 109/407] ws_fnc resolved division by zero issue --- ws_fnc/AI/fn_enterBuilding.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ws_fnc/AI/fn_enterBuilding.sqf b/ws_fnc/AI/fn_enterBuilding.sqf index 6b059937d..c96cb186f 100644 --- a/ws_fnc/AI/fn_enterBuilding.sqf +++ b/ws_fnc/AI/fn_enterBuilding.sqf @@ -35,7 +35,7 @@ while {count _units > 0 && count _barray > 0} do { // Get variables to check if building can be used _bUnits = _building getVariable ["ws_bUnits",0]; - _bposleft = _building getVariable ["ws_bPosLeft",_bposarray]; + _bposleft = _building getVariable ["ws_bPosLeft",+_bposarray]; // Loop until we find a good building while {count _barray > 0 && {count _bposLeft == 0 || (_bUnits / (count _bposarray) >= _threshold)}} do { @@ -43,11 +43,11 @@ while {count _units > 0 && count _barray > 0} do { _building = selectRandom _barray; _bposarray = _building getVariable ["ws_bPos",[]]; - if (count _bposleft == 0) then {_bposarray = [_building] call ws_fnc_getBpos;}; + if (count _bposarray == 0) then {_bposarray = [_building] call ws_fnc_getBpos;}; // Get variables in order to check if building can be used _bUnits = _building getVariable ["ws_bUnits",0]; - _bposleft = _building getVariable ["ws_bPosLeft",_bposarray]; + _bposleft = _building getVariable ["ws_bPosLeft",+_bposarray]; }; // If no good building was found, exit. @@ -113,7 +113,7 @@ while {count _units > 0 && count _barray > 0} do { }; // If the building doesn't have any bpos or is filled, it's removed from the building-array - if (count _bposleft == 0 || (_bUnits+1)/count _bposarray >= _threshold) then {_barray = _barray - [_building]}; + if (count _bposleft == 0 || {(_bUnits+1)/count _bposarray >= _threshold}) then {_barray = _barray - [_building]}; }; }; From b6f5a3a7265a04c5850fd9f5dbbace590eef128e Mon Sep 17 00:00:00 2001 From: s Date: Sun, 28 Jan 2018 16:13:57 +0100 Subject: [PATCH 110/407] Update mission.sqm to version 53. (Opened framework and saved again without modifications) --- mission.sqm | 140 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 85 insertions(+), 55 deletions(-) diff --git a/mission.sqm b/mission.sqm index 05e4ec06e..3c6aa5c49 100644 --- a/mission.sqm +++ b/mission.sqm @@ -1,4 +1,4 @@ -version=52; +version=53; class EditorData { moveGridStep=1; @@ -67,135 +67,135 @@ class AddonsMetaData class Item0 { className="A3_Air_F_Heli"; - name="Arma 3 Helicopters - Aircrafts"; + name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item1 { className="A3_Air_F_Beta"; - name="Arma 3 Beta - Aircrafts"; + name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item2 { className="A3_Armor_F_Beta"; name="Arma 3 Beta - Armored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item3 { className="A3_Air_F"; - name="Arma 3 Alpha - Aircrafts"; + name="Arma 3 Alpha - Aircraft"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item4 { className="A3_Armor_F_EPC"; name="Arma 3 Win Episode - Armored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item5 { className="A3_Armor_F_Gamma"; name="Arma 3 - Armored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item6 { className="A3_Armor_F_EPB"; name="Arma 3 Adapt Episode - Armored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item7 { className="A3_Air_F_EPB"; - name="Arma 3 Adapt Episode - Aircrafts"; + name="Arma 3 Adapt Episode - Aircraft"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item8 { className="A3_Soft_F_Beta"; name="Arma 3 Beta - Unarmored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item9 { className="A3_Soft_F"; name="Arma 3 Alpha - Unarmored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item10 { className="A3_Soft_F_Gamma"; name="Arma 3 - Unarmored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item11 { className="A3_Weapons_F"; name="Arma 3 Alpha - Weapons and Accessories"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item12 { className="A3_Modules_F_Curator"; name="Arma 3 Zeus Update - Scripted Modules"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item13 { className="A3_Modules_F"; name="Arma 3 Alpha - Scripted Modules"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item14 { className="A3_Characters_F"; name="Arma 3 Alpha - Characters and Clothing"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item15 { className="A3_Static_F"; name="Arma 3 Alpha - Turrets"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item16 { className="A3_Data_F_Curator"; name="Arma 3 Zeus Update - Main Configuration"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item17 { className="A3_Characters_F_Exp"; name="Arma 3 Apex - Characters and Clothing"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item18 { className="A3_Soft_F_Exp"; name="Arma 3 Apex - Unarmored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; }; }; @@ -356,6 +356,7 @@ class Mission }; id=4; type="B_Heli_Transport_01_F"; + atlOffset=-1.2397766e-005; }; class Item5 { @@ -375,6 +376,7 @@ class Mission }; id=5; type="B_Heli_Transport_01_F"; + atlOffset=-1.2397766e-005; }; class Item6 { @@ -394,6 +396,7 @@ class Mission }; id=6; type="B_Heli_Transport_01_F"; + atlOffset=-1.2397766e-005; }; class Item7 { @@ -413,6 +416,7 @@ class Mission }; id=7; type="B_Heli_Transport_01_F"; + atlOffset=-1.2397766e-005; }; class Item8 { @@ -431,6 +435,7 @@ class Mission }; id=8; type="B_Heli_Transport_01_F"; + atlOffset=-1.2397766e-005; }; class Item9 { @@ -449,6 +454,7 @@ class Mission }; id=9; type="B_Heli_Transport_01_F"; + atlOffset=-1.2397766e-005; }; class Item10 { @@ -539,6 +545,7 @@ class Mission }; id=14; type="B_Heli_Attack_01_F"; + atlOffset=0.009988308; }; class Item15 { @@ -1283,6 +1290,7 @@ class Mission }; id=54; type="B_G_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item55 { @@ -1302,6 +1310,7 @@ class Mission }; id=55; type="B_G_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item56 { @@ -1321,6 +1330,7 @@ class Mission }; id=56; type="B_G_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item57 { @@ -2165,6 +2175,7 @@ class Mission }; id=87; type="B_G_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item88 { @@ -2184,6 +2195,7 @@ class Mission }; id=88; type="B_G_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item89 { @@ -2203,6 +2215,7 @@ class Mission }; id=89; type="B_G_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item90 { @@ -2935,6 +2948,7 @@ class Mission }; }; id=116; + atlOffset=-0.37890196; }; class Item98 { @@ -2951,6 +2965,7 @@ class Mission }; id=117; type="B_Heli_Light_01_armed_F"; + atlOffset=-0.37890196; }; class Item99 { @@ -3244,7 +3259,7 @@ class Mission }; }; id=126; - atlOffset=0.38843632; + atlOffset=0.009534359; }; class Item103 { @@ -3254,14 +3269,14 @@ class Mission position[]={431.92221,6.7886786,748.25006}; }; side="West"; - flags=2; + flags=6; class Attributes { skill=0.60000002; }; id=127; type="B_Heli_Light_01_armed_F"; - atlOffset=0.38843632; + atlOffset=0.009534359; }; class Item104 { @@ -3555,7 +3570,7 @@ class Mission }; }; id=136; - atlOffset=0.58848858; + atlOffset=0.20958662; }; class Item108 { @@ -3565,14 +3580,14 @@ class Mission position[]={432.80014,6.9887309,724.45416}; }; side="West"; - flags=2; + flags=6; class Attributes { skill=0.60000002; }; id=137; type="B_Heli_Light_01_armed_F"; - atlOffset=0.58848858; + atlOffset=0.20958662; }; class Item109 { @@ -5079,6 +5094,7 @@ class Mission }; }; id=186; + atlOffset=-0.37890196; }; class Item133 { @@ -5095,6 +5111,7 @@ class Mission }; id=187; type="B_Heli_Light_01_armed_F"; + atlOffset=-0.37890196; }; class Item134 { @@ -9271,6 +9288,7 @@ class Mission }; }; id=329; + atlOffset=-1.2397766e-005; class CustomAttributes { class Attribute0 @@ -9445,6 +9463,7 @@ class Mission }; }; id=334; + atlOffset=-1.2397766e-005; class CustomAttributes { class Attribute0 @@ -9619,6 +9638,7 @@ class Mission }; }; id=339; + atlOffset=-1.2397766e-005; class CustomAttributes { class Attribute0 @@ -9793,6 +9813,7 @@ class Mission }; }; id=344; + atlOffset=-1.2397766e-005; class CustomAttributes { class Attribute0 @@ -9967,6 +9988,7 @@ class Mission }; }; id=349; + atlOffset=-1.2397766e-005; class CustomAttributes { class Attribute0 @@ -10141,6 +10163,7 @@ class Mission }; }; id=354; + atlOffset=-1.2397766e-005; class CustomAttributes { class Attribute0 @@ -10252,6 +10275,7 @@ class Mission }; }; id=359; + atlOffset=0.009988308; class CustomAttributes { class Attribute0 @@ -29465,6 +29489,7 @@ class Mission }; id=953; type="I_C_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item324 { @@ -29484,6 +29509,7 @@ class Mission }; id=954; type="I_C_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item325 { @@ -29503,6 +29529,7 @@ class Mission }; id=955; type="I_C_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item326 { @@ -29522,6 +29549,7 @@ class Mission }; id=956; type="I_C_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item327 { @@ -29541,6 +29569,7 @@ class Mission }; id=957; type="I_C_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item328 { @@ -29560,6 +29589,7 @@ class Mission }; id=958; type="I_C_Van_01_transport_F"; + atlOffset=0.00011968613; }; class Item329 { @@ -32321,7 +32351,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1099; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item366 { @@ -32334,7 +32364,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1105; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item367 { @@ -32347,7 +32377,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1106; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item368 { @@ -32360,7 +32390,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1107; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item369 { @@ -32373,7 +32403,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1108; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item370 { @@ -32386,7 +32416,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1110; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item371 { @@ -32399,7 +32429,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1111; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item372 { @@ -32412,7 +32442,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1112; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item373 { @@ -32425,7 +32455,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1113; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item374 { @@ -32438,7 +32468,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1114; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item375 { @@ -32451,7 +32481,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1115; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item376 { @@ -32464,7 +32494,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1116; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item377 { @@ -32477,7 +32507,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1117; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item378 { @@ -32490,7 +32520,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1118; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item379 { @@ -32503,7 +32533,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1119; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item380 { @@ -32516,7 +32546,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1120; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item381 { @@ -32529,7 +32559,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1121; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item382 { @@ -32542,7 +32572,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1122; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item383 { @@ -32555,7 +32585,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1123; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item384 { @@ -32568,7 +32598,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1124; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item385 { @@ -32581,7 +32611,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1125; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item386 { @@ -32594,7 +32624,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1126; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item387 { @@ -32607,7 +32637,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1127; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item388 { @@ -32620,7 +32650,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1128; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; class Item389 { @@ -32633,7 +32663,7 @@ class Mission init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; id=1129; type="Logic"; - atlOffset=185.97; + atlOffset=-5; }; }; class Connections From 8f653479b6ff54f2c8158422c32a1ecd5c833c58 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 28 Jan 2018 16:17:17 +0100 Subject: [PATCH 111/407] Add 4 virtual spectator slots --- mission.sqm | 460 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 456 insertions(+), 4 deletions(-) diff --git a/mission.sqm b/mission.sqm index 3c6aa5c49..18a24e6c5 100644 --- a/mission.sqm +++ b/mission.sqm @@ -8,7 +8,7 @@ class EditorData toggles=513; class ItemIDProvider { - nextID=1130; + nextID=1134; }; class Camera { @@ -57,13 +57,14 @@ addons[]= "A3_Soft_F_Exp_Van_01", "A3_Soft_F_Exp_Offroad_01", "A3_Soft_F_Gamma_SUV_01", - "A3_Modules_F" + "A3_Modules_F", + "A3_Data_F_Exp_A_Virtual" }; class AddonsMetaData { class List { - items=19; + items=20; class Item0 { className="A3_Air_F_Heli"; @@ -197,6 +198,13 @@ class AddonsMetaData author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item19 + { + className="A3_Data_F_Exp_A"; + name="Arma 3 Nexus Update - Main Configuration"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=1116085; @@ -262,7 +270,7 @@ class Mission }; class Entities { - items=390; + items=394; class Item0 { dataType="Object"; @@ -32665,6 +32673,450 @@ class Mission type="Logic"; atlOffset=-5; }; + class Item390 + { + dataType="Logic"; + class PositionInfo + { + position[]={2900,5,800}; + }; + name="F3_Spectator"; + isPlayable=1; + description="Spectator Slot"; + id=1130; + type="VirtualSpectator_F"; + class CustomAttributes + { + class Attribute0 + { + property="AllowFreeCamera"; + expression="_this setVariable ['AllowFreeCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute1 + { + property="WhitelistedSides"; + expression="_this setVariable ['WhitelistedSides', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + }; + }; + }; + class Attribute2 + { + property="ShowFocusInfo"; + expression="_this setVariable ['ShowFocusInfo', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute3 + { + property="AllowAi"; + expression="_this setVariable ['AllowAi', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="Allow3PPCamera"; + expression="_this setVariable ['Allow3PPCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + nAttributes=5; + }; + }; + class Item391 + { + dataType="Logic"; + class PositionInfo + { + position[]={2900,5,766}; + }; + name="F3_Spectator_1"; + isPlayable=1; + description="Spectator Slot"; + id=1131; + type="VirtualSpectator_F"; + class CustomAttributes + { + class Attribute0 + { + property="AllowFreeCamera"; + expression="_this setVariable ['AllowFreeCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute1 + { + property="WhitelistedSides"; + expression="_this setVariable ['WhitelistedSides', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + }; + }; + }; + class Attribute2 + { + property="ShowFocusInfo"; + expression="_this setVariable ['ShowFocusInfo', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute3 + { + property="AllowAi"; + expression="_this setVariable ['AllowAi', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="Allow3PPCamera"; + expression="_this setVariable ['Allow3PPCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + nAttributes=5; + }; + }; + class Item392 + { + dataType="Logic"; + class PositionInfo + { + position[]={2900,5,733}; + }; + name="F3_Spectator_2"; + isPlayable=1; + description="Spectator Slot"; + id=1132; + type="VirtualSpectator_F"; + class CustomAttributes + { + class Attribute0 + { + property="AllowFreeCamera"; + expression="_this setVariable ['AllowFreeCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute1 + { + property="WhitelistedSides"; + expression="_this setVariable ['WhitelistedSides', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + }; + }; + }; + class Attribute2 + { + property="ShowFocusInfo"; + expression="_this setVariable ['ShowFocusInfo', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute3 + { + property="AllowAi"; + expression="_this setVariable ['AllowAi', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="Allow3PPCamera"; + expression="_this setVariable ['Allow3PPCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + nAttributes=5; + }; + }; + class Item393 + { + dataType="Logic"; + class PositionInfo + { + position[]={2900,5,700}; + }; + name="F3_Spectator_3"; + isPlayable=1; + description="Spectator Slot"; + id=1133; + type="VirtualSpectator_F"; + class CustomAttributes + { + class Attribute0 + { + property="AllowFreeCamera"; + expression="_this setVariable ['AllowFreeCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute1 + { + property="WhitelistedSides"; + expression="_this setVariable ['WhitelistedSides', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + }; + }; + }; + class Attribute2 + { + property="ShowFocusInfo"; + expression="_this setVariable ['ShowFocusInfo', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute3 + { + property="AllowAi"; + expression="_this setVariable ['AllowAi', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + class Attribute4 + { + property="Allow3PPCamera"; + expression="_this setVariable ['Allow3PPCamera', _value];"; + class Value + { + class data + { + class type + { + type[]= + { + "BOOL" + }; + }; + value=1; + }; + }; + }; + nAttributes=5; + }; + }; }; class Connections { From 46e1c5367969b08398aeba1d2aea285f5e91aa3e Mon Sep 17 00:00:00 2001 From: s Date: Sun, 28 Jan 2018 17:11:46 +0100 Subject: [PATCH 112/407] Replace Helicopters with dynamicLoadout versions --- mission.sqm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/mission.sqm b/mission.sqm index 18a24e6c5..4961eca28 100644 --- a/mission.sqm +++ b/mission.sqm @@ -552,7 +552,7 @@ class Mission name="VehNATO_AH1"; }; id=14; - type="B_Heli_Attack_01_F"; + type="B_Heli_Attack_01_dynamicLoadout_F"; atlOffset=0.009988308; }; class Item15 @@ -839,7 +839,7 @@ class Mission textures="Opfor"; }; id=29; - type="O_Heli_Attack_02_black_F"; + type="O_Heli_Attack_02_dynamicLoadout_F"; }; class Item30 { @@ -984,7 +984,7 @@ class Mission name="VehAAF_AH1"; }; id=37; - type="I_Heli_light_03_F"; + type="I_Heli_light_03_dynamicLoadout_F"; }; class Item38 { @@ -2972,7 +2972,7 @@ class Mission skill=0.60000002; }; id=117; - type="B_Heli_Light_01_armed_F"; + type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=-0.37890196; }; class Item99 @@ -3283,7 +3283,7 @@ class Mission skill=0.60000002; }; id=127; - type="B_Heli_Light_01_armed_F"; + type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=0.009534359; }; class Item104 @@ -3594,7 +3594,7 @@ class Mission skill=0.60000002; }; id=137; - type="B_Heli_Light_01_armed_F"; + type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=0.20958662; }; class Item109 @@ -4443,7 +4443,7 @@ class Mission skill=0.60000002; }; id=164; - type="I_Heli_light_03_F"; + type="I_Heli_light_03_dynamicLoadout_F"; }; class Item122 { @@ -4747,7 +4747,7 @@ class Mission skill=0.60000002; }; id=174; - type="I_Heli_light_03_F"; + type="I_Heli_light_03_dynamicLoadout_F"; }; class Item127 { @@ -5118,7 +5118,7 @@ class Mission skill=0.60000002; }; id=187; - type="B_Heli_Light_01_armed_F"; + type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=-0.37890196; }; class Item134 @@ -30043,7 +30043,7 @@ class Mission textures="Green"; }; id=968; - type="I_Heli_light_03_F"; + type="I_Heli_light_03_dynamicLoadout_F"; }; class Item337 { @@ -30517,7 +30517,7 @@ class Mission textures="Green"; }; id=978; - type="I_Heli_light_03_F"; + type="I_Heli_light_03_dynamicLoadout_F"; }; class Item344 { From a0c8de2ad5958c1104440b095a66f4f30b891c29 Mon Sep 17 00:00:00 2001 From: s Date: Tue, 26 Dec 2017 18:29:26 +0100 Subject: [PATCH 113/407] setAISkill: code deduplication --- f/setAISkill/f_setAISkill.sqf | 151 +++++++++++++++----------- f/setAISkill/f_setAISkillValues.sqf | 158 ---------------------------- f/setAISkill/fn_setAISkill.sqf | 59 +++++------ 3 files changed, 116 insertions(+), 252 deletions(-) delete mode 100644 f/setAISkill/f_setAISkillValues.sqf diff --git a/f/setAISkill/f_setAISkill.sqf b/f/setAISkill/f_setAISkill.sqf index f373e3c21..dd60ed1c2 100644 --- a/f/setAISkill/f_setAISkill.sqf +++ b/f/setAISkill/f_setAISkill.sqf @@ -2,12 +2,6 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// RUN THE SCRIPT ONLY SERVER SIDE - -if !(isServer) exitWith {}; - -// ==================================================================================== - // WAIT FOR THE MISSION TO BEGIN // By waiting a few seconds into the mission the server is giving time to settle and it assures that the component catches AI created during init @@ -17,34 +11,66 @@ sleep 2; // DECLARE VARIABLES AND FUNCTIONS -private ["_units","_superSkill","_highSkill","_mediumSkill","_lowSkill"]; +// If an array of units was passed, the skill change will apply only to the units in the array +params [["_units", [], [[]]]]; + +// ==================================================================================== + +// RUN THE SCRIPT ONLY SERVER SIDE + +//If _units is empty, then it is called from init.sqf and should only run on the server. +//Otherwise it should be allowed to run on the server or on the headless client. +if (count _units == 0) then { + if (!isServer) exitWith {}; +} else { + if (!isServer && hasInterface) exitWith {}; +}; + +// ==================================================================================== + +// SET KEY VARIABLES +// If an array of units was passed, the skill change will apply only to the units in the array +if (count _units == 0) then { + _units = allUnits; +}; // ==================================================================================== // DEFINE SKILL LEVELS -// These values define the total skill level as set by the parameter -_superSkill = 1.00; -_highSkill = 0.7; -_mediumSkill = 0.6; -_lowSkill = 0.5; +// This value is used as a default value for error handling. +f_var_skillError = 99; -// This are the minimal skills a soldier set to _superSkill would have. For all other skill levels the values are rounded using the numbers above. -// These are recommended levels to avoid "laser" AI snipers. Change them accordingly if you are finding the AI to be too inaccurate or are using AI mods. +// These values define the total skill level as set by the parameter +private _skillLevels = [ + 1.00, // 0 Super + 0.7, // 1 High + 0.6, // 2 Medium + 0.5, // 3 Low + f_var_skillError // last: Default +]; +// These are the minimal skills a soldier set to "Super" would have. +// For all other skill levels the values are multiplied with the numbers above. +// These are recommended levels to avoid "laser" AI snipers. +// Change them accordingly if you are finding the AI to be too inaccurate or are using AI mods. +// Note: setSkill takes values between 0 and 1. Other values will be rounded to the nearest valid value. +// e.g. If we have 2 in this array and then 0.5 as the lowest value in _skillLevels, +// then this means that this particular skill will always be 1 +// for all possible skillLevels that were set via parameter. f_var_skillSet = [ - 0.55, // aimingAccuracy - 0.6, // aimingShake - 0.6, // aimingSpeed - 0.7, // spotDistance - 0.7, // spotTime - 1.2, // courage - 2, // reloadSpeed - 2, // commanding - 1.2 // general + 0.55, // aimingAccuracy + 0.6, // aimingShake + 0.6, // aimingSpeed + 0.7, // spotDistance + 0.7, // spotTime + 1.2, // courage + 2, // reloadSpeed + 2, // commanding + 1.2 // general ]; -// The final skill will within +/- this range +// The final skill will be within +/- this range f_var_skillRandom = 0.08; // ==================================================================================== @@ -52,21 +78,53 @@ f_var_skillRandom = 0.08; // BROADCAST PUBLIC VARIABLES // Make the relevant global variables known to all clients -{publicVariable _x} forEach ["f_var_skillRandom","f_var_skillSet"]; +{publicVariable _x} forEach ["f_var_skillRandom","f_var_skillSet","f_var_skillError"]; // ==================================================================================== // SET UP SKILL Levels // As the params can only set full numbers, we interpret each of them to set the correct value -#include "f_setAISkillValues.sqf"; +// CHECK ACTIVATED PARAMETERS +if (isNil "f_param_AISkill_BLUFOR") then {f_param_AISkill_BLUFOR = (count _skillLevels) - 1}; +if (isNil "f_param_AISkill_OPFOR") then {f_param_AISkill_OPFOR = (count _skillLevels) - 1}; +if (isNil "f_param_AISkill_INDP") then {f_param_AISkill_INDP = (count _skillLevels) - 1}; -// ==================================================================================== +// SELECT BLUFOR AI SKILLS +if (isNil "f_var_skillBlu") then +{ + f_var_skillBlu = _skillLevels select f_param_AISkill_BLUFOR; + publicVariable "f_var_skillBlu"; +}; -// SET KEY VARIABLES -// If an array of units was passed, the skill change will apply only to the units in the array +// SELECT OPFOR AI SKILLS +if (isNil "f_var_skillOpf") then +{ + f_var_skillOpf = _skillLevels select f_param_AISkill_OPFOR; + publicVariable "f_var_skillOpf"; +}; -_units = if (count _this > 0) then [{_this},{allUnits}]; +// SELECT INDEPENDENT AI SKILLS +if (isNil "f_var_skillRes") then +{ + f_var_skillRes = _skillLevels select f_param_AISkill_INDP; + publicVariable "f_var_skillRes"; +}; + +// SELECT CIVILIAN AI SKILLS +// If the civilian side variable is enabled, their level will be set accordingly +if (!isNil "f_var_civAI" && isNil "f_var_skillCiv") then { + f_var_skillCiv = switch (f_var_civAI) do { + case west: {f_var_skillBlu}; + case blufor: {f_var_skillBlu}; + case east: {f_var_skillOpfor}; + case opfor: {f_var_skillOpfor}; + case independent: {f_var_skillRes}; + case resistance: {f_var_skillRes}; + default {f_var_skillError}; + }; + publicVariable "f_var_skillCiv"; +}; // ==================================================================================== @@ -74,35 +132,8 @@ _units = if (count _this > 0) then [{_this},{allUnits}]; // AI Skill for all AIs is set using side levels (see above). { - -private ["_skill","_skillarray","_skilllevel"]; -_skill = 0; -_skillArray = []; - - if !(_x getVariable ["f_setAISkill",false]) then { - // We change the value of skill to the appropiate one depending on the unit's side - switch (side _x) do { - case west: {_skill = f_var_skillBLU}; - case blufor: {_skill = f_var_skillBLU}; - case east: {_skill = f_var_skillOPF}; - case opfor: {_skill = f_var_skillOPF}; - case independent: {_skill = f_var_skillRES}; - case resistance: {_skill = f_var_skillRES}; - case civilian: {_skill = f_var_skillCIV}; - }; - - // If skill is 99 it is not configured in the params and the unit will be ignored - if (_skill == 99) exitWith { - _x setVariable ["f_setAISkill",true]; - }; - - for "_i" from 0 to 8 do { - _skilllevel = (f_var_skillSet select _i) * _skill; - _skillArray pushBack (_skilllevel + random f_var_skillRandom - random f_var_skillRandom); - }; - + if !(_x getVariable ["f_setAISkill",false]) then { // Call the function to set the skills for the unit - [_x,_skillArray] call f_fnc_setAISkill; - }; - + [_x] call f_fnc_setAISkill; + }; } forEach _units; diff --git a/f/setAISkill/f_setAISkillValues.sqf b/f/setAISkill/f_setAISkillValues.sqf deleted file mode 100644 index e1dcc0aa9..000000000 --- a/f/setAISkill/f_setAISkillValues.sqf +++ /dev/null @@ -1,158 +0,0 @@ -// F3 - Set AI Skill Values -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) - -// ==================================================================================== - -// CHECK ACTIVATED PARAMETERS -// Depending on enabled parameters, the skill level for each side are set up - -if (isNil "f_param_AISkill_BLUFOR") then {f_param_AISkill_BLUFOR = 99}; -if (isNil "f_param_AISkill_OPFOR") then {f_param_AISkill_OPFOR = 99}; -if (isNil "f_param_AISkill_INDP") then {f_param_AISkill_INDP = 99}; - -// ==================================================================================== - -// SELECT BLUFOR AI SKILLS -// Using the value of f_param_AISkill_BLUFOR, a value for _skillSideBLUFOR is set. - -if (isNil "f_var_skillBlu") then -{ -f_var_skillBlu = - switch (f_param_AISkill_BLUFOR) do - { - // Super - case 0: - { - _superSkill; - }; - // High - case 1: - { - _highSkill; - }; - // Medium - case 2: - { - _mediumSkill; - }; - // Low - case 3: - { - _lowSkill; - }; - // Default - default { - 99; - }; - }; - publicVariable "f_var_skillBlu"; -}; - - -// ==================================================================================== - -// SELECT OPFOR AI SKILLS -// Using the value of f_param_AISkill_OPFOR, a value for _skillSideOPFOR is set. - -if (isNil "f_var_skillOpf") then -{ - f_var_skillOpf = - switch (f_param_AISkill_OPFOR) do - { - // Super - case 0: - { - _superSkill; - }; - // High - case 1: - { - _highSkill; - }; - // Medium - case 2: - { - _mediumSkill; - }; - // Low - case 3: - { - _lowSkill; - }; - // Default - default { - 99; - }; - }; - publicVariable "f_var_skillOpf"; -}; -// ==================================================================================== - -// SELECT INDEPENDENT AI SKILLS -// Using the value of f_param_AISkill_INDP, a value for _skillSideOPFOR is set. - -if (isNil "f_var_skillRes") then -{ - f_var_skillRes = - switch (f_param_AISkill_INDP) do - { - // Super - case 0: - { - _superSkill; - }; - // High - case 1: - { - _highSkill; - }; - // Medium - case 2: - { - _mediumSkill; - }; - // Low - case 3: - { - _lowSkill; - }; - // Default - default { - 99; - }; - }; - publicVariable "f_var_skillRes"; -}; - -// ==================================================================================== - -// SELECT CIVILIAN AI SKILLS -// If the civilian side variable is enabled, their level will be set accordingly - -f_var_skillCiv = 99; -if (!isNil "f_var_civAI") then { - f_var_skillCiv = - switch (f_var_civAI) do { - case west: {f_var_skillBlu}; - case blufor: {f_var_skillBlu}; - case east: {f_var_skillOpfor}; - case opfor: {f_var_skillOpfor}; - case independent: {f_var_skillRes}; - case resistance: {f_var_skillRes}; - default {99}; - }; -}; -publicVariable "f_var_skillCiv"; - -// ==================================================================================== - -// DEBUG -if (f_param_debugMode == 1) then -{ - player sideChat format ["DEBUG (f\setAISkill\f_setAISkillAD.sqf): f_skillBLU = %1",f_var_skillBlu]; - player sideChat format ["DEBUG (f\setAISkill\f_setAISkillAD.sqf): f_skillRES = %1",f_var_skillOpf]; - player sideChat format ["DEBUG (f\setAISkill\f_setAISkillAD.sqf): f_skillOPF = %1",f_var_skillRes]; - player sideChat format ["DEBUG (f\setAISkill\f_setAISkillAD.sqf): f_skillCIV = %1",f_var_skillCiv]; -}; - -// ==================================================================================== \ No newline at end of file diff --git a/f/setAISkill/fn_setAISkill.sqf b/f/setAISkill/fn_setAISkill.sqf index 6f349d753..568931cb6 100644 --- a/f/setAISkill/fn_setAISkill.sqf +++ b/f/setAISkill/fn_setAISkill.sqf @@ -2,18 +2,12 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// DECLARE VARIABLES - -private ["_unit","_skill","_skillset","_skillarray","_skilllevel"]; - -// ==================================================================================== - // SET KEY VARIABLES -_unit = _this select 0; -_skillset = if (count _this > 1) then [{_this select 1},{false}]; -_skill = 99; -_skillarray = _skillset; // If _skillset is not an array of skills, _skillarray will be properly set further down +params [ + ["_unit", objNull, [objNull]], + ["_skillOverride", f_var_skillError, [0]] +]; // ==================================================================================== @@ -29,43 +23,40 @@ if (_unit getVariable ["f_setAISkill",false]) exitWith {}; // ==================================================================================== -// If no skill-array was passed, set it to the relevant side's skill-level at first -if (_skillset isEqualType false) then { - _skillset = - switch (side _unit) do { - case west: {f_var_skillBLU}; - case blufor: {f_var_skillBLU}; - case east: {f_var_skillOPF}; - case opfor: {f_var_skillOPF}; - case independent: {f_var_skillRES}; - case resistance: {f_var_skillRES}; - case civilian: {f_var_skillCIV}; - default {0}; - }; +// Set the skill to the relevant side's skill-level +private _skill = switch (side _unit) do { + case west: {f_var_skillBLU}; + case blufor: {f_var_skillBLU}; + case east: {f_var_skillOPF}; + case opfor: {f_var_skillOPF}; + case independent: {f_var_skillRES}; + case resistance: {f_var_skillRES}; + case civilian: {f_var_skillCIV}; + default {f_var_skillError}; +}; + +//Parameter override +if (_skillOverride != f_var_skillError) then { + _skill = _skillOverride; }; // ==================================================================================== // If the faction's skill level is not configured, exit and ignore the unit from now on -if (_skillset isEqualType 0 && {_skillset == 99}) exitWith {_unit setVariable ["f_setAISkill",true];}; +if (_skill == f_var_skillError) exitWith { + _unit setVariable ["f_setAISkill",true]; +}; // ==================================================================================== -// If a specific skill level was passed, populate _skillArray using the new value. -if (_skillset isEqualType 0) then { - _skill = _skillset; - _skillArray = []; - for '_x' from 0 to 8 do { - _skilllevel = (f_var_skillSet select _x) * _skill; - _skillArray pushBack (_skilllevel + random f_var_skillRandom - random f_var_skillRandom); - }; -}; +// Populate _skillArray using the new skill. +private _skillArray = f_var_skillSet apply {(_x * _skill) + random f_var_skillRandom - random f_var_skillRandom}; // ==================================================================================== // We loop through all skilltypes and set them for the individual unit { - _unit setSkill [_x,_skillarray select _forEachIndex]; + _unit setSkill [_x, _skillArray select _forEachIndex]; } forEach ['aimingAccuracy','aimingShake','aimingSpeed','spotDistance','spotTime','courage','reloadSpeed','commanding','general']; // Mark the unit as processed From 112674556cef7a195d93fcfd0b532eab188bf538 Mon Sep 17 00:00:00 2001 From: s Date: Thu, 1 Feb 2018 03:58:40 +0100 Subject: [PATCH 114/407] sqm: remove disableTIEquipment because of the disable thermals component --- mission.sqm | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/mission.sqm b/mission.sqm index 4961eca28..d4f7486c3 100644 --- a/mission.sqm +++ b/mission.sqm @@ -476,7 +476,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_AV"; }; id=10; @@ -494,7 +494,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_BV"; }; id=11; @@ -512,7 +512,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_CV"; }; id=12; @@ -530,7 +530,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_COV"; }; id=13; @@ -548,7 +548,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_helo_a"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_helo_a"",this] call f_fnc_assignGear;"; name="VehNATO_AH1"; }; id=14; @@ -758,7 +758,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehCSAT_COV"; textures="Hex"; }; @@ -777,7 +777,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehCSAT_AV"; textures="Hex"; }; @@ -796,7 +796,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehCSAT_BV"; textures="Hex"; }; @@ -815,7 +815,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehCSAT_CV"; textures="Hex"; }; @@ -834,7 +834,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_helo_a"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_helo_a"",this] call f_fnc_assignGear;"; name="VehCSAT_AH1"; textures="Opfor"; }; @@ -853,7 +853,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_tank"",this] call f_fnc_assignGear;"; name="VehNATO_TNK1"; }; id=30; @@ -871,7 +871,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_COV"; }; id=31; @@ -889,7 +889,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_AV"; }; id=32; @@ -907,7 +907,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_BV"; }; id=33; @@ -925,7 +925,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_CV"; }; id=34; @@ -943,7 +943,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_tank"",this] call f_fnc_assignGear;"; name="VehCSAT_TNK1"; textures="Hex"; }; @@ -962,7 +962,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_tank"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_tank"",this] call f_fnc_assignGear;"; name="VehAAF_TNK1"; }; id=36; @@ -1918,7 +1918,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_IFV1"; }; id=73; @@ -1936,7 +1936,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_IFV2"; }; id=74; @@ -1990,7 +1990,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehCSAT_IFV1"; textures="Hex"; }; @@ -2009,7 +2009,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehCSAT_IFV2"; textures="Hex"; }; @@ -2066,7 +2066,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_IFV1"; }; id=81; @@ -2085,7 +2085,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""v_ifv"",this] call f_fnc_assignGear; this disableTIEquipment true;"; + init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_IFV2"; }; id=82; From 3c5d4e3063c7f5352dea7a289530371d0dab9637 Mon Sep 17 00:00:00 2001 From: s Date: Tue, 6 Feb 2018 18:10:52 +0100 Subject: [PATCH 115/407] disableThermals: only run on server. allow running more than once. --- f/disableThermals/fn_disableThermals.sqf | 39 +++++++++++++----------- init.sqf | 4 +++ 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/f/disableThermals/fn_disableThermals.sqf b/f/disableThermals/fn_disableThermals.sqf index 30142ca42..bbb684472 100644 --- a/f/disableThermals/fn_disableThermals.sqf +++ b/f/disableThermals/fn_disableThermals.sqf @@ -17,22 +17,23 @@ params [["_allowedList", [], [[]]]]; _allowedTypes = []; _allowedUnits = []; { - if (_x isEqualType "") then {_allowedTypes pushBack _x}; - if (_x isEqualType objNull) then {_allowedUnits pushBack _x}; + if (_x isEqualType "") then {_allowedTypes pushBack _x}; + if (_x isEqualType objNull) then {_allowedUnits pushBack _x}; } forEach _allowedList; // PERFORM CHECKS // Check if any vehicle is one of the allowed vehicles or in the allowed types, if not, disable their thermals. - -{ - private _vehicleToCheck = _x; - - if (_vehicleToCheck in _allowedUnits || {{_vehicleToCheck isKindOf _x} count _allowedTypes > 0}) then { - // This is an allowed vehicle, ignore it - } else { - _vehicleToCheck disableTIEquipment true; - } -} foreach vehicles; +if (isServer) then { + { + private _vehicleToCheck = _x; + + if (_vehicleToCheck in _allowedUnits || {{_vehicleToCheck isKindOf _x} count _allowedTypes > 0}) then { + // This is an allowed vehicle, ignore it + } else { + _vehicleToCheck disableTIEquipment true; + } + } foreach vehicles; +}; // HANDLE ASSEMBLED VEHICLES // Create event handler to disable thermals on assembled vehicles (e.g. UAV) unless that type is allowed to have thermals @@ -40,10 +41,12 @@ _allowedUnits = []; // Need to export _allowedTypes so that the event handler can access it f_var_disableThermals_allowedTypes = _allowedTypes; -player addEventHandler ["WeaponAssembled", { - params ["", ["_assembled", objNull, [objNull]]]; +if (hasinterface && isNil "f_eh_disableThermals") then { + f_eh_disableThermals = player addEventHandler ["WeaponAssembled", { + params ["", ["_assembled", objNull, [objNull]]]; - if ({_assembled isKindOf _x} count f_var_disableThermals_allowedTypes == 0) then { - _assembled disableTIEquipment true; - } -}]; + if ({_assembled isKindOf _x} count f_var_disableThermals_allowedTypes == 0) then { + _assembled disableTIEquipment true; + } + }]; +}; diff --git a/init.sqf b/init.sqf index 762d85fc5..508238289 100644 --- a/init.sqf +++ b/init.sqf @@ -190,7 +190,11 @@ f_var_viewDistance_crewOnly = true; // INDEPENDENT > AAF // [INDEPENDENT,100,1] execVM "f\casualtiesCap\f_CasualtiesCapCheck.sqf"; +// ==================================================================================== + // F3 - Disable Thermals // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) [] spawn f_fnc_disableThermals; // [[UnitName1, "UnitClass1"]] spawn f_fnc_disableThermals; + +// ==================================================================================== From 5c199070081abe2415958fa6a3e92c6e5577362e Mon Sep 17 00:00:00 2001 From: s Date: Tue, 6 Feb 2018 19:59:47 +0100 Subject: [PATCH 116/407] preMount: revert to string arrays instead of group names because if a synced unit was not slotted, then the whole group would not have been mounted. --- f/preMount/fn_mountGroups.sqf | 77 ++-- mission.sqm | 724 ++++------------------------------ 2 files changed, 123 insertions(+), 678 deletions(-) diff --git a/f/preMount/fn_mountGroups.sqf b/f/preMount/fn_mountGroups.sqf index a834d9a02..2e4ba4a82 100644 --- a/f/preMount/fn_mountGroups.sqf +++ b/f/preMount/fn_mountGroups.sqf @@ -7,48 +7,51 @@ if (!isServer) exitWith {}; // ==================================================================================== -// DECLARE VARIABLES AND FUNCTIONS - -private ["_crew","_vehs","_grps","_all_grps","_fill"]; - -// ==================================================================================== - // SET KEY VARIABLES // Using the arguments passed to the script, we first define some local variables. -params [["_objects", []], ["_crew", true], ["_fill", false]]; -//_objects: Vehicles and units. +params [ + ["_vehs", [], [[]]], + ["_grps", [], [[]]], + ["_crew", true, [true]], + ["_fill", false, [false]] +]; + +//_vehs: Array of vehicles (objects) +//_grps: Array of group names (as strings) //_crew: Mount into crew positions? (optional - default:true) //_fill: Ignore fireteam cohesion in favor of filling vehicles? (optional - default:false) // ==================================================================================== -// PROCESS UNITS/GROUPS +// CLEAN THE GROUP ARRAY -//Get all non-vehicle groups -_all_grps = _objects select {_x isKindOf "CAManBase"} apply {group _x}; -//remove duplicates -_all_grps = _all_grps arrayintersect _all_grps; -//only take groups where at least one unit is not in a vehicle -_grps = _all_grps select { count (units _x) > 0 && {isNull (assignedVehicle _x)} count (units _x) > 0 }; +// First we check if there are illegal groups (non-existent) in the array and remove them. +_grps = _grps select {!isNil _x}; +// Remove duplicates +_grps = _grps arrayintersect _grps; +// Transform list of strings to list of groups +_grps = _grps apply {call compile format ["%1",_x]}; +// Only take groups where at least one unit is not in a vehicle +_grps = _grps select { count (units _x) > 0 && {isNull (assignedVehicle _x)} count (units _x) > 0 }; // ==================================================================================== // PROCESS VEHICLES +// We make sure that there are only vehicles in the vehicle array +// If a soldier-unit is in the array then we check if we can use the vehicle he's in +{ + if (_x isKindOf "CAManBase") then { + if (vehicle _x != _x) then { + _vehs set [_forEachIndex,vehicle _x]; + } else { + _vehs = _vehs - [_x]; + }; + }; +} forEach _vehs; -//Get all vehicles -_vehs = _objects select {!(_x isKindOf "CAManBase")}; //remove duplicates _vehs = _vehs arrayintersect _vehs; -//Add vehicles from synced units -{ - { - private _veh = assignedVehicle _x; - if (!isNull _veh) then { - _vehs pushBackUnique _veh; - }; - } forEach (units _x); -} forEach _all_grps; // ==================================================================================== @@ -65,28 +68,20 @@ _vehs = _vehs arrayintersect _vehs; _vehicleRoles = (typeOf _veh) call bis_fnc_vehicleRoles; // All available roles for the vehicle // Temporary group array - _grpsT = _grps; + _grpsT = +_grps; // As long there are spare seats and groups left while {_emptyPositions > 0 && count _grpsT > 0 && locked _veh != 2} do { - private ["_grp","_units","_run","_unit","_slot","_path"]; + private ["_grp","_units","_unit","_slot","_path"]; _grp = _grpsT select 0; _units = units _grp; - _run = true; // If fireteam cohesion should be kept count the available vehicle slots, compared to the units in the group that would need a seat if (!_fill && {{isNull assignedVehicle _x} count _units > _emptyPositions}) then { - - _run = false; - - //Remove groups that would need to be split up - _grpsT = _grpsT - [_grp]; - }; - - if (_run) then { - + //Don't process group that would need to be split up, simply remove it from the array. + } else { // Loop through all vehicle roles and place the units in them accordingly { _unit = _units select 0; @@ -112,11 +107,11 @@ _vehs = _vehs arrayintersect _vehs; if (count _units == 0) exitWith {}; } forEach _vehicleRoles; - - // Remove the processed group from the temporary array - _grpsT = _grpsT - [_grp]; }; + // Remove the processed/skipped group from the temporary array + _grpsT = _grpsT - [_grp]; + // Check if all units in the group have been assigned a vehicle, remove group from both group arrays if ({isNull assignedVehicle _x} count (units _grp) == 0) then {_grpsT = _grpsT - [_grp];_grps = _grps - [_grp]}; diff --git a/mission.sqm b/mission.sqm index d4f7486c3..7bbd2571d 100644 --- a/mission.sqm +++ b/mission.sqm @@ -1045,7 +1045,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1403.2681,6.8319178,763.35657}; + position[]={1400.7506,6.8319178,763.49799}; }; side="Empty"; flags=4; @@ -1345,7 +1345,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1403.5269,6.8319178,734.76477}; + position[]={1400.9404,6.8319178,734.03149}; }; side="Empty"; flags=4; @@ -32356,7 +32356,7 @@ class Mission position[]={473.59708,0,776.08887}; }; name="F3_preMount_FIA"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpFIA_ASL"",""GrpFIA_A1"",""GrpFIA_A2""], true, false] call f_fnc_mountGroups;"; id=1099; type="Logic"; atlOffset=-5; @@ -32369,7 +32369,7 @@ class Mission position[]={517.23132,0,778.17627}; }; name="F3_preMount_FIA_1"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpFIA_BSL"",""GrpFIA_B1"",""GrpFIA_B2""], true, false] call f_fnc_mountGroups;"; id=1105; type="Logic"; atlOffset=-5; @@ -32382,7 +32382,7 @@ class Mission position[]={558.604,0,780.34607}; }; name="F3_preMount_FIA_2"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpFIA_CSL"",""GrpFIA_C1"",""GrpFIA_C2""], true, false] call f_fnc_mountGroups;"; id=1106; type="Logic"; atlOffset=-5; @@ -32395,7 +32395,7 @@ class Mission position[]={435.57681,0,770.43823}; }; name="F3_preMount_FIA_3"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpFIA_CO""], true, false] call f_fnc_mountGroups;"; id=1107; type="Logic"; atlOffset=-5; @@ -32408,7 +32408,7 @@ class Mission position[]={437.03455,0,744.61487}; }; name="F3_preMount_FIA_4"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpFIA_DC""], true, false] call f_fnc_mountGroups;"; id=1108; type="Logic"; atlOffset=-5; @@ -32421,7 +32421,7 @@ class Mission position[]={1441.297,0,786.68701}; }; name="F3_preMount_AAF"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpAAF_ASL"",""GrpAAF_A1"",""GrpAAF_A2""], true, false] call f_fnc_mountGroups;"; id=1110; type="Logic"; atlOffset=-5; @@ -32434,7 +32434,7 @@ class Mission position[]={1485.2041,0,788.32947}; }; name="F3_preMount_AAF_1"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpAAF_BSL"",""GrpAAF_B1"",""GrpAAF_B2""], true, false] call f_fnc_mountGroups;;"; id=1111; type="Logic"; atlOffset=-5; @@ -32447,7 +32447,7 @@ class Mission position[]={1528.1724,0,788.09692}; }; name="F3_preMount_AAF_2"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpAAF_CSL"",""GrpAAF_C1"",""GrpAAF_C2""], true, false] call f_fnc_mountGroups;"; id=1112; type="Logic"; atlOffset=-5; @@ -32460,7 +32460,7 @@ class Mission position[]={1398.5631,0,781.28723}; }; name="F3_preMount_AAF_3"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpAAF_CO""], true, false] call f_fnc_mountGroups;"; id=1113; type="Logic"; atlOffset=-5; @@ -32473,7 +32473,7 @@ class Mission position[]={1397.389,0,753.11096}; }; name="F3_preMount_AAF_4"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpAAF_DC""], true, false] call f_fnc_mountGroups;"; id=1114; type="Logic"; atlOffset=-5; @@ -32486,7 +32486,7 @@ class Mission position[]={465.21799,0,1396.6851}; }; name="F3_preMount_NATO"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpNATO_ASL"",""GrpNATO_A1"",""GrpNATO_A2""], true, false] call f_fnc_mountGroups;"; id=1115; type="Logic"; atlOffset=-5; @@ -32499,7 +32499,7 @@ class Mission position[]={507.88394,0,1396.3147}; }; name="F3_preMount_NATO_1"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpNATO_BSL"",""GrpNATO_B1"",""GrpNATO_B2""], true, false] call f_fnc_mountGroups;"; id=1116; type="Logic"; atlOffset=-5; @@ -32512,7 +32512,7 @@ class Mission position[]={551.10376,0,1396.1316}; }; name="F3_preMount_NATO_2"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpNATO_CSL"",""GrpNATO_C1"",""GrpNATO_C2""], true, false] call f_fnc_mountGroups;"; id=1117; type="Logic"; atlOffset=-5; @@ -32525,7 +32525,7 @@ class Mission position[]={418.67398,0,1384.4952}; }; name="F3_preMount_NATO_3"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpNATO_CO""], true, false] call f_fnc_mountGroups;"; id=1118; type="Logic"; atlOffset=-5; @@ -32538,7 +32538,7 @@ class Mission position[]={415.53409,0,1358.0823}; }; name="F3_preMount_NATO_4"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpNATO_DC""], true, false] call f_fnc_mountGroups;"; id=1119; type="Logic"; atlOffset=-5; @@ -32551,7 +32551,7 @@ class Mission position[]={1413.598,0,1409.447}; }; name="F3_preMount_SYN"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpSYN_ASL"",""GrpSYN_A1"",""GrpSYN_A2""], true, false] call f_fnc_mountGroups;"; id=1120; type="Logic"; atlOffset=-5; @@ -32564,7 +32564,7 @@ class Mission position[]={1450.3208,0,1411.637}; }; name="F3_preMount_SYN_1"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpSYN_BSL"",""GrpSYN_B1"",""GrpSYN_B2""], true, false] call f_fnc_mountGroups;"; id=1121; type="Logic"; atlOffset=-5; @@ -32577,7 +32577,7 @@ class Mission position[]={1492.4077,0,1411.3385}; }; name="F3_preMount_SYN_2"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpSYN_CSL"",""GrpSYN_C1"",""GrpSYN_C2""], true, false] call f_fnc_mountGroups;"; id=1122; type="Logic"; atlOffset=-5; @@ -32590,7 +32590,7 @@ class Mission position[]={1360.4757,0,1389.549}; }; name="F3_preMount_SYN_3"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpSYN_CO""], true, false] call f_fnc_mountGroups;"; id=1123; type="Logic"; atlOffset=-5; @@ -32603,7 +32603,7 @@ class Mission position[]={1362.8638,0,1356.7145}; }; name="F3_preMount_SYN_4"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpSYN_DC""], true, false] call f_fnc_mountGroups;"; id=1124; type="Logic"; atlOffset=-5; @@ -32616,7 +32616,7 @@ class Mission position[]={2417.865,0,1411.641}; }; name="F3_preMount_CSAT"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpCSAT_ASL"",""GrpCSAT_A1"",""GrpCSAT_A2""], true, false] call f_fnc_mountGroups;"; id=1125; type="Logic"; atlOffset=-5; @@ -32629,7 +32629,7 @@ class Mission position[]={2467.3704,0,1409.2566}; }; name="F3_preMount_CSAT_1"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpCSAT_BSL"",""GrpCSAT_B1"",""GrpCSAT_B2""], true, false] call f_fnc_mountGroups;"; id=1126; type="Logic"; atlOffset=-5; @@ -32642,7 +32642,7 @@ class Mission position[]={2523.2297,0,1408.4637}; }; name="F3_preMount_CSAT_2"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpCSAT_CSL"",""GrpCSAT_C1"",""GrpCSAT_C2""], true, false] call f_fnc_mountGroups;"; id=1127; type="Logic"; atlOffset=-5; @@ -32655,7 +32655,7 @@ class Mission position[]={2371.0068,0,1392.3138}; }; name="F3_preMount_CSAT_3"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpCSAT_CO""], true, false] call f_fnc_mountGroups;"; id=1128; type="Logic"; atlOffset=-5; @@ -32668,7 +32668,7 @@ class Mission position[]={2368.0945,0,1361.6034}; }; name="F3_preMount_CSAT_4"; - init="[synchronizedObjects this,true,false] call f_fnc_mountGroups;"; + init="[synchronizedObjects this, [""GrpCSAT_DC""], true, false] call f_fnc_mountGroups;"; id=1129; type="Logic"; atlOffset=-5; @@ -33122,11 +33122,11 @@ class Mission { class LinkIDProvider { - nextID=136; + nextID=81; }; class Links { - items=136; + items=81; class Item0 { linkID=0; @@ -33630,7 +33630,7 @@ class Mission class Item50 { linkID=50; - item0=690; + item0=54; item1=1099; class CustomData { @@ -33640,7 +33640,7 @@ class Mission class Item51 { linkID=51; - item0=54; + item0=55; item1=1099; class CustomData { @@ -33650,26 +33650,6 @@ class Mission class Item52 { linkID=52; - item0=55; - item1=1099; - class CustomData - { - type="Sync"; - }; - }; - class Item53 - { - linkID=53; - item0=680; - item1=1107; - class CustomData - { - type="Sync"; - }; - }; - class Item54 - { - linkID=54; item0=51; item1=1107; class CustomData @@ -33677,19 +33657,9 @@ class Mission type="Sync"; }; }; - class Item55 - { - linkID=55; - item0=707; - item1=1105; - class CustomData - { - type="Sync"; - }; - }; - class Item56 + class Item53 { - linkID=56; + linkID=53; item0=56; item1=1105; class CustomData @@ -33697,9 +33667,9 @@ class Mission type="Sync"; }; }; - class Item57 + class Item54 { - linkID=57; + linkID=54; item0=87; item1=1105; class CustomData @@ -33707,9 +33677,9 @@ class Mission type="Sync"; }; }; - class Item58 + class Item55 { - linkID=58; + linkID=55; item0=88; item1=1106; class CustomData @@ -33717,9 +33687,9 @@ class Mission type="Sync"; }; }; - class Item59 + class Item56 { - linkID=59; + linkID=56; item0=89; item1=1106; class CustomData @@ -33727,39 +33697,9 @@ class Mission type="Sync"; }; }; - class Item60 - { - linkID=60; - item0=724; - item1=1106; - class CustomData - { - type="Sync"; - }; - }; - class Item61 - { - linkID=61; - item0=727; - item1=1106; - class CustomData - { - type="Sync"; - }; - }; - class Item62 - { - linkID=62; - item0=734; - item1=1106; - class CustomData - { - type="Sync"; - }; - }; - class Item63 + class Item57 { - linkID=63; + linkID=57; item0=52; item1=1108; class CustomData @@ -33767,199 +33707,9 @@ class Mission type="Sync"; }; }; - class Item64 - { - linkID=64; - item0=685; - item1=1108; - class CustomData - { - type="Sync"; - }; - }; - class Item65 - { - linkID=65; - item0=710; - item1=1105; - class CustomData - { - type="Sync"; - }; - }; - class Item66 - { - linkID=66; - item0=717; - item1=1105; - class CustomData - { - type="Sync"; - }; - }; - class Item67 - { - linkID=67; - item0=693; - item1=1099; - class CustomData - { - type="Sync"; - }; - }; - class Item68 - { - linkID=68; - item0=700; - item1=1099; - class CustomData - { - type="Sync"; - }; - }; - class Item69 - { - linkID=69; - item0=536; - item1=1114; - class CustomData - { - type="Sync"; - }; - }; - class Item70 - { - linkID=70; - item0=531; - item1=1113; - class CustomData - { - type="Sync"; - }; - }; - class Item71 - { - linkID=71; - item0=545; - item1=1110; - class CustomData - { - type="Sync"; - }; - }; - class Item72 - { - linkID=72; - item0=566; - item1=1111; - class CustomData - { - type="Sync"; - }; - }; - class Item73 - { - linkID=73; - item0=587; - item1=1112; - class CustomData - { - type="Sync"; - }; - }; - class Item74 - { - linkID=74; - item0=548; - item1=1110; - class CustomData - { - type="Sync"; - }; - }; - class Item75 - { - linkID=75; - item0=555; - item1=1110; - class CustomData - { - type="Sync"; - }; - }; - class Item76 - { - linkID=76; - item0=569; - item1=1111; - class CustomData - { - type="Sync"; - }; - }; - class Item77 - { - linkID=77; - item0=576; - item1=1111; - class CustomData - { - type="Sync"; - }; - }; - class Item78 - { - linkID=78; - item0=590; - item1=1112; - class CustomData - { - type="Sync"; - }; - }; - class Item79 - { - linkID=79; - item0=597; - item1=1112; - class CustomData - { - type="Sync"; - }; - }; - class Item80 - { - linkID=80; - item0=205; - item1=1115; - class CustomData - { - type="Sync"; - }; - }; - class Item81 - { - linkID=81; - item0=191; - item1=1118; - class CustomData - { - type="Sync"; - }; - }; - class Item82 - { - linkID=82; - item0=196; - item1=1119; - class CustomData - { - type="Sync"; - }; - }; - class Item83 + class Item58 { - linkID=83; + linkID=58; item0=59; item1=1119; class CustomData @@ -33967,9 +33717,9 @@ class Mission type="Sync"; }; }; - class Item84 + class Item59 { - linkID=84; + linkID=59; item0=42; item1=1118; class CustomData @@ -33977,9 +33727,9 @@ class Mission type="Sync"; }; }; - class Item85 + class Item60 { - linkID=85; + linkID=60; item0=43; item1=1115; class CustomData @@ -33987,9 +33737,9 @@ class Mission type="Sync"; }; }; - class Item86 + class Item61 { - linkID=86; + linkID=61; item0=44; item1=1116; class CustomData @@ -33997,9 +33747,9 @@ class Mission type="Sync"; }; }; - class Item87 + class Item62 { - linkID=87; + linkID=62; item0=45; item1=1117; class CustomData @@ -34007,19 +33757,9 @@ class Mission type="Sync"; }; }; - class Item88 - { - linkID=88; - item0=226; - item1=1116; - class CustomData - { - type="Sync"; - }; - }; - class Item89 + class Item63 { - linkID=89; + linkID=63; item0=57; item1=1114; class CustomData @@ -34027,9 +33767,9 @@ class Mission type="Sync"; }; }; - class Item90 + class Item64 { - linkID=90; + linkID=64; item0=41; item1=1113; class CustomData @@ -34037,9 +33777,9 @@ class Mission type="Sync"; }; }; - class Item91 + class Item65 { - linkID=91; + linkID=65; item0=38; item1=1110; class CustomData @@ -34047,9 +33787,9 @@ class Mission type="Sync"; }; }; - class Item92 + class Item66 { - linkID=92; + linkID=66; item0=39; item1=1111; class CustomData @@ -34057,9 +33797,9 @@ class Mission type="Sync"; }; }; - class Item93 + class Item67 { - linkID=93; + linkID=67; item0=40; item1=1112; class CustomData @@ -34067,79 +33807,9 @@ class Mission type="Sync"; }; }; - class Item94 - { - linkID=94; - item0=247; - item1=1117; - class CustomData - { - type="Sync"; - }; - }; - class Item95 - { - linkID=95; - item0=250; - item1=1117; - class CustomData - { - type="Sync"; - }; - }; - class Item96 - { - linkID=96; - item0=257; - item1=1117; - class CustomData - { - type="Sync"; - }; - }; - class Item97 - { - linkID=97; - item0=229; - item1=1116; - class CustomData - { - type="Sync"; - }; - }; - class Item98 - { - linkID=98; - item0=236; - item1=1116; - class CustomData - { - type="Sync"; - }; - }; - class Item99 - { - linkID=99; - item0=208; - item1=1115; - class CustomData - { - type="Sync"; - }; - }; - class Item100 - { - linkID=100; - item0=215; - item1=1115; - class CustomData - { - type="Sync"; - }; - }; - class Item101 + class Item68 { - linkID=101; + linkID=68; item0=952; item1=1124; class CustomData @@ -34147,19 +33817,9 @@ class Mission type="Sync"; }; }; - class Item102 - { - linkID=102; - item0=842; - item1=1124; - class CustomData - { - type="Sync"; - }; - }; - class Item103 + class Item69 { - linkID=103; + linkID=69; item0=951; item1=1123; class CustomData @@ -34167,19 +33827,9 @@ class Mission type="Sync"; }; }; - class Item104 - { - linkID=104; - item0=827; - item1=1123; - class CustomData - { - type="Sync"; - }; - }; - class Item105 + class Item70 { - linkID=105; + linkID=70; item0=953; item1=1120; class CustomData @@ -34187,9 +33837,9 @@ class Mission type="Sync"; }; }; - class Item106 + class Item71 { - linkID=106; + linkID=71; item0=954; item1=1120; class CustomData @@ -34197,39 +33847,9 @@ class Mission type="Sync"; }; }; - class Item107 - { - linkID=107; - item0=855; - item1=1120; - class CustomData - { - type="Sync"; - }; - }; - class Item108 - { - linkID=108; - item0=862; - item1=1120; - class CustomData - { - type="Sync"; - }; - }; - class Item109 - { - linkID=109; - item0=869; - item1=1120; - class CustomData - { - type="Sync"; - }; - }; - class Item110 + class Item72 { - linkID=110; + linkID=72; item0=955; item1=1121; class CustomData @@ -34237,9 +33857,9 @@ class Mission type="Sync"; }; }; - class Item111 + class Item73 { - linkID=111; + linkID=73; item0=956; item1=1121; class CustomData @@ -34247,39 +33867,9 @@ class Mission type="Sync"; }; }; - class Item112 - { - linkID=112; - item0=872; - item1=1121; - class CustomData - { - type="Sync"; - }; - }; - class Item113 - { - linkID=113; - item0=879; - item1=1121; - class CustomData - { - type="Sync"; - }; - }; - class Item114 - { - linkID=114; - item0=886; - item1=1121; - class CustomData - { - type="Sync"; - }; - }; - class Item115 + class Item74 { - linkID=115; + linkID=74; item0=957; item1=1122; class CustomData @@ -34287,9 +33877,9 @@ class Mission type="Sync"; }; }; - class Item116 + class Item75 { - linkID=116; + linkID=75; item0=958; item1=1122; class CustomData @@ -34297,39 +33887,9 @@ class Mission type="Sync"; }; }; - class Item117 - { - linkID=117; - item0=889; - item1=1122; - class CustomData - { - type="Sync"; - }; - }; - class Item118 - { - linkID=118; - item0=896; - item1=1122; - class CustomData - { - type="Sync"; - }; - }; - class Item119 - { - linkID=119; - item0=903; - item1=1122; - class CustomData - { - type="Sync"; - }; - }; - class Item120 + class Item76 { - linkID=120; + linkID=76; item0=58; item1=1129; class CustomData @@ -34337,19 +33897,9 @@ class Mission type="Sync"; }; }; - class Item121 - { - linkID=121; - item0=373; - item1=1129; - class CustomData - { - type="Sync"; - }; - }; - class Item122 + class Item77 { - linkID=122; + linkID=77; item0=46; item1=1128; class CustomData @@ -34357,19 +33907,9 @@ class Mission type="Sync"; }; }; - class Item123 - { - linkID=123; - item0=368; - item1=1128; - class CustomData - { - type="Sync"; - }; - }; - class Item124 + class Item78 { - linkID=124; + linkID=78; item0=47; item1=1125; class CustomData @@ -34377,9 +33917,9 @@ class Mission type="Sync"; }; }; - class Item125 + class Item79 { - linkID=125; + linkID=79; item0=48; item1=1126; class CustomData @@ -34387,9 +33927,9 @@ class Mission type="Sync"; }; }; - class Item126 + class Item80 { - linkID=126; + linkID=80; item0=49; item1=1127; class CustomData @@ -34397,96 +33937,6 @@ class Mission type="Sync"; }; }; - class Item127 - { - linkID=127; - item0=424; - item1=1127; - class CustomData - { - type="Sync"; - }; - }; - class Item128 - { - linkID=128; - item0=403; - item1=1126; - class CustomData - { - type="Sync"; - }; - }; - class Item129 - { - linkID=129; - item0=382; - item1=1125; - class CustomData - { - type="Sync"; - }; - }; - class Item130 - { - linkID=130; - item0=385; - item1=1125; - class CustomData - { - type="Sync"; - }; - }; - class Item131 - { - linkID=131; - item0=392; - item1=1125; - class CustomData - { - type="Sync"; - }; - }; - class Item132 - { - linkID=132; - item0=406; - item1=1126; - class CustomData - { - type="Sync"; - }; - }; - class Item133 - { - linkID=133; - item0=413; - item1=1126; - class CustomData - { - type="Sync"; - }; - }; - class Item134 - { - linkID=134; - item0=427; - item1=1127; - class CustomData - { - type="Sync"; - }; - }; - class Item135 - { - linkID=135; - item0=434; - item1=1127; - class CustomData - { - type="Sync"; - }; - }; }; }; }; From 71f9e24cf6076a6feea21c6ae83488d220d5e5bf Mon Sep 17 00:00:00 2001 From: s Date: Thu, 22 Feb 2018 20:32:08 +0100 Subject: [PATCH 117/407] Spectator slots: Workaround for spectator variables only local to server --- mission.sqm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mission.sqm b/mission.sqm index 7bbd2571d..95f9ef3fc 100644 --- a/mission.sqm +++ b/mission.sqm @@ -32681,6 +32681,7 @@ class Mission position[]={2900,5,800}; }; name="F3_Spectator"; + init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; id=1130; @@ -32792,6 +32793,7 @@ class Mission position[]={2900,5,766}; }; name="F3_Spectator_1"; + init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; id=1131; @@ -32903,6 +32905,7 @@ class Mission position[]={2900,5,733}; }; name="F3_Spectator_2"; + init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; id=1132; @@ -33014,6 +33017,7 @@ class Mission position[]={2900,5,700}; }; name="F3_Spectator_3"; + init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; id=1133; From c4dc6ad704f69002e8bb07d1696bf99292605b36 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Fri, 23 Feb 2018 12:19:41 +0100 Subject: [PATCH 118/407] Orbat briefing should wait for setGroupIDs script --- f/briefing/f_orbatNotes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 66e9af2ef..48004b019 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -5,7 +5,7 @@ if (!hasInterface) exitWith {}; //Exit if not a player. // Group IDs need to be set before the ORBAT listing can be created -// waitUntil {scriptDone f_script_setGroupIDs}; +waitUntil {scriptDone f_script_setGroupIDs}; // Define needed variables private ["_orbatText", "_groups", "_precompileGroups","_maxSlots","_freeSlots","_hiddenGroups","_color","_veharray","_vehName","_veh","_crewrole","_groupList"]; From aa9bf77624f2d2893a1ffce084b41d18ef3910c6 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 24 Feb 2018 18:11:37 +0100 Subject: [PATCH 119/407] ws_fnc replace '_this select' with params --- ws_fnc/AI/fn_enterBuilding.sqf | 2 +- ws_fnc/AI/fn_setAIMode.sqf | 6 ++---- ws_fnc/effects/fn_createCAS.sqf | 4 ++-- ws_fnc/effects/fn_createLightning.sqf | 4 ++-- ws_fnc/effects/fn_createOrdnance.sqf | 4 ++-- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/ws_fnc/AI/fn_enterBuilding.sqf b/ws_fnc/AI/fn_enterBuilding.sqf index ff8ca3113..a200ef74f 100644 --- a/ws_fnc/AI/fn_enterBuilding.sqf +++ b/ws_fnc/AI/fn_enterBuilding.sqf @@ -24,7 +24,7 @@ params [ ["_threshold", 1.0, [0]] //Fraction of building positions that can be taken before building is considered "full" ]; -if (!(_barray isEqualType [])) then {_barray = [_this select 1]}; +if (!(_barray isEqualType [])) then {_barray = [_barray]}; if (_threshold <= 0) then {_threshold = 0.8}; // As long we have units and a more than one building we loop through either diff --git a/ws_fnc/AI/fn_setAIMode.sqf b/ws_fnc/AI/fn_setAIMode.sqf index d2c453adc..a21a34cd4 100644 --- a/ws_fnc/AI/fn_setAIMode.sqf +++ b/ws_fnc/AI/fn_setAIMode.sqf @@ -28,10 +28,8 @@ Accepted Strings: "FULL" "NORMAL" "LIMITED" */ -private ["_grp","_modes"]; - -_grp = _this select 0; -_modes = _this - [_this select 0]; +private _grp = param [0, grpNull, [grpNull, objNull]]; +private _modes = _this - [_grp]; { switch (_x) do { diff --git a/ws_fnc/effects/fn_createCAS.sqf b/ws_fnc/effects/fn_createCAS.sqf index 565bf2220..7d859322c 100644 --- a/ws_fnc/effects/fn_createCAS.sqf +++ b/ws_fnc/effects/fn_createCAS.sqf @@ -37,9 +37,9 @@ _dummy setDir _dir; [_dummy,nil,true] call BIS_fnc_moduleCAS; [_dummy] spawn { + params [["_object", objNull, [objNull]]]; sleep 10; - - deleteVehicle (_this select 0); + deleteVehicle _object; }; true diff --git a/ws_fnc/effects/fn_createLightning.sqf b/ws_fnc/effects/fn_createLightning.sqf index b4da7a1e6..9fd43f257 100644 --- a/ws_fnc/effects/fn_createLightning.sqf +++ b/ws_fnc/effects/fn_createLightning.sqf @@ -23,9 +23,9 @@ _dummy enableSimulationGlobal false; _dummy hideObjectGlobal true; [_dummy,nil,true] call BIS_fnc_moduleLightning; [_dummy] spawn { + params [["_object", objNull, [objNull]]]; sleep 10; - - deleteVehicle (_this select 0); + deleteVehicle _object; }; true diff --git a/ws_fnc/effects/fn_createOrdnance.sqf b/ws_fnc/effects/fn_createOrdnance.sqf index 389649801..e39ca92b9 100644 --- a/ws_fnc/effects/fn_createOrdnance.sqf +++ b/ws_fnc/effects/fn_createOrdnance.sqf @@ -36,9 +36,9 @@ _dummy setVariable ["type",_class]; [_dummy,nil,true] call BIS_fnc_moduleProjectile; [_dummy] spawn { + params [["_object", objNull, [objNull]]]; sleep 10; - - deleteVehicle (_this select 0); + deleteVehicle _object; }; true From 8d803218aa12156d36dc499e80b59bc52dbca409 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 24 Feb 2018 18:40:33 +0100 Subject: [PATCH 120/407] replace '_this select' with 'params' --- f/groupJoin/f_groupJoinAction.sqf | 7 ++++++- f/medical/fn_addDragAction.sqf | 10 ++++++++-- f/medical/fn_onDrag.sqf | 10 +++++++++- f/removeBody/f_addRemoveBodyEH.sqf | 18 ++++++++++++------ f/safeStart/fn_safety.sqf | 6 ++++-- f/spect/fn_activateSpectator.sqf | 4 +++- f/zeus/fn_zeusInit.sqf | 10 +++++++++- 7 files changed, 51 insertions(+), 14 deletions(-) diff --git a/f/groupJoin/f_groupJoinAction.sqf b/f/groupJoin/f_groupJoinAction.sqf index 7acbc189a..db6e7fe11 100644 --- a/f/groupJoin/f_groupJoinAction.sqf +++ b/f/groupJoin/f_groupJoinAction.sqf @@ -43,9 +43,14 @@ while {true} do { _actionString = format["Join %1 (%2)", name _nearUnit,_nearGroup]; f_groupJoinAction = player addAction [_actionString, { + params [ + ["_target", objNull, [objNull]], + ["_caller", objNull, [objNull]], + ["_ID", -1, [0]], + ["_grp", grpNull, [grpNull]] + ]; _unit = player; - _grp = (_this select 3); // Player joins new group [player] joinSilent _grp; diff --git a/f/medical/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf index 4b8d14a93..659984ff6 100644 --- a/f/medical/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -25,8 +25,14 @@ private _drag_action_cond = str { _drag_action_cond = _drag_action_cond select [1, count _drag_action_cond - 2]; private _drag_exec_code = { - _this remoteExec ["f_fnc_OnDrag", [_this select 1]]; //Dragger - _this remoteExec ["f_fnc_OnDrag", [_this select 0]]; //Target + params [ + ["_target", objNull, [objNull]], + ["_caller", objNull, [objNull]], + ["_ID", -1, [0]], + ["_arguments", nil] + ]; + _this remoteExec ["f_fnc_OnDrag", [_caller]]; //Dragger + _this remoteExec ["f_fnc_OnDrag", [_target]]; //Target }; private _resultId = _unit addAction [ diff --git a/f/medical/fn_onDrag.sqf b/f/medical/fn_onDrag.sqf index 9ad7bfba2..3c339d27c 100644 --- a/f/medical/fn_onDrag.sqf +++ b/f/medical/fn_onDrag.sqf @@ -11,7 +11,15 @@ if (f_param_debugMode == 1) then { if (_isDragger) then { // the dragger gets a release option. - _actionIdx = _dragger addAction [format["Release %1",name _unit],{(_this select 1) setVariable ["f_wound_dragging",nil,true];}, nil, 6, false, true, "", "true"]; + _actionIdx = _dragger addAction [format["Release %1",name _unit],{ + params [ + ["_target", objNull, [objNull]], + ["_caller", objNull, [objNull]], + ["_ID", -1, [0]], + ["_arguments", nil] + ]; + _caller setVariable ["f_wound_dragging",nil,true]; + }, nil, 6, false, true, "", "true"]; _dragger playMoveNow "AcinPknlMstpSnonWnonDnon"; } else { _unit attachTo [_dragger, [0, 1.1, 0.092]]; diff --git a/f/removeBody/f_addRemoveBodyEH.sqf b/f/removeBody/f_addRemoveBodyEH.sqf index a0c9db768..c43262470 100644 --- a/f/removeBody/f_addRemoveBodyEH.sqf +++ b/f/removeBody/f_addRemoveBodyEH.sqf @@ -42,14 +42,20 @@ if (isNil "f_var_doNotRemoveBodies") then {f_var_doNotRemoveBodies = []}; // A killed event handler is added to all units in the array _men that are not part of the exempt group { -_handle = _x getVariable ["f_removeBodyEH",false]; -if !(_handle && local _x) then { - _x addEventHandler ["killed", {(_this select 0) spawn f_fnc_removeBody}]; - _x setVariable ["f_removeBodyEH",true]; + _handle = _x getVariable ["f_removeBodyEH",false]; + if !(_handle && local _x) then { + _x addEventHandler ["Killed", { + params [ + ["_unit", objNull, [objNull]], + ["_killer", objNull, [objNull]], + ["_instigator", objNull, [objNull]], + ["_useEffects", true, [true]] + ]; + _unit spawn f_fnc_removeBody + }]; + _x setVariable ["f_removeBodyEH",true]; }; } forEach _men; // ==================================================================================== - - diff --git a/f/safeStart/fn_safety.sqf b/f/safeStart/fn_safety.sqf index b23fb13c2..d2bf04395 100644 --- a/f/safeStart/fn_safety.sqf +++ b/f/safeStart/fn_safety.sqf @@ -5,7 +5,9 @@ //Exit if server if(isDedicated) exitwith {}; -switch (_this select 0) do +params [["_enableSafeStart", true, [true]]]; + +switch (_enableSafeStart) do { //Turn safety on case true: @@ -53,4 +55,4 @@ switch (_this select 0) do // Make player vulnerable player allowDamage true; }; -}; \ No newline at end of file +}; diff --git a/f/spect/fn_activateSpectator.sqf b/f/spect/fn_activateSpectator.sqf index e17bbed15..45515cbc9 100644 --- a/f/spect/fn_activateSpectator.sqf +++ b/f/spect/fn_activateSpectator.sqf @@ -1,4 +1,5 @@ +params [["_seagull", objNull, [objNull]]]; [] spawn { @@ -19,5 +20,6 @@ if (f_param_debugMode == 1) then { sleep 3; ["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; }; + //Remove the bird -deleteVehicle (_this select 0); +deleteVehicle _seagull; diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index 539f05392..d9e4ad0b8 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -68,7 +68,15 @@ _curator setCuratorWaypointCost 0; // Check if F3 AI Skill Selector is active and assign corresponding event-handler if({!isNil _x} count ["f_param_AISkill_BLUFOR","f_param_AISkill_INDP","f_param_AISkill_OPFOR"] > 0) then { - _curator addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISkill;} forEach crew(_this select 1)}]; + _curator addEventHandler ['CuratorObjectPlaced',{ + params[ + ["_curator", objNull, [objNull]], + ["_entity", objNull, [objNull]] + ]; + { + [_x] call f_fnc_setAISkill; + } forEach crew _entity; + }]; }; // Setup From a53332b146a931d35090fa162cbfa94b4c646f1d Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sat, 3 Mar 2018 21:49:20 +0100 Subject: [PATCH 121/407] Add GetInMan event handler to dynamicViewDistance ... due to a game bug. --- f/dynamicViewDistance/f_setViewDistanceInit.sqf | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/f/dynamicViewDistance/f_setViewDistanceInit.sqf b/f/dynamicViewDistance/f_setViewDistanceInit.sqf index 8b422ac17..172582d02 100644 --- a/f/dynamicViewDistance/f_setViewDistanceInit.sqf +++ b/f/dynamicViewDistance/f_setViewDistanceInit.sqf @@ -13,11 +13,16 @@ if (!isDedicated && (isNull player)) then // Add event handlers: // Note: Using PlayerViewChanged instead of GetInMan and GetOutMan to cover UAVs as well. -f_ehIndex_dynamicViewDistance_0 = player addEventHandler ['SeatSwitchedMan', f_fnc_ehSetViewDistance]; -f_ehIndex_dynamicViewDistance_1 = addMissionEventHandler ['PlayerViewChanged', f_fnc_ehSetViewDistance]; +// Note: GetInMan is still needed due to a bug where PlayerViewChanged doesn't fire for +// non-server players when they enter a vehicle they haven't entered before. +// Because of this, when entering a vehicle the code is sometimes run twice. +f_ehIndex_dynamicViewDistance_0 = addMissionEventHandler ['PlayerViewChanged', f_fnc_ehSetViewDistance]; +f_ehIndex_dynamicViewDistance_1 = player addEventHandler ['SeatSwitchedMan', f_fnc_ehSetViewDistance]; +f_ehIndex_dynamicViewDistance_2 = player addEventHandler ['GetInMan', f_fnc_ehSetViewDistance]; if (f_param_debugMode == 1) then { - player sideChat format ["DEBUG (f\dynamicViewDistance\f_setViewDistanceInit.sqf): Added Event Handler SeatSwitchedMan ID: %1", f_ehIndex_dynamicViewDistance_0]; - player sideChat format ["DEBUG (f\dynamicViewDistance\f_setViewDistanceInit.sqf): Added Event Handler PlayerViewChanged ID: %1", f_ehIndex_dynamicViewDistance_1]; + player sideChat format ["DEBUG (f\dynamicViewDistance\f_setViewDistanceInit.sqf): Added Event Handler PlayerViewChanged ID: %1", f_ehIndex_dynamicViewDistance_0]; + player sideChat format ["DEBUG (f\dynamicViewDistance\f_setViewDistanceInit.sqf): Added Event Handler SeatSwitchedMan ID: %1", f_ehIndex_dynamicViewDistance_1]; + player sideChat format ["DEBUG (f\dynamicViewDistance\f_setViewDistanceInit.sqf): Added Event Handler GetInMan ID: %1", f_ehIndex_dynamicViewDistance_2]; }; From 9f4945ac5de4cc75fb9a771850f6678da64831d4 Mon Sep 17 00:00:00 2001 From: s Date: Thu, 8 Mar 2018 21:12:53 +0100 Subject: [PATCH 122/407] Update versionstring to 3-5-1. ... and move version string form version.txt to description.ext --- README.md | 2 +- description.ext | 2 ++ mission.sqm | 2 +- version.txt | 1 - 4 files changed, 4 insertions(+), 3 deletions(-) delete mode 100644 version.txt diff --git a/README.md b/README.md index fa7cd2d84..6ef5b8596 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## -* F3 3-5-0 +* F3 3-5-1 * ws_fnc 05/07/2015 diff --git a/description.ext b/description.ext index 5276b6315..9819d3350 100644 --- a/description.ext +++ b/description.ext @@ -1,3 +1,5 @@ +fa3_version[] = {3,5,1}; // WARNING: DO NOT CHANGE THIS LINE + // ============================================================================================ // F3 - Loading Screen // Set Author, overview image/text, loading image/text from Eden Editor diff --git a/mission.sqm b/mission.sqm index 95f9ef3fc..e8ca07d51 100644 --- a/mission.sqm +++ b/mission.sqm @@ -246,7 +246,7 @@ class Mission { class Intel { - briefingName="f3-4-1dev_fa15_ws_140716"; + briefingName="fa3-5-1"; resistanceWest=0; timeOfChanges=28800; startWeather=0.50001526; diff --git a/version.txt b/version.txt deleted file mode 100644 index c8a3ffa70..000000000 --- a/version.txt +++ /dev/null @@ -1 +0,0 @@ -3-5-0-a From 3d8c8911ed652c182bbd4fbcac55fc59a5e7bf58 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 10 Mar 2018 00:47:53 +0100 Subject: [PATCH 123/407] replace body removal with in-engine solution --- description.ext | 17 ++++++++- f/functions.hpp | 5 --- f/removeBody/f_addRemoveBodyEH.sqf | 61 ------------------------------ f/removeBody/fn_removeBody.sqf | 51 ------------------------- init.sqf | 8 ++-- 5 files changed, 19 insertions(+), 123 deletions(-) delete mode 100644 f/removeBody/f_addRemoveBodyEH.sqf delete mode 100644 f/removeBody/fn_removeBody.sqf diff --git a/description.ext b/description.ext index 9819d3350..d6a9c9810 100644 --- a/description.ext +++ b/description.ext @@ -6,12 +6,27 @@ fa3_version[] = {3,5,1}; // WARNING: DO NOT CHANGE THIS LINE onLoadName = "*** Insert Mission Name Here. ***"; +// ============================================================================================ + +// F3 - Body Removal Settings + +//Corpses +corpseManagerMode = 1; //0 = None, 1 = All, 2 = None_But_Respawned, 3 = All_But_Respawned +corpseLimit = 30; // Corpse limit before which ( <= ) corpseRemovalMaxTime applies and after which ( > ) corpseRemovalMinTime applies. +corpseRemovalMinTime = 180; // Remove all bodies that have been dead longer than corpseRemovalMinTime when corpseLimit is breached. +corpseRemovalMaxTime = 600; // Maximum time a corpse can remain on the ground (if total number of corpses is equal or under corpseLimit). +minPlayerDistance = 500; // The minimum distance between corpse or wreck and nearest player before the corpse or wreck is allowed to be removed by the garbage collector. + +//Wrecks +//wreckManagerMode = 1; //0 = None, 1 = All, 2 = None_But_Respawned, 3 = All_But_Respawned +//wreckLimit = 20; //Vehicle wreck limit before which ( <= ) wreckRemovalMaxTime applies and after which ( > ) wreckRemovalMinTime applies. +//wreckRemovalMinTime = 180; // Remove all wrecks that have existed longer than wreckRemovalMinTime when wreckLimit is breached. +//wreckRemovalMaxTime = 3600; // Maximum time a wreck can remain on the ground (if total number of wrecks is equal or under wreckLimit). // ============================================================================================ // F3 - Respawn Settings - respawn = 1; respawndelay = 3; respawnOnStart = 0; diff --git a/f/functions.hpp b/f/functions.hpp index 6c540d606..ac8a8e93d 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -57,11 +57,6 @@ class F // Defines the "owner" class GetMarkerColor{}; class LocalFTMarkerSync{}; }; - class bodyRemoval - { - file = "f\removeBody"; - class removeBody{}; - }; class setAISkill { file = "f\setAISKill"; diff --git a/f/removeBody/f_addRemoveBodyEH.sqf b/f/removeBody/f_addRemoveBodyEH.sqf deleted file mode 100644 index c43262470..000000000 --- a/f/removeBody/f_addRemoveBodyEH.sqf +++ /dev/null @@ -1,61 +0,0 @@ -// F3 - Automatic Body Removal -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// RUN THE SCRIPT ONLY SERVER SIDE AND ON HEADLESS CLIENT - -if (!isServer && hasInterface) exitWith {}; - -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_men","_str_Men","_handle"]; - -// ==================================================================================== - -// SET KEY VARIABLES -// Using a common variable, we will create an array containing all men, minus playable units. - -_men = allUnits - playableUnits; - -// DEBUG -if (f_param_debugMode == 1) then -{ - _str_men = str _men; - player sideChat format ["DEBUG (f\removeBody\f_addRemoveBodyEH.sqf): _men = %1",_str_men]; -}; - -// ==================================================================================== - -// PREVENT UNTIS FROM BEING REMOVED -// All units in the corresponding array are flagged to never be removed -if (isNil "f_var_doNotRemoveBodies") then {f_var_doNotRemoveBodies = []}; - -{ - if (!isNil format ["%1",_x]) then {_x setVariable ["f_removeBodyEH",true];}; -} forEach f_var_doNotRemoveBodies; - -// ==================================================================================== - -// ADD EVENT HANDLER -// A killed event handler is added to all units in the array _men that are not part of the exempt group - -{ - _handle = _x getVariable ["f_removeBodyEH",false]; - if !(_handle && local _x) then { - _x addEventHandler ["Killed", { - params [ - ["_unit", objNull, [objNull]], - ["_killer", objNull, [objNull]], - ["_instigator", objNull, [objNull]], - ["_useEffects", true, [true]] - ]; - _unit spawn f_fnc_removeBody - }]; - _x setVariable ["f_removeBodyEH",true]; - }; -} forEach _men; - - -// ==================================================================================== diff --git a/f/removeBody/fn_removeBody.sqf b/f/removeBody/fn_removeBody.sqf deleted file mode 100644 index 14f55ada1..000000000 --- a/f/removeBody/fn_removeBody.sqf +++ /dev/null @@ -1,51 +0,0 @@ -// F3 - Automatic Body Removal -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_body","_wait","_group","_distance","_check","_loop"]; - -// ==================================================================================== - -// SET KEY VARIABLES -// The body to remove is passed to this script by the event handler itself. The time to sleep and minimal distance to remove are defined by global variables - -_body = _this; -_group = group _this; - -if (isNil "f_var_removeBodyDelay") then {f_var_removeBodyDelay = 20}; -if (isNil "f_var_removeBodyDistance") then {f_var_removeBodyDistance = 50}; - -_wait = f_var_removeBodyDelay; -_distance = f_var_removeBodyDistance; - -waitUntil {!isNull _body}; - -// ==================================================================================== - -// WAITING UNTIL ALL CONDITIONS ARE MET -// While there's at least 1 player within the minimal radius around the body the script sleeps the designated time. - -_loop = true; -while {_loop} do { - sleep _wait; - _loop = [_body,_distance] call f_fnc_nearPlayer; -}; - -// ==================================================================================== - -// REMOVE BODY -// Hide and remove the body from the game - -hideBody _body; -sleep 5; -deleteVehicle _body; - -// ==================================================================================== - -// REMOVE BODY'S GROUP IF EMPTY -// We wait a while to make sure the body has been removed from the group. Then we count the living units in it and remove the group if it is empty -sleep 30; -_check = count (units (_group)); -if (_check == 0) then {deleteGroup _group}; diff --git a/init.sqf b/init.sqf index 2d9aeb7db..3790e79a6 100644 --- a/init.sqf +++ b/init.sqf @@ -114,12 +114,10 @@ f_script_briefing = [] execVM "briefing.sqf"; // ==================================================================================== // F3 - Automatic Body Removal -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -f_var_removeBodyDelay = 180; -f_var_removeBodyDistance = 500; -f_var_doNotRemoveBodies = []; -[] execVM "f\removeBody\f_addRemoveBodyEH.sqf"; +//Exclude units from automatic body/wreck removal: +removeFromRemainsCollector playableUnits; +//removeFromRemainsCollector [unit1, unit2, vehicle1]; // ==================================================================================== From d653f32d87aa451b196074adb2f7a4ee06b5f395 Mon Sep 17 00:00:00 2001 From: s Date: Thu, 15 Mar 2018 03:31:49 +0100 Subject: [PATCH 124/407] ws_fnc createGarrison: Fix bug with toLower. Add support for providing list of buildings. Add support for min-radius. --- ws_fnc/AI/fn_createGarrison.sqf | 48 ++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index a1410d70e..cec98c0ca 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -17,8 +17,9 @@ NOTE Make sure to call this only on the server or headless client. The function itself does not check where it is run. PARAMETERS: -1. Center of town. Can be marker, object or location | MANDATORY - string (markername) or object name -2. Radius of area to be considered | MANDATORY - int +1. Center of town. Can be marker, object, location or list of buildings | MANDATORY - string (markername) or object name or list of buildings +2. Radius of area to be considered | MANDATORY - int (will be ignored if list of buildings is provided) +2. ALTERNATIVE: Array with min and max radius. e.g. [50,100] | MANDATORY - array of two numbers. 3. Side of units to spawn | MANDATORY - side (east, west, independent, civilian) 4. Number of units. | OPTIONAL - number - default is No. of available buildings/4 5. threshold of building positions that can be occupied in the buildings in the area | OPTIONAL - number between 1 (=100%) and 0, default is set below @@ -51,7 +52,7 @@ private ["_debug","_buildings","_grp"]; // PARAMETERS params [ ["_area", "", ["", objNull, grpNull, locationNull, []]], - ["_radius", 50, [0]], + ["_radius", 50, [0, []]], ["_side", sideEmpty, [sideEmpty]], ["_int", 0, [0]], ["_thrsh", 0.8, [0]], @@ -59,9 +60,11 @@ params [ ["_onlyEmptyBuildings", false, [false]] ]; -//Process parameters -_area = _area call ws_fnc_getEPos; -_classes = toLower _classes; +//Process radius paramter +if (_radius isEqualType 0) then { + _radius = [0, _radius]; +}; +_radius params ["_radius_min","_radius_max"]; // Debug. If ws_debug is globally defined it overrides _debug _debug = if !(isNil "ws_debug") then {ws_debug} else {false}; @@ -81,6 +84,7 @@ if (count _classes == 0) then { // To change which units are spawned for which faction, replace the array or add additional units to it if (_classes isEqualType "") then { + _classes = toLower _classes; _classes = switch (true) do { case (_classes in ["blu_f","nato"]): { // NATO ["B_Soldier_lite_F","B_Soldier_F"] @@ -118,8 +122,23 @@ if (_classes isEqualType "") then { }; }; -// Collect buildings and assign building positions -_buildings = [_area,_radius,true,true] call ws_fnc_collectBuildings; +//prepare and check buildings: + +//check if _area is a list of buildings, if not: find buildings +_buildings = []; +if ( typename _area == "ARRAY" && {count _area > 0} && {typename (_area select 0) == "OBJECT"} && {_area select 0 isKindOf "House"} ) then { + _buildings = _area; + //Set BPos if not already set: + { [_x] call ws_fnc_getBPos } forEach _buildings; +} else { + // Collect buildings and assign building positions + _area = _area call ws_fnc_getEPos; + _buildings = [_area,_radius_max,true,true] call ws_fnc_collectBuildings; + if (_radius_min > 0) then { + private _buildingsToRemove = [_area,_radius_min,true,true] call ws_fnc_collectBuildings; + _buildings = _buildings - _buildingsToRemove; + }; +}; if (_onlyEmptyBuildings) then { //only use buildings that haven't been garrisoned yet! (this is useful when having overlapping garrison areas) @@ -129,7 +148,12 @@ if (_onlyEmptyBuildings) then { //remove buildings without building positions _buildings = _buildings select { count (_x getVariable ["ws_bPos", []]) > 0}; -if (count _buildings == 0) exitWith {["ws_fnc_createGarrison DBG: no buildings found at ",[_area],""] call ws_fnc_debugText}; +if (count _buildings == 0) exitWith { + if(_debug) then { + ["ws_fnc_createGarrison DBG: no buildings found",[],""] call ws_fnc_debugText; + }; + [] +}; //Note: At this point we have at least one building with at least one building position // If no amount of units is set, calculate default @@ -143,7 +167,7 @@ if (_thrsh <= 0) then {_thrsh = 0.1}; _grp = createGroup _side; // Give the group a hold waypoint as otherwise ASR_AI might call them outside -[_grp,_area,["hold"]] call ws_fnc_addWaypoint; +[_grp, getPos (_buildings select 0), ["hold"]] call ws_fnc_addWaypoint; for "_x" from 1 to _int do { private ["_b","_bpa","_bpl","_bu","_i","_bp","_u","_mkr"]; @@ -157,7 +181,7 @@ for "_x" from 1 to _int do { while { count _bpl == 0 || {(_bu / (count _bpa)) >= _thrsh} } do { _buildings = _buildings - [_b]; - if (count _buildings == 0) exitWith {}; + if (count _buildings == 0) exitWith {[]}; _b = selectRandom _buildings; _bpa = _b getVariable "ws_bPos"; @@ -166,7 +190,7 @@ for "_x" from 1 to _int do { }; // If no buildings are left, exit - if (count _buildings == 0) exitWith {}; + if (count _buildings == 0) exitWith {[]}; // Get a building position _i = floor (random (count _bpl)); From 4ca58664c0ff0d8006a2c02fb599bc71fa12b8de Mon Sep 17 00:00:00 2001 From: s Date: Sat, 10 Mar 2018 01:18:09 +0100 Subject: [PATCH 125/407] safeStart: Change granularity to 30 seconds and ... ... remove Fired event handlers. --- description.ext | 6 +++--- f/safeStart/f_safeStartLoop.sqf | 18 +++++++++++++----- f/safeStart/fn_safety.sqf | 25 ++----------------------- 3 files changed, 18 insertions(+), 31 deletions(-) diff --git a/description.ext b/description.ext index 9819d3350..a77ba12c6 100644 --- a/description.ext +++ b/description.ext @@ -151,9 +151,9 @@ class Params class f_param_mission_timer { title = "$STR_f_param_mission_timer"; - values[] = {0,1,2,3,4,5,6,7,8,9,10,15}; - texts[] = {"$STR_f_param_mission_timer_off","1","2","3","4","5","6","7","8","9","10","15"}; - default = 1; + values[] = {0,30,60,90,120,150,180,240,300,360,420,480,540,600,900}; + texts[] = {"$STR_f_param_mission_timer_off","0.5","1","1.5","2","2.5","3","4","5","6","7","8","9","10","15"}; + default = 60; }; // ============================================================================================ diff --git a/f/safeStart/f_safeStartLoop.sqf b/f/safeStart/f_safeStartLoop.sqf index bd67b61b2..9b327a8d4 100644 --- a/f/safeStart/f_safeStartLoop.sqf +++ b/f/safeStart/f_safeStartLoop.sqf @@ -8,25 +8,33 @@ if !(isServer) exitWith {}; // Redundant sleep to give everything a second to settle sleep 2; +//Intervals for checking the timer and for sending notifications +private _intervalCheck = 10; +private _intervalNotification = _intervalCheck * 6; //Must be a multiple of _intervalCheck + +private _started = false; while {f_param_mission_timer > 0} do { // Broadcast remaining time to players - ["SafeStart",[format["Time Remaining: %1 min",f_param_mission_timer]]] remoteExec ["bis_fnc_showNotification", 0]; + if (!_started || f_param_mission_timer % _intervalNotification == 0) then { + ["SafeStart",[format["Time Remaining: %1 min",(f_param_mission_timer / 60) toFixed 1]]] remoteExec ["bis_fnc_showNotification", 0]; + _started = true; + }; - uisleep 60; // Sleep 60 seconds + uisleep _intervalCheck; // Sleep _intervalCheck seconds // If mission timer has been terminated by admin briefing, simply exit if (f_param_mission_timer < 0) exitWith {}; - // Reduce the mission timer by one - f_param_mission_timer = f_param_mission_timer - 1; + // Reduce the mission timer by _intervalCheck seconds + f_param_mission_timer = f_param_mission_timer - _intervalCheck; publicVariable "f_param_mission_timer"; }; //Once the mission timer has reached 0, disable the safeties if (f_param_mission_timer == 0) then { // Broadcast message to players - ["SafeStartMissionStarting",["Mission starting now!"]] remoteExec ["bis_fnc_showNotification", 0]; + ["SafeStartMissionStarting",["Safe start ended!"]] remoteExec ["bis_fnc_showNotification", 0]; // Remotely execute script to disable safety for all selectable units [false] remoteExec ["f_fnc_safety", playableUnits + switchableUnits]; diff --git a/f/safeStart/fn_safety.sqf b/f/safeStart/fn_safety.sqf index d2bf04395..82449258a 100644 --- a/f/safeStart/fn_safety.sqf +++ b/f/safeStart/fn_safety.sqf @@ -12,19 +12,10 @@ switch (_enableSafeStart) do //Turn safety on case true: { - // Delete bullets from fired weapons - if (isNil "f_eh_safetyMan") then { - f_eh_safetyMan = player addEventHandler["Fired", {deletevehicle (_this select 6);}]; - }; - - // Disable guns and damage for vehicles if player is crewing a vehicle + // Disable damage for vehicles if player is crewing a vehicle if (vehicle player != player && {player in [gunner vehicle player,driver vehicle player,commander vehicle player]}) then { player setVariable ["f_var_safetyVeh",vehicle player]; (player getVariable "f_var_safetyVeh") allowDamage false; - - if (isNil "f_eh_safetyVeh") then { - f_eh_safetyVeh = (player getVariable "f_var_safetyVeh") addEventHandler["Fired", {deletevehicle (_this select 6);}]; - }; }; // Make player invincible @@ -34,21 +25,9 @@ switch (_enableSafeStart) do //Turn safety off case false; default { - - //Allow player to fire weapons - if !(isNil "f_eh_safetyMan") then { - player removeEventhandler ["Fired", f_eh_safetyMan]; - f_eh_safetyMan = nil; - }; - - // Re-enable guns and damage for vehicles if they were disabled + // Re-enable damage for vehicles if it was disabled if !(isNull(player getVariable ["f_var_safetyVeh",objnull])) then { (player getVariable "f_var_safetyVeh") allowDamage true; - - if !(isNil "f_eh_safetyVeh") then { - (player getVariable "f_var_safetyVeh") removeeventhandler ["Fired", f_eh_safetyVeh]; - f_eh_safetyVeh = nil; - }; player setVariable ["f_var_safetyVeh",nil]; }; From 74cabc7f28b09b0250e512e917a01ed93c4987cd Mon Sep 17 00:00:00 2001 From: s Date: Fri, 23 Mar 2018 19:44:44 +0100 Subject: [PATCH 126/407] FTMemberMarkers fix JIP issues --- f/FTMemberMarkers/f_localFTMemberMarker.sqf | 2 +- f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf | 51 ------------------- .../fn_SetLocalFTMemberMarkers.sqf | 33 +++++++----- f/functions.hpp | 1 - 4 files changed, 20 insertions(+), 67 deletions(-) delete mode 100644 f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf diff --git a/f/FTMemberMarkers/f_localFTMemberMarker.sqf b/f/FTMemberMarkers/f_localFTMemberMarker.sqf index 2a63ade3a..6b727fa5c 100644 --- a/f/FTMemberMarkers/f_localFTMemberMarker.sqf +++ b/f/FTMemberMarkers/f_localFTMemberMarker.sqf @@ -54,7 +54,7 @@ while{alive _unit && (_unit in f_var_HandlerGroup)} do _mkr setMarkerDirLocal _dir; // makes a call to the function defined in f_setLocalFTMemberMarkers.sqf // retreives the stored color from the unit. - _mkr setMarkerColorLocal (_unit getvariable ["assignedTeam","ColorWhite"]); + _mkr setMarkerColorLocal ([_unit] call f_fnc_GetUpdatedTeamValue); } else { f_var_HandlerGroup = f_var_HandlerGroup - [_unit]; }; diff --git a/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf b/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf deleted file mode 100644 index 5171796ec..000000000 --- a/f/FTMemberMarkers/fn_LocalFTMarkerSync.sqf +++ /dev/null @@ -1,51 +0,0 @@ -// F3 - Fireteam Marker Team Color Synchronization -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// Description: Sync the groups teamcolors to other players in the group. -// Parameters -// 0: Group -// 1: Unit -// Returns: -// Nothing -// Example: -// [grp,unit] call f_fnc_LocalFTMarkerSync; -// -// ==================================================================================== - -private ["_colorTeam"]; -params["_grp", "_unit"]; - -// ==================================================================================== - -// BEGIN SYNCHRONIZATION -// if he is still alive and groupLeader - -while{_unit == (leader _grp) && alive _unit} do -{ - { - // if unit in my group is alive lets check his teamColor - if(alive _x) then - { - _colorTeam = [assignedTeam _x] call f_fnc_GetMarkerColor; - // if _colorTeam is not equal to whatever is set on the unit we must update the other units in the group - if((_x getvariable ["assignedTeam","ColorWhite"]) != _colorTeam) then - { - // debug messages - if (f_param_debugMode == 1) then {player sidechat format["%1 ---- %2 by %3",(_x getvariable ["assignedTeam","ColorWhite"]) ,_colorTeam,_unit];}; - - // sends a call to each unit in the group to use the local with the [x_colorTeam] as args. - [_x,_colorTeam] remoteExec ["f_fnc_SetTeamValue", _grp]; - }; - }; - - } foreach units _grp; - sleep 3; -}; - -// if the group is not gone. -if(!isnil "_grp") then -{ - // get the new leader - private _leader = leader _grp; - // tell him to start running the sync. - [_grp,_leader] remoteExec ["f_fnc_LocalFTMarkerSync", _leader]; -}; diff --git a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf index c176c0da2..45358be79 100644 --- a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf +++ b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf @@ -19,14 +19,29 @@ if (!isDedicated && (isNull player)) then // ==================================================================================== // DEFINE HELPER-FUNCTION -// Define a small function to set a unit's team color +// Define a small function to get/set a unit's team color +// This function updates the assignedTeam variable +// if assignedTeam returns a new team(color). -f_fnc_SetTeamValue = +f_fnc_GetUpdatedTeamValue = { - params["_unit", "_color"]; - _unit setvariable ["assignedTeam",_color]; + params["_unit"]; + private _team = assignedTeam _unit; + private _color = _unit getvariable ["assignedTeam","ColorWhite"]; + //_team can be nil if the player is controlling another unit (uav, zeus). + if(!isNil "_team") then + { + private _colorNew = [_team] call f_fnc_GetMarkerColor; + if(_color != _colorNew) then + { + _unit setVariable ["assignedTeam",_colorNew]; + _color = _colorNew; + }; + }; + _color }; + // ==================================================================================== // START DRAWING MARKERS @@ -47,13 +62,3 @@ f_fnc_SetTeamValue = sleep 5; }; }; - -// ==================================================================================== - -// SYNCHRONIZE TEAM COLORS -// If the player is the groupleader he will take charge of updateing the other units of the colorvalue. - -if(player == leader (group player)) then -{ - [group player,player] spawn f_fnc_LocalFTMarkerSync; -}; diff --git a/f/functions.hpp b/f/functions.hpp index 6c540d606..7437eac3f 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -55,7 +55,6 @@ class F // Defines the "owner" file = "f\FTMemberMarkers"; class SetLocalFTMemberMarkers{}; class GetMarkerColor{}; - class LocalFTMarkerSync{}; }; class bodyRemoval { From 10731ce675b7055cf047805586f52e59d69c2c23 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 25 Mar 2018 01:42:33 +0100 Subject: [PATCH 127/407] don't run nametag and FTMemberMarkers for virtual entities --- f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf | 3 +++ f/nametag/f_nametagInit.sqf | 11 +++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf index c176c0da2..aaf6074f5 100644 --- a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf +++ b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf @@ -16,6 +16,9 @@ if (!isDedicated && (isNull player)) then waitUntil {sleep 0.1; !isNull player}; }; +// Don't run this for zeus and virtual spectators +if (side player isEqualto sideLogic) exitWith {}; + // ==================================================================================== // DEFINE HELPER-FUNCTION diff --git a/f/nametag/f_nametagInit.sqf b/f/nametag/f_nametagInit.sqf index 5dbcb40e6..2f7b8e167 100644 --- a/f/nametag/f_nametagInit.sqf +++ b/f/nametag/f_nametagInit.sqf @@ -15,7 +15,7 @@ if (!hasInterface) exitWith {}; // Global variable that will be flipped on and off using the disableKey and CBA. -F_NT_NAMETAGS_ON = true; +F_NT_NAMETAGS_ON = true; // Determine which mods are active. #include "include\f_nametagCheckMods.sqf"; @@ -40,6 +40,9 @@ F_NT_NAMETAGS_ON = true; waitUntil{!isNull player}; waitUntil{player == player}; +// Don't run this for zeus and virtual spectators +if (side player isEqualto sideLogic) exitWith {}; + // Reset font spacing and size to (possibly) new conditions. call f_fnc_nametagResetFont; @@ -66,8 +69,8 @@ waitUntil {!isNull (findDisplay 46)}; // Render nametags from the cache every frame. //------------------------------------------------------------------------------------ -F_NT_EVENTHANDLER = addMissionEventHandler -["Draw3D", +F_NT_EVENTHANDLER = addMissionEventHandler +["Draw3D", { if F_NT_NAMETAGS_ON then { call f_fnc_nametagUpdate }; @@ -77,4 +80,4 @@ F_NT_EVENTHANDLER = addMissionEventHandler // Add briefing with configurable options. //------------------------------------------------------------------------------------ -#include "include\f_nametagBrief.sqf" \ No newline at end of file +#include "include\f_nametagBrief.sqf" From 45d0e13fd8a39420dccad2a2443d69624c445aae Mon Sep 17 00:00:00 2001 From: s Date: Sun, 25 Mar 2018 16:46:40 +0200 Subject: [PATCH 128/407] Briefing: Don't show zeus briefing for virtual spectator. And deduplicate debug messages in briefing.sqf. --- briefing.sqf | 97 +++++++++++++++++++++------------------------------- 1 file changed, 39 insertions(+), 58 deletions(-) diff --git a/briefing.sqf b/briefing.sqf index 29314adad..4fadf5e7d 100644 --- a/briefing.sqf +++ b/briefing.sqf @@ -11,6 +11,14 @@ if (!isDedicated && (isNull player)) then waitUntil {sleep 0.1; !isNull player}; }; +// DEBUG HELPER FUNCTION +private _fnc_debug = { + params [["_faction", "", [""]]]; + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 selected.",_faction]; + }; +}; // ==================================================================================== @@ -20,14 +28,16 @@ if (!isDedicated && (isNull player)) then private _unitfaction = toLower (faction player); -// If the unitfaction is different from the group leader's faction, the latters faction is used -if (_unitfaction != toLower (faction (leader group player))) then {_unitfaction = toLower (faction (leader group player))}; +// If the unitfaction is different from the group leader's faction, the latter faction is used +if (_unitfaction != toLower (faction (leader group player))) then { + _unitfaction = toLower (faction (leader group player)) +}; // DEBUG - if (f_param_debugMode == 1) then - { +if (f_param_debugMode == 1) then +{ player sideChat format ["DEBUG (briefing.sqf): Player faction: %1",_unitfaction]; - }; +}; // ==================================================================================== @@ -39,11 +49,8 @@ if (serverCommandAvailable "#kick") then { #include "f\briefing\f_briefing_admin.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for host selected.",_unitfaction]; - }; + // DEBUG + ["host"] call _fnc_debug; }; // ==================================================================================== @@ -56,11 +63,8 @@ if (_unitfaction in ["blu_f","blu_t_f"]) exitwith { #include "f\briefing\f_briefing_nato.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== @@ -73,11 +77,8 @@ if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f"]) exitwith { #include "f\briefing\f_briefing_fia.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== @@ -90,11 +91,8 @@ if (_unitfaction in ["blu_gen_f"]) exitwith { #include "f\briefing\f_briefing_gendarmerie.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== @@ -107,11 +105,8 @@ if (_unitfaction in ["opf_f","opf_t_f"]) exitwith { #include "f\briefing\f_briefing_csat.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== @@ -124,11 +119,8 @@ if (_unitfaction in ["ind_f"]) exitwith { #include "f\briefing\f_briefing_aaf.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== @@ -141,11 +133,8 @@ if (_unitfaction in ["ind_c_f"]) exitwith { #include "f\briefing\f_briefing_syndikat.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== @@ -158,11 +147,8 @@ if (_unitfaction in ["blu_ctrg_f"]) exitwith { #include "f\briefing\f_briefing_ctrg.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== @@ -175,27 +161,22 @@ if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { #include "f\briefing\f_briefing_civ.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + [_unitfaction] call _fnc_debug; }; // ==================================================================================== // BRIEFING: ZEUS -// The following block of code executes only if the player is in a ZEUS (Gamelogic) slot; it automatically includes a file which contains the appropriate briefing data. +// The following block of code executes only if the player is in a ZEUS (Gamelogic) +// slot; it automatically includes a file which contains the appropriate briefing data. -if (_unitfaction == "") exitwith { +if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { #include "f\briefing\f_briefing_zeus.sqf" -// DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 slot selected.",_unitfaction]; - }; + // DEBUG + ["zeus"] call _fnc_debug; }; @@ -204,4 +185,4 @@ if (_unitfaction == "") exitwith { // ERROR CHECKING // If the faction of the unit cannot be defined, the script exits with an error. -player globalchat format ["DEBUG (briefing.sqf): Faction %1 is not defined.",_unitfaction]; \ No newline at end of file +player globalchat format ["DEBUG (briefing.sqf): Faction %1 is not defined.",_unitfaction]; From a15be0c331df60206aaaa2c82415a659a8b5dede Mon Sep 17 00:00:00 2001 From: s Date: Wed, 28 Mar 2018 20:10:26 +0200 Subject: [PATCH 129/407] setTeamColours: fix JIP/locality issue. code deduplication. --- f/setTeamColours/f_setTeamColours.sqf | 63 ++++++++++----------------- 1 file changed, 24 insertions(+), 39 deletions(-) diff --git a/f/setTeamColours/f_setTeamColours.sqf b/f/setTeamColours/f_setTeamColours.sqf index 78d382fcd..8e41f4e96 100644 --- a/f/setTeamColours/f_setTeamColours.sqf +++ b/f/setTeamColours/f_setTeamColours.sqf @@ -20,11 +20,13 @@ if (!isDedicated && (isNull player)) then private _leaders = ["_FTL"]; // Set suffixes for each color -private _white = []; -private _red = ["_AT","_R1","_R2"]; -private _blue = ["_AR1","_AR2","_FTL"]; -private _yellow = []; -private _green = []; +private _colors = [ + ["MAIN", [] ], + ["RED", ["_AT","_R1","_R2"] ], + ["BLUE", ["_AR1","_AR2","_FTL"] ], + ["YELLOW", [] ], + ["GREEN", [] ] +]; // ==================================================================================== @@ -32,7 +34,6 @@ private _green = []; sleep 10; -private _unit = player; private _isFireteam = false; // ==================================================================================== @@ -41,44 +42,28 @@ private _isFireteam = false; // If the group isn't a full fireteam, leave teams as default. { - if ((format["%1",(leader (group _unit))] find _x) != -1) exitWith {_isFireteam = true;} + if ((format["%1",(leader (group player))] find _x) != -1) exitWith {_isFireteam = true;} } forEach _leaders; if(!_isFireteam) exitWith {}; -// SET TEAM COLOURS -{ - _unit = _x; - private _unitStr = str _x; - - { - if ((_unitStr find _x) != -1) then { - _unit assignTeam "RED"; - }; - } forEach _red; - - { - if ((_unitStr find _x) != -1) then { - _unit assignTeam "blue"; - }; - } forEach _blue; +// Only run this for the group leader: +if((leader (group player) != player)) exitWith {}; - { - if ((_unitStr find _x) != -1) then { - _unit assignTeam "yellow"; - }; - } forEach _yellow; +// ==================================================================================== - { - if ((_unitStr find _x) != -1) then { - _unit assignTeam "green"; - }; - } forEach _green; +// SET TEAM COLOURS +{ + private _unit = _x; + private _unitStr = str _unit; { - if ((_unitStr find _x) != -1) then { - _unit assignTeam "white"; - }; - } forEach _white; - -} forEach units (group _unit); + _x params ["_color", "_suffixes"]; + { + if ((_unitStr find _x) != -1) then { + _unit assignTeam _color; + }; + } forEach _suffixes; + } forEach _colors; + +} forEach units (group player); From 31c2c5544e099332014b2fede4db3247d148f866 Mon Sep 17 00:00:00 2001 From: s Date: Wed, 28 Mar 2018 23:49:10 +0200 Subject: [PATCH 130/407] revive: changes for upcoming arma 3 1.82: Removing custom Damaged event handler and pull-out code. --- f/functions.hpp | 5 --- f/medical/fn_addDragAction.sqf | 9 ++---- f/medical/fn_addPullOutAction.sqf | 44 ------------------------- f/medical/fn_findDeadAnim.sqf | 29 ----------------- f/medical/fn_pullOutUnit.sqf | 27 ---------------- f/medical/fn_reviveEhDammaged.sqf | 52 ------------------------------ f/medical/fn_vehicleHasWounded.sqf | 11 ------- f/medical/init.sqf | 15 ++------- 8 files changed, 4 insertions(+), 188 deletions(-) delete mode 100644 f/medical/fn_addPullOutAction.sqf delete mode 100644 f/medical/fn_findDeadAnim.sqf delete mode 100644 f/medical/fn_pullOutUnit.sqf delete mode 100644 f/medical/fn_reviveEhDammaged.sqf delete mode 100644 f/medical/fn_vehicleHasWounded.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 6c540d606..0cd07442b 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -110,13 +110,8 @@ class F // Defines the "owner" class woundingsystem { file = "f\medical"; - class reviveEhDammaged {}; class addDragAction {}; class onDrag {}; - class findDeadAnim {}; - class addPullOutAction {}; - class vehicleHasWounded {}; - class pullOutUnit {}; }; class disableThermals { diff --git a/f/medical/fn_addDragAction.sqf b/f/medical/fn_addDragAction.sqf index 659984ff6..e8bcbfaa3 100644 --- a/f/medical/fn_addDragAction.sqf +++ b/f/medical/fn_addDragAction.sqf @@ -7,17 +7,12 @@ waitUntil {sleep 0.1; !isNull player}; if (_unit == player) exitWith {}; if (_unit getVariable ["#revDragId", -1] != -1) exitWith {}; -//TODO maybe add a side-check: {side group _this getFriend side group _target >= 0.6} (just like the bis revive thing) private _drag_action_cond = str { //_target (object to which action is attached to) // _this (caller/executing person) - private _var = _this getVariable ['f_wound_dragging',nil]; _target distance _this < 2 && { - isNil '_var' && { - GET_STATE(_target) == STATE_INCAPACITATED && { - (_target getVariable ['f_wound_draggable',false]) - && !(_target getVariable ['f_wound_being_dragged',false]) - } + GET_STATE(_target) == STATE_INCAPACITATED && { + !(_target getVariable ['f_wound_being_dragged',false]) } } }; diff --git a/f/medical/fn_addPullOutAction.sqf b/f/medical/fn_addPullOutAction.sqf deleted file mode 100644 index 62f704913..000000000 --- a/f/medical/fn_addPullOutAction.sqf +++ /dev/null @@ -1,44 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - -if (!hasInterface) exitWith {}; - -params ["_vehicle"]; - -private _actionId = _vehicle getVariable ["#revPullOutAction", -1]; - -// Vehicle already has a pull out action, don't try to add another -if (_actionId != -1) exitWith {}; - -// Code to run when the hold-action completes -private _action = { - params ["_target"]; - - { - private _unit = _x; - - // Pull the unit out if they are down - if (IS_DISABLED(_unit)) then { - [_unit] remoteExec ["f_fnc_pullOutUnit", _unit]; - } - } forEach crew _target; -}; - -_actionId = [ - _vehicle, - "Pull out wounded", - "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_unbind_ca.paa", - "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_unbind_ca.paa", - "(_this distance _target < 5) && {[_target] call f_fnc_vehicleHasWounded}", - "(_caller distance _target < 5) && {[_target] call f_fnc_vehicleHasWounded}", - {}, - {}, - _action, - {}, - [], - 5, - 1000, - false, - false -] call BIS_fnc_holdActionAdd; - -_vehicle setVariable ["#revPullOutAction", _actionId]; \ No newline at end of file diff --git a/f/medical/fn_findDeadAnim.sqf b/f/medical/fn_findDeadAnim.sqf deleted file mode 100644 index 017131334..000000000 --- a/f/medical/fn_findDeadAnim.sqf +++ /dev/null @@ -1,29 +0,0 @@ - -params ["_unit"]; -private _countCondit = { - params["_animEntry", "_testString"]; - if(_animEntry isEqualType "") exitWith { - _animEntry find _testString != -1 - }; - false -}; -private _anim = configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit; -if (!isNull _anim && {!isNull (_anim >> "interpolateTo")}) then { - _anim = ((getArray (_anim >> "interpolateTo"))); - private _kiaAnim = _anim select {[_x, "kia"] call _countCondit}; - private _dieAnim = _anim select {[_x, "Die"] call _countCondit}; - private _unconAnim = _anim select {[_x, "Unconscious"] call _countCondit}; - if(count _kiaAnim > 0) exitWith { - _anim = _kiaAnim select 0; - }; - if(count _dieAnim > 0) exitWith { - _anim = _dieAnim select 0; - }; - if(count _unconAnim > 0) exitWith { - _anim = _unconAnim select 0; - }; - _anim = "Unconscious"; -} else { - _anim = "Unconsious"; -}; -_anim; diff --git a/f/medical/fn_pullOutUnit.sqf b/f/medical/fn_pullOutUnit.sqf deleted file mode 100644 index 955c684bf..000000000 --- a/f/medical/fn_pullOutUnit.sqf +++ /dev/null @@ -1,27 +0,0 @@ -params ["_unit"]; - -// Hack: Despite the wiki claiming 'moveOut' works on unconscious players, it doesn't -// So make them conscious again until they are out -_unit setUnconscious false; - -// Eject the downed player from the vehicle -moveOut _unit; - -// Hack -_unit setUnconscious true; - -// Move them away from the vehicle slightly once they are out -[_unit] spawn { - params ["_unit"]; - sleep 0.2; - (_unit) setPosATL (_unit getPos [0.6, direction _unit]); -}; - -// Make them draggable -[_unit] spawn { - params ["_unit"]; - waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", true, true]; - waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", false, true]; -}; \ No newline at end of file diff --git a/f/medical/fn_reviveEhDammaged.sqf b/f/medical/fn_reviveEhDammaged.sqf deleted file mode 100644 index 7b99c4726..000000000 --- a/f/medical/fn_reviveEhDammaged.sqf +++ /dev/null @@ -1,52 +0,0 @@ -// This is a modified version of "\a3\functions_f_mp_mark\Revive\fn_reviveEhDammaged.sqf" - -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - -/* -unit: Object - Object the event handler is assigned to -hitSelection: String - Name of the selection where the unit was damaged -damage: Number - Resulting level of damage -hitPartIndex: Number - hit index of the hit selection -hitPoint: String - hit point Cfg name -shooter: Object - shooter reference (to get instigator use getShotParents on projectile) -projectile: Object - the projectile that caused damage -*/ - -params ["_unit", "", "_damage","","_hitPoint","_source"]; - -if (alive _unit && {_damage >= 1 && {REVIVE_ENABLED(_unit) && {_hitPoint == "Incapacitated" && {IS_ACTIVE(_unit)}}}}) then -{ - //["[i] Incapacitated by dependence: %1",_this] call bis_fnc_logFormat; - - //award attacker with +1 'infantry kill' point - [_source] spawn bis_fnc_reviveAwardKill; - - // Allow the downed player to be dragged if they are not in a vehicle - if (!IN_VEHICLE(_unit)) then - { - [_unit ] spawn { - params ["_unit"]; - waitUntil{ sleep 0.1; animationState _unit == "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", true, true]; - waitUntil{ sleep 0.1; animationState _unit != "unconsciousrevivedefault"}; - _unit setVariable ["f_wound_draggable", false, true]; - }; - } - else - { - // Play the 'downed' animation in a vehicle - _unit playMove ([_unit] call f_fnc_findDeadAnim); - - // Add the 'pull out' action - [vehicle player] remoteExec ["f_fnc_addPullOutAction", 0, vehicle player]; - }; - - if (isNull _source || {!bis_revive_killfeedShow}) then - { - SET_STATE(_unit,STATE_INCAPACITATED); - } - else - { - SET_STATE_XTRA(_unit,STATE_INCAPACITATED,_source); - }; -}; \ No newline at end of file diff --git a/f/medical/fn_vehicleHasWounded.sqf b/f/medical/fn_vehicleHasWounded.sqf deleted file mode 100644 index 2210e68e1..000000000 --- a/f/medical/fn_vehicleHasWounded.sqf +++ /dev/null @@ -1,11 +0,0 @@ -#include "\a3\functions_f_mp_mark\Revive\defines.inc" - -params ["_vehicle"]; - -private _return = false; - -{ - if (IS_DISABLED(_x)) exitWith {_return = true}; -} forEach crew _vehicle; - -_return; \ No newline at end of file diff --git a/f/medical/init.sqf b/f/medical/init.sqf index 4d0f80d4a..468626596 100644 --- a/f/medical/init.sqf +++ b/f/medical/init.sqf @@ -2,8 +2,7 @@ // Uses the standard Arma 3 revive system with a few modifications: // - Restores vanilla behaviour of FAKs and medkits // - Reviving no only heals a player as much as a FAK -// - Replace the "Force Respawn" hold action while downed with a "Wait to be revived" "infinite" hold-action (keeps icon animation) -// - Players can be downed in vehicles, will bleed out in them, and can be pulled out +// - Removes the "Force Respawn" // - Downed players can be dragged // ==================================================================================== @@ -39,7 +38,7 @@ if (!hasInterface) exitWith {}; }; }; -// Remove the "Force Respawn" hold-action and replace with "Wait to be revived" +// Remove the "Force Respawn" hold-action [] spawn { while {true} do { // Wait until the player is downed and being revived @@ -63,15 +62,5 @@ if (!hasInterface) exitWith {}; }; }; -// Replace the damage handler to change vehicle behaviour -[] spawn { - // Wait until the event handler has been set - waitUntil {sleep 1; (player getVariable ["bis_revive_ehDammaged", -1]) != -1}; - - // Remove the event handler and unset the variable - player removeEventHandler ["Dammaged", player getVariable "bis_revive_ehDammaged"]; - player setVariable ["bis_revive_ehHandleDamage", player addEventHandler ["Dammaged", f_fnc_reviveEhDammaged]]; -}; - // Make downed players draggable [player] remoteExec ["f_fnc_addDragAction", 0, player]; From 5d1990cf93a3096819f2139ee9dc13fd03ae2f01 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 31 Mar 2018 16:43:40 +0200 Subject: [PATCH 131/407] Remove JIP from cfgNotifications --- description.ext | 9 --------- 1 file changed, 9 deletions(-) diff --git a/description.ext b/description.ext index 9819d3350..8eaa90947 100644 --- a/description.ext +++ b/description.ext @@ -95,15 +95,6 @@ class cfgNotifications duration = 3; priority = 5; }; - - // Notification for the F3 JIP Component - class JIP { - title= "REINFORCEMENTS"; - description= "%1"; - iconPicture = "\A3\ui_f\data\map\markers\military\flag_ca.paa"; - duration = 3; - priority = 5; - }; }; // ============================================================================================ From 2a13ce9e94aebfeb922924bf5057020bb38e79e1 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 31 Mar 2018 22:40:02 +0200 Subject: [PATCH 132/407] Use missiondefault for weather/time. --- description.ext | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/description.ext b/description.ext index 9819d3350..1805dedd2 100644 --- a/description.ext +++ b/description.ext @@ -166,7 +166,7 @@ class Params title = "$STR_f_param_weather"; values[] = {0,1,2,3,4,5,6,7,8,9}; texts[] = {$STR_f_param_weather_Option0,$STR_f_param_weather_Option1,$STR_f_param_weather_Option2,$STR_f_param_weather_Option3,$STR_f_param_weather_Option4,$STR_f_param_weather_Option5,$STR_f_param_weather_Option6,$STR_f_param_weather_Option7,$STR_f_param_weather_Option8,$STR_f_param_weather_Option11}; - default = 0; + default = 9; }; class f_param_fog @@ -190,7 +190,7 @@ class Params title = "$STR_f_param_timeOfDay"; values[] = {0,1,2,3,4,5,6,7,8}; texts[] = {$STR_f_param_timeOfDay_Option0,$STR_f_param_timeOfDay_Option1,$STR_f_param_timeOfDay_Option2,$STR_f_param_timeOfDay_Option3,$STR_f_param_timeOfDay_Option4,$STR_f_param_timeOfDay_Option5,$STR_f_param_timeOfDay_Option6,$STR_f_param_timeOfDay_Option7,$STR_f_param_timeOfDay_Option8}; - default = 4; + default = 8; function = "f_fnc_setTime"; // This function is called to apply the values isGlobal = 0; // Execute this only on the server }; From e96c9450f829e1e951a81ea1a261e201ed9255c5 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 7 Apr 2018 15:21:03 +0200 Subject: [PATCH 133/407] Turn JIP notification into GroupJoin. Remove JIP from stringtable. --- description.ext | 9 +++++++++ f/groupJoin/f_groupJoinAction.sqf | 4 ++-- stringtable.xml | 3 --- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/description.ext b/description.ext index 8eaa90947..a30244841 100644 --- a/description.ext +++ b/description.ext @@ -95,6 +95,15 @@ class cfgNotifications duration = 3; priority = 5; }; + + // Notification for the F3 Group Join Component + class GroupJoin { + title= "JOIN"; + description= "%1"; + iconPicture = "\A3\ui_f\data\map\markers\military\flag_ca.paa"; + duration = 3; + priority = 5; + }; }; // ============================================================================================ diff --git a/f/groupJoin/f_groupJoinAction.sqf b/f/groupJoin/f_groupJoinAction.sqf index db6e7fe11..f52d04edc 100644 --- a/f/groupJoin/f_groupJoinAction.sqf +++ b/f/groupJoin/f_groupJoinAction.sqf @@ -56,10 +56,10 @@ while {true} do { [player] joinSilent _grp; //Display notifications about new group member to the whole group - ["JIP",[format ["You have joined %1 (%2).",name leader _grp,_grp]]] call BIS_fnc_showNotification; + ["GroupJoin",[format ["You have joined %1 (%2).",name leader _grp,_grp]]] call BIS_fnc_showNotification; { - if (isPlayer _x) then {["JIP",[format ["%1 has joined your group.",name _unit]]] remoteExec ["BIS_fnc_showNotification", _x]}; + if (isPlayer _x) then {["GroupJoin",[format ["%1 has joined your group.",name _unit]]] remoteExec ["BIS_fnc_showNotification", _x]}; } forEach (units _grp - [_unit]); // Done using a forEach loop to avoid message spam should the group leader be controlling AI // Make sure the group leader is synchronized properly accross the network diff --git a/stringtable.xml b/stringtable.xml index eb578beae..645a5c1b7 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -234,9 +234,6 @@ You have been moved to the selected location. - - Select Reinforcement Options - Safe Start (mins) From 0ed1bf158421fac87f15fa1771a88ee6a5dc31fd Mon Sep 17 00:00:00 2001 From: s Date: Sun, 25 Mar 2018 00:37:29 +0100 Subject: [PATCH 134/407] zeus: disable thermals for zeus placed units. --- f/disableThermals/fn_disableThermals.sqf | 4 +- f/zeus/fn_zeusInit.sqf | 62 +++++++++++++++--------- mission.sqm | 8 +-- 3 files changed, 47 insertions(+), 27 deletions(-) diff --git a/f/disableThermals/fn_disableThermals.sqf b/f/disableThermals/fn_disableThermals.sqf index bbb684472..60e515922 100644 --- a/f/disableThermals/fn_disableThermals.sqf +++ b/f/disableThermals/fn_disableThermals.sqf @@ -11,6 +11,8 @@ private ["_allowedList", "_allowedTypes", "_allowedUnits"]; params [["_allowedList", [], [[]]]]; +f_var_disableThermals_enabled = true; + // INTERPRET RESTRICTED ARRAY // Loop through the array containing the allowed classes and units and split them into two @@ -26,7 +28,7 @@ _allowedUnits = []; if (isServer) then { { private _vehicleToCheck = _x; - + if (_vehicleToCheck in _allowedUnits || {{_vehicleToCheck isKindOf _x} count _allowedTypes > 0}) then { // This is an allowed vehicle, ignore it } else { diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index d9e4ad0b8..b03d8d40e 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -32,29 +32,42 @@ params [ // Exit if no unit was passed if (isNull _unit) exitWith {}; -// Exit if no unit was passed -if !(isNull (getAssignedCuratorLogic _unit)) exitWith { - diag_log format ["DEBUG (f\zeus\fn_zeusInit.sqf): ZEUS already assigned to %1.",_unit]; - systemchat format ["DEBUG (f\zeus\fn_zeusInit.sqf): ZEUS already assigned to %1.",_unit]; -}; - -// Exit if the unit is not a player -if !(isPlayer _unit) exitWith { - diag_log format ["DEBUG (f\zeus\fn_zeusInit.sqf): Did not assign ZEUS to %1 because it is not under control of a player.",_unit]; - systemchat format ["DEBUG (f\zeus\fn_zeusInit.sqf): Did not assign ZEUS to %1 because it is not under control of a player.",_unit]; -}; - // Make sure a side logic exists, if not create it if (isNil "f_var_sideCenter") then { f_var_sideCenter = createCenter sideLogic; publicVariable "f_var_sideCenter"; }; -// Create a new curator logic -_curator = (createGroup f_var_sideCenter) createUnit ["ModuleCurator_F", [0,0,0], [], 0, "NONE"]; +//Check if the passed variable _unit is a curator object. +private _unitIsCurator = (typeof _unit) isEqualTo "ModuleCurator_F"; + +if (_unitIsCurator) then { + // The curator object (ModuleCurator_F) was passed as "_unit", + // because this happens in the zeus module initialization. + // NOTE: We cannot use getAssignedCuratorUnit to get the unit during the module initialization, + // so we don't have access to the unit itself in this case. + _curator = _unit; +} else { + + // Exit if the unit is not a player + if (!(isPlayer _unit)) exitWith { + diag_log format ["DEBUG (f\zeus\fn_zeusInit.sqf): Did not assign ZEUS to %1 because it is not under control of a player.",_unit]; + systemchat format ["DEBUG (f\zeus\fn_zeusInit.sqf): Did not assign ZEUS to %1 because it is not under control of a player.",_unit]; + }; -// Assign the passed unit as curator -_unit assignCurator _curator; + //Exit if the unit already has a curator logic assigned. + if !(isNull (getAssignedCuratorLogic _unit)) exitWith { + diag_log format ["DEBUG (f\zeus\fn_zeusInit.sqf): ZEUS already assigned to %1.",_unit]; + systemchat format ["DEBUG (f\zeus\fn_zeusInit.sqf): ZEUS already assigned to %1.",_unit]; + }; + + // Create a new curator logic + _curator = (createGroup f_var_sideCenter) createUnit ["ModuleCurator_F", [0,0,0], [], 0, "NONE"]; + + // Assign the new curator logic to the passed unit + _unit assignCurator _curator; + +}; //Add desired addons [_curator,_addons] spawn f_fnc_zeusAddAddons; @@ -66,23 +79,28 @@ _unit assignCurator _curator; _curator setCuratorWaypointCost 0; {_curator setCuratorCoef [_x,0];} forEach ["place","edit","delete","destroy","group","synchronize"]; -// Check if F3 AI Skill Selector is active and assign corresponding event-handler -if({!isNil _x} count ["f_param_AISkill_BLUFOR","f_param_AISkill_INDP","f_param_AISkill_OPFOR"] > 0) then { - _curator addEventHandler ['CuratorObjectPlaced',{ +// Add event-handler for setAISkill +private _curatorEH = _curator getVariable ["f_curator_EH", -1]; +if (_curatorEH == -1) then { + _curatorEH = _curator addEventHandler ['CuratorObjectPlaced',{ params[ ["_curator", objNull, [objNull]], ["_entity", objNull, [objNull]] ]; { [_x] call f_fnc_setAISkill; + + if(!isNil "f_var_disableThermals_enabled" && {f_var_disableThermals_enabled}) then { + _x disableTIEquipment true; + } + } forEach crew _entity; }]; + _curator setVariable ["f_curator_EH", _curatorEH]; }; -// Setup - // If announce is set to true, the new curator will be announced to all players -if (_announce) then { +if (_announce && !_unitIsCurator) then { _curator setVariable ["owner",format["%1",_unit],true]; ["Alert",[format ["%1 has become curator!",name _unit]]] remoteExec ["BIS_fnc_showNotification", 0]; }; diff --git a/mission.sqm b/mission.sqm index e8ca07d51..2308f54d8 100644 --- a/mission.sqm +++ b/mission.sqm @@ -2232,7 +2232,7 @@ class Mission { position[]={2281.6389,5.3882694,729.50195}; }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + init="[this, true, allUnits] call f_fnc_zeusInit;"; id=106; type="ModuleCurator_F"; atlOffset=0.38826942; @@ -2343,7 +2343,7 @@ class Mission { position[]={2282.2229,5.3580265,718.42773}; }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + init="[this, true, allUnits] call f_fnc_zeusInit;"; id=107; type="ModuleCurator_F"; atlOffset=0.3580265; @@ -2454,7 +2454,7 @@ class Mission { position[]={2282.3342,5.6426582,707.78223}; }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + init="[this, true, allUnits] call f_fnc_zeusInit;"; id=108; type="ModuleCurator_F"; atlOffset=0.64265823; @@ -2565,7 +2565,7 @@ class Mission { position[]={2284.1614,6.0756798,697.16992}; }; - init="this addEventHandler ['CuratorObjectPlaced',{{[_x] call f_fnc_setAISKill} forEach crew(_this select 1)}];this addCuratorEditableObjects [playableUnits,true];"; + init="[this, true, allUnits] call f_fnc_zeusInit;"; id=109; type="ModuleCurator_F"; atlOffset=1.0756798; From 15ca8f712767481146333f661c8f5f4d0318bce4 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 7 Apr 2018 16:51:54 +0200 Subject: [PATCH 135/407] Add type-checks to 'params' --- f/FTMemberMarkers/f_localFTMemberMarker.sqf | 2 +- f/authorisedCrew/fn_authorisedCrewCheck.sqf | 6 ++++- f/briefing/f_loadoutNotes.sqf | 2 +- .../fn_ehSetViewDistance.sqf | 13 +++++----- f/groupMarkers/f_setLocalGroupMarkers.sqf | 2 +- f/groupMarkers/fn_localGroupMarker.sqf | 11 ++++---- f/groupMarkers/fn_localSpecialistMarker.sqf | 7 ++++- .../fn_mapClickTeleportParachute.sqf | 4 ++- f/missionConditions/fn_SetFog.sqf | 5 +++- f/missionConditions/fn_SetTime.sqf | 26 ++++++++++--------- f/setGroupID/fn_setGroupID.sqf | 5 +++- 11 files changed, 52 insertions(+), 31 deletions(-) diff --git a/f/FTMemberMarkers/f_localFTMemberMarker.sqf b/f/FTMemberMarkers/f_localFTMemberMarker.sqf index 2a63ade3a..bf56eedf5 100644 --- a/f/FTMemberMarkers/f_localFTMemberMarker.sqf +++ b/f/FTMemberMarkers/f_localFTMemberMarker.sqf @@ -11,7 +11,7 @@ private ["_mkrName","_mkr","_mkrBorder","_pos","_mkrborderName","_dir"]; // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -params ["_unit"]; +params [["_unit", objNull, [objNull]]]; _mkrName = Format ["mkr_%1",_unit]; _mkrborderName = Format ["mkrB_%1",_unit]; diff --git a/f/authorisedCrew/fn_authorisedCrewCheck.sqf b/f/authorisedCrew/fn_authorisedCrewCheck.sqf index c2527dcce..5d48dc9a1 100644 --- a/f/authorisedCrew/fn_authorisedCrewCheck.sqf +++ b/f/authorisedCrew/fn_authorisedCrewCheck.sqf @@ -17,7 +17,11 @@ params [ ["_restrictcargo", false, [false]] ]; -_fromEH params ["_vehicle", "_vehicleRole", "_unitToCheck"]; +_fromEH params [ + ["_vehicle", objNull, [objNull]], + ["_vehicleRole", "", [""]], + ["_unitToCheck", objNull, [objNull]] +]; _warningMsg = localize "STR_f_UnauthorisedCrew_Warning"; diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index 969321fa8..8b2500661 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -11,7 +11,7 @@ private ["_text","_weps","_items","_fnc_wepMags","_mags","_bp","_maxload","_atta // Local function to set the proper magazine count. _fnc_wepMags = { private ["_wepMags","_magArr","_s"]; - params ["_w"]; + params [["_w", "", [""]]]; //Get possible magazines for weapon _wepMags = getArray (configFile >> "CfgWeapons" >> _w >> "magazines"); diff --git a/f/dynamicViewDistance/fn_ehSetViewDistance.sqf b/f/dynamicViewDistance/fn_ehSetViewDistance.sqf index 3ed0520e7..174dec0b1 100644 --- a/f/dynamicViewDistance/fn_ehSetViewDistance.sqf +++ b/f/dynamicViewDistance/fn_ehSetViewDistance.sqf @@ -3,12 +3,13 @@ // Parameters // Note: _oldCameraOn, _newCameraOn, and _uav are only used for the PlayerViewChanged event. -params [ ["_unit", player], - ["_unit2_or_position", nil], - ["_veh", vehicle player], - ["_oldCameraOn", objNull], - ["_newCameraOn", objNull], - ["_uav", objNull] +params [ + ["_unit", player, [objNull]], + ["_unit2_or_position", nil], + ["_veh", vehicle player, [objNull]], + ["_oldCameraOn", nil], + ["_newCameraOn", nil], + ["_uav", objNull, [objNull]] ]; private _vd = f_var_viewDistance_default; diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index bbb8837d3..53f9c15fa 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -22,7 +22,7 @@ if (!isDedicated && (isNull player)) then // The following code detects what faction the player's slot belongs to, and stores // it in the private variable _unitfaction params [ - ["_unitfaction", toLower (faction (leader group player))] + ["_unitfaction", toLower (faction (leader group player)), [""]] ]; // ==================================================================================== diff --git a/f/groupMarkers/fn_localGroupMarker.sqf b/f/groupMarkers/fn_localGroupMarker.sqf index 6d7da47d7..8322ebeb0 100644 --- a/f/groupMarkers/fn_localGroupMarker.sqf +++ b/f/groupMarkers/fn_localGroupMarker.sqf @@ -2,14 +2,15 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// DECLARE PRIVATE VARIABLES - -// ==================================================================================== - // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -params["_grpName",["_mkrType","b_hq"],"_mkrText",["_mkrColor","ColorBlack"]]; +params [ + ["_grpName", "", [""]], + ["_mkrType", "b_hq", [""]], + ["_mkrText", "", [""]], + ["_mkrColor","ColorBlack", [""]] +]; private _grp = missionNamespace getVariable [_grpName,grpNull]; private _mkrName = format ["mkr_%1",_grpName]; diff --git a/f/groupMarkers/fn_localSpecialistMarker.sqf b/f/groupMarkers/fn_localSpecialistMarker.sqf index a08ec48c3..175f87e22 100644 --- a/f/groupMarkers/fn_localSpecialistMarker.sqf +++ b/f/groupMarkers/fn_localSpecialistMarker.sqf @@ -11,7 +11,12 @@ private ["_mkr"]; // SET KEY VARIABLES // Using variables passed to the script instance, we will create some local variables: -params["_untName",["_mkrType","b_hq"],"_mkrText",["_mkrColor","ColorBlack"]]; +params [ + ["_untName", "", [""]], + ["_mkrType", "b_hq", [""]], + ["_mkrText", "", [""]], + ["_mkrColor","ColorBlack", [""]] +]; private _mkrName = format ["mkr_%1",_untName]; private _unt = missionNamespace getVariable [_untName, objNull]; diff --git a/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf index 403918b23..f2268e8c4 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf @@ -5,7 +5,9 @@ //add aparachute as backpack and restore the old backpack on landing private ["_bp","_bpi"]; -params ["_unit"]; +params [ + ["_unit", objNull, [objNull]] +]; _bp = backpack _unit; _bpi = backPackItems _unit; diff --git a/f/missionConditions/fn_SetFog.sqf b/f/missionConditions/fn_SetFog.sqf index f02e8992a..ded86954c 100644 --- a/f/missionConditions/fn_SetFog.sqf +++ b/f/missionConditions/fn_SetFog.sqf @@ -11,7 +11,10 @@ private ["_strength","_decay","_base"]; // SET KEY VARIABLES // We interpret the values parsed to the script. If the function was called from the parameters those values are used. -params ["_fog", ["_transition",0]]; +params [ + ["_fog", 0, [0]], + ["_transition", 0, [0]] +]; // Exit when using mission settings if ( _fog == 4 ) exitWith {}; diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index cfbf82a48..85eea1d5e 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -46,18 +46,20 @@ _sunset = [floor (_sunsetSunrise select 1), floor (((_sunsetSunrise select 1) % // function for correcting adding hours and minutes to hours and minutes _addTime = { - params ["_time1","_time2"]; - _result = [_time1,_time2] call BIS_fnc_vectorAdd; - while { _result select 1 > 60 } do { // convert extra minutes into hours - _result set [1,(_result select 1) - 60]; - _result set [0,(_result select 0) + 1]; - }; - // make sure hour is in range [0,23] - _result set [0,(_result select 0) % 24]; - if (_result select 0 < 0) then { - _result set [0,(_result select 0) + 24]; - }; - _result + params [ + ["_time1", [], [[]], 2], + ["_time2", [], [[]], 2] + ]; + _result = _time1 vectorAdd _time2; + while { _result select 1 > 60 } do { // convert extra minutes into hours + _result = _result vectorAdd [1,-60]; + }; + // make sure hour is in range [0,23] + _result set [0,(_result select 0) % 24]; + if (_result select 0 < 0) then { + _result = _result vectorAdd [24,0]; + }; + _result }; // ==================================================================================== diff --git a/f/setGroupID/fn_setGroupID.sqf b/f/setGroupID/fn_setGroupID.sqf index c48d03fef..cf08bdb73 100644 --- a/f/setGroupID/fn_setGroupID.sqf +++ b/f/setGroupID/fn_setGroupID.sqf @@ -5,7 +5,10 @@ // DECLARE VARIABLES private ["_grp"]; -params ["_grp_var", "_grp_id"]; +params [ + ["_grp_var", "", [""]], + ["_grp_id", "", [""]] +]; // Check first if the group exists From f8bf58cbe01812f933e40b94c87d6ce3410cf73b Mon Sep 17 00:00:00 2001 From: s Date: Sat, 5 May 2018 01:29:48 +0200 Subject: [PATCH 136/407] setAISkill: Fix bug in argument parsing. We cannot use params here because the argument is an array of objects. --- f/setAISkill/f_setAISkill.sqf | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/f/setAISkill/f_setAISkill.sqf b/f/setAISkill/f_setAISkill.sqf index dd60ed1c2..02ea3478e 100644 --- a/f/setAISkill/f_setAISkill.sqf +++ b/f/setAISkill/f_setAISkill.sqf @@ -9,18 +9,11 @@ sleep 2; // ==================================================================================== -// DECLARE VARIABLES AND FUNCTIONS - -// If an array of units was passed, the skill change will apply only to the units in the array -params [["_units", [], [[]]]]; - -// ==================================================================================== - // RUN THE SCRIPT ONLY SERVER SIDE -//If _units is empty, then it is called from init.sqf and should only run on the server. +//If the argument is an empty array, then it is called from init.sqf and should only run on the server. //Otherwise it should be allowed to run on the server or on the headless client. -if (count _units == 0) then { +if (count _this == 0) then { if (!isServer) exitWith {}; } else { if (!isServer && hasInterface) exitWith {}; @@ -30,9 +23,7 @@ if (count _units == 0) then { // SET KEY VARIABLES // If an array of units was passed, the skill change will apply only to the units in the array -if (count _units == 0) then { - _units = allUnits; -}; +private _units = if (count _this > 0) then [{_this},{allUnits}]; // ==================================================================================== From 0c1a4d3fe4870873039f0efe8662acc2fa4d41cc Mon Sep 17 00:00:00 2001 From: s Date: Sat, 19 May 2018 13:45:43 +0200 Subject: [PATCH 137/407] Briefing: Add check for virtual spectators to prevent default error message --- briefing.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/briefing.sqf b/briefing.sqf index 4fadf5e7d..e9b7c778f 100644 --- a/briefing.sqf +++ b/briefing.sqf @@ -179,6 +179,12 @@ if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exit ["zeus"] call _fnc_debug; }; +// ==================================================================================== + +// BRIEFING: Virtual Spectator +// This is needed to prevent the "Faction not defined" error message. + +if (typeOf player isEqualTo "VirtualSpectator_F") exitwith {}; // ==================================================================================== From 1e6a7721ed2d55a1b66312878aa660083725ff6f Mon Sep 17 00:00:00 2001 From: s Date: Sat, 19 May 2018 14:48:33 +0200 Subject: [PATCH 138/407] FTMemberMarkers: Don't run on headless client or dedicated server --- f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf index 45358be79..91bd80cc2 100644 --- a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf +++ b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf @@ -10,6 +10,8 @@ // // ==================================================================================== +if (!hasInterface) exitWith {}; + // MAKE SURE THE PLAYER INITIALIZES PROPERLY if (!isDedicated && (isNull player)) then { From 114fcf91214d996fb37f212403253fae25989943 Mon Sep 17 00:00:00 2001 From: s Date: Tue, 17 Jul 2018 20:16:31 +0200 Subject: [PATCH 139/407] settings => setting. for consistency. --- stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stringtable.xml b/stringtable.xml index 645a5c1b7..8bd9bb967 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -84,7 +84,7 @@ Nuit
- Use mission settings + Use mission setting Weather From 6da57cda3ef74c488fcafb74f64021d368f6fb41 Mon Sep 17 00:00:00 2001 From: s Date: Wed, 18 Jul 2018 12:52:54 +0200 Subject: [PATCH 140/407] Add stringtable entries for fog and wind settings --- description.ext | 8 ++++---- stringtable.xml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/description.ext b/description.ext index d225512fb..e2f56490f 100644 --- a/description.ext +++ b/description.ext @@ -171,17 +171,17 @@ class Params class f_param_fog { - title = "Override Fog"; + title = "$STR_f_param_fog"; values[] = {0,1,2,4}; - texts[] = {"No Fog","Light Fog","Heavy Fog","Use default"}; + texts[] = {"$STR_f_param_fog_Option0","$STR_f_param_fog_Option1","$STR_f_param_fog_Option2","$STR_f_param_fog_Option4"}; default = 4; }; class f_param_wind { - title = "Override Wind"; + title = "$STR_f_param_wind"; values[] = {0,1,2,4}; - texts[] = {"No Wind","Light Wind","Heavy Wind","Use default"}; + texts[] = {"$STR_f_param_wind_Option0","$STR_f_param_wind_Option1","$STR_f_param_wind_Option2","$STR_f_param_wind_Option4"}; default = 4; }; diff --git a/stringtable.xml b/stringtable.xml index 8bd9bb967..daacfdd1c 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -144,6 +144,36 @@ Niebla Brouillard + + Override Fog + + + No Fog + + + Light Fog + + + Heavy Fog + + + Use default + + + Override Wind + + + No Wind + + + Light Wind + + + Heavy Wind + + + Use default + AI Skill (BLUFOR) Úroveň AI (BLUFOR) From d073aabfda81e38047543808a5d4de48087a7668 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 18 Jul 2018 15:23:15 +0200 Subject: [PATCH 141/407] Update stringtable.xml --- stringtable.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stringtable.xml b/stringtable.xml index daacfdd1c..45ccd1ffd 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -157,7 +157,7 @@ Heavy Fog - Use default + Use mission setting Override Wind @@ -172,7 +172,7 @@ Heavy Wind - Use default + Use mission setting AI Skill (BLUFOR) From d420e7a785b59f5844eb6a5aba4fe87ebce8fb69 Mon Sep 17 00:00:00 2001 From: s Date: Wed, 18 Jul 2018 19:26:28 +0200 Subject: [PATCH 142/407] safeStart: update admin briefing page --- f/briefing/f_briefing_admin.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/f/briefing/f_briefing_admin.sqf b/f/briefing/f_briefing_admin.sqf index 6907550ba..e9da86c24 100644 --- a/f/briefing/f_briefing_admin.sqf +++ b/f/briefing/f_briefing_admin.sqf @@ -68,11 +68,11 @@ These endings are available. To trigger an ending click on its link.

_briefing = _briefing + " SAFE START CONTROL
-|- -Increase Safe Start timer by 1 minute
+|- +Increase Safe Start timer by 30 seconds
-|- -Decrease Safe Start timer by 1 minute
+|- +Decrease Safe Start timer by 30 seconds
|- Begin Safe Start timer
From bc55a6fc2465f1d276e5ae2d405228e6c9943554 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Sat, 15 Sep 2018 13:41:22 +0100 Subject: [PATCH 143/407] Fixed spectator free-cam markers disappearing. Also now using BIS method to remove death blur --- description.ext | 8 +++---- f/spect/fn_activateSpectator.sqf | 36 +++++++++++++------------------- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/description.ext b/description.ext index e2f56490f..ae5a2d580 100644 --- a/description.ext +++ b/description.ext @@ -15,7 +15,7 @@ onLoadName = "*** Insert Mission Name Here. ***"; respawn = 1; respawndelay = 3; respawnOnStart = 0; -respawnTemplates[] = {"Seagull"}; +respawnTemplates[] = {"F_Spectator"}; // ============================================================================================ @@ -323,7 +323,7 @@ class CfgDebriefing // ============================================================================================ class CfgRespawnTemplates { - class Seagull + class F_Spectator { onPlayerRespawn = "f\spect\fn_activateSpectator.sqf"; }; @@ -349,12 +349,12 @@ class CfgUnitInsignia { #include "f\assignGear\insignia\define.hpp" }; class CfgRemoteExec -{ +{ // List of script functions allowed to be sent from client via remoteExec class Functions { mode = 2; - }; + }; // List of script commands allowed to be sent from client via remoteExec class Commands { diff --git a/f/spect/fn_activateSpectator.sqf b/f/spect/fn_activateSpectator.sqf index 45515cbc9..a4644b0cc 100644 --- a/f/spect/fn_activateSpectator.sqf +++ b/f/spect/fn_activateSpectator.sqf @@ -1,25 +1,19 @@ - -params [["_seagull", objNull, [objNull]]]; - -[] spawn { - - if (f_param_debugMode == 1) then { - diag_log "waiting to disable BIS death blur"; - }; - waitUntil {sleep 0.1; ppEffectEnabled BIS_DeathBlur}; - - if (f_param_debugMode == 1) then { - diag_log "diabling BIS death blur"; - }; - BIS_DeathBlur ppEffectEnable false; -}; if (f_param_debugMode == 1) then { diag_log "activating spectator"; }; -[] spawn { - sleep 3; - ["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; -}; -//Remove the bird -deleteVehicle _seagull; +// 'Cinematic' delay before spectator activates +sleep 3; + +// Disable post-processing effects +// Borrowed from BIS_fnc_respawnSpectator +waitUntil {missionnamespace getvariable ["BIS_fnc_feedback_allowDeathScreen", true]}; +BIS_fnc_feedback_allowPP = false; + +// Create a new (alive) unit to prevent draw3D bug with floating head tags +// Credit to SilentSpike: https://github.com/acemod/ACE3/pull/5868 +private _cameraUnit = (createGroup sideLogic) createUnit ["VirtualMan_F", player, [], 0, "NONE"]; +_cameraUnit enableSimulation false; +selectPlayer _cameraUnit; + +["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; From 71b755115013507455afd1c0801374616de1443f Mon Sep 17 00:00:00 2001 From: s Date: Sat, 15 Sep 2018 19:37:43 +0200 Subject: [PATCH 144/407] Zeus: fix disableThermals for vehicles. --- f/briefing/f_briefing_admin.sqf | 2 +- f/zeus/fn_zeusInit.sqf | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/f/briefing/f_briefing_admin.sqf b/f/briefing/f_briefing_admin.sqf index 6907550ba..7e76e75fe 100644 --- a/f/briefing/f_briefing_admin.sqf +++ b/f/briefing/f_briefing_admin.sqf @@ -104,7 +104,7 @@ if !(isNull (getAssignedCuratorLogic player)) then {hintsilent 'ZEUS already ass };"">Assign ZEUS to host.
|- Add players and playable units to ZEUS object list.
+if (isNull (getAssignedCuratorLogic player)) then {hintsilent 'Assign ZEUS first!'} else {[player, allUnits] remoteExec ['f_fnc_zeusAddObjects', 2]; hintsilent 'Added all units.'};"">Add all units to ZEUS object list.
|- Date: Thu, 27 Sep 2018 00:42:17 +0200 Subject: [PATCH 145/407] safeStart: move safeStart code from briefing to component --- f/briefing/f_briefing_admin.sqf | 2 -- f/safeStart/f_safeStartLoop.sqf | 12 ++++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/f/briefing/f_briefing_admin.sqf b/f/briefing/f_briefing_admin.sqf index e9da86c24..397166a93 100644 --- a/f/briefing/f_briefing_admin.sqf +++ b/f/briefing/f_briefing_admin.sqf @@ -78,8 +78,6 @@ Decrease Safe Start timer by 30 seconds
Begin Safe Start timer
|- End Safe Start timer
diff --git a/f/safeStart/f_safeStartLoop.sqf b/f/safeStart/f_safeStartLoop.sqf index 9b327a8d4..0142844ea 100644 --- a/f/safeStart/f_safeStartLoop.sqf +++ b/f/safeStart/f_safeStartLoop.sqf @@ -9,13 +9,16 @@ if !(isServer) exitWith {}; sleep 2; //Intervals for checking the timer and for sending notifications -private _intervalCheck = 10; -private _intervalNotification = _intervalCheck * 6; //Must be a multiple of _intervalCheck +//_intervalCheck should be a small number to avoid a delay when the +//safeStart is being ended using the briefing page. +private _intervalCheck = 2; +private _intervalNotification = _intervalCheck * 30; //Must be a multiple of _intervalCheck private _started = false; while {f_param_mission_timer > 0} do { // Broadcast remaining time to players + // The _started flag makes sure it is shown at the beginning of the mission. if (!_started || f_param_mission_timer % _intervalNotification == 0) then { ["SafeStart",[format["Time Remaining: %1 min",(f_param_mission_timer / 60) toFixed 1]]] remoteExec ["bis_fnc_showNotification", 0]; _started = true; @@ -23,16 +26,13 @@ while {f_param_mission_timer > 0} do { uisleep _intervalCheck; // Sleep _intervalCheck seconds - // If mission timer has been terminated by admin briefing, simply exit - if (f_param_mission_timer < 0) exitWith {}; - // Reduce the mission timer by _intervalCheck seconds f_param_mission_timer = f_param_mission_timer - _intervalCheck; publicVariable "f_param_mission_timer"; }; //Once the mission timer has reached 0, disable the safeties -if (f_param_mission_timer == 0) then { +if (f_param_mission_timer <= 0) then { // Broadcast message to players ["SafeStartMissionStarting",["Safe start ended!"]] remoteExec ["bis_fnc_showNotification", 0]; From 9cd0239f3eb87e74930a3dfbbdd85087343bb060 Mon Sep 17 00:00:00 2001 From: s Date: Sat, 29 Sep 2018 20:06:30 +0200 Subject: [PATCH 146/407] zeus: Run event handler locally --- f/functions.hpp | 1 + f/zeus/fn_zeusInit.sqf | 26 ++++++++++---------------- f/zeus/fn_zeusInitLocal.sqf | 28 ++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 f/zeus/fn_zeusInitLocal.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 6c540d606..e1794b3e1 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -95,6 +95,7 @@ class F // Defines the "owner" class zeusInit{}; class zeusAddAddons{}; class zeusAddObjects{}; + class zeusInitLocal{}; }; class safeStart { diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index 14df871f6..f8d2c4797 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -79,22 +79,16 @@ if (_unitIsCurator) then { _curator setCuratorWaypointCost 0; {_curator setCuratorCoef [_x,0];} forEach ["place","edit","delete","destroy","group","synchronize"]; -// Add event-handler for setAISkill -private _curatorEH = _curator getVariable ["f_curator_EH", -1]; -if (_curatorEH == -1) then { - _curatorEH = _curator addEventHandler ['CuratorObjectPlaced',{ - params[ - ["_curator", objNull, [objNull]], - ["_entity", objNull, [objNull]] - ]; - { - [_x] call f_fnc_setAISkill; - } forEach crew _entity; - if(!isNil "f_var_disableThermals_enabled" && {f_var_disableThermals_enabled}) then { - _entity disableTIEquipment true; - } - }]; - _curator setVariable ["f_curator_EH", _curatorEH]; +// Wait until the curator module is linked with its (playable) unit: +[_curator] spawn { + params [ + ["_curator", objNull] + ]; + + waitUntil {sleep 1; ! isNull getAssignedCuratorUnit _curator}; + + // Run local code. e.g. event handler for placed units + [_curator] remoteExec ['f_fnc_zeusInitLocal', _curator, true]; }; // If announce is set to true, the new curator will be announced to all players diff --git a/f/zeus/fn_zeusInitLocal.sqf b/f/zeus/fn_zeusInitLocal.sqf new file mode 100644 index 000000000..e75b36ced --- /dev/null +++ b/f/zeus/fn_zeusInitLocal.sqf @@ -0,0 +1,28 @@ +// F3 Zeus Support - Add Addons +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +params [ + ["_curator", objNull] +]; + +//if (! local _curator) exitWith {}; + +private _curatorEH = _curator getVariable ["f_curator_EH", -1]; +if (_curatorEH != -1) exitWith {}; + +// Add event-handler: +_curatorEH = _curator addEventHandler ['CuratorObjectPlaced',{ + + params[ + ["_curator", objNull, [objNull]], + ["_entity", objNull, [objNull]] + ]; + { + [_x] call f_fnc_setAISkill; + } forEach crew _entity; + if(!isNil "f_var_disableThermals_enabled" && {f_var_disableThermals_enabled}) then { + _entity disableTIEquipment true; + }; +}]; +_curator setVariable ["f_curator_EH", _curatorEH]; From c8f2911c802b75ef2b435422d4d3422b06a5dccb Mon Sep 17 00:00:00 2001 From: s Date: Sat, 6 Oct 2018 18:04:26 +0200 Subject: [PATCH 147/407] SQM: Update classes for vehicles. Remove Marid CO. --- mission.sqm | 328 +++++++++------------------------------------------- 1 file changed, 55 insertions(+), 273 deletions(-) diff --git a/mission.sqm b/mission.sqm index e8ca07d51..87171f6f5 100644 --- a/mission.sqm +++ b/mission.sqm @@ -646,10 +646,10 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH3"; - textures="Opfor"; + pylons=";;"; }; id=19; - type="O_Heli_Light_02_unarmed_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item20 { @@ -665,10 +665,10 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH4"; - textures="Opfor"; + pylons=";;"; }; id=20; - type="O_Heli_Light_02_unarmed_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item21 { @@ -684,10 +684,10 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH5"; - textures="Opfor"; + pylons=";;"; }; id=21; - type="O_Heli_Light_02_unarmed_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item22 { @@ -703,10 +703,10 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH6"; - textures="Opfor"; + pylons=";;"; }; id=22; - type="O_Heli_Light_02_unarmed_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item23 { @@ -722,10 +722,10 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH7"; - textures="Opfor"; + pylons=";;"; }; id=23; - type="O_Heli_Light_02_unarmed_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item24 { @@ -741,10 +741,10 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH8"; - textures="Opfor"; + pylons=";;"; }; id=24; - type="O_Heli_Light_02_unarmed_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item25 { @@ -754,7 +754,7 @@ class Mission position[]={2381.1594,7.5568428,1301.3188}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; @@ -763,7 +763,7 @@ class Mission textures="Hex"; }; id=25; - type="O_APC_Wheeled_02_rcws_F"; + type="O_APC_Wheeled_02_rcws_v2_F"; }; class Item26 { @@ -773,7 +773,7 @@ class Mission position[]={2423.8577,7.5568428,1301.0942}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; @@ -782,7 +782,7 @@ class Mission textures="Hex"; }; id=26; - type="O_APC_Wheeled_02_rcws_F"; + type="O_APC_Wheeled_02_rcws_v2_F"; }; class Item27 { @@ -792,7 +792,7 @@ class Mission position[]={2475.9973,7.5568428,1300.3062}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; @@ -801,7 +801,7 @@ class Mission textures="Hex"; }; id=27; - type="O_APC_Wheeled_02_rcws_F"; + type="O_APC_Wheeled_02_rcws_v2_F"; }; class Item28 { @@ -811,7 +811,7 @@ class Mission position[]={2529.1165,7.5568428,1300.1157}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; @@ -820,7 +820,7 @@ class Mission textures="Hex"; }; id=28; - type="O_APC_Wheeled_02_rcws_F"; + type="O_APC_Wheeled_02_rcws_v2_F"; }; class Item29 { @@ -3831,10 +3831,10 @@ class Mission class Attributes { skill=0.60000002; - textures="Opfor"; + pylons="PylonWeapon_2000Rnd_65x39_belt;PylonRack_12Rnd_missiles;"; }; id=144; - type="O_Heli_Light_02_v2_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item112 { @@ -4136,10 +4136,10 @@ class Mission class Attributes { skill=0.60000002; - textures="Opfor"; + pylons="PylonWeapon_2000Rnd_65x39_belt;PylonRack_12Rnd_missiles;"; }; id=154; - type="O_Heli_Light_02_v2_F"; + type="O_Heli_Light_02_dynamicLoadout_F"; }; class Item117 { @@ -10670,52 +10670,8 @@ class Mission side="East"; class Entities { - items=3; + items=2; class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2381.1594,5.0014391,1301.3689}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_COV_C"; - description="CSAT Command Vehicle Commander"; - isPlayable=1; - }; - id=378; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.97000003; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 { dataType="Object"; class PositionInfo @@ -10736,7 +10692,7 @@ class Mission id=379; type="O_crew_F"; }; - class Item2 + class Item1 { dataType="Object"; class PositionInfo @@ -10744,7 +10700,7 @@ class Mission position[]={2381.1594,5.0014391,1301.3689}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -10765,25 +10721,14 @@ class Mission { class LinkIDProvider { - nextID=3; + nextID=2; }; class Links { - items=3; + items=2; class Item0 { linkID=0; - item0=378; - item1=25; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; item0=379; item1=25; class CustomData @@ -10792,9 +10737,9 @@ class Mission turretPath[]={0}; }; }; - class Item2 + class Item1 { - linkID=2; + linkID=1; item0=380; item1=25; class CustomData @@ -11571,52 +11516,8 @@ class Mission side="East"; class Entities { - items=3; + items=2; class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2423.8577,5.0014391,1301.1443}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_AV_C"; - description="CSAT Alpha Vehicle Commander"; - isPlayable=1; - }; - id=399; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 { dataType="Object"; class PositionInfo @@ -11637,7 +11538,7 @@ class Mission id=400; type="O_crew_F"; }; - class Item2 + class Item1 { dataType="Object"; class PositionInfo @@ -11645,7 +11546,7 @@ class Mission position[]={2423.8577,5.0014391,1301.1443}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -11666,25 +11567,14 @@ class Mission { class LinkIDProvider { - nextID=3; + nextID=2; }; class Links { - items=3; + items=2; class Item0 { linkID=0; - item0=399; - item1=26; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; item0=400; item1=26; class CustomData @@ -11693,9 +11583,9 @@ class Mission turretPath[]={0}; }; }; - class Item2 + class Item1 { - linkID=2; + linkID=1; item0=401; item1=26; class CustomData @@ -12472,52 +12362,8 @@ class Mission side="East"; class Entities { - items=3; + items=2; class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2475.9973,5.0014391,1300.3562}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_BV_C"; - description="CSAT Bravo Vehicle Commander"; - isPlayable=1; - }; - id=420; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1.01; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 { dataType="Object"; class PositionInfo @@ -12561,7 +12407,7 @@ class Mission nAttributes=1; }; }; - class Item2 + class Item1 { dataType="Object"; class PositionInfo @@ -12569,7 +12415,7 @@ class Mission position[]={2475.9973,5.0014391,1300.3562}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -12590,25 +12436,14 @@ class Mission { class LinkIDProvider { - nextID=3; + nextID=2; }; class Links { - items=3; + items=2; class Item0 { linkID=0; - item0=420; - item1=27; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; item0=421; item1=27; class CustomData @@ -12617,9 +12452,9 @@ class Mission turretPath[]={0}; }; }; - class Item2 + class Item1 { - linkID=2; + linkID=1; item0=422; item1=27; class CustomData @@ -13396,52 +13231,8 @@ class Mission side="East"; class Entities { - items=3; + items=2; class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={2529.1165,5.0014391,1300.1658}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - rank="SERGEANT"; - init="[""vc"",this] call f_fnc_assignGear;"; - name="UnitCSAT_CV_C"; - description="CSAT Charlie Vehicle Commander"; - isPlayable=1; - }; - id=441; - type="O_crew_F"; - class CustomAttributes - { - class Attribute0 - { - property="pitch"; - expression="_this setpitch _value;"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=0.95999998; - }; - }; - }; - nAttributes=1; - }; - }; - class Item1 { dataType="Object"; class PositionInfo @@ -13462,7 +13253,7 @@ class Mission id=442; type="O_crew_F"; }; - class Item2 + class Item1 { dataType="Object"; class PositionInfo @@ -13470,7 +13261,7 @@ class Mission position[]={2529.1165,5.0014391,1300.1658}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -13491,25 +13282,14 @@ class Mission { class LinkIDProvider { - nextID=3; + nextID=2; }; class Links { - items=3; + items=2; class Item0 { linkID=0; - item0=441; - item1=28; - class CustomData - { - role=2; - turretPath[]={1}; - }; - }; - class Item1 - { - linkID=1; item0=442; item1=28; class CustomData @@ -13518,9 +13298,9 @@ class Mission turretPath[]={0}; }; }; - class Item2 + class Item1 { - linkID=2; + linkID=1; item0=443; item1=28; class CustomData @@ -30722,9 +30502,11 @@ class Mission skill=0.60000002; init="[""v_helo_l"",this,""syndikat""] call f_fnc_assignGear"; name="VehSyn_TH1_1"; + textures="Green"; + pylons=";;"; }; id=1027; - type="I_Heli_light_03_unarmed_F"; + type="I_Heli_light_03_dynamicLoadout_F"; }; class Item349 { From ac10f65675aa354fc26fecf24b9d83df28934d37 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 21 Oct 2018 18:11:44 +0200 Subject: [PATCH 148/407] Fix cases --- f/functions.hpp | 4 ++-- ws_fnc/config.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/f/functions.hpp b/f/functions.hpp index 399d1a564..7e5ccc8b6 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -58,8 +58,8 @@ class F // Defines the "owner" }; class setAISkill { - file = "f\setAISKill"; - class setAISKill{}; + file = "f\setAISkill"; + class setAISkill{}; }; class mapClickTeleport { diff --git a/ws_fnc/config.hpp b/ws_fnc/config.hpp index 01c9ef00d..7f61b8068 100644 --- a/ws_fnc/config.hpp +++ b/ws_fnc/config.hpp @@ -3,7 +3,7 @@ class WS class debug { - file = "ws_fnc\dbg"; + file = "ws_fnc\Dbg"; class debugText {}; class typeCheck {}; class clipboardCode {}; From e28a75e447ff2c6230e6481ca88d1c506ccd2131 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sat, 10 Nov 2018 16:44:58 +0100 Subject: [PATCH 149/407] AssignGearAI: Use "r" class for other soldiers (#194) * AssignGearAI: Use "r" class for other soldiers * AssignGearAI: Do not apply rifleman class to unarmed units by default * Update f/assignGear/f_assignGear_AI.sqf --- f/assignGear/f_assignGear_AI.sqf | 79 +++++++++++++++----------------- 1 file changed, 37 insertions(+), 42 deletions(-) diff --git a/f/assignGear/f_assignGear_AI.sqf b/f/assignGear/f_assignGear_AI.sqf index 20394358c..b36697b74 100644 --- a/f/assignGear/f_assignGear_AI.sqf +++ b/f/assignGear/f_assignGear_AI.sqf @@ -9,27 +9,23 @@ if !(isServer) exitWith {}; // ==================================================================================== -// DECLARE PRIVATE VARIABLES - -private ["_units","_unit","_faction","_known","_excludeFactions","_unitClasses"]; - -// ==================================================================================== - // SETUP CUSTOM VARIABLES // The default gear type picked when no corresponding entry is found in the _unitClasses array // Set _defaultclass to "" to let these units keep their default gear -_defaultclass = ""; +// Be careful not to apply armed loadouts to units that should not be armed (e.g. civilians) +private _defaultclass = ""; // The factions that should be ignored -_excludeFactions = ["civ_f","blu_gen_f"]; +private _excludeFactions = ["civ_f","blu_gen_f"]; // Other factions: //["blu_f","blu_t_f","opf_f","opf_t_f","ind_f","ind_c_f","blu_g_f","opf_g_f","ind_g_f" // The unit classes and their corresponding F3 Assign Gear Component type -_unitClasses = [ +private _unitClasses = [ + ["_unarmed_" , "" ], ["_officer_" , "co" ], ["_colonel_" , "co" ], ["_sl_" , "dc" ], @@ -77,8 +73,9 @@ _unitClasses = [ ["_Bandit_5_" , "r" ], ["_Bandit_6_" , "gren" ], ["_Bandit_7_" , "car" ], - ["_Bandit_8_" , "engm" ] - + ["_Bandit_8_" , "engm" ], + + ["_soldier_" , "r" ] // No comma after the last array! ]; @@ -86,40 +83,38 @@ _unitClasses = [ // ==================================================================================== // Interpret parameters -_units = if (count _this == 0) then [{waitUntil {scriptDone f_script_setLocalVars};f_var_men},{_this}]; +private _units = if (count _this == 0) then [{waitUntil {scriptDone f_script_setLocalVars};f_var_men},{_this}]; + +//Only process units that have not been touched by the F3 Assign Gear Component +_units = _units select { ! (_x getvariable ["f_var_assignGear_done", false]) }; +//Only process non-playerableUnits +_units = _units select {!(_x in playableUnits) && (_x isKindOf "Man")}; // LOOP THROUGH AI UNITS AND ASSIGN GEAR { sleep 0.1; - _unit = _x; - - // Check if the unit was already touched by the F3 Assign Gear Component - if (!(_unit getvariable ["f_var_assignGear_done", false]) && {!(_unit in playableUnits) && (_unit isKindOf "Man")}) then { - - _faction = toLower (faction _unit); - - // If the unit's faction is allowed, proceed - if !(_faction in _excludeFactions) then { - _known = false; - { - _known = (toLower (typeOf _unit)) find (toLower (_x select 0)) != -1; - - // If the unit's classname corresponds to a class in the assignment array, set it's gear accordingly - if (_known) exitWith { - [_x select 1, _unit] remoteExecCall ["f_fnc_assignGear", _unit]; - }; - } forEach _unitClasses; - - // If the class is not in the _unitClasses array - if (!_known) then { - if (_defaultclass != "") then { - [_defaultclass, _unit] remoteExecCall ["f_fnc_assignGear", _unit]; - }; - }; - - } else { - // If the faction is not allowed, set the assignGear variable to true to ignore the unit from now on - _x setvariable ["f_var_assignGear_done", true,true]; - }; + private _unit = _x; + private _faction = toLower (faction _unit); + + // If the unit's faction is allowed, proceed + if !(_faction in _excludeFactions) then { + + // If the unit's classname corresponds to a class in the assignment array, use that gear class + private _classIndex = _unitClasses findIf {toLower (typeOf _unit) find toLower (_x select 0) != -1}; + + //Set the class to the _defaultclass or the one found in the _unitClasses array. + private _class = _defaultclass; + if (_classIndex != -1) then { + _class = _unitClasses select _classIndex select 1; + }; + + // Set the gear according to the class + if (_class != "") then { + [_class, _unit] remoteExecCall ["f_fnc_assignGear", _unit]; + }; + + } else { + // If the faction is not allowed, set the assignGear variable to true to ignore the unit from now on + _x setvariable ["f_var_assignGear_done", true,true]; }; } foreach _units; From 9be2d621e1b01737fe6b1bf4461fa533dfe2e801 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sun, 11 Nov 2018 17:13:55 +0100 Subject: [PATCH 150/407] groupMarker: support JIP groups (#182) See #142 --- f/groupMarkers/fn_localGroupMarker.sqf | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/f/groupMarkers/fn_localGroupMarker.sqf b/f/groupMarkers/fn_localGroupMarker.sqf index 8322ebeb0..ebc287357 100644 --- a/f/groupMarkers/fn_localGroupMarker.sqf +++ b/f/groupMarkers/fn_localGroupMarker.sqf @@ -18,22 +18,18 @@ private _mkrName = format ["mkr_%1",_grpName]; // ==================================================================================== // WAIT FOR GROUP TO EXIST IN-MISSION -// We wait for the group to have members before creating the marker. -if (isNull _grp) then +//If the group does not exist in this mission file, then we can exit. +if (isNull _grp) exitWith {}; + +// We wait for the group to have members before creating the marker. +if (count units _grp == 0) then { - waitUntil { sleep 3; _grp = missionNamespace getVariable [_grpName,grpNull]; count (units _grp) > 0 }; + waitUntil { sleep 5; _grp = missionNamespace getVariable [_grpName,grpNull]; count units _grp > 0 }; }; // ==================================================================================== -// EXIT FOR EMPTY GROUPS (PART I) -// If the group is empty, this script exits. - -if (isnil "_grp") exitWith {}; - -// ==================================================================================== - // CREATE MARKER // Depending on the value of _mkrType a different type of marker is created. From d56ec8ae3b32957b82bd48af5864a5359608da66 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 28 Nov 2018 13:38:54 +0100 Subject: [PATCH 151/407] Issue 130: mapClickTeleport refactor and support for vehicles (#157) * mapClickTeleport refactor and support for vehicles * mapClickTeleport: add EH to detect closing of map. Fix script name in init.sqf. * mapClickTeleport: Add option to teleport units outside of vehicles * mapClickTeleport: Enable damage and disable captivity immediately after vehicle has landed * mapClickTeleport: renamed f_var_mapClickTeleport_Outside and added to init.sqf * mapClickTeleport: show the teleport notification to vehicle crew as well --- f/functions.hpp | 6 +- ...eportAction.sqf => f_mapClickTeleport.sqf} | 54 ++++++------ .../fn_mapClickTeleportAction.sqf | 86 +++++++++++++++++++ .../fn_mapClickTeleportBriefing.sqf | 43 ++++++++++ .../fn_mapClickTeleportGroup.sqf | 51 ----------- .../fn_mapClickTeleportParachute.sqf | 85 ++++++++++++++---- .../fn_mapClickTeleportRemoveAction.sqf | 14 +++ .../fn_mapClickTeleportSetPos.sqf | 71 +++++++++++++++ .../fn_mapClickTeleportUnit.sqf | 71 --------------- init.sqf | 13 +-- 10 files changed, 321 insertions(+), 173 deletions(-) rename f/mapClickTeleport/{f_mapClickTeleportAction.sqf => f_mapClickTeleport.sqf} (60%) create mode 100644 f/mapClickTeleport/fn_mapClickTeleportAction.sqf create mode 100644 f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf delete mode 100644 f/mapClickTeleport/fn_mapClickTeleportGroup.sqf create mode 100644 f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf create mode 100644 f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf delete mode 100644 f/mapClickTeleport/fn_mapClickTeleportUnit.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 7e5ccc8b6..827c865f1 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -64,9 +64,11 @@ class F // Defines the "owner" class mapClickTeleport { file = "f\mapClickTeleport"; - class mapClickTeleportUnit{}; - class mapClickTeleportGroup{}; + class mapClickTeleportAction{}; + class mapClickTeleportSetPos{}; class mapClickTeleportParachute{}; + class mapClickTeleportRemoveAction{}; + class mapClickTeleportBriefing{}; }; class nametag { diff --git a/f/mapClickTeleport/f_mapClickTeleportAction.sqf b/f/mapClickTeleport/f_mapClickTeleport.sqf similarity index 60% rename from f/mapClickTeleport/f_mapClickTeleportAction.sqf rename to f/mapClickTeleport/f_mapClickTeleport.sqf index 042684a82..a13f69024 100644 --- a/f/mapClickTeleport/f_mapClickTeleportAction.sqf +++ b/f/mapClickTeleport/f_mapClickTeleport.sqf @@ -3,13 +3,13 @@ // ==================================================================================== // Only run this for players -if (isDedicated) exitWith{}; +if (!hasInterface) exitWith{}; // ==================================================================================== // MAKE SURE THE PLAYER INITIALIZES PROPERLY -if (!isDedicated && (isNull player)) then +if (isNull player) then { waitUntil {sleep 0.1; !isNull player}; }; @@ -18,23 +18,24 @@ if (!isDedicated && (isNull player)) then // SET UP VARIABLES // Make sure all global variables are initialized -if (isNil "f_var_mapClickTeleport_Uses") then {f_var_mapClickTeleport_Uses = 0}; -if (isNil "f_var_mapClickTeleport_TimeLimit") then {f_var_mapClickTeleport_TimeLimit = 0}; -if (isNil "f_var_mapClickTeleport_GroupTeleport") then {f_var_mapClickTeleport_GroupTeleport = false}; -if (isNil "f_var_mapClickTeleport_Units") then {f_var_mapClickTeleport_Units = []}; -if (isNil "f_var_mapClickTeleport_Height") then {f_var_mapClickTeleport_Height = 0}; +if (isNil "f_var_mapClickTeleport_Uses") then {f_var_mapClickTeleport_Uses = 0}; +if (isNil "f_var_mapClickTeleport_TimeLimit") then {f_var_mapClickTeleport_TimeLimit = 0}; +if (isNil "f_var_mapClickTeleport_GroupTeleport") then {f_var_mapClickTeleport_GroupTeleport = false}; +if (isNil "f_var_mapClickTeleport_Units") then {f_var_mapClickTeleport_Units = []}; +if (isNil "f_var_mapClickTeleport_Height") then {f_var_mapClickTeleport_Height = 0}; +if (isNil "f_var_mapClickTeleport_SaferVehicleHALO") then {f_var_mapClickTeleport_SaferVehicleHALO = false}; -// Make sure that no non-existing units have been parsed -{ - if (isNil _x) then { - f_var_mapClickTeleport_Units set [_forEachIndex,objNull]; - } else { - f_var_mapClickTeleport_Units set [_forEachIndex,call compile format ["%1",_x]]; - }; -} forEach f_var_mapClickTeleport_Units; +// Setup the localized strings for the various stages of the component +// Depending on the setting of the height variable the strings either use the teleport or the HALO option. + +private _string = if (f_var_mapClickTeleport_Height == 0) then {"Teleport"} else {"HALO"}; + +f_var_mapClickTeleport_textAction = localize format ["STR_f_mapClick%1Action",_string]; +f_var_mapClickTeleport_textDone = localize format ["STR_f_mapClick%1Done",_string]; +f_var_mapClickTeleport_textSelect = localize format ["STR_f_mapClick%1Select",_string]; // Reduce the array to valid units only -f_var_mapClickTeleport_Units = f_var_mapClickTeleport_Units - [objNull]; +f_var_mapClickTeleport_Units = f_var_mapClickTeleport_Units select {! isNil _x} apply {call compile format ["%1",_x]}; // ==================================================================================== @@ -47,15 +48,18 @@ if (f_var_mapClickTeleport_GroupTeleport && player != leader group player) exit // ==================================================================================== -// SET KEY VARIABLES -// Setup the localized strings for the various stages of the component -// Depending on the setting of the height variable the strings either use the teleport or the HALO option. +// ADD BRIEFING PAGE - HALO +// Add a briefing page for everyone that can use the action or is affected by it -private _string = if (f_var_mapClickTeleport_Height == 0) then {"Teleport"} else {"HALO"}; - -f_var_mapClickTeleport_textAction = localize format ["STR_f_mapClick%1Action",_string]; -f_var_mapClickTeleport_textDone = localize format ["STR_f_mapClick%1Done",_string]; -f_var_mapClickTeleport_textSelect = localize format ["STR_f_mapClick%1Select",_string]; +if (f_var_mapClickTeleport_Height > 0) then { + if (f_var_mapClickTeleport_GroupTeleport) then { + { + [_x] remoteExec ["f_fnc_mapClickTeleportBriefing", _x, true]; + } forEach (units group player); + } else { + [] call f_fnc_mapClickTeleportBriefing; + }; +}; // ==================================================================================== @@ -63,7 +67,7 @@ f_var_mapClickTeleport_textSelect = localize format ["STR_f_mapClick%1Select",_s // Whilst the player is alive we add the teleport action to the player's action menu. // If the player dies we wait until he is alive again and re-add the action. -f_mapClickTeleportAction = player addaction [f_var_mapClickTeleport_textAction,{[] spawn f_fnc_mapClickTeleportUnit},"", 0, false,true,"","_this == player"]; +f_mapClickTeleportAction = player addAction [f_var_mapClickTeleport_textAction,{[] spawn f_fnc_mapClickTeleportAction},"", 0, false,true,"","_this == player"]; if (f_var_mapClickTeleport_TimeLimit > 0) then { sleep f_var_mapClickTeleport_TimeLimit; diff --git a/f/mapClickTeleport/fn_mapClickTeleportAction.sqf b/f/mapClickTeleport/fn_mapClickTeleportAction.sqf new file mode 100644 index 000000000..ae5100dfa --- /dev/null +++ b/f/mapClickTeleport/fn_mapClickTeleportAction.sqf @@ -0,0 +1,86 @@ +// F3 - Mission Maker Teleport +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// SET KEY VARIABLES + +f_var_mapClickTeleport_telePos = nil; +f_var_mapClickTeleport_MapClosed = false; +if (isNil "f_var_mapClickTeleport_Used") then {f_var_mapClickTeleport_Used = 0}; + +// ==================================================================================== +// Eventhandler to detect closing of the map +// in case the player has not clicked on the map to select a teleport position. + +f_var_mapClickTeleport_EHMap = addMissionEventHandler ["Map", { + params ["_mapIsOpened", ""]; + if (!_mapIsOpened) exitWith { + f_var_mapClickTeleport_MapClosed = true; + }; +}]; + +// ==================================================================================== + +// TELEPORT FUNCTIONALITY +// Open the map for the player and display a notification, then set either the player's vehicle +// or the unit to the new position. If the group needs to be teleported too, set the group's position +// as well. + +["MapClickTeleport",[f_var_mapClickTeleport_textSelect]] call BIS_fnc_showNotification; + +["mapClickTeleportEH", "onMapSingleClick", {f_var_mapClickTeleport_telePos = _pos;}] call BIS_fnc_addStackedEventHandler; +openMap [true, false]; +waitUntil {f_var_mapClickTeleport_MapClosed || !isNil "f_var_mapClickTeleport_telePos"}; +["mapClickTeleportEH", "onMapSingleClick"] call BIS_fnc_removeStackedEventHandler; + +removeMissionEventHandler ["Map", f_var_mapClickTeleport_EHMap]; + +//Exit if the map was closed without selecting a position. +if (f_var_mapClickTeleport_MapClosed) exitWith {}; + +//Select units to be teleported +private _units = [player]; +if (f_var_mapClickTeleport_GroupTeleport) then { + _units = units group player; +}; + +// Move player/group +// If the player is in a vehicle and not HALO-ing, the complete vehicle is moved. +// Otherwise the players are teleported individually. + +// Note: +// Vehicles from other group members are not teleported, +// because there are too many edge-cases and we would need to make sure +// that the vehicles don't end up on top of each other (because they cannot be steered) +// e.g. We don't know if that other vehicle has another group leader, +// which could teleport their vehicle themself and we don't want to hijack +// it in that case. +// Also, vehicles that are loaded in cargo should not be teleported. +if (vehicle player != player) then { + if (! isNull isVehicleCargo vehicle player) exitWith {}; + + + // Filter for units that are not in the group-leader's vehicle + // These units still need to be teleported separately. + _units = _units select {vehicle _x != vehicle player}; + + // Teleport the crew outside of the vehicle if HALO-ing and f_var_mapClickTeleport_SaferVehicleHALO is set + if (f_var_mapClickTeleport_Height > 0 && f_var_mapClickTeleport_SaferVehicleHALO) then { + _units append (crew vehicle player); + }; + + // Add the vehicle itself + _units pushBack (vehicle player); +}; + +{ + // Teleport unit/vehicle + [_x, f_var_mapClickTeleport_telePos, f_var_mapClickTeleport_Height] remoteExec ["f_fnc_mapClickTeleportSetPos", _x]; + + // Remove the teleport action from all teleported units + { + [_x] remoteExec ["f_fnc_mapClickTeleportRemoveAction", _x]; + } forEach crew vehicle _x; +} forEach _units; + +openMap [false, false]; diff --git a/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf b/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf new file mode 100644 index 000000000..ac94f9a85 --- /dev/null +++ b/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf @@ -0,0 +1,43 @@ +// F3 - Mission Maker Teleport +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +params [["_unit", objNull, [objNull]]]; + +if (!hasInterface) exitWith {}; + +if (!isDedicated && (isNull player)) then +{ + waitUntil {sleep 0.1; !isNull player}; +}; + +if (_unit != player) exitWith {}; + + +player createDiaryRecord ["diary", ["HALO Jumping 101", +format ["TL/DR - OPEN YOUR PARACHUTE AT 200 METERS +

+A HALO jump consists of three stages: the jump, the decent, and the landing. +

+You will jump from a height of %1 meters. +

+While descending, steer yourself towards the drop zone - +orient yourself in the direction you want to go, then go forward. +

+The recommended open height for a HALO jump is 200 meters. +100 meters is the absolute minimum. +Anything less than 100 meters and you will not survive. +

+When you are getting close to the ground, try to move backwards. +This will slow you down and prevent injuries. +

+If you are being paradropped in a vehicle, +you do not need to do anything. Just sit tight and enjoy the descent. +The vehicle will automatically deploy a parachute at an appropriate time. +If you get out of the vehicle while it is descending, you will not survive. +
+If a group leader initiates the jump while you are not in the same vehicle, +you will jump alongside the vehicle, +but you have your own parachute which must be opened manually. +", f_var_mapClickTeleport_Height] +]]; diff --git a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf b/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf deleted file mode 100644 index b95ef140c..000000000 --- a/f/mapClickTeleport/fn_mapClickTeleportGroup.sqf +++ /dev/null @@ -1,51 +0,0 @@ -// F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_dispersion","_string"]; - -// ==================================================================================== - -// SET KEY VARIABLES - -params [ - "_unit", - ["_pos", [0,0,0], [[]], 3] -]; - -_dispersion = 100; // The maximum dispersion for units when HALO jumping - -_string = if (f_var_mapClickTeleport_Height == 0) then {"Teleport"} else {"HALO"}; -f_var_mapClickTeleport_textDone = localize format ["STR_f_mapClick%1Done",_string]; - -// ==================================================================================== - -// LOCALITY CHECK -// The component should not run anywhere else but where the unit is local by default -// This check is a redundancy to ensure this - -if !(local _unit) exitWith {}; - -// ==================================================================================== - -// TELEPORT UNITS -// Loop through the group's units (excluding the leader) and check if they are local, if true teleport -// them next to the leader and display a notification for players - -if (f_var_mapClickTeleport_Height == 0) then { - _unit setPos [((_pos select 0) + 3 + random 3),((_pos select 1) + 3 + random 3),(_pos select 2)]; -} else { - _unit setPos [((_pos select 0) + random _dispersion - random _dispersion),((_pos select 1) + random _dispersion - random _dispersion),(_pos select 2) + random 15 - random 15]; -}; - -// Display a notification for players -if (_unit == vehicle player) then {["MapClickTeleport",[f_var_mapClickTeleport_textDone]] call BIS_fnc_showNotification}; - -// HALO - BACKPACK -// If unit is parajumping, spawn the following code to add a parachute and restore the old backpack after landing - -if (f_var_mapClickTeleport_Height > 0) then { - [_unit] spawn f_fnc_mapClickTeleportParachute; -}; diff --git a/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf index f2268e8c4..9ea1cef32 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf @@ -2,22 +2,71 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -//add aparachute as backpack and restore the old backpack on landing - -private ["_bp","_bpi"]; -params [ - ["_unit", objNull, [objNull]] -]; -_bp = backpack _unit; -_bpi = backPackItems _unit; - -removeBackpack _unit; -_unit addBackpack "B_parachute"; -waitUntil {sleep 0.1;isTouchingGround _unit;}; -if (alive _unit) then { - removeBackpack _unit; - _unit addBackPack _bp; - { - (unitbackpack _unit) addItemCargoGlobal [_x,1]; - } forEach _bpi; +// If a vehicle is teleported, a parachute is attached at a given height. +// If it's a player, a parachute is added as a backacpk. +// After landing, the old backpack is restored. + +params [["_obj", objNull, [objNull]]]; + +private _heightOpenParachute = 200; + +if ( ! (_obj isKindOf "CAManBase") ) then { + + // Set the vehicle up-right to make sure it doesn't drift away too much + _obj setVectorUp [0, 0, 1]; + + waitUntil { sleep 0.1; getPos _obj select 2 < _heightOpenParachute }; + _obj engineOn false; + + //Set the vehicle captive to prevent AT units from shooting it down immediately + _obj setCaptive true; + + // Create the parachute, and attach the vehicle. + private _chute = createVehicle ["B_Parachute_02_F", getPos _obj, [], 0, "NONE"]; + _chute setDir getDir _obj; + _obj attachTo [_chute, [0, 0, 0.2]]; + + // Once near the ground, detach the parachute and gently place the vehicle on the ground + waitUntil { sleep 0.1; getPos _obj select 2 < 1.5 || {isNull _chute || {! alive _chute}} }; + _obj allowDamage false; + detach _obj; + _obj setVectorUp [0, 0, 1]; + _obj setVelocity [0, 0, -1]; + _obj setPos [getPos _obj select 0, getPos _obj select 1, 0.5]; + _obj allowDamage true; + + // Disable captivity to make the vehicles a viable target again + _obj setCaptive false; + + // Let the parachute fall down + _chute setVelocity [0 - sin windDir * 5, 0 - cos windDir * 5, 0]; + _chute disableCollisionWith _obj; + + // Wait before removing the parachute, to allow it to die naturally + sleep 10; + if (!isNull _chute) then { + deleteVehicle _chute; + }; + +} else { + + // Save the backpack and its items + private _backpack = backpack _obj; + private _backpackItems = backPackItems _obj; + + // Replace the backpack with a parachute + removeBackpack _obj; + _obj addBackpack "B_parachute"; + + // Once on the ground, remove the parachute + // and re-add the backpack with all its content + waitUntil {sleep 0.1; isTouchingGround _obj}; + if (alive _obj) then { + removeBackpack _obj; + _obj addBackPack _backpack; + { + (unitbackpack _obj) addItemCargoGlobal [_x,1]; + } forEach _backpackItems; + }; + }; diff --git a/f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf b/f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf new file mode 100644 index 000000000..a73e403b2 --- /dev/null +++ b/f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf @@ -0,0 +1,14 @@ +// F3 - Mission Maker Teleport +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// REMOVE ACTION +// Remove the action if we don't have any uses left + +if (isNil "f_mapClickTeleportAction") exitWith {}; + +f_var_mapClickTeleport_Used = f_var_mapClickTeleport_Used + 1; + +if (f_var_mapClickTeleport_Uses != 0 && f_var_mapClickTeleport_Used >= f_var_mapClickTeleport_Uses) then { + player removeAction f_mapClickTeleportAction; +}; diff --git a/f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf b/f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf new file mode 100644 index 000000000..71890353e --- /dev/null +++ b/f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf @@ -0,0 +1,71 @@ +// F3 - Mission Maker Teleport +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) + +// ==================================================================================== + +// SET KEY VARIABLES + +params [ + ["_obj", objNull, [objNull]], + ["_pos", [0,0,0], [[]]], + ["_height", 0, [0]] +]; + +// ==================================================================================== + +// LOCALITY CHECK +// The component should not run anywhere else but where the unit is local by default +// This check is a redundancy to ensure this + +if !(local _obj) exitWith {}; + +// ==================================================================================== + +// SET DISPERSION + +private _dispersion = 100; // The maximum dispersion for units when HALO jumping +private _dispersionHeight = 15; //The maximum dispersion in height when HALO jumping +if (_height == 0) then { + _dispersion = 10; + _dispersionHeight = 0; +}; + +// ==================================================================================== + +// HANDLING VEHICLES + +if ( ! (_obj isKindOf "CAManBase") ) then { + // Disable dispersion, so that the vehicle can be placed exactly where we want. + // e.g. on roads, where no obstacles are in the way. + _dispersion = 0; + + if (_height == 0) then { + private _emptyPosition = (_pos findEmptyPosition [0, 150, typeOf _obj]); + if (count _emptyPosition >= 2) then { + _pos = _emptyPosition; + } + }; +}; + +// ==================================================================================== + +// TELEPORT UNITS + +// Make sure the _pos array has 3 elements and set the height +_pos set [2, _height]; + +_pos = _pos vectorAdd [random _dispersion - random _dispersion, random _dispersion - random _dispersion, random _dispersionHeight - random _dispersionHeight]; +_obj setPos _pos; + +// Display a notification that the teleport is done +// Note: crew on a man returns a single element array containing that man +["MapClickTeleport",[f_var_mapClickTeleport_textDone]] remoteExecCall ["BIS_fnc_showNotification", (crew _obj) select {isPlayer _x}]; + +// ==================================================================================== + +// HALO + +// If unit or vehicle is paradropping, a parachute is added +if (_height > 0) then { + [_obj] spawn f_fnc_mapClickTeleportParachute; +}; diff --git a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf b/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf deleted file mode 100644 index 42e5ceaf9..000000000 --- a/f/mapClickTeleport/fn_mapClickTeleportUnit.sqf +++ /dev/null @@ -1,71 +0,0 @@ -// F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// SET KEY VARIABLES - -f_telePositionSelected = false; -if (isNil "f_var_mapClickTeleport_Used") then {f_var_mapClickTeleport_Used = 0}; - -// ==================================================================================== - -// TELEPORT FUNCTIONALITY -// Open the map for the player and display a notification, then set either the player's vehicle -// or the unit to the new position. If the group needs to be teleported too, set the group's position -// as well. - -["MapClickTeleport",[f_var_mapClickTeleport_textSelect]] call BIS_fnc_showNotification; -openMap [true, false]; -onMapSingleClick "f_var_mapClickTeleport_telePos = _pos; f_telePositionSelected = true"; -waitUntil {f_telePositionSelected}; - -// HALO - set height -// If a HALO height is set, modify the clicked position accordingly - -if (f_var_mapClickTeleport_Height != 0) then { - f_var_mapClickTeleport_telePos = [f_var_mapClickTeleport_telePos select 0,f_var_mapClickTeleport_telePos select 1,f_var_mapClickTeleport_Height]; -}; - -// Move player -// If the player is in a vehicle and not HALO-ing, the complete vehicle is moved. Otherwise the player is teleported. - -if (vehicle player != player && f_var_mapClickTeleport_Height == 0) then { - (vehicle player) setPos (f_var_mapClickTeleport_telePos findEmptyPosition [0,150,typeOf (vehicle player)]); -} else { - player setPos f_var_mapClickTeleport_telePos; -}; - -// Move group -// If enabled, the player's group is moved next to him - -if (f_var_mapClickTeleport_GroupTeleport) then { - sleep 0.1; - { - [_x,f_var_mapClickTeleport_telePos] remoteExec ["f_fnc_mapClickTeleportGroup", _x]; - } forEach ((units group player) - [player]); -}; - -openMap false; - -["MapClickTeleport",[f_var_mapClickTeleport_textDone]] call BIS_fnc_showNotification; - -// ==================================================================================== - -// HALO functionality -// If the players are parajumping spawn the following code to add a backpack and restore the old backpack on landing - -if (f_var_mapClickTeleport_Height > 0) then { - [player] spawn f_fnc_mapClickTeleportParachute; -}; - -// ==================================================================================== - -// REMOVE AND READ ACTION -// Remove the action and re-add if we have uses left (or if they are infinite) - -player removeAction f_mapClickTeleportAction; -f_var_mapClickTeleport_Used = f_var_mapClickTeleport_Used + 1; - -if (f_var_mapClickTeleport_Uses == 0 || f_var_mapClickTeleport_Used < f_var_mapClickTeleport_Uses) then { - f_mapClickTeleportAction = player addaction [f_var_mapClickTeleport_textAction,{[] spawn f_fnc_mapClickTeleportUnit},"", 0, false,true,"","_this == player"]; -}; diff --git a/init.sqf b/init.sqf index 3790e79a6..f5b782a15 100644 --- a/init.sqf +++ b/init.sqf @@ -160,12 +160,13 @@ f_var_viewDistance_crewOnly = true; // F3 - MapClick Teleport // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// f_var_mapClickTeleport_Uses = 0; // How often the teleport action can be used. 0 = infinite usage. -// f_var_mapClickTeleport_TimeLimit = 0; // If higher than 0 the action will be removed after the given time. -// f_var_mapClickTeleport_GroupTeleport = false; // False: everyone can teleport. True: Only group leaders can teleport and will move their entire group. -// f_var_mapClickTeleport_Units = []; // Restrict map click teleport to these units -// f_var_mapClickTeleport_Height = 0; // If > 0 map click teleport will act as a HALO drop and automatically assign parachutes to units -// [] execVM "f\mapClickTeleport\f_mapClickTeleportAction.sqf"; +// f_var_mapClickTeleport_Uses = 1; // How often the teleport action can be used. 0 = infinite usage. +// f_var_mapClickTeleport_TimeLimit = 0; // If higher than 0 the action will be removed after the given time. +// f_var_mapClickTeleport_GroupTeleport = true; // False: everyone can teleport. True: Only group leaders can teleport and will move their entire group. +// f_var_mapClickTeleport_Units = []; // Restrict map click teleport to these units. +// f_var_mapClickTeleport_Height = 0; // If > 0 map click teleport will act as a HALO drop and automatically assign parachutes to units. +// f_var_mapClickTeleport_SaferVehicleHALO = false; // If HALO-ing (f_var_mapClickTeleport_Height > 0), False: crew remain in vehicle during drop. True: crew drop separately with their own parachutes. +// [] execVM "f\mapClickTeleport\f_mapClickTeleport.sqf"; // ==================================================================================== From d969b055e34e82573a8e6e811e24a53a7ab9a017 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 28 Nov 2018 17:20:50 +0100 Subject: [PATCH 152/407] Briefing: Credits, Pictures, Loadout for group (#185) * Briefing refactor. Add pictures. Add summary loadout for group. * Briefing ORBAT: Add group marker icons * Warn if missing group ID * Remove old group marker definition files --- briefing.sqf | 194 ------- f/briefing/f_briefing_aaf.sqf | 14 +- f/briefing/f_briefing_civ.sqf | 14 +- f/briefing/f_briefing_credits.sqf | 17 + f/briefing/f_briefing_csat.sqf | 12 - f/briefing/f_briefing_ctrg.sqf | 14 +- f/briefing/f_briefing_fia.sqf | 14 +- f/briefing/f_briefing_gendarmerie.sqf | 14 +- f/briefing/f_briefing_nato.sqf | 14 +- f/briefing/f_briefing_syndikat.sqf | 14 +- f/briefing/f_briefing_zeus.sqf | 14 +- f/briefing/f_loadoutNotes.sqf | 292 +++++++---- f/briefing/f_orbatNotes.sqf | 102 ++-- f/briefing/fn_createBriefing.sqf | 114 ++++ f/functions.hpp | 6 + f/groupMarkers/f_setLocalGroupMarkers.sqf | 92 ++-- .../f_setLocalGroupMarkers_Blufor.sqf | 152 ------ .../f_setLocalGroupMarkers_Indfor.sqf | 194 ------- .../f_setLocalGroupMarkers_Opfor.sqf | 133 ----- f/groupMarkers/fn_groupData.sqf | 486 ++++++++++++++++++ f/setGroupID/f_setGroupIDs.sqf | 447 +--------------- f/setGroupID/fn_setGroupID.sqf | 2 +- init.sqf | 2 +- 23 files changed, 956 insertions(+), 1401 deletions(-) delete mode 100644 briefing.sqf create mode 100644 f/briefing/f_briefing_credits.sqf create mode 100644 f/briefing/fn_createBriefing.sqf delete mode 100644 f/groupMarkers/f_setLocalGroupMarkers_Blufor.sqf delete mode 100644 f/groupMarkers/f_setLocalGroupMarkers_Indfor.sqf delete mode 100644 f/groupMarkers/f_setLocalGroupMarkers_Opfor.sqf create mode 100644 f/groupMarkers/fn_groupData.sqf diff --git a/briefing.sqf b/briefing.sqf deleted file mode 100644 index e9b7c778f..000000000 --- a/briefing.sqf +++ /dev/null @@ -1,194 +0,0 @@ -// F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -if (!hasInterface) exitWith {}; //Exit if not a player. - -// MAKE SURE THE PLAYER INITIALIZES PROPERLY - -if (!isDedicated && (isNull player)) then -{ - waitUntil {sleep 0.1; !isNull player}; -}; - -// DEBUG HELPER FUNCTION -private _fnc_debug = { - params [["_faction", "", [""]]]; - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (briefing.sqf): Briefing for %1 selected.",_faction]; - }; -}; - -// ==================================================================================== - -// DETECT PLAYER FACTION -// The following code detects what faction the player's slot belongs to, and stores -// it in the private variable _unitfaction - -private _unitfaction = toLower (faction player); - -// If the unitfaction is different from the group leader's faction, the latter faction is used -if (_unitfaction != toLower (faction (leader group player))) then { - _unitfaction = toLower (faction (leader group player)) -}; - -// DEBUG -if (f_param_debugMode == 1) then -{ - player sideChat format ["DEBUG (briefing.sqf): Player faction: %1",_unitfaction]; -}; - -// ==================================================================================== - -// BRIEFING: ADMIN -// The following block of code executes only if the player is the current host -// it automatically includes a file which contains the appropriate briefing data. - -if (serverCommandAvailable "#kick") then { - -#include "f\briefing\f_briefing_admin.sqf" - - // DEBUG - ["host"] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: BLUFOR > NATO -// The following block of code executes only if the player is in a NATO or NATO (Pacific) slot; it -// automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["blu_f","blu_t_f"]) exitwith { - -#include "f\briefing\f_briefing_nato.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: FIA -// The following block of code executes only if the player is in a FIA slot; it -// automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f"]) exitwith { - -#include "f\briefing\f_briefing_fia.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: BLUFOR > GENDARMERIE -// The following block of code executes only if the player is in a Gendarmerie slot; it -// automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["blu_gen_f"]) exitwith { - -#include "f\briefing\f_briefing_gendarmerie.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: OPFOR > CSAT -// The following block of code executes only if the player is in a CSAT & CSAT (Pacific) slot; it -// automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["opf_f","opf_t_f"]) exitwith { - -#include "f\briefing\f_briefing_csat.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: INDEPENDENT > AAF -// The following block of code executes only if the player is in a AAF -// slot; it automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["ind_f"]) exitwith { - -#include "f\briefing\f_briefing_aaf.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: INDEPENDENT > SYNDIKAT -// The following block of code executes only if the player is in a Syndikat -// slot; it automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["ind_c_f"]) exitwith { - -#include "f\briefing\f_briefing_syndikat.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: BLUFOR > CTRG -// The following block of code executes only if the player is in a CTRG -// slot; it automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["blu_ctrg_f"]) exitwith { - -#include "f\briefing\f_briefing_ctrg.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: CIVILIAN and IDAP -// The following block of code executes only if the player is in a CIVILIAN -// slot; it automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { - -#include "f\briefing\f_briefing_civ.sqf" - - // DEBUG - [_unitfaction] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: ZEUS -// The following block of code executes only if the player is in a ZEUS (Gamelogic) -// slot; it automatically includes a file which contains the appropriate briefing data. - -if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { - -#include "f\briefing\f_briefing_zeus.sqf" - - // DEBUG - ["zeus"] call _fnc_debug; -}; - -// ==================================================================================== - -// BRIEFING: Virtual Spectator -// This is needed to prevent the "Faction not defined" error message. - -if (typeOf player isEqualTo "VirtualSpectator_F") exitwith {}; - -// ==================================================================================== - -// ERROR CHECKING -// If the faction of the unit cannot be defined, the script exits with an error. - -player globalchat format ["DEBUG (briefing.sqf): Faction %1 is not defined.",_unitfaction]; diff --git a/f/briefing/f_briefing_aaf.sqf b/f/briefing/f_briefing_aaf.sqf index f5f807479..3322e2e0b 100644 --- a/f/briefing/f_briefing_aaf.sqf +++ b/f/briefing/f_briefing_aaf.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_briefing_civ.sqf b/f/briefing/f_briefing_civ.sqf index 7dd7e3cdd..c0d99befc 100644 --- a/f/briefing/f_briefing_civ.sqf +++ b/f/briefing/f_briefing_civ.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_briefing_credits.sqf b/f/briefing/f_briefing_credits.sqf new file mode 100644 index 000000000..bcfe5a717 --- /dev/null +++ b/f/briefing/f_briefing_credits.sqf @@ -0,0 +1,17 @@ +// F3 - Briefing +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// NOTES: CREDITS +// The code below creates the Credits sub-section of notes. + +// Note: +// If you (missionmaker) do not want to use the editor author name, you can +// simply replace %1 here with your name or change "_str_made_by" entirely. +private _str_made_by = "Created by %1."; + +private _text = format["%1

", briefingName]; +_text = _text + format[_str_made_by, getMissionConfigValue ["Author", ""]]; +_text = _text + format["

Made with FA3 version %1", getMissionConfigValue ["fa3_version", [0,0,0]] joinString "."]; + +player createDiaryRecord ["diary", ["Credits", _text]]; diff --git a/f/briefing/f_briefing_csat.sqf b/f/briefing/f_briefing_csat.sqf index 2e8719996..ae1156f0a 100644 --- a/f/briefing/f_briefing_csat.sqf +++ b/f/briefing/f_briefing_csat.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. diff --git a/f/briefing/f_briefing_ctrg.sqf b/f/briefing/f_briefing_ctrg.sqf index 142597f7f..5a4f82897 100644 --- a/f/briefing/f_briefing_ctrg.sqf +++ b/f/briefing/f_briefing_ctrg.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_briefing_fia.sqf b/f/briefing/f_briefing_fia.sqf index 410106fef..5421f0324 100644 --- a/f/briefing/f_briefing_fia.sqf +++ b/f/briefing/f_briefing_fia.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_briefing_gendarmerie.sqf b/f/briefing/f_briefing_gendarmerie.sqf index 30a48d71f..567c05ec5 100644 --- a/f/briefing/f_briefing_gendarmerie.sqf +++ b/f/briefing/f_briefing_gendarmerie.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_briefing_nato.sqf b/f/briefing/f_briefing_nato.sqf index 1cfdd91e3..ae2d31cca 100644 --- a/f/briefing/f_briefing_nato.sqf +++ b/f/briefing/f_briefing_nato.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_briefing_syndikat.sqf b/f/briefing/f_briefing_syndikat.sqf index 33a423ccb..1b9a9eb5d 100644 --- a/f/briefing/f_briefing_syndikat.sqf +++ b/f/briefing/f_briefing_syndikat.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_briefing_zeus.sqf b/f/briefing/f_briefing_zeus.sqf index bed2e8a72..a9a8e980e 100644 --- a/f/briefing/f_briefing_zeus.sqf +++ b/f/briefing/f_briefing_zeus.sqf @@ -6,18 +6,6 @@ // ==================================================================================== -// NOTES: CREDITS -// The code below creates the administration sub-section of notes. - -_cre = player createDiaryRecord ["diary", ["Credits"," -
-*** Insert mission credits here. *** -

-Made with F3 (http://www.ferstaberinde.com/f3/en/) -"]]; - -// ==================================================================================== - // NOTES: ADMINISTRATION // The code below creates the administration sub-section of notes. @@ -78,4 +66,4 @@ _sit = player createDiaryRecord ["diary", ["Situation"," *** Insert information about friendly forces here.*** "]]; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index 8b2500661..7216de0c8 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -2,146 +2,246 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -if (!hasInterface) exitWith {}; //Exit if not a player. - -// DECLARE VARIABLES AND FUNCTIONS - -private ["_text","_weps","_items","_fnc_wepMags","_mags","_bp","_maxload","_attachments","_wepItems"]; +if (!hasInterface || (side player == sideLogic)) exitWith {}; //Exit if not a player. // Local function to set the proper magazine count. -_fnc_wepMags = { - private ["_wepMags","_magArr","_s"]; - params [["_w", "", [""]]]; +private _fnc_wepMags = { + params [ + ["_weapon", "", [""]], + ["_mags", [], [[]]] + ]; //Get possible magazines for weapon - _wepMags = getArray (configFile >> "CfgWeapons" >> _w >> "magazines"); + private _wepMags = getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines"); // Compare weapon magazines with player magazines - _magArr = []; + private _magArr = []; { // findInPairs returns the first index that matches the checked for magazine - _s = [_mags,_x] call BIS_fnc_findInPairs; + private _index = [_mags,_x] call BIS_fnc_findInPairs; //If we have a match - if (_s != -1) then { + if (_index != -1) then { // Add the number of magazines to the list - _magArr pushBack ([_mags,[_s, 1]] call BIS_fnc_returnNestedElement); + _magArr pushBack ([_mags,[_index, 1]] call BIS_fnc_returnNestedElement); // Remove the entry - _mags deleteAt _s; + _mags deleteAt _index; }; } forEach _wepMags; - if (count _magArr > 0) then { - _text = _text + format ["[%1]", _magArr joinString "+"]; - }; + _magArr }; +// Local function to get the name and picture of a weapon/item +private _fnc_name = { + params [ + ["_name", "", [""]], + ["_type", "CfgWeapons", [""]], + ["_prefix", "", [""]], + ["_short", false, [false]] + ]; + + private _picture = getText (configFile >> _type >> _name >> "picture"); + if ! (_picture isEqualTo "") then { + if (_picture find ".paa" == -1) then { + _picture = _picture + ".paa" + }; + _picture = format ["", _picture]; + }; -// ==================================================================================== - -// SET UP KEY VARIABLES - -_text = "
NOTE: The loadout shown below is only accurate at mission start.
-
"; - -// All weapons minus the field glasses -_weps = weapons player - ["Rangefinder","Binocular","Laserdesignator"]; - -// Get a nested array containing all attached weapon items -_wepItems = weaponsItems player; - -// Get a nested array containing all unique magazines and their count -_mags = (magazines player) call BIS_fnc_consolidateArray; + format[ + ["%1%2%3 ", "%1%2 "] select _short, + _prefix, + _picture, + getText (configFile >> _type >> _name >> "displayname") + ] +}; +private _fnc_nameShort = { + params [ + ["_name", "", [""]], + ["_type", "CfgWeapons", [""]], + ["_prefix", "", [""]] + ]; + [_name, _type, _prefix, true] call _fnc_name +}; -// Get a nested array containing all non-equipped items and their count -_items = (items player) call BIS_fnc_consolidateArray; +// Local function to format the text for magazine counts +private _fnc_magArrText = { + params ["_magArr"]; + if (count _magArr > 0) exitWith { + format ["[%1]", _magArr joinString "+"] + }; + "" +}; -// ==================================================================================== +private _fnc_loadoutDataToText = { + params ["_full","_wepItems", "_mags", "_items", "_items_assigned", "_bp", "_bpLoad", "_weps"]; -// WEAPONS -// Add lines for all carried weapons and corresponding magazines + private _arrow = ""; + private _classesBlacklist = ["HandGrenade", "1Rnd_HE_Grenade_shell", "FirstAidKit"]; -if (count _weps > 0) then { - _text = _text + "WEAPONS [#MAGAZINES]:"; - { - _text = _text + format["
%1",getText (configFile >> "CfgWeapons" >> _x >> "displayname")]; + //Generate the loadout text from the previously defined variables. + private _textLong = ""; + private _textShrt = ""; - //Add magazines for weapon - [_x] call _fnc_wepMags; + // WEAPONS + if (count _weps > 0) then { + _textLong = _textLong + "WEAPONS [#MAGAZINES]:"; + { + _x params ["_weapon", "_magArr", "_ugls", "_attachments"]; + + // Weapon name and picture + _textLong = _textLong + "
" + ([_weapon] call _fnc_name); + _textShrt = _textShrt + ([_weapon] call _fnc_name); + + // Weapon magazines + _textLong = _textLong + ([_magArr] call _fnc_magArrText); + _textShrt = _textShrt + ([_magArr] call _fnc_magArrText); + + // Underslung grenade launcher + { + //private _picture = ""; + private _picture = ""; + _textLong = _textLong + "
" + _arrow + _picture + "UGL" + ([_x] call _fnc_magArrText); + _textShrt = _textShrt + " + " + _picture + ([_x] call _fnc_magArrText); + } forEach _ugls; + + // Weapon attachments + { + _textLong = _textLong + "
" + ([_x, "CfgWeapons", _arrow] call _fnc_name); + _textShrt = _textShrt + ([_x, "CfgWeapons", " + "] call _fnc_nameShort); + } forEach _attachments; + + _textLong = _textLong + "
"; + _textShrt = _textShrt + "
"; + } forEach _weps; + }; - // Check if weapon has an underslung grenade launcher - if ({_x in ["GL_3GL_F","EGLM","UGL_F"]} count (getArray (configFile >> "CfgWeapons" >> _x >> "muzzles")) > 0) then { - _text = _text + "
|- UGL"; - ["UGL_F"] call _fnc_wepMags; + // BACKPACK + // Add lines for all other items + if (_bp != "") then { + _textLong = _textLong + "
BACKPACK [%FULL]:
"; + private _bpText = ([_bp, "CfgVehicles"] call _fnc_name); + if (getContainerMaxLoad _bp > 0) then { + _bpText = _bpText + format["[%1%2]",round _bpLoad,"%"]; + } else { + //For the short version: only show special non-cargo backpacks + _textShrt = _textShrt + _bpText + "
"; }; + _textLong = _textLong + _bpText + "
"; + }; - // List weapon attachments - // Get attached items - _attachments = _wepItems select (([_wepItems,_x] call BIS_fnc_findNestedElement) select 0); - _attachments deleteAt 0; // Remove the first element as it points to the weapon itself + // OTHER + if (! _full) then { + _mags = _mags select {private _class = _x select 0; {_class isKindOf [_x, configfile >> "CfgMagazines"]} count _classesBlacklist == 0 }; + _items = _items select {private _class = _x select 0; {_class isKindOf [_x, configfile >> "CfgWeapons" ]} count _classesBlacklist == 0 }; + }; + if (count _mags > 0 || count _items > 0 || count _items_assigned > 0) then { + _textLong = _textLong + "
OTHER [#]:"; { - if (!(_x isEqualType []) && {_x != ""}) then { - _text = _text + format["
|- %1",getText (configFile >> "CfgWeapons" >> _x >> "displayname")]; - }; - } forEach _attachments; - - } forEach _weps; - _text = _text + "
"; -}; + _x params ["_className","_num"]; + _textLong = _textLong + "
" + ([_className, "CfgMagazines"] call _fnc_name) + format[" [%1]", _num]; + _textShrt = _textShrt + ([_className, "CfgMagazines"] call _fnc_nameShort) + format[" [%1]", _num]; + } forEach _mags; -// ==================================================================================== - -// OTHER MAGAZINES -// Add lines for all magazines not tied to any carried weapon (grenades etc.) - -if (count _mags > 0) then { - _text = _text + "
OTHER [#]:
"; - - { - _text = _text + format["%1 [%2]
",getText (configFile >> "CfgMagazines" >> _x select 0 >> "displayname"),_x select 1]; - } forEach _mags; -}; + { + _x params ["_className","_num"]; + _textLong = _textLong + "
" + ([_className, "CfgWeapons"] call _fnc_name) + format[" [%1]",_num]; + _textShrt = _textShrt + ([_className, "CfgWeapons"] call _fnc_nameShort) + format[" [%1]", _num]; + } forEach _items; + + if (count _mags > 0 || count _items > 0) then { + _textLong = _textLong + "
"; + _textShrt = _textShrt + "
"; + }; -// ==================================================================================== + { + _textLong = _textLong + "
" + ([_x, "CfgWeapons"] call _fnc_name); + } forEach _items_assigned; + + }; -// BACKPACK -// Add lines for all other items -if !(backpack player == "") then { - _text = _text + "
BACKPACK [%FULL]:
"; + //return value + if (_full) exitWith {_textLong}; - _bp = backpack player; - _text = _text + format["%1 [%2",getText (configFile >> "CfgVehicles" >> _bp >> "displayname"), 100*loadBackpack player]+"%]
"; - //_maxload = getNumber(configFile >> "CfgVehicles" >> _bp >> "maximumload"); - //_text = _text + format["%1 [%2/%3]
",getText (configFile >> "CfgVehicles" >> _bp >> "displayname"), _maxload*loadBackpack player,_maxload]; + _textShrt }; -// ==================================================================================== +private _fnc_getLoadout = { + params [ + ["_unit", player, [objNull]], + ["_full", true, [true]] + ]; + + // Get a nested array containing all attached weapon items + private _wepItems = weaponsItems _unit; + + // Get a nested array containing all unique magazines and their count + private _mags = (magazines _unit) call BIS_fnc_consolidateArray; + + // Get a nested array containing all non-equipped items and their count + private _items = (items _unit) call BIS_fnc_consolidateArray; + private _items_assigned = assignedItems _unit; + + // Backpack and backpack-load in percent + private _bp = backpack _unit; + private _bpLoad = 100 * loadBackpack _unit; + + // All weapons minus the field glasses + private _weps = (weapons _unit); + _weps = _weps select {(toLower (getText(configFile >> "CfgWeapons" >> _x >> "simulation"))) != "binocular"}; + _weps = _weps apply { + // Magazines + private _magArr = [_x, _mags] call _fnc_wepMags; -// ITEMS -// Add lines for all other items + // Check if weapon has an underslung grenade launcher + private _muzzles = getArray(configFile >> "CfgWeapons" >> _x >> "muzzles") apply {toLower _x}; + private _ugls = [configFile >> "CfgWeapons" >> _x,0,true] call BIS_fnc_returnChildren; + _ugls = _ugls select {"GrenadeLauncher" in ([_x,true] call BIS_fnc_returnParents)}; + _ugls = _ugls apply {configName _x}; + _ugls = _ugls select {(toLower _x) in _muzzles}; + _ugls = _ugls apply {["UGL_F", _mags] call _fnc_wepMags}; -if (count _items > 0) then { - _text = _text + "
ITEMS [#]:
"; + // List weapon attachments + // Get attached items + private _attachments = _wepItems select (([_wepItems,_x] call BIS_fnc_findNestedElement) select 0); + _attachments deleteAt 0; // Remove the first element as it points to the weapon itself + _attachments = _attachments select { !(_x isEqualType []) && {_x != ""} }; - { - _text = _text + format["%1 [%2]
",getText (configFile >> "CfgWeapons" >> _x select 0 >> "displayname"),_x select 1]; - } forEach _items; + //return value: + [_x, _magArr, _ugls, _attachments] + }; - { - _text = _text + format["*%1
",getText (configFile >> "CfgWeapons" >> _x >> "displayname")]; - } forEach assignedItems player; + //Note: At this point "_mags" only consists of magazine types that are + // not compatible with the unit's weapons. - _text = _text + "
*Indicates an equipped item."; + [_full, _wepItems, _mags, _items, _items_assigned, _bp, _bpLoad, _weps] call _fnc_loadoutDataToText }; -// ==================================================================================== - -// ADD DIARY SECTION -// Wait for the briefing script to finish, then add the created text +private _text_notice = "NOTE: The loadout shown below is only accurate at mission start.

"; +// ==================================================================================== +// Wait for the briefing script to finish, so that the loadout appears at the top. waitUntil {scriptDone f_script_briefing}; + +// ==================================================================================== +// Normal loadout for the player: +private _text = _text_notice + ([player] call _fnc_getLoadout); +// ==================================================================================== +// Loadout page for group members +private _units = (units (group player)); +private _text_group = "" + _text_notice; +{ + private _text_loadout = [_x, false] call _fnc_getLoadout; + private _unit_name = format ["%1 (%2):
", name _x, roleDescription _x]; + _text_group = _text_group + format ["%1", _unit_name] + _text_loadout + "

"; +} forEach _units; +// ==================================================================================== +// Create Loadout pages player createDiaryRecord ["diary", ["Loadout", _text]]; +player createDiaryRecord ["diary", ["Loadout Team", _text_group]]; +// ==================================================================================== diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 5e25b1428..96480330e 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -2,34 +2,42 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -if (!hasInterface) exitWith {}; //Exit if not a player. +if (!hasInterface || (side player == sideLogic)) exitWith {}; //Exit if not a player. // Group IDs need to be set before the ORBAT listing can be created waitUntil {scriptDone f_script_setGroupIDs}; // Define needed variables -private ["_orbatText", "_groups", "_precompileGroups","_maxSlots","_freeSlots","_hiddenGroups","_color","_veharray","_vehName","_veh","_crewrole","_groupList"]; -_orbatText = "
NOTE: The ORBAT below is only accurate at mission start.
+private _orbatText = "NOTE: The ORBAT below is only accurate at mission start.

GROUP LEADERS + NOTABLE

"; -_groups = []; -_hiddenGroups = []; -{ - // Add to ORBAT if side matches, group isn't already listed, and group has players - if ((side _x == side group player) && !(_x in _groups) && ({_x in playableUnits} count units _x) > 0) then { - //if ((side _x == side group player) && !(_x in _groups)) then { - _groups pushBack _x; - }; -} forEach allGroups; +private _hiddenGroups = []; +private _icon_arrow = ""; + +// Add groups to ORBAT if side matches, group isn't already listed, and group has players +private _groups = allGroups select {(side _x == side group player) && ({_x in playableUnits} count units _x) > 0}; +//Only allow unique groups: +_groups = _groups arrayIntersect _groups; // Remove groups we don't want to show _groups = _groups - _hiddenGroups; +// Use the groupData, +// change the variable name (the first field) to the variable itself, +// then filter out any non-groups, and groups we don't want to show. +private _groupData = f_var_groupData_all apply { + [ + missionNamespace getVariable [_x select 0,grpNull], + _x select 1, + _x select 3 + ] +} select { ! isNull (_x select 0) && {(_x select 0) in _groups}}; + // Loop through the group, print out group ID, leader name and medics if present { // Highlight the player's group with a different color (based on the player's side) - _color = "#FFFFFF"; + private _color = "#FFFFFF"; if (_x == group player) then { _color = switch (side player) do { case west: {"#0080FF"}; @@ -39,52 +47,53 @@ _groups = _groups - _hiddenGroups; }; }; + //group marker icon: + private _thisGroup = _x; + private _dataForThisGroup = _groupData select {_x select 0 == _thisGroup}; + if (count _dataForThisGroup > 0) then { + _dataForThisGroup select 0 params ["", "_mIcon", "_mColor"]; + _mIcon = getText (configfile >> "CfgMarkers" >> _mIcon >> "icon"); + _mColor = getArray (configfile >> "CfgMarkerColors" >> _mColor >> "color") call BIS_fnc_colorRGBAtoHTML; + _orbatText = _orbatText + format [" ", _mColor, _mIcon]; + }; + _orbatText = _orbatText + format ["%1 %2", _x, name leader _x,_color] + "
"; { - if (_x getVariable ["f_var_assignGear",""] == "m" && {_x != leader group _x}) then { - _orbatText = _orbatText + format["|- %1 [M]",name _x] + "
"; - }; - - if (_x getVariable ["f_var_assignGear",""] == "jtac" && {_x != leader group _x}) then { - - // FAC is a specialised JTAC, so need some way to differentiate - if ((roleDescription _x) find "FAC" != -1) then { - _orbatText = _orbatText + format["|- %1 [FAC]",name _x] + "
"; - } else { - _orbatText = _orbatText + format["|- %1 [JTAC]",name _x] + "
"; - }; - }; - } forEach units _x; + //Note: FAC is a specialised JTAC. so additional differentiation is needed + _orbatText = _orbatText + (switch [_x getVariable ["f_var_assignGear",""], (roleDescription _x) find "FAC" != -1] do { + case ["m", false]: { format["%1 %2 [M]
", _icon_arrow, name _x] }; + case ["jtac", false]: { format["%1 %2 [JTAC]
", _icon_arrow, name _x] }; + case ["jtac", true ]: { format["%1 %2 [FAC]
", _icon_arrow, name _x] }; + default { "" }; + }); + } forEach (units _x - [leader _x]); } forEach _groups; -_veharray = []; +// Get all player vehicles +private _veharray = []; { - if ({vehicle _x != _x} count units _x > 0 ) then { - { - if (vehicle _x != _x) then { - _veharray pushBackUnique (vehicle _x); - }; - } forEach units _x; - }; + { + _veharray pushBackUnique (vehicle _x); + } forEach (units _x select {vehicle _x != _x}); } forEach _groups; if (count _veharray > 0) then { -_orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; + _orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; { // Filter all characters which might break the diary entry (such as the & in Orca Black & White) - _vehName = [getText (configFile >> "CfgVehicles" >> (typeOf _x) >> "displayname"),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_- "] call BIS_fnc_filterString; + private _vehName = [getText (configFile >> "CfgVehicles" >> (typeOf _x) >> "displayname"),"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_- "] call BIS_fnc_filterString; - _orbatText = _orbatText + "
" + format["%1 ",_vehName]; + _orbatText = _orbatText + "
" + _vehName; // Workaround for http://feedback.arma3.com/view.php?id=21602 - _maxSlots = getNumber(configfile >> "CfgVehicles" >> typeof _x >> "transportSoldier") + (count allTurrets [_x, true] - count allTurrets _x); - _freeSlots = _x emptyPositions "cargo"; + private _maxSlots = getNumber(configfile >> "CfgVehicles" >> typeof _x >> "transportSoldier") + (count allTurrets [_x, true] - count allTurrets _x); + private _freeSlots = _x emptyPositions "cargo"; if (_maxSlots > 0) then { - _orbatText = _orbatText + format ["[%1/%2]",(_maxSlots-_freeSlots),_maxSlots]; + _orbatText = _orbatText + format [" [%1/%2]",(_maxSlots-_freeSlots),_maxSlots]; }; _orbatText = _orbatText + "
"; @@ -92,8 +101,8 @@ _orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; { if ((assignedVehicleRole _x select 0) != "CARGO") then { - _veh = vehicle _x; - _crewrole = switch (true) do { + private _veh = vehicle _x; + private _crewrole = switch (true) do { case (driver _veh == _x && !((vehicle _x isKindOf "helicopter") || (vehicle _x isKindOf "plane"))):{" [D]"}; case (driver _veh == _x && ((vehicle _x isKindOf "helicopter") || (vehicle _x isKindOf "plane"))):{" [P]"}; case (commander _veh == _x):{" [CO]"}; @@ -102,12 +111,11 @@ _orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; default {" [C]"}; }; - _orbatText = _orbatText + format["|- %1",name _x] + _crewrole + "
"; + _orbatText = _orbatText + format["%1 %2", _icon_arrow, name _x] + _crewrole + "
"; }; } forEach crew _x; - _groupList = []; - + private _groupList = []; { if (!(group _x in _groupList) && {(assignedVehicleRole _x select 0) == "CARGO"} count (units group _x) > 0) then { _groupList pushBack (group _x); @@ -116,7 +124,7 @@ _orbatText = _orbatText + "
VEHICLE CREWS + PASSENGERS
"; if (count _groupList > 0) then { { - _orbatText =_orbatText + format["|- %1", _x] + " [CARGO]
"; + _orbatText =_orbatText + format["%1 %2", _icon_arrow, _x] + " [CARGO]
"; } forEach _groupList; }; diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf new file mode 100644 index 000000000..f9630b16c --- /dev/null +++ b/f/briefing/fn_createBriefing.sqf @@ -0,0 +1,114 @@ +// F3 - Briefing +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +if (!hasInterface) exitWith {}; //Exit if not a player. + +// MAKE SURE THE PLAYER INITIALIZES PROPERLY + +if (!isDedicated && (isNull player)) then +{ + waitUntil {sleep 0.1; !isNull player}; +}; + +// DEBUG HELPER FUNCTION +private _fnc_debug = { + params [["_faction", "", [""]]]; + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (fn_createBriefing.sqf): Briefing for %1 selected.",_faction]; + }; +}; + +// ==================================================================================== + +// DETECT PLAYER FACTION (use faction from group leader) +private _unitfaction =toLower (faction (leader group player)); + +// DEBUG +if (f_param_debugMode == 1) then +{ + player sideChat format ["DEBUG (fn_createBriefing.sqf): Player faction: %1",_unitfaction]; +}; + +// ==================================================================================== + +// BRIEFING: CREDITS +#include "f_briefing_credits.sqf" + +// ==================================================================================== + +// BRIEFING: ADMIN +if (serverCommandAvailable "#kick" || !isMultiplayer) then { + #include "f_briefing_admin.sqf" + ["host"] call _fnc_debug; +}; + +// ==================================================================================== +// BRIEFING: FACTION SPECIFIC +// The following code blocks include faction-specific briefing files. + +// BLUFOR > NATO +if (_unitfaction in ["blu_f","blu_t_f"]) exitwith { + #include "f_briefing_nato.sqf" + [_unitfaction] call _fnc_debug; +}; + +// FIA +if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f"]) exitwith { + #include "f_briefing_fia.sqf" + [_unitfaction] call _fnc_debug; +}; + +// BLUFOR > GENDARMERIE +if (_unitfaction in ["blu_gen_f"]) exitwith { + #include "f_briefing_gendarmerie.sqf" + [_unitfaction] call _fnc_debug; +}; + +// OPFOR > CSAT +if (_unitfaction in ["opf_f","opf_t_f"]) exitwith { + #include "f_briefing_csat.sqf" + [_unitfaction] call _fnc_debug; +}; + +// INDEPENDENT > AAF +if (_unitfaction in ["ind_f"]) exitwith { + #include "f_briefing_aaf.sqf" + [_unitfaction] call _fnc_debug; +}; + +// INDEPENDENT > SYNDIKAT +if (_unitfaction in ["ind_c_f"]) exitwith { + #include "f_briefing_syndikat.sqf" + [_unitfaction] call _fnc_debug; +}; + +// BLUFOR > CTRG +if (_unitfaction in ["blu_ctrg_f"]) exitwith { + #include "f_briefing_ctrg.sqf" + [_unitfaction] call _fnc_debug; +}; + +// CIVILIAN and IDAP +if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { + #include "f_briefing_civ.sqf" + [_unitfaction] call _fnc_debug; +}; + +// ZEUS +if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { + #include "f_briefing_zeus.sqf" + ["zeus"] call _fnc_debug; +}; + +// Virtual Spectator +if (typeOf player isEqualTo "VirtualSpectator_F") exitwith { +}; + +// ==================================================================================== + +// ERROR CHECKING +// If the faction of the unit cannot be defined, the script exits with an error. + +player globalchat format ["DEBUG (fn_createBriefing.sqf): Faction %1 is not defined.",_unitfaction]; diff --git a/f/functions.hpp b/f/functions.hpp index 827c865f1..4b3ab40cb 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -8,6 +8,11 @@ class F // Defines the "owner" class processParamsArray{preInit = 1; postInit=1;}; class nearPlayer{}; }; + class briefing + { + file = "f\briefing"; + class createBriefing{}; + }; class mpEnd { file = "f\mpEnd"; @@ -44,6 +49,7 @@ class F // Defines the "owner" file = "f\groupMarkers"; class localGroupMarker{}; class localSpecialistMarker{}; + class groupData{preInit = 1;}; }; class authorisedCrew { diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index 53f9c15fa..e79dd025f 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -2,18 +2,11 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// DECLARE VARIABLES AND FUNCTIONS - -private ["_hq", "_ft", "_sup", "_lau", "_mor", "_eng", "_ifv", "_tnk", "_rec", "_hel", "_pla", "_art", "_med", "_uav"]; - - -// ==================================================================================== - // MAKE SURE THE PLAYER INITIALIZES PROPERLY if (!isDedicated && (isNull player)) then { - waitUntil {sleep 0.1; !isNull player}; + waitUntil {sleep 0.1; !isNull player}; }; // ==================================================================================== @@ -27,56 +20,59 @@ params [ // ==================================================================================== -// CONFIGURE MARKER TYPES -// Using the marker classes (https://community.bistudio.com/wiki/cfgMarkers) we setup a number of variables to define which type of marker should be used for which group -// Note: They can be overriden for each group individually - -// Groups -_hq = "b_hq"; // Command elements -_ft = "b_inf"; // Fireteams -_sup = "b_support"; // Support units (MMG,HMG) -_lau = "b_motor_inf"; // Launchers (MAT, HAT) -_mor = "b_mortar"; // Mortars -_eng = "b_maint"; // Engineers -_ifv = "b_mech_inf"; // IFVs & APCs -_tnk = "b_armor"; // Tanks -_rec = "b_recon"; // Recon (ST) -_hel = "b_air"; // Helicopters -_pla = "b_plane"; // Planes -_art = "b_art"; // Artillery - -// Specialists -_med = "b_med"; // Medic -_uav = "b_uav"; // UAV +private _groups = []; -// ==================================================================================== - -// INCLUDE GROUP MARKER SCRIPTS -// Due to the amount of markers the script is split into various sub-scripts (by side) -// which are now included to create the complete script - -// MARKERS: BLUFOR -// Markers seen by players in BLUFOR slots +// Markers seen by players in NATO, NATO (Pacific) & CTRG slots. +if (_unitfaction in ["blu_f","blu_t_f","blu_ctrg_f"]) then { + _groups = f_var_groupData_blufor_nato; +}; -#include "f_setLocalGroupMarkers_Blufor.sqf" +// Markers seen by players in FIA & CTRG slots. +if (_unitfaction in ["blu_g_f","blu_ctrg_f"]) then { + _groups = f_var_groupData_blufor_fia; +}; -// ==================================================================================== +// Markers seen by players in gendarmerie slots. +if (_unitfaction in ["blu_gen_f"]) then { + _groups = f_var_groupData_blufor_gen; +}; -// MARKERS: OPFOR -// Markers seen by players in OPFOR slots +// Markers seen by players in CSAT & CSAT (Pacific) slots. +if (_unitfaction in ["opf_f","opf_t_f"]) then { + _groups = f_var_groupData_opfor_csat; +}; -#include "f_setLocalGroupMarkers_Opfor.sqf" +// Markers seen by players in OPFOR-FIA slots. +if (_unitfaction in ["opf_g_f"]) then { + _groups = f_var_groupData_opfor_fia; +}; -// ==================================================================================== +// Markers seen by players in AAF slots. +if (_unitfaction in ["ind_f"]) then { + _groups = f_var_groupData_indfor_aaf; +}; -// MARKERS: INDFOR -// Markers seen by players in INDEPENDENT slots +// Markers seen by players in INDEPENDENT-FIA slots. +if (_unitfaction in ["ind_g_f"]) then { + _groups = f_var_groupData_indfor_fia; +}; -#include "f_setLocalGroupMarkers_Indfor.sqf" +// Markers seen by players in SYNDIKAT slots. +if (_unitfaction in ["ind_c_f"]) then { + _groups = f_var_groupData_indfor_syn; +}; // ==================================================================================== -// MARKERS: ALL -// Markers spawned here can be seen by all units +{ + _x params ["_group", "_icon", "_markerText", "_color", "_id"]; + if (_icon != "") then { + if (_group find "Unit" >= 0) then { + _x spawn f_fnc_localSpecialistMarker; + } else { + _x spawn f_fnc_localGroupMarker; + }; + }; +} forEach _groups; // ==================================================================================== diff --git a/f/groupMarkers/f_setLocalGroupMarkers_Blufor.sqf b/f/groupMarkers/f_setLocalGroupMarkers_Blufor.sqf deleted file mode 100644 index ab4f698da..000000000 --- a/f/groupMarkers/f_setLocalGroupMarkers_Blufor.sqf +++ /dev/null @@ -1,152 +0,0 @@ -// F3 - Folk Group Markers - BLUFOR -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// MARKERS: BLUFOR > NATO -// Markers seen by players in NATO, NATO (Pacific) & CTRG slots. - -if (_unitfaction in ["blu_f","blu_t_f","blu_ctrg_f"]) then { - - ["GrpNATO_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpNATO_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpNATO_COV",_ifv, "COV", "ColorYellow"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_ASL",_hq, "ASL", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpNATO_A1",_ft, "A1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpNATO_A2",_ft, "A2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpNATO_AV",_ifv, "AV", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_BSL",_hq, "BSL", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpNATO_B1",_ft, "B1", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpNATO_B2",_ft, "B2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpNATO_BV",_ifv, "BV", "ColorBlue"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_CSL",_hq, "CSL", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpNATO_C1",_ft, "C1", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpNATO_C2",_ft, "C2", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpNATO_CV",_ifv, "CV", "ColorGreen"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_JSL",_hq, "JSL", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpNATO_J1",_ft, "J1", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpNATO_J2",_ft, "J2", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpNATO_JV",_ifv, "JV", "ColorPink"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_MMG1",_sup, "MMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_MMG2",_sup, "MMG2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_HMG1",_sup, "HMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_MAT1",_lau, "MAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_MAT2",_lau, "MAT2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_HAT1",_lau, "HAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_MTR1",_mor, "MTR1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_MSAM1",_lau, "MSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_HSAM1",_lau, "HSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_ST1",_rec, "ST1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_DT1",_rec, "DT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_ENG1",_eng, "ENG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_IFV1",_ifv, "IFV1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_IFV2",_ifv, "IFV2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TNK1",_tnk, "TNK1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_TH1",_hel, "TH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TH2",_hel, "TH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TH3",_hel, "TH3", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TH4",_hel, "TH4", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TH5",_hel, "TH5", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TH6",_hel, "TH6", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TH7",_hel, "TH7", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpNATO_TH8",_hel, "TH8", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpNATO_AH1",_hel, "AH1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["UnitNATO_CO_M",_med, "COM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitNATO_DC_M",_med, "DCM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitNATO_ASL_M",_med, "AM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitNATO_BSL_M",_med, "BM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitNATO_CSL_M",_med, "CM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; -}; - -// ==================================================================================== - -// MARKERS: BLUFOR > FIA -// Markers seen by players in FIA & CTRG slots. - -if (_unitfaction in ["blu_g_f","blu_ctrg_f"]) then { - - ["GrpFIA_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpFIA_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpFIA_COV",_ifv, "COV", "ColorYellow"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_ASL",_hq, "ASL", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpFIA_A1",_ft, "A1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpFIA_A2",_ft, "A2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpFIA_AV",_ifv, "AV", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_BSL",_hq, "BSL", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpFIA_B1",_ft, "B1", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpFIA_B2",_ft, "B2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpFIA_BV",_ifv, "BV", "ColorBlue"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_CSL",_hq, "CSL", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpFIA_C1",_ft, "C1", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpFIA_C2",_ft, "C2", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpFIA_CV",_ifv, "CV", "ColorGreen"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_JSL",_hq, "JSL", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpFIA_J1",_ft, "J1", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpFIA_J2",_ft, "J2", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpFIA_JV",_ifv, "JV", "ColorPink"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_MMG1",_sup, "MMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_MMG2",_sup, "MMG2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_HMG1",_sup, "HMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_MAT1",_lau, "MAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_MAT2",_lau, "MAT2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_HAT1",_lau, "HAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_MTR1",_mor, "MTR1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_MSAM1",_lau, "MSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_HSAM1",_lau, "HSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_ST1",_rec, "ST1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_DT1",_rec, "DT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_ENG1",_eng, "ENG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_IFV1",_ifv, "TECH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpFIA_IFV2",_ifv, "TECH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TNK1",_tnk, "TNK1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_TH1",_hel, "TH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TH2",_hel, "TH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TH3",_hel, "TH3", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TH4",_hel, "TH4", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TH5",_hel, "TH5", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TH6",_hel, "TH6", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TH7",_hel, "TH7", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpFIA_TH8",_hel, "TH8", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpFIA_AH1",_hel, "AH1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["UnitFIA_CO_M",_med, "COM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitFIA_DC_M",_med, "DCM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitFIA_ASL_M",_med, "AM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitFIA_BSL_M",_med, "BM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitFIA_CSL_M",_med, "CM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; -}; - -// ==================================================================================== - -// MARKERS: BLUFOR > GENDARMERIE -// Markers seen by players in gendarmerie slots. - -if (_unitfaction in ["blu_gen_f"]) then { - - ["GrpGEN_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpGEN_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpGEN_A",_hq, "A", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpGEN_B",_hq, "B", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpGEN_C",_hq, "C", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpGEN_J",_hq, "J", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpGEN_MK",_rec, "MK", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpGEN_TH1",_hel, "TH1", "ColorOrange"] spawn f_fnc_localGroupMarker; -}; - -// ==================================================================================== \ No newline at end of file diff --git a/f/groupMarkers/f_setLocalGroupMarkers_Indfor.sqf b/f/groupMarkers/f_setLocalGroupMarkers_Indfor.sqf deleted file mode 100644 index 70c719ec0..000000000 --- a/f/groupMarkers/f_setLocalGroupMarkers_Indfor.sqf +++ /dev/null @@ -1,194 +0,0 @@ -// F3 - Folk Group Markers - INDFOR -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// MARKERS: INDEPEDENT > AAF -// Markers seen by players in AAF slots. - -if (_unitfaction in ["ind_f"]) then { - ["GrpAAF_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpAAF_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpAAF_COV",_ifv, "COV", "ColorYellow"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_ASL",_hq, "ASL", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpAAF_A1",_ft, "A1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpAAF_A2",_ft, "A2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpAAF_AV",_ifv, "AV", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_BSL",_hq, "BSL", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpAAF_B1",_ft, "B1", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpAAF_B2",_ft, "B2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpAAF_BV",_ifv, "BV", "ColorBlue"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_CSL",_hq, "CSL", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpAAF_C1",_ft, "C1", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpAAF_C2",_ft, "C2", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpAAF_CV",_ifv, "CV", "ColorGreen"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_JSL",_hq, "JSL", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpAAF_J1",_ft, "J1", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpAAF_J2",_ft, "J2", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpAAF_JV",_ifv, "JV", "ColorPink"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_MMG1",_sup, "MMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_MMG2",_sup, "MMG2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_HMG1",_sup, "HMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_MAT1",_lau, "MAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_MAT2",_lau, "MAT2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_HAT1",_lau, "HAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_MTR1",_mor, "MTR1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_MSAM1",_lau, "MSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_HSAM1",_lau, "HSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_ST1",_rec, "ST1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_DT1",_rec, "DT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_ENG1",_eng, "ENG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_IFV1",_ifv, "IFV1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_IFV2",_ifv, "IFV2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpAAF_TNK1",_tnk, "TNK1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_TH1",_hel, "TH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpAAF_TH2",_hel, "TH2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpAAF_TH3",_hel, "TH3", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpAAF_TH4",_hel, "TH4", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpAAF_AH1",_hel, "AH1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["UnitAAF_CO_M",_med, "COM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitAAF_DC_M",_med, "DCM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitAAF_ASL_M",_med, "AM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitAAF_BSL_M",_med, "BM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitAAF_CSL_M",_med, "CM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; -}; - -// ==================================================================================== - -// MARKERS: INDEPENDENT > FIA -// Markers seen by players in INDEPENDENT-FIA slots. - -if (_unitfaction in ["ind_g_f"]) then { - ["GrpIFIA_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_COV",_ifv, "COV", "ColorYellow"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_ASL",_hq, "ASL", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_A1",_ft, "A1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_A2",_ft, "A2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_AV",_ifv, "AV", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_BSL",_hq, "BSL", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_B1",_ft, "B1", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_B2",_ft, "B2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_BV",_ifv, "BV", "ColorBlue"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_CSL",_hq, "CSL", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_C1",_ft, "C1", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_C2",_ft, "C2", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_CV",_ifv, "CV", "ColorGreen"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_JSL",_hq, "JSL", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_J1",_ft, "J1", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_J2",_ft, "J2", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_JV",_ifv, "JV", "ColorPink"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_MMG1",_sup, "MMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_MMG2",_sup, "MMG2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_HMG1",_sup, "HMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_MAT1",_lau, "MAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_MAT2",_lau, "MAT2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_HAT1",_lau, "HAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_MTR1",_mor, "MTR1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_MSAM1",_lau, "MSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_HSAM1",_lau, "HSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_ST1",_rec, "ST1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_DT1",_rec, "DT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_ENG1",_eng, "ENG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_IFV1",_ifv, "TECH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_IFV2",_ifv, "TECH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TNK1",_tnk, "TNK1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_TH1",_hel, "TH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TH2",_hel, "TH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TH3",_hel, "TH3", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TH4",_hel, "TH4", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TH5",_hel, "TH5", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TH6",_hel, "TH6", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TH7",_hel, "TH7", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpIFIA_TH8",_hel, "TH8", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpIFIA_AH1",_hel, "AH1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["UnitIFIA_CO_M",_med, "COM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitIFIA_DC_M",_med, "DCM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitIFIA_ASL_M",_med, "AM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitIFIA_BSL_M",_med, "BM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitIFIA_CSL_M",_med, "CM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; -}; - -// ==================================================================================== - -// MARKERS: INDEPENDENT > SYNDIKAT -// Markers seen by players in SYNDIKAT slots. - -if (_unitfaction in ["ind_c_f"]) then { - ["GrpSyn_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpSyn_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpSyn_COV",_ifv, "COV", "ColorYellow"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_ASL",_hq, "ASL", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpSyn_A1",_ft, "A1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpSyn_A2",_ft, "A2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpSyn_AV",_ifv, "AV", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_BSL",_hq, "BSL", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpSyn_B1",_ft, "B1", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpSyn_B2",_ft, "B2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpSyn_BV",_ifv, "BV", "ColorBlue"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_CSL",_hq, "CSL", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpSyn_C1",_ft, "C1", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpSyn_C2",_ft, "C2", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpSyn_CV",_ifv, "CV", "ColorGreen"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_JSL",_hq, "JSL", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpSyn_J1",_ft, "J1", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpSyn_J2",_ft, "J2", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpSyn_JV",_ifv, "JV", "ColorPink"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_MMG1",_sup, "MMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_MMG2",_sup, "MMG2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_HMG1",_sup, "HMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_MAT1",_lau, "MAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_MAT2",_lau, "MAT2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_HAT1",_lau, "HAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_MTR1",_mor, "MTR1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_MSAM1",_lau, "MSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_HSAM1",_lau, "HSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_ST1",_rec, "ST1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_DT1",_rec, "DT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_ENG1",_eng, "ENG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_IFV1",_ifv, "TECH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpSyn_IFV2",_ifv, "TECH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TNK1",_tnk, "TNK1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_TH1",_hel, "TH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TH2",_hel, "TH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TH3",_hel, "TH3", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TH4",_hel, "TH4", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TH5",_hel, "TH5", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TH6",_hel, "TH6", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TH7",_hel, "TH7", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpSyn_TH8",_hel, "TH8", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpSyn_AH1",_hel, "AH1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["UnitSyn_CO_M",_med, "COM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitSyn_DC_M",_med, "DCM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitSyn_ASL_M",_med, "AM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitSyn_BSL_M",_med, "BM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitSyn_CSL_M",_med, "CM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; -}; - -// ==================================================================================== \ No newline at end of file diff --git a/f/groupMarkers/f_setLocalGroupMarkers_Opfor.sqf b/f/groupMarkers/f_setLocalGroupMarkers_Opfor.sqf deleted file mode 100644 index ccd52e488..000000000 --- a/f/groupMarkers/f_setLocalGroupMarkers_Opfor.sqf +++ /dev/null @@ -1,133 +0,0 @@ -// F3 - Folk Group Markers - OPFOR -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// MARKERS: OPFOR > CSAT -// Markers seen by players in CSAT & CSAT (Pacific) slots. - -if (_unitfaction in ["opf_f","opf_t_f"]) then { - ["GrpCSAT_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_COV",_ifv, "COV", "ColorYellow"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_ASL",_hq, "ASL", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_A1",_ft, "A1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_A2",_ft, "A2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_AV",_ifv, "AV", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_BSL",_hq, "BSL", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_B1",_ft, "B1", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_B2",_ft, "B2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_BV",_ifv, "BV", "ColorBlue"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_CSL",_hq, "CSL", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_C1",_ft, "C1", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_C2",_ft, "C2", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_CV",_ifv, "CV", "ColorGreen"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_JSL",_hq, "JSL", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_J1",_ft, "J1", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_J2",_ft, "J2", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_JV",_ifv, "JV", "ColorPink"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_MMG1",_sup, "MMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_MMG2",_sup, "MMG2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_HMG1",_sup, "HMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_MAT1",_lau, "MAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_MAT2",_lau, "MAT2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_HAT1",_lau, "HAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_MTR1",_mor, "MTR1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_MSAM1",_lau, "MSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_HSAM1",_lau, "HSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_ST1",_rec, "ST1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_DT1",_rec, "DT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_ENG1",_eng, "ENG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_IFV1",_ifv, "IFV1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_IFV2",_ifv, "IFV2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TNK1",_tnk, "TNK1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_TH1",_hel, "TH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TH2",_hel, "TH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TH3",_hel, "TH3", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TH4",_hel, "TH4", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TH5",_hel, "TH5", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TH6",_hel, "TH6", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TH7",_hel, "TH7", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpCSAT_TH8",_hel, "TH8", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpCSAT_AH1",_hel, "AH1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["UnitCSAT_CO_M",_med, "COM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitCSAT_DC_M",_med, "DCM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitCSAT_ASL_M",_med, "AM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitCSAT_BSL_M",_med, "BM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitCSAT_CSL_M",_med, "CM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; -}; - -// ==================================================================================== - -// MARKERS: OPFOR > FIA -// Markers seen by players in OPFOR-FIA slots. - -if (_unitfaction in ["opf_g_f"]) then { - ["GrpOFIA_CO",_hq, "CO", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_DC",_hq, "DC", "ColorYellow"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_COV",_ifv, "COV", "ColorYellow"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_ASL",_hq, "ASL", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_A1",_ft, "A1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_A2",_ft, "A2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_AV",_ifv, "AV", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_BSL",_hq, "BSL", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_B1",_ft, "B1", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_B2",_ft, "B2", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_BV",_ifv, "BV", "ColorBlue"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_CSL",_hq, "CSL", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_C1",_ft, "C1", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_C2",_ft, "C2", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_CV",_ifv, "CV", "ColorGreen"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_JSL",_hq, "JSL", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_J1",_ft, "J1", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_J2",_ft, "J2", "ColorPink"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_JV",_ifv, "JV", "ColorPink"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_MMG1",_sup, "MMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_MMG2",_sup, "MMG2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_HMG1",_sup, "HMG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_MAT1",_lau, "MAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_MAT2",_lau, "MAT2", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_HAT1",_lau, "HAT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_MTR1",_mor, "MTR1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_MSAM1",_lau, "MSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_HSAM1",_lau, "HSAM1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_ST1",_rec, "ST1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_DT1",_rec, "DT1", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_ENG1",_eng, "ENG1", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_IFV1",_ifv, "TECH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_IFV2",_ifv, "TECH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TNK1",_tnk, "TNK1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_TH1",_hel, "TH1", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TH2",_hel, "TH2", "ColorRed"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TH3",_hel, "TH3", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TH4",_hel, "TH4", "ColorBlue"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TH5",_hel, "TH5", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TH6",_hel, "TH6", "ColorGreen"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TH7",_hel, "TH7", "ColorOrange"] spawn f_fnc_localGroupMarker; - ["GrpOFIA_TH8",_hel, "TH8", "ColorOrange"] spawn f_fnc_localGroupMarker; - - ["GrpOFIA_AH1",_hel, "AH1", "ColorRed"] spawn f_fnc_localGroupMarker; - - ["UnitOFIA_CO_M",_med, "COM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitOFIA_DC_M",_med, "DCM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitOFIA_ASL_M",_med, "AM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitOFIA_BSL_M",_med, "BM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; - ["UnitOFIA_CSL_M",_med, "CM", "ColorBlack"] spawn f_fnc_localSpecialistMarker; -}; - -// ==================================================================================== \ No newline at end of file diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf new file mode 100644 index 000000000..c77ee8f15 --- /dev/null +++ b/f/groupMarkers/fn_groupData.sqf @@ -0,0 +1,486 @@ +// ==================================================================================== +// CONFIGURE MARKER TYPES +// Using the marker classes (https://community.bistudio.com/wiki/cfgMarkers) we setup a number of variables to define which type of marker should be used for which group +// Note: They can be overriden for each group individually + +// Groups +private _hq = "b_hq"; // Command elements +private _ft = "b_inf"; // Fireteams +private _sup = "b_support"; // Support units (MMG,HMG) +private _lau = "b_motor_inf"; // Launchers (MAT, HAT) +private _mor = "b_mortar"; // Mortars +private _eng = "b_maint"; // Engineers +private _ifv = "b_mech_inf"; // IFVs & APCs +private _tnk = "b_armor"; // Tanks +private _rec = "b_recon"; // Recon (ST) +private _hel = "b_air"; // Helicopters +private _pla = "b_plane"; // Planes +private _art = "b_art"; // Artillery + +// Specialists +private _med = "b_med"; // Medic +private _uav = "b_uav"; // UAV + +// ==================================================================================== + +// Defining group data arrays. Each element consists of: +// * Group variable name +// * CfgMarkers class name. If this is an empty string, no marker will be shown +// * Group marker text +// * Group marker color +// * Group Identity - as displayed in chat. Should be a empty string for non-groups + +f_var_groupData_blufor_nato = [ + ["GrpNATO_CO", _hq, "CO", "ColorYellow", "NATO CO -"], + ["GrpNATO_DC", _hq, "DC", "ColorYellow", "NATO DC -"], + ["GrpNATO_COV", _ifv, "COV", "ColorYellow", "NATO COV -"], + + ["GrpNATO_ASL", _hq, "ASL", "ColorRed", "NATO ASL -"], + ["GrpNATO_A1", _ft, "A1", "ColorRed", "NATO A1 -"], + ["GrpNATO_A2", _ft, "A2", "ColorRed", "NATO A2 -"], + ["GrpNATO_AV", _ifv, "AV", "ColorRed", "NATO AV -"], + + ["GrpNATO_BSL", _hq, "BSL", "ColorBlue", "NATO BSL -"], + ["GrpNATO_B1", _ft, "B1", "ColorBlue", "NATO B1 -"], + ["GrpNATO_B2", _ft, "B2", "ColorBlue", "NATO B2 -"], + ["GrpNATO_BV", _ifv, "BV", "ColorBlue", "NATO BV -"], + + ["GrpNATO_CSL", _hq, "CSL", "ColorGreen", "NATO CSL -"], + ["GrpNATO_C1", _ft, "C1", "ColorGreen", "NATO C1 -"], + ["GrpNATO_C2", _ft, "C2", "ColorGreen", "NATO C2 -"], + ["GrpNATO_CV", _ifv, "CV", "ColorGreen", "NATO CV -"], + + ["GrpNATO_JSL", _hq, "JSL", "ColorPink", "NATO JSL -"], + ["GrpNATO_J1", _ft, "J1", "ColorPink", "NATO J1 -"], + ["GrpNATO_J2", _ft, "J2", "ColorPink", "NATO J2 -"], + ["GrpNATO_JV", _ifv, "JV", "ColorPink", "NATO JV -"], + + ["GrpNATO_MMG1", _sup, "MMG1", "ColorOrange", "NATO MMG1 -"], + ["GrpNATO_MMG2", _sup, "MMG2", "ColorOrange", "NATO MMG2 -"], + ["GrpNATO_HMG1", _sup, "HMG1", "ColorOrange", "NATO HMG1 -"], + ["GrpNATO_MAT1", _lau, "MAT1", "ColorOrange", "NATO MAT1 -"], + ["GrpNATO_MAT2", _lau, "MAT2", "ColorOrange", "NATO MAT2 -"], + ["GrpNATO_HAT1", _lau, "HAT1", "ColorOrange", "NATO HAT1 -"], + ["GrpNATO_MTR1", _mor, "MTR1", "ColorOrange", "NATO MTR1 -"], + ["GrpNATO_MSAM1", _lau, "MSAM1", "ColorOrange", "NATO MSAM1 -"], + ["GrpNATO_HSAM1", _lau, "HSAM1", "ColorOrange", "NATO HSAM1 -"], + ["GrpNATO_ST1", _rec, "ST1", "ColorOrange", "NATO ST1 -"], + ["GrpNATO_DT1", _rec, "DT1", "ColorOrange", "NATO DT1 -"], + ["GrpNATO_ENG1", _eng, "ENG1", "ColorOrange", "NATO ENG1 -"], + + ["GrpNATO_IFV1", _ifv, "IFV1", "ColorOrange", "NATO IFV1 -"], + ["GrpNATO_IFV2", _ifv, "IFV2", "ColorOrange", "NATO IFV2 -"], + ["GrpNATO_TNK1", _tnk, "TNK1", "ColorRed", "NATO TNK1 -"], + + ["GrpNATO_CAS1", _pla, "CAS1", "ColorOrange", "NATO CAS1 -"], + + ["GrpNATO_TH1", _hel, "TH1", "ColorRed", "NATO TH1 -"], + ["GrpNATO_TH2", _hel, "TH2", "ColorRed", "NATO TH2 -"], + ["GrpNATO_TH3", _hel, "TH3", "ColorBlue", "NATO TH3 -"], + ["GrpNATO_TH4", _hel, "TH4", "ColorBlue", "NATO TH4 -"], + ["GrpNATO_TH5", _hel, "TH5", "ColorGreen", "NATO TH5 -"], + ["GrpNATO_TH6", _hel, "TH6", "ColorGreen", "NATO TH6 -"], + ["GrpNATO_TH7", _hel, "TH7", "ColorOrange", "NATO TH7 -"], + ["GrpNATO_TH8", _hel, "TH8", "ColorOrange", "NATO TH8 -"], + + ["GrpNATO_AH1", _hel, "AH1", "ColorRed", "NATO AH1 -"], + + ["UnitNATO_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitNATO_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitNATO_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitNATO_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitNATO_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_blufor_fia = [ + ["GrpFIA_CO", _hq, "CO", "ColorYellow", "FIA CO -"], + ["GrpFIA_DC", _hq, "DC", "ColorYellow", "FIA DC -"], + ["GrpFIA_COV", _ifv, "COV", "ColorYellow", "FIA COV -"], + + ["GrpFIA_ASL", _hq, "ASL", "ColorRed", "FIA ASL -"], + ["GrpFIA_A1", _ft, "A1", "ColorRed", "FIA A1 -"], + ["GrpFIA_A2", _ft, "A2", "ColorRed", "FIA A2 -"], + ["GrpFIA_AV", _ifv, "AV", "ColorRed", "FIA AV -"], + + ["GrpFIA_BSL", _hq, "BSL", "ColorBlue", "FIA BSL -"], + ["GrpFIA_B1", _ft, "B1", "ColorBlue", "FIA B1 -"], + ["GrpFIA_B2", _ft, "B2", "ColorBlue", "FIA B2 -"], + ["GrpFIA_BV", _ifv, "BV", "ColorBlue", "FIA BV -"], + + ["GrpFIA_CSL", _hq, "CSL", "ColorGreen", "FIA CSL -"], + ["GrpFIA_C1", _ft, "C1", "ColorGreen", "FIA C1 -"], + ["GrpFIA_C2", _ft, "C2", "ColorGreen", "FIA C2 -"], + ["GrpFIA_CV", _ifv, "CV", "ColorGreen", "FIA CV -"], + + ["GrpFIA_JSL", _hq, "JSL", "ColorPink", "FIA JSL -"], + ["GrpFIA_J1", _ft, "J1", "ColorPink", "FIA J1 -"], + ["GrpFIA_J2", _ft, "J2", "ColorPink", "FIA J2 -"], + ["GrpFIA_JV", _ifv, "JV", "ColorPink", "FIA JV -"], + + ["GrpFIA_MMG1", _sup, "MMG1", "ColorOrange", "FIA MMG1 -"], + ["GrpFIA_MMG2", _sup, "MMG2", "ColorOrange", "FIA MMG2 -"], + ["GrpFIA_HMG1", _sup, "HMG1", "ColorOrange", "FIA HMG1 -"], + ["GrpFIA_MAT1", _lau, "MAT1", "ColorOrange", "FIA MAT1 -"], + ["GrpFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA MAT2 -"], + ["GrpFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA HAT1 -"], + ["GrpFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA MTR1 -"], + ["GrpFIA_MSAM1", _lau, "MSAM1", "ColorOrange", "FIA MSAM1 -"], + ["GrpFIA_HSAM1", _lau, "HSAM1", "ColorOrange", "FIA HSAM1 -"], + ["GrpFIA_ST1", _rec, "ST1", "ColorOrange", "FIA ST1 -"], + ["GrpFIA_DT1", _rec, "DT1", "ColorOrange", "FIA DT1 -"], + ["GrpFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA ENG1 -"], + + ["GrpFIA_IFV1", _ifv, "TECH1", "ColorRed", "FIA TECH1 -"], + ["GrpFIA_IFV2", _ifv, "TECH2", "ColorRed", "FIA TECH2 -"], + ["GrpFIA_TNK1", _tnk, "TNK1", "ColorRed", "FIA TNK1 -"], + + ["GrpFIA_CAS1", _pla, "CAS1", "ColorOrange", "FIA CAS1 -"], + + ["GrpFIA_TH1", _hel, "TH1", "ColorRed", "FIA TH1 -"], + ["GrpFIA_TH2", _hel, "TH2", "ColorRed", "FIA TH2 -"], + ["GrpFIA_TH3", _hel, "TH3", "ColorBlue", "FIA TH3 -"], + ["GrpFIA_TH4", _hel, "TH4", "ColorBlue", "FIA TH4 -"], + ["GrpFIA_TH5", _hel, "TH5", "ColorGreen", "FIA TH5 -"], + ["GrpFIA_TH6", _hel, "TH6", "ColorGreen", "FIA TH6 -"], + ["GrpFIA_TH7", _hel, "TH7", "ColorOrange", "FIA TH7 -"], + ["GrpFIA_TH8", _hel, "TH8", "ColorOrange", "FIA TH8 -"], + + ["GrpFIA_AH1", _hel, "AH1", "ColorRed", "FIA AH1 -"], + + ["UnitFIA_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitFIA_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitFIA_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitFIA_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitFIA_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_blufor_gen = [ + ["GrpGEN_CO", _hq, "CO", "ColorYellow", "Gendarmerie CO -"], + ["GrpGEN_DC", _hq, "DC", "ColorYellow", "Gendarmerie DC -"], + ["GrpGEN_A", _hq, "A", "ColorRed", "Gendarmerie Alpha -"], + ["GrpGEN_B", _hq, "B", "ColorBlue", "Gendarmerie Bravo -"], + ["GrpGEN_C", _hq, "C", "ColorGreen", "Gendarmerie Charlie -"], + ["GrpGEN_J", _hq, "J", "ColorPink", "Gendarmerie Juliet -"], + ["GrpGEN_MK", _rec, "MK", "ColorOrange", "Gendarmerie Marksman -"], + ["GrpGEN_TH1", _hel, "TH1", "ColorOrange", "Gendarmerie TH1 -"] +]; + +f_var_groupData_opfor_csat = [ + ["GrpCSAT_CO", _hq, "CO", "ColorYellow", "CSAT CO -"], + ["GrpCSAT_DC", _hq, "DC", "ColorYellow", "CSAT DC -"], + ["GrpCSAT_COV", _ifv, "COV", "ColorYellow", "CSAT COV -"], + + ["GrpCSAT_ASL", _hq, "ASL", "ColorRed", "CSAT ASL -"], + ["GrpCSAT_A1", _ft, "A1", "ColorRed", "CSAT A1 -"], + ["GrpCSAT_A2", _ft, "A2", "ColorRed", "CSAT A2 -"], + ["GrpCSAT_AV", _ifv, "AV", "ColorRed", "CSAT AV -"], + + ["GrpCSAT_BSL", _hq, "BSL", "ColorBlue", "CSAT BSL -"], + ["GrpCSAT_B1", _ft, "B1", "ColorBlue", "CSAT B1 -"], + ["GrpCSAT_B2", _ft, "B2", "ColorBlue", "CSAT B2 -"], + ["GrpCSAT_BV", _ifv, "BV", "ColorBlue", "CSAT BV -"], + + ["GrpCSAT_CSL", _hq, "CSL", "ColorGreen", "CSAT CSL -"], + ["GrpCSAT_C1", _ft, "C1", "ColorGreen", "CSAT C1 -"], + ["GrpCSAT_C2", _ft, "C2", "ColorGreen", "CSAT C2 -"], + ["GrpCSAT_CV", _ifv, "CV", "ColorGreen", "CSAT CV -"], + + ["GrpCSAT_JSL", _hq, "JSL", "ColorPink", "CSAT JSL -"], + ["GrpCSAT_J1", _ft, "J1", "ColorPink", "CSAT J1 -"], + ["GrpCSAT_J2", _ft, "J2", "ColorPink", "CSAT J2 -"], + ["GrpCSAT_JV", _ifv, "JV", "ColorPink", "CSAT JV -"], + + ["GrpCSAT_MMG1", _sup, "MMG1", "ColorOrange", "CSAT MMG1 -"], + ["GrpCSAT_MMG2", _sup, "MMG2", "ColorOrange", "CSAT MMG2 -"], + ["GrpCSAT_HMG1", _sup, "HMG1", "ColorOrange", "CSAT HMG1 -"], + ["GrpCSAT_MAT1", _lau, "MAT1", "ColorOrange", "CSAT MAT1 -"], + ["GrpCSAT_MAT2", _lau, "MAT2", "ColorOrange", "CSAT MAT2 -"], + ["GrpCSAT_HAT1", _lau, "HAT1", "ColorOrange", "CSAT HAT1 -"], + ["GrpCSAT_MTR1", _mor, "MTR1", "ColorOrange", "CSAT MTR1 -"], + ["GrpCSAT_MSAM1", _lau, "MSAM1", "ColorOrange", "CSAT MSAM1 -"], + ["GrpCSAT_HSAM1", _lau, "HSAM1", "ColorOrange", "CSAT HSAM1 -"], + ["GrpCSAT_ST1", _rec, "ST1", "ColorOrange", "CSAT ST1 -"], + ["GrpCSAT_DT1", _rec, "DT1", "ColorOrange", "CSAT DT1 -"], + ["GrpCSAT_ENG1", _eng, "ENG1", "ColorOrange", "CSAT ENG1 -"], + + ["GrpCSAT_IFV1", _ifv, "IFV1", "ColorOrange", "CSAT IFV1 -"], + ["GrpCSAT_IFV2", _ifv, "IFV2", "ColorOrange", "CSAT IFV2 -"], + ["GrpCSAT_TNK1", _tnk, "TNK1", "ColorRed", "CSAT TNK1 -"], + + ["GrpCSAT_CAS1", _pla, "CAS1", "ColorOrange", "CSAT CAS1 -"], + + ["GrpCSAT_TH1", _hel, "TH1", "ColorRed", "CSAT TH1 -"], + ["GrpCSAT_TH2", _hel, "TH2", "ColorRed", "CSAT TH2 -"], + ["GrpCSAT_TH3", _hel, "TH3", "ColorBlue", "CSAT TH3 -"], + ["GrpCSAT_TH4", _hel, "TH4", "ColorBlue", "CSAT TH4 -"], + ["GrpCSAT_TH5", _hel, "TH5", "ColorGreen", "CSAT TH5 -"], + ["GrpCSAT_TH6", _hel, "TH6", "ColorGreen", "CSAT TH6 -"], + ["GrpCSAT_TH7", _hel, "TH7", "ColorOrange", "CSAT TH7 -"], + ["GrpCSAT_TH8", _hel, "TH8", "ColorOrange", "CSAT TH8 -"], + + ["GrpCSAT_AH1", _hel, "AH1", "ColorRed", "CSAT AH1 -"], + + ["UnitCSAT_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitCSAT_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitCSAT_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitCSAT_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitCSAT_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_opfor_fia = [ + ["GrpOFIA_CO", _hq, "CO", "ColorYellow", "FIA O CO -"], + ["GrpOFIA_DC", _hq, "DC", "ColorYellow", "FIA O DC -"], + ["GrpOFIA_COV", _ifv, "COV", "ColorYellow", "FIA O COV -"], + + ["GrpOFIA_ASL", _hq, "ASL", "ColorRed", "FIA O ASL -"], + ["GrpOFIA_A1", _ft, "A1", "ColorRed", "FIA O A1 -"], + ["GrpOFIA_A2", _ft, "A2", "ColorRed", "FIA O A2 -"], + ["GrpOFIA_AV", _ifv, "AV", "ColorRed", "FIA O AV -"], + + ["GrpOFIA_BSL", _hq, "BSL", "ColorBlue", "FIA O BSL -"], + ["GrpOFIA_B1", _ft, "B1", "ColorBlue", "FIA O B1 -"], + ["GrpOFIA_B2", _ft, "B2", "ColorBlue", "FIA O B2 -"], + ["GrpOFIA_BV", _ifv, "BV", "ColorBlue", "FIA O BV -"], + + ["GrpOFIA_CSL", _hq, "CSL", "ColorGreen", "FIA O CSL -"], + ["GrpOFIA_C1", _ft, "C1", "ColorGreen", "FIA O C1 -"], + ["GrpOFIA_C2", _ft, "C2", "ColorGreen", "FIA O C2 -"], + ["GrpOFIA_CV", _ifv, "CV", "ColorGreen", "FIA O CV -"], + + ["GrpOFIA_JSL", _hq, "JSL", "ColorPink", "FIA O JSL -"], + ["GrpOFIA_J1", _ft, "J1", "ColorPink", "FIA O J1 -"], + ["GrpOFIA_J2", _ft, "J2", "ColorPink", "FIA O J2 -"], + ["GrpOFIA_JV", _ifv, "JV", "ColorPink", "FIA O JV -"], + + ["GrpOFIA_MMG1", _sup, "MMG1", "ColorOrange", "FIA O MMG1 -"], + ["GrpOFIA_MMG2", _sup, "MMG2", "ColorOrange", "FIA O MMG2 -"], + ["GrpOFIA_HMG1", _sup, "HMG1", "ColorOrange", "FIA O HMG1 -"], + ["GrpOFIA_MAT1", _lau, "MAT1", "ColorOrange", "FIA O MAT1 -"], + ["GrpOFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA O MAT2 -"], + ["GrpOFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA O HAT1 -"], + ["GrpOFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA O MTR1 -"], + ["GrpOFIA_MSAM1", _lau, "MSAM1", "ColorOrange", "FIA O MSAM1 -"], + ["GrpOFIA_HSAM1", _lau, "HSAM1", "ColorOrange", "FIA O HSAM1 -"], + ["GrpOFIA_ST1", _rec, "ST1", "ColorOrange", "FIA O ST1 -"], + ["GrpOFIA_DT1", _rec, "DT1", "ColorOrange", "FIA O DT1 -"], + ["GrpOFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA O ENG1 -"], + + ["GrpOFIA_IFV1", _ifv, "TECH1", "ColorRed", "FIA O TECH1 -"], + ["GrpOFIA_IFV2", _ifv, "TECH2", "ColorRed", "FIA O TECH2 -"], + ["GrpOFIA_TNK1", _tnk, "TNK1", "ColorRed", "FIA O TNK1 -"], + + ["GrpOFIA_CAS1", _pla, "CAS1", "ColorOrange", "FIA O CAS1 -"], + + ["GrpOFIA_TH1", _hel, "TH1", "ColorRed", "FIA O TH1 -"], + ["GrpOFIA_TH2", _hel, "TH2", "ColorRed", "FIA O TH2 -"], + ["GrpOFIA_TH3", _hel, "TH3", "ColorBlue", "FIA O TH3 -"], + ["GrpOFIA_TH4", _hel, "TH4", "ColorBlue", "FIA O TH4 -"], + ["GrpOFIA_TH5", _hel, "TH5", "ColorGreen", "FIA O TH5 -"], + ["GrpOFIA_TH6", _hel, "TH6", "ColorGreen", "FIA O TH6 -"], + ["GrpOFIA_TH7", _hel, "TH7", "ColorOrange", "FIA O TH7 -"], + ["GrpOFIA_TH8", _hel, "TH8", "ColorOrange", "FIA O TH8 -"], + + ["GrpOFIA_AH1", _hel, "AH1", "ColorRed", "FIA O AH1 -"], + + ["UnitOFIA_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitOFIA_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitOFIA_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitOFIA_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitOFIA_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_indfor_aaf = [ + ["GrpAAF_CO", _hq, "CO", "ColorYellow", "AAF CO -"], + ["GrpAAF_DC", _hq, "DC", "ColorYellow", "AAF DC -"], + ["GrpAAF_COV", _ifv, "COV", "ColorYellow", "AAF COV -"], + + ["GrpAAF_ASL", _hq, "ASL", "ColorRed", "AAF ASL -"], + ["GrpAAF_A1", _ft, "A1", "ColorRed", "AAF A1 -"], + ["GrpAAF_A2", _ft, "A2", "ColorRed", "AAF A2 -"], + ["GrpAAF_AV", _ifv, "AV", "ColorRed", "AAF AV -"], + + ["GrpAAF_BSL", _hq, "BSL", "ColorBlue", "AAF BSL -"], + ["GrpAAF_B1", _ft, "B1", "ColorBlue", "AAF B1 -"], + ["GrpAAF_B2", _ft, "B2", "ColorBlue", "AAF B2 -"], + ["GrpAAF_BV", _ifv, "BV", "ColorBlue", "AAF BV -"], + + ["GrpAAF_CSL", _hq, "CSL", "ColorGreen", "AAF CSL -"], + ["GrpAAF_C1", _ft, "C1", "ColorGreen", "AAF C1 -"], + ["GrpAAF_C2", _ft, "C2", "ColorGreen", "AAF C2 -"], + ["GrpAAF_CV", _ifv, "CV", "ColorGreen", "AAF CV -"], + + ["GrpAAF_JSL", _hq, "JSL", "ColorPink", "AAF JSL -"], + ["GrpAAF_J1", _ft, "J1", "ColorPink", "AAF J1 -"], + ["GrpAAF_J2", _ft, "J2", "ColorPink", "AAF J2 -"], + ["GrpAAF_JV", _ifv, "JV", "ColorPink", "AAF JV -"], + + ["GrpAAF_MMG1", _sup, "MMG1", "ColorOrange", "AAF MMG1 -"], + ["GrpAAF_MMG2", _sup, "MMG2", "ColorOrange", "AAF MMG2 -"], + ["GrpAAF_HMG1", _sup, "HMG1", "ColorOrange", "AAF HMG1 -"], + ["GrpAAF_MAT1", _lau, "MAT1", "ColorOrange", "AAF MAT1 -"], + ["GrpAAF_MAT2", _lau, "MAT2", "ColorOrange", "AAF MAT2 -"], + ["GrpAAF_HAT1", _lau, "HAT1", "ColorOrange", "AAF HAT1 -"], + ["GrpAAF_MTR1", _mor, "MTR1", "ColorOrange", "AAF MTR1 -"], + ["GrpAAF_MSAM1", _lau, "MSAM1", "ColorOrange", "AAF MSAM1 -"], + ["GrpAAF_HSAM1", _lau, "HSAM1", "ColorOrange", "AAF HSAM1 -"], + ["GrpAAF_ST1", _rec, "ST1", "ColorOrange", "AAF ST1 -"], + ["GrpAAF_DT1", _rec, "DT1", "ColorOrange", "AAF DT1 -"], + ["GrpAAF_ENG1", _eng, "ENG1", "ColorOrange", "AAF ENG1 -"], + + ["GrpAAF_IFV1", _ifv, "IFV1", "ColorOrange", "AAF IFV1 -"], + ["GrpAAF_IFV2", _ifv, "IFV2", "ColorOrange", "AAF IFV2 -"], + ["GrpAAF_TNK1", _tnk, "TNK1", "ColorRed", "AAF TNK1 -"], + + ["GrpAAF_CAS1", _pla, "CAS1", "ColorOrange", "AAF CAS1 -"], + + ["GrpAAF_TH1", _hel, "TH1", "ColorRed", "AAF TH1 -"], + ["GrpAAF_TH2", _hel, "TH2", "ColorBlue", "AAF TH2 -"], + ["GrpAAF_TH3", _hel, "TH3", "ColorGreen", "AAF TH3 -"], + ["GrpAAF_TH4", _hel, "TH4", "ColorOrange", "AAF TH4 -"], + + ["GrpAAF_AH1", _hel, "AH1", "ColorRed", "AAF AH1 -"], + + ["UnitAAF_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitAAF_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitAAF_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitAAF_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitAAF_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_indfor_fia = [ + ["GrpIFIA_CO", _hq, "CO", "ColorYellow", "FIA I CO -"], + ["GrpIFIA_DC", _hq, "DC", "ColorYellow", "FIA I DC -"], + ["GrpIFIA_COV", _ifv, "COV", "ColorYellow", "FIA I COV -"], + + ["GrpIFIA_ASL", _hq, "ASL", "ColorRed", "FIA I ASL -"], + ["GrpIFIA_A1", _ft, "A1", "ColorRed", "FIA I A1 -"], + ["GrpIFIA_A2", _ft, "A2", "ColorRed", "FIA I A2 -"], + ["GrpIFIA_AV", _ifv, "AV", "ColorRed", "FIA I AV -"], + + ["GrpIFIA_BSL", _hq, "BSL", "ColorBlue", "FIA I BSL -"], + ["GrpIFIA_B1", _ft, "B1", "ColorBlue", "FIA I B1 -"], + ["GrpIFIA_B2", _ft, "B2", "ColorBlue", "FIA I B2 -"], + ["GrpIFIA_BV", _ifv, "BV", "ColorBlue", "FIA I BV -"], + + ["GrpIFIA_CSL", _hq, "CSL", "ColorGreen", "FIA I CSL -"], + ["GrpIFIA_C1", _ft, "C1", "ColorGreen", "FIA I C1 -"], + ["GrpIFIA_C2", _ft, "C2", "ColorGreen", "FIA I C2 -"], + ["GrpIFIA_CV", _ifv, "CV", "ColorGreen", "FIA I CV -"], + + ["GrpIFIA_JSL", _hq, "JSL", "ColorPink", "FIA I JSL -"], + ["GrpIFIA_J1", _ft, "J1", "ColorPink", "FIA I J1 -"], + ["GrpIFIA_J2", _ft, "J2", "ColorPink", "FIA I J2 -"], + ["GrpIFIA_JV", _ifv, "JV", "ColorPink", "FIA I JV -"], + + ["GrpIFIA_MMG1", _sup, "MMG1", "ColorOrange", "FIA I MMG1 -"], + ["GrpIFIA_MMG2", _sup, "MMG2", "ColorOrange", "FIA I MMG2 -"], + ["GrpIFIA_HMG1", _sup, "HMG1", "ColorOrange", "FIA I HMG1 -"], + ["GrpIFIA_MAT1", _lau, "MAT1", "ColorOrange", "FIA I MAT1 -"], + ["GrpIFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA I MAT2 -"], + ["GrpIFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA I HAT1 -"], + ["GrpIFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA I MTR1 -"], + ["GrpIFIA_MSAM1", _lau, "MSAM1", "ColorOrange", "FIA I MSAM1 -"], + ["GrpIFIA_HSAM1", _lau, "HSAM1", "ColorOrange", "FIA I HSAM1 -"], + ["GrpIFIA_ST1", _rec, "ST1", "ColorOrange", "FIA I ST1 -"], + ["GrpIFIA_DT1", _rec, "DT1", "ColorOrange", "FIA I DT1 -"], + ["GrpIFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA I ENG1 -"], + + ["GrpIFIA_IFV1", _ifv, "TECH1", "ColorRed", "FIA I TECH1 -"], + ["GrpIFIA_IFV2", _ifv, "TECH2", "ColorRed", "FIA I TECH2 -"], + ["GrpIFIA_TNK1", _tnk, "TNK1", "ColorRed", "FIA I TNK1 -"], + + ["GrpIFIA_CAS1", _pla, "CAS1", "ColorOrange", "FIA I CAS1 -"], + + ["GrpIFIA_TH1", _hel, "TH1", "ColorRed", "FIA I TH1 -"], + ["GrpIFIA_TH2", _hel, "TH2", "ColorRed", "FIA I TH2 -"], + ["GrpIFIA_TH3", _hel, "TH3", "ColorBlue", "FIA I TH3 -"], + ["GrpIFIA_TH4", _hel, "TH4", "ColorBlue", "FIA I TH4 -"], + ["GrpIFIA_TH5", _hel, "TH5", "ColorGreen", "FIA I TH5 -"], + ["GrpIFIA_TH6", _hel, "TH6", "ColorGreen", "FIA I TH6 -"], + ["GrpIFIA_TH7", _hel, "TH7", "ColorOrange", "FIA I TH7 -"], + ["GrpIFIA_TH8", _hel, "TH8", "ColorOrange", "FIA I TH8 -"], + + ["GrpIFIA_AH1", _hel, "AH1", "ColorRed", "FIA I AH1 -"], + + ["UnitIFIA_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitIFIA_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitIFIA_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitIFIA_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitIFIA_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_indfor_syn = [ + ["GrpSyn_CO", _hq, "CO", "ColorYellow", "Syndikat CO -"], + ["GrpSyn_DC", _hq, "DC", "ColorYellow", "Syndikat DC -"], + ["GrpSyn_COV", _ifv, "COV", "ColorYellow", "Syndikat COV -"], + + ["GrpSyn_ASL", _hq, "ASL", "ColorRed", "Syndikat ASL -"], + ["GrpSyn_A1", _ft, "A1", "ColorRed", "Syndikat A1 -"], + ["GrpSyn_A2", _ft, "A2", "ColorRed", "Syndikat A2 -"], + ["GrpSyn_AV", _ifv, "AV", "ColorRed", "Syndikat AV -"], + + ["GrpSyn_BSL", _hq, "BSL", "ColorBlue", "Syndikat BSL -"], + ["GrpSyn_B1", _ft, "B1", "ColorBlue", "Syndikat B1 -"], + ["GrpSyn_B2", _ft, "B2", "ColorBlue", "Syndikat B2 -"], + ["GrpSyn_BV", _ifv, "BV", "ColorBlue", "Syndikat BV -"], + + ["GrpSyn_CSL", _hq, "CSL", "ColorGreen", "Syndikat CSL -"], + ["GrpSyn_C1", _ft, "C1", "ColorGreen", "Syndikat C1 -"], + ["GrpSyn_C2", _ft, "C2", "ColorGreen", "Syndikat C2 -"], + ["GrpSyn_CV", _ifv, "CV", "ColorGreen", "Syndikat CV -"], + + ["GrpSyn_JSL", _hq, "JSL", "ColorPink", "Syndikat JSL -"], + ["GrpSyn_J1", _ft, "J1", "ColorPink", "Syndikat J1 -"], + ["GrpSyn_J2", _ft, "J2", "ColorPink", "Syndikat J2 -"], + ["GrpSyn_JV", _ifv, "JV", "ColorPink", "Syndikat JV -"], + + ["GrpSyn_MMG1", _sup, "MMG1", "ColorOrange", "Syndikat MMG1 -"], + ["GrpSyn_MMG2", _sup, "MMG2", "ColorOrange", "Syndikat MMG2 -"], + ["GrpSyn_HMG1", _sup, "HMG1", "ColorOrange", "Syndikat HMG1 -"], + ["GrpSyn_MAT1", _lau, "MAT1", "ColorOrange", "Syndikat MAT1 -"], + ["GrpSyn_MAT2", _lau, "MAT2", "ColorOrange", "Syndikat MAT2 -"], + ["GrpSyn_HAT1", _lau, "HAT1", "ColorOrange", "Syndikat HAT1 -"], + ["GrpSyn_MTR1", _mor, "MTR1", "ColorOrange", "Syndikat MTR1 -"], + ["GrpSyn_MSAM1", _lau, "MSAM1", "ColorOrange", "Syndikat MSAM1 -"], + ["GrpSyn_HSAM1", _lau, "HSAM1", "ColorOrange", "Syndikat HSAM1 -"], + ["GrpSyn_ST1", _rec, "ST1", "ColorOrange", "Syndikat ST1 -"], + ["GrpSyn_DT1", _rec, "DT1", "ColorOrange", "Syndikat DT1 -"], + ["GrpSyn_ENG1", _eng, "ENG1", "ColorOrange", "Syndikat ENG1 -"], + + ["GrpSyn_IFV1", _ifv, "TECH1", "ColorRed", "Syndikat IFV1 -"], + ["GrpSyn_IFV2", _ifv, "TECH2", "ColorRed", "Syndikat IFV2 -"], + ["GrpSyn_TNK1", _tnk, "TNK1", "ColorRed", "Syndikat TNK1 -"], + + ["GrpSyn_CAS1", _pla, "CAS1", "ColorOrange", "Syndikat CAS1 -"], + + ["GrpSyn_TH1", _hel, "TH1", "ColorRed", "Syndikat TH1 -"], + ["GrpSyn_TH2", _hel, "TH2", "ColorRed", "Syndikat TH2 -"], + ["GrpSyn_TH3", _hel, "TH3", "ColorBlue", "Syndikat TH3 -"], + ["GrpSyn_TH4", _hel, "TH4", "ColorBlue", "Syndikat TH4 -"], + ["GrpSyn_TH5", _hel, "TH5", "ColorGreen", "Syndikat TH5 -"], + ["GrpSyn_TH6", _hel, "TH6", "ColorGreen", "Syndikat TH6 -"], + ["GrpSyn_TH7", _hel, "TH7", "ColorOrange", "Syndikat TH7 -"], + ["GrpSyn_TH8", _hel, "TH8", "ColorOrange", "Syndikat TH8 -"], + + ["GrpSyn_AH1", _hel, "AH1", "ColorRed", "Syndikat AH1 -"], + + ["UnitSyn_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitSyn_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitSyn_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitSyn_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitSyn_CSL_M", _med, "CM", "ColorBlack", ""] +]; +// ==================================================================================== + +// Adding all of the group data to a single array +f_var_groupData_all = []; +f_var_groupData_all append f_var_groupData_blufor_nato; +f_var_groupData_all append f_var_groupData_blufor_fia; +f_var_groupData_all append f_var_groupData_blufor_gen; +f_var_groupData_all append f_var_groupData_opfor_csat; +f_var_groupData_all append f_var_groupData_opfor_fia; +f_var_groupData_all append f_var_groupData_indfor_aaf; +f_var_groupData_all append f_var_groupData_indfor_fia; +f_var_groupData_all append f_var_groupData_indfor_syn; + +// ==================================================================================== diff --git a/f/setGroupID/f_setGroupIDs.sqf b/f/setGroupID/f_setGroupIDs.sqf index 00a446c79..eafe8079b 100644 --- a/f/setGroupID/f_setGroupIDs.sqf +++ b/f/setGroupID/f_setGroupIDs.sqf @@ -2,426 +2,35 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// OPEN THE ARRAY CONTAING ALL GROUPS -// Do not comment or delete this line! -private _groups = [ - -// ==================================================================================== - -// GROUP IDs: BLUFOR > NATO -// Automatically assigns intelligible names to groups - -["GrpNATO_CO","NATO CO -"], -["GrpNATO_DC","NATO DC -"], -["GrpNATO_COV","NATO COV -"], - -["GrpNATO_ASL","NATO ASL -"], -["GrpNATO_A1","NATO A1 -"], -["GrpNATO_A2","NATO A2 -"], -["GrpNATO_AV","NATO AV -"], - -["GrpNATO_BSL","NATO BSL -"], -["GrpNATO_B1","NATO B1 -"], -["GrpNATO_B2","NATO B2 -"], -["GrpNATO_BV","NATO BV -"], - -["GrpNATO_CSL","NATO CSL -"], -["GrpNATO_C1","NATO C1 -"], -["GrpNATO_C2","NATO C2 -"], -["GrpNATO_CV","NATO CV -"], - -["GrpNATO_JSL","NATO JSL -"], -["GrpNATO_J1","NATO J1 -"], -["GrpNATO_J2","NATO J2 -"], -["GrpNATO_JV","NATO JV -"], - -["GrpNATO_MMG1","NATO MMG1 -"], -["GrpNATO_MMG2","NATO MMG2 -"], -["GrpNATO_HMG1","NATO HMG1 -"], -["GrpNATO_MAT1","NATO MAT1 -"], -["GrpNATO_MAT2","NATO MAT2 -"], -["GrpNATO_HAT1","NATO HAT1 -"], -["GrpNATO_MTR1","NATO MTR1 -"], -["GrpNATO_MSAM1","NATO MSAM1 -"], -["GrpNATO_HSAM1","NATO HSAM1 -"], -["GrpNATO_ST1","NATO ST1 -"], -["GrpNATO_DT1","NATO DT1 -"], -["GrpNATO_ENG1","NATO ENG1 -"], - -["GrpNATO_IFV1","NATO IFV1 -"], -["GrpNATO_IFV2","NATO IFV2 -"], -["GrpNATO_TNK1","NATO TNK1 -"], - -["GrpNATO_TH1","NATO TH1 -"], -["GrpNATO_TH2","NATO TH2 -"], -["GrpNATO_TH3","NATO TH3 -"], -["GrpNATO_TH4","NATO TH4 -"], -["GrpNATO_TH5","NATO TH5 -"], -["GrpNATO_TH6","NATO TH6 -"], -["GrpNATO_TH7","NATO TH7 -"], -["GrpNATO_TH8","NATO TH8 -"], -["GrpNATO_AH1","NATO AH1 -"], - -// ==================================================================================== - -// GROUP IDs: BLUFOR > FIA -// Automatically assigns intelligible names to groups - -["GrpFIA_CO","FIA CO -"], -["GrpFIA_DC","FIA DC -"], -["GrpFIA_COV","FIA COV -"], - -["GrpFIA_ASL","FIA ASL -"], -["GrpFIA_A1","FIA A1 -"], -["GrpFIA_A2","FIA A2 -"], -["GrpFIA_AV","FIA AV -"], - -["GrpFIA_BSL","FIA BSL -"], -["GrpFIA_B1","FIA B1 -"], -["GrpFIA_B2","FIA B2 -"], -["GrpFIA_BV","FIA BV -"], - -["GrpFIA_CSL","FIA CSL -"], -["GrpFIA_C1","FIA C1 -"], -["GrpFIA_C2","FIA C2 -"], -["GrpFIA_CV","FIA CV -"], - -["GrpFIA_JSL","FIA JSL -"], -["GrpFIA_J1","FIA J1 -"], -["GrpFIA_J2","FIA J2 -"], -["GrpFIA_JV","FIA JV -"], - -["GrpFIA_MMG1","FIA MMG1 -"], -["GrpFIA_MMG2","FIA MMG2 -"], -["GrpFIA_HMG1","FIA HMG1 -"], -["GrpFIA_MAT1","FIA MAT1 -"], -["GrpFIA_MAT2","FIA MAT2 -"], -["GrpFIA_HAT1","FIA HAT1 -"], -["GrpFIA_MTR1","FIA MTR1 -"], -["GrpFIA_MSAM1","FIA MSAM1 -"], -["GrpFIA_HSAM1","FIA HSAM1 -"], -["GrpFIA_ST1","FIA ST1 -"], -["GrpFIA_DT1","FIA DT1 -"], -["GrpFIA_ENG1","FIA ENG1 -"], - -["GrpFIA_IFV1","FIA TECH1 -"], -["GrpFIA_IFV2","FIA TECH2 -"], -["GrpFIA_TNK1","FIA TNK1 -"], - -["GrpFIA_TH1","FIA TH1 -"], -["GrpFIA_TH2","FIA TH2 -"], -["GrpFIA_TH3","FIA TH3 -"], -["GrpFIA_TH4","FIA TH4 -"], -["GrpFIA_TH5","FIA TH5 -"], -["GrpFIA_TH6","FIA TH6 -"], -["GrpFIA_TH7","FIA TH7 -"], -["GrpFIA_TH8","FIA TH8 -"], -["GrpFIA_AH1","FIA AH1 -"], - -// ==================================================================================== - -// GROUP IDs: BLUFOR > GENDARMERIE -// Automatically assigns intelligible names to groups - -["GrpGEN_CO","Gendarmerie CO -"], -["GrpGEN_DC","Gendarmerie DC -"], -["GrpGEN_A","Gendarmerie Alpha -"], -["GrpGEN_B","Gendarmerie Bravo -"], -["GrpGEN_C","Gendarmerie Charlie -"], -["GrpGEN_J","Gendarmerie Juliet -"], -["GrpGEN_MK","Gendarmerie Marksman -"], -["GrpGEN_TH1","Gendarmerie TH1 -"], - -// ==================================================================================== - -// GROUP IDs: OPFOR > CSAT -// Automatically assigns intelligible names to groups - -["GrpCSAT_CO","CSAT CO -"], -["GrpCSAT_DC","CSAT DC -"], -["GrpCSAT_COV","CSAT COV -"], - -["GrpCSAT_ASL","CSAT ASL -"], -["GrpCSAT_A1","CSAT A1 -"], -["GrpCSAT_A2","CSAT A2 -"], -["GrpCSAT_AV","CSAT AV -"], - -["GrpCSAT_BSL","CSAT BSL -"], -["GrpCSAT_B1","CSAT B1 -"], -["GrpCSAT_B2","CSAT B2 -"], -["GrpCSAT_BV","CSAT BV -"], - -["GrpCSAT_CSL","CSAT CSL -"], -["GrpCSAT_C1","CSAT C1 -"], -["GrpCSAT_C2","CSAT C2 -"], -["GrpCSAT_CV","CSAT CV -"], - -["GrpCSAT_JSL","CSAT JSL -"], -["GrpCSAT_J1","CSAT J1 -"], -["GrpCSAT_J2","CSAT J2 -"], -["GrpCSAT_JV","CSAT JV -"], - -["GrpCSAT_MMG1","CSAT MMG1 -"], -["GrpCSAT_MMG2","CSAT MMG2 -"], -["GrpCSAT_HMG1","CSAT HMG1 -"], -["GrpCSAT_MAT1","CSAT MAT1 -"], -["GrpCSAT_MAT2","CSAT MAT2 -"], -["GrpCSAT_HAT1","CSAT HAT1 -"], -["GrpCSAT_MTR1","CSAT MTR1 -"], -["GrpCSAT_MSAM1","CSAT MSAM1 -"], -["GrpCSAT_HSAM1","CSAT HSAM1 -"], -["GrpCSAT_ST1","CSAT ST1 -"], -["GrpCSAT_DT1","CSAT DT1 -"], -["GrpCSAT_ENG1","CSAT ENG1 -"], - -["GrpCSAT_IFV1","CSAT IFV1 -"], -["GrpCSAT_IFV2","CSAT IFV2 -"], -["GrpCSAT_TNK1","CSAT TNK1 -"], - -["GrpCSAT_TH1","CSAT TH1 -"], -["GrpCSAT_TH2","CSAT TH2 -"], -["GrpCSAT_TH3","CSAT TH3 -"], -["GrpCSAT_TH4","CSAT TH4 -"], -["GrpCSAT_TH5","CSAT TH5 -"], -["GrpCSAT_TH6","CSAT TH6 -"], -["GrpCSAT_TH7","CSAT TH7 -"], -["GrpCSAT_TH8","CSAT TH8 -"], -["GrpCSAT_AH1","CSAT AH1 -"], - -// ==================================================================================== - -// GROUP IDs: OPFOR > FIA -// Automatically assigns intelligible names to groups - -["GrpOFIA_CO","FIA O CO -"], -["GrpOFIA_DC","FIA O DC -"], -["GrpOFIA_COV","FIA O COV -"], - -["GrpOFIA_ASL","FIA O ASL -"], -["GrpOFIA_A1","FIA O A1 -"], -["GrpOFIA_A2","FIA O A2 -"], -["GrpOFIA_AV","FIA O AV -"], - -["GrpOFIA_BSL","FIA O BSL -"], -["GrpOFIA_B1","FIA O B1 -"], -["GrpOFIA_B2","FIA O B2 -"], -["GrpOFIA_BV","FIA O BV -"], - -["GrpOFIA_CSL","FIA O CSL -"], -["GrpOFIA_C1","FIA O C1 -"], -["GrpOFIA_C2","FIA O C2 -"], -["GrpOFIA_CV","FIA O CV -"], - -["GrpOFIA_JSL","FIA O JSL -"], -["GrpOFIA_J1","FIA O J1 -"], -["GrpOFIA_J2","FIA O J2 -"], -["GrpOFIA_JV","FIA O JV -"], - -["GrpOFIA_MMG1","FIA O MMG1 -"], -["GrpOFIA_MMG2","FIA O MMG2 -"], -["GrpOFIA_HMG1","FIA O HMG1 -"], -["GrpOFIA_MAT1","FIA O MAT1 -"], -["GrpOFIA_MAT2","FIA O MAT2 -"], -["GrpOFIA_HAT1","FIA O HAT1 -"], -["GrpOFIA_MTR1","FIA O MTR1 -"], -["GrpOFIA_MSAM1","FIA O MSAM1 -"], -["GrpOFIA_HSAM1","FIA O HSAM1 -"], -["GrpOFIA_ST1","FIA O ST1 -"], -["GrpOFIA_DT1","FIA O DT1 -"], -["GrpOFIA_ENG1","FIA O ENG1 -"], - -["GrpOFIA_IFV1","FIA O TECH1 -"], -["GrpOFIA_IFV2","FIA O TECH2 -"], -["GrpOFIA_TNK1","FIA O TNK1 -"], - -["GrpOFIA_TH1","FIA O TH1 -"], -["GrpOFIA_TH2","FIA O TH2 -"], -["GrpOFIA_TH3","FIA O TH3 -"], -["GrpOFIA_TH4","FIA O TH4 -"], -["GrpOFIA_TH5","FIA O TH5 -"], -["GrpOFIA_TH6","FIA O TH6 -"], -["GrpOFIA_TH7","FIA O TH7 -"], -["GrpOFIA_TH8","FIA O TH8 -"], -["GrpOFIA_AH1","FIA O AH1 -"], - -// ==================================================================================== - -// GROUP IDs: INDEPENDENT > AAF -// Automatically assigns intelligible names to groups - -["GrpAAF_CO","AAF CO -"], -["GrpAAF_DC","AAF DC -"], -["GrpAAF_COV","AAF COV -"], - -["GrpAAF_ASL","AAF ASL -"], -["GrpAAF_A1","AAF A1 -"], -["GrpAAF_A2","AAF A2 -"], -["GrpAAF_AV","AAF AV -"], - -["GrpAAF_BSL","AAF BSL -"], -["GrpAAF_B1","AAF B1 -"], -["GrpAAF_B2","AAF B2 -"], -["GrpAAF_BV","AAF BV -"], - -["GrpAAF_CSL","AAF CSL -"], -["GrpAAF_C1","AAF C1 -"], -["GrpAAF_C2","AAF C2 -"], -["GrpAAF_CV","AAF CV -"], - -["GrpAAF_JSL","AAF JSL -"], -["GrpAAF_J1","AAF J1 -"], -["GrpAAF_J2","AAF J2 -"], -["GrpAAF_JV","AAF JV -"], - -["GrpAAF_MMG1","AAF MMG1 -"], -["GrpAAF_MMG2","AAF MMG2 -"], -["GrpAAF_HMG1","AAF HMG1 -"], -["GrpAAF_MAT1","AAF MAT1 -"], -["GrpAAF_MAT2","AAF MAT2 -"], -["GrpAAF_HAT1","AAF HAT1 -"], -["GrpAAF_MTR1","AAF MTR1 -"], -["GrpAAF_MSAM1","AAF MSAM1 -"], -["GrpAAF_HSAM1","AAF HSAM1 -"], -["GrpAAF_ST1","AAF ST1 -"], -["GrpAAF_DT1","AAF DT1 -"], -["GrpAAF_ENG1","AAF ENG1 -"], - -["GrpAAF_IFV1","AAF IFV1 -"], -["GrpAAF_IFV2","AAF IFV2 -"], -["GrpAAF_TNK1","AAF TNK1 -"], - -["GrpAAF_TH1","AAF TH1 -"], -["GrpAAF_TH2","AAF TH2 -"], -["GrpAAF_TH3","AAF TH3 -"], -["GrpAAF_TH4","AAF TH4 -"], -["GrpAAF_TH5","AAF TH5 -"], -["GrpAAF_TH6","AAF TH6 -"], -["GrpAAF_TH7","AAF TH7 -"], -["GrpAAF_TH8","AAF TH8 -"], -["GrpAAF_AH1","AAF AH1 -"], - -// ==================================================================================== - -// GROUP IDs: INDEPENDENT > SYNDIKAT // Automatically assigns intelligible names to groups -["GrpSyn_CO","Syndikat CO -"], -["GrpSyn_DC","Syndikat DC -"], -["GrpSyn_COV","Syndikat COV -"], - -["GrpSyn_ASL","Syndikat ASL -"], -["GrpSyn_A1","Syndikat A1 -"], -["GrpSyn_A2","Syndikat A2 -"], -["GrpSyn_AV","Syndikat AV -"], - -["GrpSyn_BSL","Syndikat BSL -"], -["GrpSyn_B1","Syndikat B1 -"], -["GrpSyn_B2","Syndikat B2 -"], -["GrpSyn_BV","Syndikat BV -"], - -["GrpSyn_CSL","Syndikat CSL -"], -["GrpSyn_C1","Syndikat C1 -"], -["GrpSyn_C2","Syndikat C2 -"], -["GrpSyn_CV","Syndikat CV -"], - -["GrpSyn_JSL","Syndikat JSL -"], -["GrpSyn_J1","Syndikat J1 -"], -["GrpSyn_J2","Syndikat J2 -"], -["GrpSyn_JV","Syndikat JV -"], - -["GrpSyn_MMG1","Syndikat MMG1 -"], -["GrpSyn_MMG2","Syndikat MMG2 -"], -["GrpSyn_HMG1","Syndikat HMG1 -"], -["GrpSyn_MAT1","Syndikat MAT1 -"], -["GrpSyn_MAT2","Syndikat MAT2 -"], -["GrpSyn_HAT1","Syndikat HAT1 -"], -["GrpSyn_MTR1","Syndikat MTR1 -"], -["GrpSyn_MSAM1","Syndikat MSAM1 -"], -["GrpSyn_HSAM1","Syndikat HSAM1 -"], -["GrpSyn_ST1","Syndikat ST1 -"], -["GrpSyn_DT1","Syndikat DT1 -"], -["GrpSyn_ENG1","Syndikat ENG1 -"], - -["GrpSyn_IFV1","Syndikat IFV1 -"], -["GrpSyn_IFV2","Syndikat IFV2 -"], -["GrpSyn_TNK1","Syndikat TNK1 -"], - -["GrpSyn_TH1","Syndikat TH1 -"], -["GrpSyn_TH2","Syndikat TH2 -"], -["GrpSyn_TH3","Syndikat TH3 -"], -["GrpSyn_TH4","Syndikat TH4 -"], -["GrpSyn_TH5","Syndikat TH5 -"], -["GrpSyn_TH6","Syndikat TH6 -"], -["GrpSyn_TH7","Syndikat TH7 -"], -["GrpSyn_TH8","Syndikat TH8 -"], -["GrpSyn_AH1","Syndikat AH1 -"], - -// ==================================================================================== - -// GROUP IDs: Independent > FIA -// Automatically assigns intelligible names to groups - -["GrpIFIA_CO","FIA I CO -"], -["GrpIFIA_DC","FIA I DC -"], -["GrpIFIA_COV","FIA I COV -"], - -["GrpIFIA_ASL","FIA I ASL -"], -["GrpIFIA_A1","FIA I A1 -"], -["GrpIFIA_A2","FIA I A2 -"], -["GrpIFIA_AV","FIA I AV -"], - -["GrpIFIA_BSL","FIA I BSL -"], -["GrpIFIA_B1","FIA I B1 -"], -["GrpIFIA_B2","FIA I B2 -"], -["GrpIFIA_BV","FIA I BV -"], - -["GrpIFIA_CSL","FIA I CSL -"], -["GrpIFIA_C1","FIA I C1 -"], -["GrpIFIA_C2","FIA I C2 -"], -["GrpIFIA_CV","FIA I CV -"], - -["GrpIFIA_JSL","FIA I JSL -"], -["GrpIFIA_J1","FIA I J1 -"], -["GrpIFIA_J2","FIA I J2 -"], -["GrpIFIA_JV","FIA I JV -"], - -["GrpIFIA_MMG1","FIA I MMG1 -"], -["GrpIFIA_MMG2","FIA I MMG2 -"], -["GrpIFIA_HMG1","FIA I HMG1 -"], -["GrpIFIA_MAT1","FIA I MAT1 -"], -["GrpIFIA_MAT2","FIA I MAT2 -"], -["GrpIFIA_HAT1","FIA I HAT1 -"], -["GrpIFIA_MTR1","FIA I MTR1 -"], -["GrpIFIA_MSAM1","FIA I MSAM1 -"], -["GrpIFIA_HSAM1","FIA I HSAM1 -"], -["GrpIFIA_ST1","FIA I ST1 -"], -["GrpIFIA_DT1","FIA I DT1 -"], -["GrpIFIA_ENG1","FIA I ENG1 -"], - -["GrpIFIA_IFV1","FIA I TECH1 -"], -["GrpIFIA_IFV2","FIA I TECH2 -"], -["GrpIFIA_TNK1","FIA I TNK1 -"], - -["GrpIFIA_TH1","FIA I TH1 -"], -["GrpIFIA_TH2","FIA I TH2 -"], -["GrpIFIA_TH3","FIA I TH3 -"], -["GrpIFIA_TH4","FIA I TH4 -"], -["GrpIFIA_TH5","FIA I TH5 -"], -["GrpIFIA_TH6","FIA I TH6 -"], -["GrpIFIA_TH7","FIA I TH7 -"], -["GrpIFIA_TH8","FIA I TH8 -"], -["GrpIFIA_AH1","FIA I AH1 -"] - -// Always make sure there's no comma after the last entry! - -// ==================================================================================== - -// END OF THE ARRAY CONTAING ALL GROUPS -// Do not comment or delete this line! -]; - -// ==================================================================================== - // SET GROUP IDS // Execute setGroupID Function for all factions -{_x call f_fnc_setGroupID} forEach _groups; +// Note: The actual group IDs are defined in f/groupMarkers/fn_groupData.sqf +{ + _x params ["_grp", "", "", "", "_id"]; + if (_id != "") then { + [_grp, _id] call f_fnc_setGroupID; + } +} forEach f_var_groupData_all; + +// ==================================================================================== + +// Warn if there are groups with playable units that are not present in f_var_groupData_all +// Otherwise groups would show a generic name in the chat and in the ORBAT briefing page. +private _groupDataGroups = f_var_groupData_all apply { + missionNamespace getVariable[_x select 0,grpNull] + } select { + _x isEqualType grpNull && {! (_x isEqualTo grpNull)} + }; + +private _playableGroups = playableUnits select { + roleDescription _x find " Reporter" < 0 + } apply {group _x}; +_playableGroups = _playableGroups arrayIntersect _playableGroups; +private _groupsWithoutIDs = _playableGroups select {! (_x in _groupDataGroups)}; +if (count _groupsWithoutIDs > 0) then { + private _msg = format ["ERROR (f_setGroupIDs.sqf): %1 groups have no group ID set: %2", count _groupsWithoutIDs, _groupsWithoutIDs]; + systemChat _msg; + diag_log _msg; +}; diff --git a/f/setGroupID/fn_setGroupID.sqf b/f/setGroupID/fn_setGroupID.sqf index cf08bdb73..1f2dbb73d 100644 --- a/f/setGroupID/fn_setGroupID.sqf +++ b/f/setGroupID/fn_setGroupID.sqf @@ -13,6 +13,6 @@ params [ // Check first if the group exists _grp = missionNamespace getVariable[_grp_var,grpNull]; -if(!isNull _grp) then { +if(!isNull _grp && _grp isEqualType grpNull) then { _grp setGroupId [_grp_id,"GroupColor0"]; }; diff --git a/init.sqf b/init.sqf index f5b782a15..1f4b5f870 100644 --- a/init.sqf +++ b/init.sqf @@ -76,7 +76,7 @@ f_script_setTeamColours = [] execVM "f\setTeamColours\f_setTeamColours.sqf"; // F3 - Briefing // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -f_script_briefing = [] execVM "briefing.sqf"; +f_script_briefing = [] spawn f_fnc_createBriefing; // ==================================================================================== From 06fd10788b00d88d47fd78b532b43297ee61188c Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 28 Nov 2018 17:53:31 +0100 Subject: [PATCH 153/407] New launchers. Expand attachment teams. CAS1. Clean up gear files. Re-Add extra FAKs. (#191) * Gear: Changing Launchers and Extending attachment elements by one unit * Consolidate helicopter classes. Add CAS1 element. * Add AT ammo for RAT (light loadouts) * Make gear file look the same across factions. * gear jet pilot: remove vest and one mag. Update "defined loadouts" * gear: Change _lightRight so that it fits the new light loadouts * Change launchers * Add missing vehicle classes the the list of defined loadouts * change CTRG RAT to PCML * Add missing _MMGmag_tr for syndikat. Add missing extra FAKs from removed simple wounding system. Move duplicate code from faction files to fn_assignGear.sqf. Enable spec ops gear for nato. * consistent casing for _bagLarge variable. Fix one class description. Make gear files look more similar across factions. * Some factions did not have MMG tracers * Fix error in class description --- f/assignGear/f_assignGear_aaf.sqf | 68 +- f/assignGear/f_assignGear_aaf_light.sqf | 343 ++-- f/assignGear/f_assignGear_aaf_standard.sqf | 179 +- f/assignGear/f_assignGear_aaf_v.sqf | 22 +- f/assignGear/f_assignGear_clothes.sqf | 35 +- f/assignGear/f_assignGear_csat.sqf | 65 +- f/assignGear/f_assignGear_csatPacific.sqf | 65 +- .../f_assignGear_csatPacific_light.sqf | 266 +-- .../f_assignGear_csatPacific_standard.sqf | 108 +- f/assignGear/f_assignGear_csat_light.sqf | 265 +-- f/assignGear/f_assignGear_csat_standard.sqf | 108 +- f/assignGear/f_assignGear_csat_v.sqf | 22 +- f/assignGear/f_assignGear_ctrg.sqf | 63 +- f/assignGear/f_assignGear_ctrg_light.sqf | 262 +-- f/assignGear/f_assignGear_ctrg_standard.sqf | 98 +- f/assignGear/f_assignGear_ctrg_v.sqf | 22 +- f/assignGear/f_assignGear_fia.sqf | 70 +- f/assignGear/f_assignGear_fiaAK.sqf | 62 +- f/assignGear/f_assignGear_fiaAK_light.sqf | 265 +-- f/assignGear/f_assignGear_fiaAK_standard.sqf | 98 +- f/assignGear/f_assignGear_fia_light.sqf | 281 ++-- f/assignGear/f_assignGear_fia_standard.sqf | 124 +- f/assignGear/f_assignGear_fia_v.sqf | 22 +- f/assignGear/f_assignGear_gendarmerie.sqf | 35 +- f/assignGear/f_assignGear_nato.sqf | 71 +- f/assignGear/f_assignGear_natoPacific.sqf | 69 +- .../f_assignGear_natoPacific_light.sqf | 275 ++-- .../f_assignGear_natoPacific_standard.sqf | 116 +- f/assignGear/f_assignGear_nato_light.sqf | 353 ++-- f/assignGear/f_assignGear_nato_standard.sqf | 193 ++- f/assignGear/f_assignGear_nato_v.sqf | 22 +- f/assignGear/f_assignGear_syndikat.sqf | 71 +- f/assignGear/f_assignGear_syndikat_light.sqf | 228 ++- .../f_assignGear_syndikat_standard.sqf | 112 +- f/assignGear/f_assignGear_syndikat_v.sqf | 22 +- f/assignGear/fn_assignGear.sqf | 45 +- mission.sqm | 1464 ++++++++++++++--- 37 files changed, 3946 insertions(+), 2043 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 709638cab..2a34db06a 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -163,11 +172,9 @@ _chemred = "Chemlight_red"; _chemyellow = "Chemlight_yellow"; _chemblue = "Chemlight_blue"; -// Standard Backpacks +// Backpacks _bag = "B_AssaultPack_dgtl"; // The standard bag for most classes _bagLarge = "B_Kitbag_rgr"; // Larger bag for some special purpose classes - -// Special Backpacks _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "I_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -188,6 +195,7 @@ _AR = "LMG_Mk200_F"; _ARmag = "200Rnd_65x39_cased_Box"; _ARmag_tr = "200Rnd_65x39_cased_Box_Tracer"; +// Medium MG _MMG = "LMG_Zafir_F"; _MMGmag = "150Rnd_762x54_Box"; _MMGmag_tr = "150Rnd_762x54_Box_Tracer"; @@ -197,13 +205,14 @@ _DMrifle = "srifle_EBR_F"; _DMriflemag = "20Rnd_762x51_Mag"; // Rifleman AT -_RAT = "launch_NLAW_F"; -_RATmag = "NLAW_F"; +_RAT = "launch_MRAWS_olive_rail_F"; +_RATmag1 = "MRAWS_HEAT_F"; +_RATmag2 = "MRAWS_HE_F"; // Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; -_MATmag2 = "NLAW_F"; +_MAT = "launch_MRAWS_olive_rail_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; // Surface Air _SAM = "launch_I_Titan_F"; @@ -229,14 +238,15 @@ _APmine2 = "APERSMine_Range_Mag"; // CLOTHES AND UNIFORMS -// Define special vest loadouts. This defines which gear class gets which vest -// Normal infantry will be given either light or standard rigs, depending on the loadout parameter +// Define classes. This defines which gear class gets which uniform +// "medium" vests are used for all classes if they are not assigned a specific uniform _diver = ["div"]; _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -246,7 +256,7 @@ _baseHelmet = ["H_HelmetIA"]; _baseGlasses = []; // Vests -_lightRig = ["V_Chestrig_khk"]; +_lightRig = ["V_PlateCarrierIA2_dgtl"]; _standardRig = ["V_PlateCarrierIA2_dgtl"]; // Diver @@ -261,6 +271,12 @@ _pilotHelmet = ["H_PilotHelmetHeli_I"]; _pilotRig = ["V_TacVest_oli"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_I_pilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_I"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = ["U_I_CombatUniform"]; _crewHelmet = ["H_HelmetCrew_I"]; @@ -281,15 +297,6 @@ _sfGlasses = []; // ==================================================================================== -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - -// ==================================================================================== - // This block needs only to be run on an infantry unit if (_isMan) then { @@ -341,16 +348,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index 2631664dc..a260b445d 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -17,9 +17,10 @@ switch (_typeofUnit) do _unit addmagazines [_ARmag, 1]; _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -28,22 +29,23 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_ARmag, 1]; @@ -54,9 +56,9 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -72,12 +74,13 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -91,9 +94,9 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokewhite, 3]; _unit addmagazines [_glsmokered, 3]; @@ -108,11 +111,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; @@ -124,12 +130,12 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; - _unit addItem _firstaid ; + _unit addItem _firstaid; }; // Designated Marksman Loadout: case "dm": @@ -137,10 +143,10 @@ switch (_typeofUnit) do _unit addmagazines [_DMriflemag, 1]; _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_grenade, 1]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -149,23 +155,38 @@ switch (_typeofUnit) do _unit addmagazines [_MMGmag, 1]; _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -174,22 +195,22 @@ switch (_typeofUnit) do _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: case "hmgag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -200,23 +221,36 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -228,22 +262,36 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -253,8 +301,8 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; @@ -264,11 +312,11 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -279,23 +327,36 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -304,22 +365,22 @@ switch (_typeofUnit) do _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -330,32 +391,32 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 3]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addweapon "Rangefinder"; + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; @@ -364,8 +425,8 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; // Vehicle Driver Loadout: @@ -375,58 +436,49 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": @@ -434,14 +486,15 @@ switch (_typeofUnit) do _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; }; // UAV Operator Loadout: case "uav": @@ -449,9 +502,9 @@ switch (_typeofUnit) do _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; @@ -460,10 +513,10 @@ switch (_typeofUnit) do { _unit addBackpack _bagdiver; _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep ; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -473,32 +526,32 @@ switch (_typeofUnit) do { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Carbineer Loadout: case "car": { _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Submachinegunner Loadout: case "smg": { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 3]; }; // Grenadier Loadout: case "gren": @@ -506,9 +559,9 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; }; diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index e53cdd071..82ccd69fa 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -17,7 +17,7 @@ switch (_typeofUnit) do _unit addmagazines [_ARmag, 1]; _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_ARmag_tr, 1]; @@ -29,25 +29,29 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": { + _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -55,7 +59,7 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; @@ -71,14 +75,15 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addweapon _pistol; _unit addmagazines [_pistolmag, 1]; - _unit addItem _firstaid ; + _unit addweapon _pistol; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -92,7 +97,7 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; @@ -111,7 +116,7 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; @@ -128,12 +133,12 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; - _unit addItem _firstaid ; + _unit addItem _firstaid; }; // Designated Marksman Loadout: case "dm": @@ -141,7 +146,7 @@ switch (_typeofUnit) do _unit addmagazines [_DMriflemag, 1]; _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_DMriflemag, 6]; _unit addmagazines [_grenade, 2]; @@ -153,23 +158,38 @@ switch (_typeofUnit) do _unit addmagazines [_MMGmag, 1]; _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; }; // Medium MG Team Leader Loadout: - case "mmgag": + case "mmgl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -178,7 +198,7 @@ switch (_typeofUnit) do _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; @@ -186,10 +206,10 @@ switch (_typeofUnit) do // Heavy MG Team Leader Loadout: case "hmgag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -204,24 +224,40 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -232,19 +268,32 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -258,7 +307,7 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; @@ -269,7 +318,7 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -284,18 +333,31 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -309,7 +371,7 @@ switch (_typeofUnit) do _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; @@ -317,10 +379,10 @@ switch (_typeofUnit) do // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -335,7 +397,7 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; @@ -345,7 +407,7 @@ switch (_typeofUnit) do { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -359,7 +421,7 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; @@ -369,7 +431,7 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; @@ -380,51 +442,42 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -439,7 +492,7 @@ switch (_typeofUnit) do _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -455,7 +508,7 @@ switch (_typeofUnit) do _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -479,7 +532,7 @@ switch (_typeofUnit) do { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -490,7 +543,7 @@ switch (_typeofUnit) do { _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -501,7 +554,7 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 3]; @@ -512,7 +565,7 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; diff --git a/f/assignGear/f_assignGear_aaf_v.sqf b/f/assignGear/f_assignGear_aaf_v.sqf index 78d94bc58..0f90817ce 100644 --- a/f/assignGear/f_assignGear_aaf_v.sqf +++ b/f/assignGear/f_assignGear_aaf_v.sqf @@ -12,7 +12,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; - _unit addMagazineCargoGlobal [_ratmag, 1]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; _unit addMagazineCargoGlobal [_smokegrenade, 4]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; @@ -33,7 +33,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_armag, 10]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; @@ -55,7 +55,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addmagazineCargoGlobal [_mgrenade,8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -111,14 +111,14 @@ _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_ratmag,1]; + _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,2]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -137,7 +137,7 @@ _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_ratmag,6]; + _unit addMagazineCargoGlobal [_RATmag1,6]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; @@ -145,7 +145,7 @@ _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_glsmokewhite,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,4]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -176,6 +176,8 @@ _unit addMagazineCargoGlobal [_chemgreen,2]; _unit addItemCargoGlobal [_firstaid,1]; _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; // CRATE: Small, ammo for 1 fireteam @@ -191,7 +193,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 5]; _unit addMagazineCargoGlobal [_glmag, 5]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addMagazineCargoGlobal [_mgrenade, 8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -212,7 +214,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_glmag, 20]; _unit addMagazineCargoGlobal [_glsmokewhite,16]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 25]; _unit addMagazineCargoGlobal [_mgrenade, 25]; _unit addMagazineCargoGlobal [_smokegrenade, 25]; @@ -233,7 +235,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 60]; _unit addMagazineCargoGlobal [_glmag, 60]; _unit addMagazineCargoGlobal [_glsmokewhite,50]; - _unit addMagazineCargoGlobal [_ratmag, 20]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; _unit addMagazineCargoGlobal [_grenade, 75]; _unit addMagazineCargoGlobal [_mgrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenade, 75]; diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 0f027c578..9c886d997 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -16,7 +16,7 @@ removeVest _unit; // Assign default clothes _uniform = _baseUniform; -_helmet = _baseHelmet; +_helmet = _baseHelmet; _glasses = _baseGlasses; // Select the default rig @@ -30,41 +30,50 @@ _rig = switch (f_param_loadouts) do { // Pilot if (_typeOfUnit in _pilot) then { - _helmet = _pilotHelmet; + _helmet = _pilotHelmet; _uniform = _pilotUniform; - _rig = _pilotRig; - _glasses = _pilotGlasses + _rig = _pilotRig; + _glasses = _pilotGlasses; +}; + +// Jet Pilot +if (_typeOfUnit in _jet) then { + _helmet = _jetHelmet; + _uniform = _jetUniform; + _rig = _jetRig; + _glasses = _jetGlasses; + _nvg = ""; //Do not assign NVG, otherwise the jet helmet gets removed. }; // Crew if (_typeOfUnit in _crew) then { - _helmet = _crewHelmet; + _helmet = _crewHelmet; _uniform = _crewUniform; - _rig = _crewRig; + _rig = _crewRig; _glasses = _crewGlasses; }; // Diver if (_typeOfUnit in _diver) then { - _helmet = _diverHelmet; + _helmet = _diverHelmet; _uniform = _diverUniform; - _rig = _diverRig; + _rig = _diverRig; _glasses = _diverGlasses; }; // Ghillie if (_typeOfUnit in _ghillie) then { - _helmet = _ghillieHelmet; + _helmet = _ghillieHelmet; _uniform = _ghillieUniform; - _rig = _ghillieRig; + _rig = _ghillieRig; _glasses = _ghillieGlasses; }; // Spec Op if (_typeOfUnit in _specOp) then { - _helmet = _sfHelmet; + _helmet = _sfHelmet; _uniform = _sfUniform; - _rig = _sfRig; + _rig = _sfRig; _glasses = _sfGlasses; }; @@ -86,6 +95,6 @@ if(count _rig > 0) then if(count _glasses > 0) then { - removeGoggles _unit; + removeGoggles _unit; _unit addGoggles (selectRandom _glasses); }; diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index ca2ac52a1..3d75d35db 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -123,6 +132,7 @@ _glmag = "1Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc _glsmokewhite = "1Rnd_Smoke_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; _glsmokered = "1Rnd_SmokeRed_Grenade_shell"; // Flares for FTLs, Squad Leaders, etc @@ -139,8 +149,8 @@ _pistolmag = "16Rnd_9x21_Mag"; _grenade = "HandGrenade"; _Mgrenade = "MiniGrenade"; _smokegrenade = "SmokeShell"; -_smokegrenadeblue = "SmokeShellBlue"; _smokegrenadegreen = "SmokeShellGreen"; +_smokegrenadeblue = "SmokeShellBlue"; _smokegrenadepurple = "SmokeShellPurple"; // misc medical items. @@ -165,7 +175,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_ocamo"; // carries 120, weighs 20 -_baglarge = "B_Carryall_ocamo"; // carries 320, weighs 40 +_bagLarge = "B_Carryall_ocamo"; // carries 320, weighs 40 _bagdiver = "B_AssaultPack_rgr"; // used by divers _baguav = "O_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "O_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -206,20 +216,22 @@ _DMriflemag = "10Rnd_762x54_Mag"; // Rifleman AT _RAT = "launch_RPG32_F"; -_RATmag = "RPG32_F"; +_RATmag1 = "RPG32_F"; +_RATmag2 = "RPG32_HE_F"; // Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; +_MAT = "launch_RPG32_F"; +_MATmag1 = "RPG32_F"; +_MATmag2 = "RPG32_HE_F"; // Surface Air _SAM = "launch_O_Titan_F"; _SAMmag = "Titan_AA"; // Heavy AT -_HAT = "launch_O_Titan_short_F"; -_HATmag1 = "Titan_AT"; -_HATmag2 = "Titan_AP"; +_HAT = "launch_O_Vorona_brown_F"; +_HATmag1 = "Vorona_HEAT"; +_HATmag2 = "Vorona_HE"; // Sniper _SNrifle = "srifle_GM6_camo_F"; @@ -244,6 +256,7 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -277,6 +290,12 @@ _pilotHelmet = ["H_PilotHelmetHeli_O"]; _pilotRig = ["V_HarnessO_brn"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_O_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_O"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = ["U_O_SpecopsUniform_ocamo"]; _crewHelmet = ["H_HelmetCrew_O"]; @@ -297,15 +316,6 @@ _sfGlasses = []; // ==================================================================================== -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - -// ==================================================================================== - // This block needs only to be run on an infantry unit if (_isMan) then { @@ -357,16 +367,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index a6cce6088..a52e791d8 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -123,6 +132,7 @@ _glmag = "1Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc _glsmokewhite = "1Rnd_Smoke_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; _glsmokered = "1Rnd_SmokeRed_Grenade_shell"; // Flares for FTLs, Squad Leaders, etc @@ -139,8 +149,8 @@ _pistolmag = "16Rnd_9x21_Mag"; _grenade = "HandGrenade"; _Mgrenade = "MiniGrenade"; _smokegrenade = "SmokeShell"; -_smokegrenadeblue = "SmokeShellBlue"; _smokegrenadegreen = "SmokeShellGreen"; +_smokegrenadeblue = "SmokeShellBlue"; _smokegrenadepurple = "SmokeShellPurple"; // misc medical items. @@ -164,7 +174,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_FieldPack_ghex_F"; // carries 120, weighs 20 -_baglarge = "B_Carryall_ghex_F"; // carries 320, weighs 40 +_bagLarge = "B_Carryall_ghex_F"; // carries 320, weighs 40 _bagdiver = "B_AssaultPack_rgr"; // used by divers _baguav = "O_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "O_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -205,20 +215,22 @@ _DMriflemag = "20Rnd_650x39_Cased_Mag_F"; // Rifleman AT _RAT = "launch_RPG32_ghex_F"; -_RATmag = "RPG32_F"; +_RATmag1 = "RPG32_F"; +_RATmag2 = "RPG32_HE_F"; // Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; +_MAT = "launch_RPG32_ghex_F"; +_MATmag1 = "RPG32_F"; +_MATmag2 = "RPG32_HE_F"; // Surface Air _SAM = "launch_O_Titan_ghex_F"; _SAMmag = "Titan_AA"; // Heavy AT -_HAT = "launch_O_Titan_short_ghex_F"; -_HATmag1 = "Titan_AT"; -_HATmag2 = "Titan_AP"; +_HAT = "launch_O_Vorona_green_F"; +_HATmag1 = "Vorona_HEAT"; +_HATmag2 = "Vorona_HE"; // Sniper _SNrifle = "srifle_GM6_ghex_F"; @@ -243,6 +255,7 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -272,6 +285,12 @@ _pilotHelmet = ["H_PilotHelmetHeli_O"]; _pilotRig = ["V_HarnessO_ghex_F"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_O_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_O"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = ["U_O_T_Soldier_F"]; _crewHelmet = ["H_HelmetCrew_O"]; @@ -292,15 +311,6 @@ _sfGlasses = []; // ==================================================================================== -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - -// ==================================================================================== - // This block needs only to be run on an infantry unit if (_isMan) then { @@ -352,16 +362,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 39a336f6b..884970e0c 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - CSAT Pacific - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -18,9 +18,9 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_ARmag, 2]; - _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -29,13 +29,14 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": @@ -43,8 +44,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_ARmag, 2]; @@ -56,8 +57,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -74,11 +75,12 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -93,8 +95,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; @@ -109,11 +111,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; @@ -126,7 +131,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addItem _medkit; @@ -139,9 +144,9 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -151,22 +156,37 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -176,7 +196,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; @@ -187,37 +207,50 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -230,21 +263,35 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; }; // Heavy AT Team Leader Loadout: - case "hatag": + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -255,7 +302,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; @@ -266,10 +313,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -281,22 +328,35 @@ switch (_typeofUnit) do _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -306,7 +366,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; @@ -317,10 +377,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -332,9 +392,9 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": @@ -342,8 +402,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope @@ -356,7 +416,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; @@ -366,7 +426,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; // Vehicle Driver Loadout: @@ -377,72 +437,64 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; }; // UAV Operator Loadout: case "uav": @@ -451,8 +503,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit linkItem _uavterminal; }; @@ -463,8 +515,8 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -475,10 +527,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Carbineer Loadout: case "car": @@ -486,10 +538,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Submachinegunner Loadout: case "smg": @@ -497,9 +549,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 3]; }; // Grenadier Loadout: case "gren": @@ -508,8 +560,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; }; diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 360e73f3a..ded0fdc22 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - CSAT Pacific - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -29,18 +29,20 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": { + _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -49,6 +51,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_ARmag, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -80,6 +83,7 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -156,10 +160,25 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; }; // Medium MG Team Leader Loadout: - case "mmgag": + case "mmgl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; @@ -169,8 +188,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -200,7 +219,7 @@ switch (_typeofUnit) do // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addmagazines [_MATmag1, 1]; @@ -210,8 +229,9 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -223,6 +243,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -239,8 +274,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -290,10 +338,23 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -386,20 +447,20 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -410,19 +471,10 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -437,7 +489,7 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 072a5b062..981e8cd35 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - CSAT - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -18,8 +18,9 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -28,13 +29,14 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": @@ -42,8 +44,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_ARmag, 1]; @@ -55,8 +57,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -73,11 +75,12 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -92,8 +95,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; @@ -108,11 +111,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; @@ -125,8 +131,8 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; _unit addItem _firstaid; @@ -138,9 +144,9 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_DMriflemag, 9]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 11]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -150,22 +156,37 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -175,7 +196,7 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; @@ -186,37 +207,50 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -229,21 +263,35 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -254,7 +302,7 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; @@ -265,10 +313,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -280,22 +328,35 @@ switch (_typeofUnit) do _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -305,7 +366,7 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; @@ -316,10 +377,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -331,9 +392,9 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": @@ -341,8 +402,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope @@ -355,7 +416,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; @@ -365,7 +426,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; // Vehicle Driver Loadout: @@ -376,72 +437,64 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; }; // UAV Operator Loadout: case "uav": @@ -450,8 +503,8 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; @@ -462,8 +515,8 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -474,10 +527,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Carbineer Loadout: case "car": @@ -485,10 +538,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Submachinegunner Loadout: case "smg": @@ -496,9 +549,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 3]; }; // Grenadier Loadout: case "gren": @@ -507,8 +560,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; }; diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index c225e25da..0a7a3221d 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - CSAT - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -29,18 +29,20 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": { + _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -49,6 +51,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -80,6 +83,7 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -156,10 +160,25 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; }; // Medium MG Team Leader Loadout: - case "mmgag": + case "mmgl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; @@ -169,8 +188,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -200,7 +219,7 @@ switch (_typeofUnit) do // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; @@ -210,8 +229,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -223,6 +243,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -239,8 +274,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -290,10 +338,23 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -386,20 +447,20 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -410,19 +471,10 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; @@ -437,7 +489,7 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_csat_v.sqf b/f/assignGear/f_assignGear_csat_v.sqf index 39d4f558c..381914416 100644 --- a/f/assignGear/f_assignGear_csat_v.sqf +++ b/f/assignGear/f_assignGear_csat_v.sqf @@ -12,7 +12,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; - _unit addMagazineCargoGlobal [_ratmag, 1]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; _unit addMagazineCargoGlobal [_smokegrenade, 4]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; @@ -33,7 +33,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_armag, 10]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; @@ -55,7 +55,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addmagazineCargoGlobal [_mgrenade,8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -111,14 +111,14 @@ _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_ratmag,1]; + _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,2]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -137,7 +137,7 @@ _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_ratmag,6]; + _unit addMagazineCargoGlobal [_RATmag1,6]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; @@ -145,7 +145,7 @@ _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_glsmokewhite,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,4]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -176,6 +176,8 @@ _unit addMagazineCargoGlobal [_chemgreen,2]; _unit addItemCargoGlobal [_firstaid,1]; _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; // CRATE: Small, ammo for 1 fireteam @@ -191,7 +193,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 5]; _unit addMagazineCargoGlobal [_glmag, 5]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addMagazineCargoGlobal [_mgrenade, 8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -212,7 +214,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_glmag, 20]; _unit addMagazineCargoGlobal [_glsmokewhite,16]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 25]; _unit addMagazineCargoGlobal [_mgrenade, 25]; _unit addMagazineCargoGlobal [_smokegrenade, 25]; @@ -233,7 +235,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 60]; _unit addMagazineCargoGlobal [_glmag, 60]; _unit addMagazineCargoGlobal [_glsmokewhite,50]; - _unit addMagazineCargoGlobal [_ratmag, 20]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; _unit addMagazineCargoGlobal [_grenade, 75]; _unit addMagazineCargoGlobal [_mgrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenade, 75]; diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 611bb583c..3c363de4e 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -141,8 +150,8 @@ _grenade = "HandGrenade"; _Mgrenade = "MiniGrenade"; _smokegrenade = "SmokeShell"; _smokegrenadegreen = "SmokeShellGreen"; -_smokegrenadepurple = "SmokeShellPurple"; _smokegrenadeblue = "SmokeShellBlue"; +_smokegrenadepurple = "SmokeShellPurple"; // misc medical items. _firstaid = "FirstAidKit"; @@ -165,7 +174,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_rgr"; // Regular bag -_baglarge = "B_Kitbag_rgr"; // Large bag +_bagLarge = "B_Kitbag_rgr"; // Large bag _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "B_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -200,7 +209,13 @@ _DMriflemag = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_NLAW_F"; -_RATmag = "NLAW_F"; +_RATmag1 = "NLAW_F"; +_RATmag2 = "NLAW_F"; + +// Alternative RAT weapon +//_RAT = "launch_MRAWS_green_F"; +//_RATmag1 = "MRAWS_HEAT_F"; +//_RATmag2 = "MRAWS_HE_F"; // Medium AT _MAT = "launch_NLAW_F"; @@ -214,6 +229,7 @@ _SAMmag = "Titan_AA"; // Heavy AT _HAT = "launch_B_Titan_tna_F"; _HATmag1 = "Titan_AT"; +_HATmag2 = "Titan_AP"; // Sniper _SNrifle = "srifle_LRR_F"; @@ -238,15 +254,16 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit _baseUniform = ["U_B_CTRG_1","U_B_CTRG_2","U_B_CTRG_3"]; -_baseHelmet = ["H_Watchcap_khk","H_Shemag_olive_hs","H_MilCap_tna_F","H_Cap_khaki_specops_UK","H_Bandanna_camo","H_Bandanna_cbr","H_Bandanna_khk_hs","H_Booniehat_khk","H_Booniehat_khk_hs","H_Booniehat_oli","H_Booniehat_tna_F"]; +_baseHelmet = ["H_Watchcap_khk","H_Shemag_olive_hs","H_Cap_khaki_specops_UK","H_Bandanna_camo","H_Bandanna_cbr","H_Bandanna_khk_hs","H_Booniehat_khk","H_Booniehat_khk_hs","H_Booniehat_oli","H_Cap_headphones"]; _baseGlasses = []; // Vests -_lightRig = ["V_Chestrig_khk","V_Chestrig_rgr"]; +_lightRig = ["V_PlateCarrierH_CTRG"]; _standardRig = ["V_PlateCarrierH_CTRG"]; // Diver @@ -261,6 +278,12 @@ _pilotHelmet = ["H_PilotHelmetHeli_B"]; _pilotRig = ["V_TacVest_blk"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_B_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_B"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = ["U_B_CombatUniform_mcam_vest"]; _crewHelmet = ["H_HelmetCrew_B"]; @@ -281,15 +304,6 @@ _sfGlasses = []; // ==================================================================================== -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - -// ==================================================================================== - // This block needs only to be run on an infantry unit if (_isMan) then { @@ -341,16 +355,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 03f3d3bad..cbd38eff8 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - CTRG - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -18,8 +18,8 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 2]; _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; }; @@ -29,13 +29,14 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": @@ -43,11 +44,11 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_ARmag, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; }; // Fire Team Leader Loadout: case "ftl": @@ -56,8 +57,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -74,11 +75,12 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -93,8 +95,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; @@ -109,11 +111,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; @@ -126,8 +131,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addItem _medkit; _unit addItem _firstaid; @@ -139,9 +144,9 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -151,22 +156,37 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -176,7 +196,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; @@ -187,10 +207,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -199,25 +219,38 @@ switch (_typeofUnit) do _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -230,21 +263,35 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -255,7 +302,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; @@ -266,10 +313,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -281,22 +328,35 @@ switch (_typeofUnit) do _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -306,7 +366,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; @@ -317,10 +377,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -332,9 +392,9 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": @@ -342,8 +402,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope @@ -356,7 +416,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; @@ -366,7 +426,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; // Vehicle Driver Loadout: @@ -377,43 +437,34 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { @@ -421,13 +472,13 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": @@ -436,13 +487,14 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; }; // UAV Operator Loadout: case "uav": @@ -451,8 +503,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit linkItem _uavterminal; }; @@ -463,8 +515,8 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -475,10 +527,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Carbineer Loadout: case "car": @@ -486,10 +538,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Submachinegunner Loadout: case "smg": @@ -497,9 +549,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 3]; }; // Grenadier Loadout: case "gren": @@ -508,8 +560,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; }; diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 20d0b91e9..6ec211e28 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - CTRG - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -29,25 +29,29 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": { + _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_ARmag, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -79,6 +83,7 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -155,10 +160,25 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; }; // Medium MG Team Leader Loadout: - case "mmgag": + case "mmgl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; @@ -168,8 +188,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -210,8 +230,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; @@ -238,8 +271,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -289,8 +335,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 2]; _unit addmagazines [_riflemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -385,20 +444,20 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -409,15 +468,6 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { diff --git a/f/assignGear/f_assignGear_ctrg_v.sqf b/f/assignGear/f_assignGear_ctrg_v.sqf index 1102e472e..a4b2f4a4e 100644 --- a/f/assignGear/f_assignGear_ctrg_v.sqf +++ b/f/assignGear/f_assignGear_ctrg_v.sqf @@ -12,7 +12,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; - _unit addMagazineCargoGlobal [_ratmag, 1]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; _unit addMagazineCargoGlobal [_smokegrenade, 4]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; @@ -33,7 +33,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_armag, 10]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; @@ -55,7 +55,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addmagazineCargoGlobal [_mgrenade,8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -111,14 +111,14 @@ _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_ratmag,1]; + _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,2]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -137,7 +137,7 @@ _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_ratmag,6]; + _unit addMagazineCargoGlobal [_RATmag1,6]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; @@ -145,7 +145,7 @@ _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_glsmokewhite,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,4]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -176,6 +176,8 @@ _unit addMagazineCargoGlobal [_chemgreen,2]; _unit addItemCargoGlobal [_firstaid,1]; _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; // CRATE: Small, ammo for 1 fireteam @@ -191,7 +193,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 5]; _unit addMagazineCargoGlobal [_glmag, 5]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addMagazineCargoGlobal [_mgrenade, 8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -212,7 +214,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_glmag, 20]; _unit addMagazineCargoGlobal [_glsmokewhite,16]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 25]; _unit addMagazineCargoGlobal [_mgrenade, 25]; _unit addMagazineCargoGlobal [_smokegrenade, 25]; @@ -233,7 +235,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 60]; _unit addMagazineCargoGlobal [_glmag, 60]; _unit addMagazineCargoGlobal [_glsmokewhite,50]; - _unit addMagazineCargoGlobal [_ratmag, 20]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; _unit addMagazineCargoGlobal [_grenade, 75]; _unit addMagazineCargoGlobal [_mgrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenade, 75]; diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 7c4dec2c1..1aef910a5 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -167,7 +176,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_cbr"; -_baglarge = "B_Kitbag_cbr"; +_bagLarge = "B_Kitbag_cbr"; _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "B_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -203,23 +212,24 @@ _DMrifle = "srifle_DMR_06_olive_F"; _DMriflemag = "20Rnd_762x51_Mag"; // Rifleman AT -_RAT = "launch_RPG32_F"; -_RATmag = "RPG32_F"; +_RAT = "launch_MRAWS_olive_rail_F"; +_RATmag1 = "MRAWS_HEAT_F"; +_RATmag2 = "MRAWS_HE_F"; // Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; -_MATmag2 = "NLAW_F"; +_MAT = "launch_MRAWS_olive_rail_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; + +// Surface Air +_SAM = "launch_Titan_F"; +_SAMmag = "Titan_AA"; // Heavy AT _HAT = "launch_Titan_short_F"; _HATmag1 = "Titan_AT"; _HATmag2 = "Titan_AP"; -// Surface Air -_SAM = "launch_Titan_F"; -_SAMmag = "Titan_AA"; - // Sniper _SNrifle = "srifle_LRR_F"; _SNrifleMag = "7Rnd_408_Mag"; @@ -243,6 +253,7 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -252,7 +263,7 @@ _baseHelmet = ["H_Shemag_olive","H_ShemagOpen_tan","H_Bandanna_khk","H_Booniehat _baseGlasses = ["G_Bandanna_blk","G_Bandanna_khk","G_Bandanna_oli"]; // Vests -_lightRig = ["V_BandollierB_cbr"]; +_lightRig = ["V_TacVestIR_blk"]; _standardRig = ["V_TacVestIR_blk"]; // Diver @@ -267,6 +278,12 @@ _pilotHelmet = _baseHelmet; _pilotRig = ["V_BandollierB_cbr"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_B_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_B"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = _baseUniform; _crewHelmet = _baseHelmet; @@ -285,16 +302,6 @@ _sfhelmet = _baseHelmet; _sfRig = ["V_PlateCarrierL_CTRG","V_PlateCarrierH_CTRG"]; _sfGlasses = []; - -// ==================================================================================== - -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - // ==================================================================================== // This block needs only to be run on an infantry unit @@ -348,16 +355,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_fiaAK.sqf b/f/assignGear/f_assignGear_fiaAK.sqf index 3406092db..ce0f7a75e 100644 --- a/f/assignGear/f_assignGear_fiaAK.sqf +++ b/f/assignGear/f_assignGear_fiaAK.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -167,7 +176,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_cbr"; -_baglarge = "B_Kitbag_cbr"; +_bagLarge = "B_Kitbag_cbr"; _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "B_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -204,22 +213,23 @@ _DMriflemag = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_RPG7_F"; -_RATmag = "RPG7_F"; +_RATmag1 = "RPG7_F"; +_RATmag2 = "RPG7_F"; // RPG7 has no HE rocket // Medium AT _MAT = "launch_NLAW_F"; _MATmag1 = "NLAW_F"; _MATmag2 = "NLAW_F"; +// Surface Air +_SAM = "launch_Titan_F"; +_SAMmag = "Titan_AA"; + // Heavy AT _HAT = "launch_Titan_short_F"; _HATmag1 = "Titan_AT"; _HATmag2 = "Titan_AP"; -// Surface Air -_SAM = "launch_Titan_F"; -_SAMmag = "Titan_AA"; - // Sniper _SNrifle = "srifle_LRR_F"; _SNrifleMag = "7Rnd_408_Mag"; @@ -243,6 +253,7 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -252,7 +263,7 @@ _baseHelmet = ["H_Shemag_olive","H_ShemagOpen_tan","H_Bandanna_khk","H_Booniehat _baseGlasses = ["G_Bandanna_blk","G_Bandanna_khk","G_Bandanna_oli"]; // Vests -_lightRig = ["V_BandollierB_cbr"]; +_lightRig = ["V_TacVestIR_blk"]; _standardRig = ["V_TacVestIR_blk"]; // Diver @@ -267,6 +278,12 @@ _pilotHelmet = _baseHelmet; _pilotRig = ["V_BandollierB_cbr"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_B_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_B"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = _baseUniform; _crewHelmet = _baseHelmet; @@ -285,16 +302,6 @@ _sfhelmet = _baseHelmet; _sfRig = ["V_PlateCarrierL_CTRG","V_PlateCarrierH_CTRG"]; _sfGlasses = []; - -// ==================================================================================== - -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - // ==================================================================================== // This block needs only to be run on an infantry unit @@ -348,16 +355,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index b71be1533..7c87d5616 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -20,8 +20,9 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": @@ -29,15 +30,15 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_RATmag, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_RATmag1, 2]; }; // Assistant Autorifleman Loadout: case "aar": @@ -47,10 +48,10 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; }; // Fire Team Leader Loadout: @@ -61,11 +62,11 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 3]; + _unit addmagazines [_glmag, 5]; _unit addmagazines [_smokegrenadegreen, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Squad Leader / DC Loadout: @@ -74,13 +75,16 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 3]; + _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_smokegrenadepurple, 2]; + _unit addmagazines [_pistolmag, 2]; + _unit addmagazines [_smokegrenadepurple, 3]; _unit addWeapon "Rangefinder"; }; // Platoon CO Loadout: @@ -89,12 +93,15 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 4]; _unit addmagazines [_smokegrenadepurple, 3]; _unit addWeapon "Rangefinder"; }; @@ -104,13 +111,16 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 6]; + _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator;s + _unit addWeapon _laserdesignator; }; // Medic Loadout: case "m": @@ -121,9 +131,9 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -135,8 +145,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -148,10 +158,10 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addmagazines [_smokegrenade, 4]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; @@ -159,10 +169,25 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -175,7 +200,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -185,15 +210,15 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; @@ -202,10 +227,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -213,9 +238,22 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -231,9 +269,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; @@ -241,9 +280,22 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -257,7 +309,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -267,9 +319,9 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -278,26 +330,39 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; + _unit addmagazines [_SAMmag, 1]; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -310,7 +375,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": @@ -320,9 +385,9 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -334,9 +399,9 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 6]; + _unit addmagazines [_smokegrenade, 5]; _unit addmagazines [_SNrifleMag, 3]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": @@ -344,8 +409,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 6]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SNrifleMag, 3]; @@ -359,7 +424,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -370,7 +435,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -382,24 +447,23 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -408,47 +472,37 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -462,9 +516,9 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -474,8 +528,8 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -487,10 +541,10 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": @@ -499,10 +553,10 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -511,9 +565,9 @@ switch (_typeofUnit) do _unit addweapon _smg; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": @@ -523,14 +577,11 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 3]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_smokegrenade, 4]; }; - -// Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf -_carbine = [_carbine]; // Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf _carbine = [_carbine]; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index 74ede1aa3..3fda2375b 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -30,7 +30,7 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; @@ -38,7 +38,7 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_RATmag, 3]; + _unit addmagazines [_RATmag1, 3]; }; // Assistant Autorifleman Loadout: case "aar": @@ -53,6 +53,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 2]; }; // Fire Team Leader Loadout: case "ftl": @@ -157,10 +158,11 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addmagazines [_smokegrenade, 4]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; @@ -171,8 +173,22 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -215,8 +231,21 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; @@ -244,8 +273,21 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -297,8 +339,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -396,21 +451,20 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -422,16 +476,6 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; - }; // Engineer (Demo) Loadout: case "eng": { diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index 7d524775f..c53bfde2c 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - FIA - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -20,8 +20,9 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": @@ -29,27 +30,27 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": { - _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; }; // Fire Team Leader Loadout: @@ -60,9 +61,9 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 3]; + _unit addmagazines [_glmag, 5]; _unit addmagazines [_smokegrenadegreen, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; @@ -73,13 +74,16 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon (selectRandom _glrifle); + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 3]; + _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_smokegrenadepurple, 2]; + _unit addmagazines [_pistolmag, 2]; + _unit addmagazines [_smokegrenadepurple, 3]; _unit addWeapon "Rangefinder"; }; // Platoon CO Loadout: @@ -88,12 +92,15 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon (selectRandom _glrifle); + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 4]; _unit addmagazines [_smokegrenadepurple, 3]; _unit addWeapon "Rangefinder"; }; @@ -103,11 +110,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon (selectRandom _glrifle); + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 6]; + _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -120,9 +130,9 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -134,8 +144,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -147,10 +157,10 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_smokegrenade, 5]; _unit addmagazines [_MMGmag_tr, 1]; + _unit addmagazines [_smokegrenade, 4]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; @@ -158,10 +168,25 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -173,8 +198,8 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -184,15 +209,15 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); _unit addmagazines [_MATmag1, 1]; @@ -200,11 +225,11 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -212,9 +237,22 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -229,10 +267,11 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; @@ -240,23 +279,36 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; // Mortar Gunner Loadout: case "mtrg": { - _unit addBackpack _bagmtrg; + _unit addBackpack _bagmtrg ; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -266,9 +318,9 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -277,26 +329,39 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); - _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; + _unit addmagazines [_SAMmag, 1]; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -308,8 +373,8 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": @@ -319,9 +384,9 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -333,9 +398,9 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 6]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": @@ -343,8 +408,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 6]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SNrifleMag, 3]; @@ -358,7 +423,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -369,7 +434,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -381,24 +446,23 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -407,50 +471,41 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; }; // UAV Operator Loadout: case "uav": @@ -460,9 +515,9 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -472,8 +527,8 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 6]; - _unit addmagazines [_diverMag1, 2]; + _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -485,10 +540,10 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": @@ -497,10 +552,10 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _carbine); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -509,9 +564,9 @@ switch (_typeofUnit) do _unit addweapon _smg; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": @@ -521,10 +576,10 @@ switch (_typeofUnit) do _unit addweapon (selectRandom _glrifle); _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 3]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Include the loadouts for vehicles and crates: diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 3453646db..e20e67eba 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - FIA - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -30,19 +30,21 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon (selectRandom _carbine); - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": { + _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon (selectRandom _rifle); _unit addItem _firstaid; @@ -52,6 +54,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -131,7 +134,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; @@ -160,7 +163,7 @@ switch (_typeofUnit) do _unit addmagazines [_MMGmag_tr, 1]; _unit addmagazines [_smokegrenade, 4]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; @@ -171,8 +174,22 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -184,7 +201,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: @@ -211,11 +228,12 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -227,6 +245,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -240,12 +273,25 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -267,7 +313,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: @@ -294,11 +340,24 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon (selectRandom _rifle); + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -320,7 +379,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: @@ -396,21 +455,20 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -422,16 +480,6 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; - }; // Engineer (Demo) Loadout: case "eng": { @@ -441,7 +489,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; @@ -457,7 +505,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; @@ -474,7 +522,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; @@ -511,7 +559,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr , 2]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; }; diff --git a/f/assignGear/f_assignGear_fia_v.sqf b/f/assignGear/f_assignGear_fia_v.sqf index d13197fa6..f23d03267 100644 --- a/f/assignGear/f_assignGear_fia_v.sqf +++ b/f/assignGear/f_assignGear_fia_v.sqf @@ -12,7 +12,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; - _unit addMagazineCargoGlobal [_ratmag, 1]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; _unit addMagazineCargoGlobal [_smokegrenade, 4]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; @@ -34,7 +34,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_armag, 10]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; @@ -57,7 +57,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addmagazineCargoGlobal [_mgrenade,8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -113,14 +113,14 @@ _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_ratmag,1]; + _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,2]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -139,7 +139,7 @@ _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_ratmag,6]; + _unit addMagazineCargoGlobal [_RATmag1,6]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; @@ -147,7 +147,7 @@ _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_glsmokewhite,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,4]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -178,6 +178,8 @@ _unit addMagazineCargoGlobal [_chemgreen,2]; _unit addItemCargoGlobal [_firstaid,1]; _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; // CRATE: Small, ammo for 1 fireteam @@ -193,7 +195,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 5]; _unit addMagazineCargoGlobal [_glmag, 5]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addMagazineCargoGlobal [_mgrenade, 8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -214,7 +216,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_glmag, 20]; _unit addMagazineCargoGlobal [_glsmokewhite,16]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 25]; _unit addMagazineCargoGlobal [_mgrenade, 25]; _unit addMagazineCargoGlobal [_smokegrenade, 25]; @@ -235,7 +237,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 60]; _unit addMagazineCargoGlobal [_glmag, 60]; _unit addMagazineCargoGlobal [_glsmokewhite,50]; - _unit addMagazineCargoGlobal [_ratmag, 20]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; _unit addMagazineCargoGlobal [_grenade, 75]; _unit addMagazineCargoGlobal [_mgrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenade, 75]; diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 47f52588d..da386fb7b 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -94,7 +94,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_blk"; -_baglarge = "B_Kitbag_blk"; +_bagLarge = "B_Kitbag_blk"; // ==================================================================================== @@ -111,7 +111,7 @@ _DMriflemag = "20Rnd_762x51_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform -_pilot = ["pp","pcc"]; +_pilot = ["pp","pcc","pc"]; _specOp = ["nf"]; // Basic clothing @@ -137,16 +137,6 @@ _sfhelmet = ["H_Helmet_Skate"]; _sfRig = ["V_PlateCarrier1_blk"]; _sfGlasses = ["G_Balaclava_blk"]; - -// ==================================================================================== - -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - // ==================================================================================== // This block needs only to be run on an infantry unit @@ -252,8 +242,10 @@ switch (_typeofUnit) do _unit addweapon _pistol; _unit addmagazines [_pistolmag, 7]; }; -// Heli Pilot Loadout: - case "pp": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["medic",true]; // Can use medkit _unit setUnitTrait ["engineer",true]; // Can repair @@ -303,7 +295,7 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addmagazines [_pistolmag, 7]; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_riflemag, 7]; _attachments pushback (_silencer1); // Adds silencer _hg_attachments pushback (_hg_silencer1); // Adds pistol silencer @@ -359,16 +351,3 @@ switch (_typeofUnit) do }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index 94203775c..1db6bba56 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -14,17 +14,21 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) -// msamg - medium SAM gunner" +// msaml - medium SAM team leader +// msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) // hsamag - heavy SAM assistant gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -166,7 +175,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_mcamo"; -_baglarge = "B_Kitbag_mcamo"; +_bagLarge = "B_Kitbag_mcamo"; _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "B_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -203,13 +212,14 @@ _DMriflemag = "30Rnd_65x39_caseless_mag"; _DMriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; // Rifleman AT -_RAT = "launch_NLAW_F"; -_RATmag = "NLAW_F"; +_RAT = "launch_MRAWS_sand_F"; +_RATmag1 = "MRAWS_HEAT_F"; +_RATmag2 = "MRAWS_HE_F"; // Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; -_MATmag2 = "NLAW_F"; +_MAT = "launch_MRAWS_sand_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; // Surface Air _SAM = "launch_B_Titan_F"; @@ -243,6 +253,7 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -251,7 +262,7 @@ _baseHelmet = ["H_HelmetB","H_HelmetB_grass","H_HelmetB_sand"]; _baseGlasses = []; // Vests -_lightRig = ["V_Chestrig_khk"]; +_lightRig = ["V_PlateCarrier2_rgr"]; _standardRig = ["V_PlateCarrier2_rgr"]; // Diver @@ -266,6 +277,12 @@ _pilotHelmet = ["H_PilotHelmetHeli_B"]; _pilotRig = ["V_TacVest_blk"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_B_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_B"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = ["U_B_CombatUniform_mcam_vest"]; _crewHelmet = ["H_HelmetCrew_B"]; @@ -279,19 +296,10 @@ _ghillieRig = ["V_Chestrig_rgr"]; _ghillieGlasses = []; // Spec Op -// _sfuniform = ["U_B_SpecopsUniform_sgg"]; -// _sfhelmet = ["H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_HelmetSpecB_blk"]; -// _sfRig = ["V_PlateCarrierSpec_rgr"]; -// _sfGlasses = []; - -// ==================================================================================== - -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle +_sfuniform = ["U_B_SpecopsUniform_sgg"]; +_sfhelmet = ["H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_HelmetSpecB_blk"]; +_sfRig = ["V_PlateCarrierSpec_rgr"]; +_sfGlasses = []; // ==================================================================================== @@ -346,16 +354,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index aa4cb1587..094aa53a2 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -166,7 +175,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_tna_F"; -_baglarge = "B_Kitbag_rgr"; +_bagLarge = "B_Kitbag_rgr"; _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "B_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -203,13 +212,14 @@ _DMriflemag = "30Rnd_65x39_caseless_mag"; _DMriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; // Rifleman AT -_RAT = "launch_NLAW_F"; -_RATmag = "NLAW_F"; +_RAT = "launch_MRAWS_green_F"; +_RATmag1 = "MRAWS_HEAT_F"; +_RATmag2 = "MRAWS_HE_F"; // Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; -_MATmag2 = "NLAW_F"; +_MAT = "launch_MRAWS_green_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; // Surface Air _SAM = "launch_B_Titan_tna_F"; @@ -243,6 +253,7 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -251,7 +262,7 @@ _baseHelmet = ["H_HelmetB_tna_F"]; _baseGlasses = []; // Vests -_lightRig = ["V_Chestrig_oli"]; +_lightRig = ["V_PlateCarrier2_tna_F"]; _standardRig = ["V_PlateCarrier2_tna_F"]; // Diver @@ -266,6 +277,12 @@ _pilotHelmet = ["H_PilotHelmetHeli_B"]; _pilotRig = ["V_TacVest_blk"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_B_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_B"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = ["U_B_T_Soldier_SL_F"]; _crewHelmet = ["H_HelmetCrew_B"]; @@ -279,19 +296,10 @@ _ghillieRig = ["V_Chestrig_oli"]; _ghillieGlasses = []; // Spec Op -// _sfuniform = ["U_B_SpecopsUniform_sgg"]; -// _sfhelmet = ["H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_HelmetSpecB_blk"]; -// _sfRig = ["V_PlateCarrierSpec_rgr"]; -// _sfGlasses = []; - -// ==================================================================================== - -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle +_sfuniform = ["U_B_SpecopsUniform_sgg"]; +_sfhelmet = ["H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_HelmetSpecB_blk"]; +_sfRig = ["V_PlateCarrierSpec_rgr"]; +_sfGlasses = []; // ==================================================================================== @@ -346,16 +354,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 7ce538f7b..75e667174 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - NATO Pacific - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -18,9 +18,9 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_ARmag, 2]; - _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -29,13 +29,14 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": @@ -43,11 +44,11 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_ARmag, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; }; // Fire Team Leader Loadout: case "ftl": @@ -56,8 +57,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -74,8 +75,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -94,8 +95,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; @@ -110,11 +111,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; @@ -127,8 +131,8 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; _unit addItem _firstaid; @@ -136,14 +140,14 @@ switch (_typeofUnit) do // Designated Marksman Loadout: case "dm": { - _unit addmagazines [_DMriflemag , 1]; + _unit addmagazines [_DMriflemag, 1]; _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_DMriflemag , 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -153,22 +157,37 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -178,48 +197,61 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: case "hmgag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -232,21 +264,35 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -257,7 +303,7 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; @@ -268,10 +314,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -283,22 +329,35 @@ switch (_typeofUnit) do _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -308,21 +367,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -334,9 +393,9 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": @@ -344,8 +403,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope @@ -358,7 +417,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; @@ -368,7 +427,7 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; // Vehicle Driver Loadout: @@ -379,72 +438,64 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Helicopter Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; }; // UAV Operator Loadout: case "uav": @@ -453,8 +504,8 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; @@ -465,8 +516,8 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -477,10 +528,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Carbineer Loadout: case "car": @@ -488,10 +539,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Submachinegunner Loadout: case "smg": @@ -499,9 +550,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 3]; }; // Grenadier Loadout: case "gren": @@ -510,8 +561,8 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; }; diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index 8c68dd270..27bfbd339 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - NATO Pacific - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -29,25 +29,29 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": { + _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_ARmag, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -139,12 +143,12 @@ switch (_typeofUnit) do // Designated Marksman Loadout: case "dm": { - _unit addmagazines [_DMriflemag , 1]; + _unit addmagazines [_DMriflemag, 1]; _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag , 4]; + _unit addmagazines [_DMriflemag, 4]; _unit addmagazines [_DMriflemag_tr, 2]; _unit addmagazines [_grenade, 2]; }; @@ -157,10 +161,25 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; }; // Medium MG Team Leader Loadout: - case "mmgag": + case "mmgl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; @@ -170,8 +189,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -188,7 +207,7 @@ switch (_typeofUnit) do // Heavy MG Team Leader Loadout: case "hmgag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -201,7 +220,7 @@ switch (_typeofUnit) do // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; @@ -211,8 +230,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -224,6 +244,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -240,8 +275,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -291,10 +339,23 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -319,7 +380,7 @@ switch (_typeofUnit) do // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -387,20 +448,20 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smgmag, 3]; }; -// Helicopter Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -411,19 +472,10 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; @@ -438,7 +490,7 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index bc4d8b5b1..56c3e5d76 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -1,4 +1,4 @@ - // F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - NATO - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -17,10 +17,10 @@ switch (_typeofUnit) do _unit addmagazines [_ARmag, 1]; _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_ARmag, 2]; - _unit addmagazines [_ARmag_tr, 1]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -29,25 +29,26 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_ARmag, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; }; // Fire Team Leader Loadout: case "ftl": @@ -55,9 +56,9 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -73,9 +74,9 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; @@ -93,9 +94,9 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; @@ -110,11 +111,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; @@ -126,12 +130,12 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; - _unit addItem _firstaid ; + _unit addItem _firstaid; }; // Designated Marksman Loadout: case "dm": @@ -139,11 +143,11 @@ switch (_typeofUnit) do _unit addmagazines [_DMriflemag, 1]; _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_DMriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -152,23 +156,38 @@ switch (_typeofUnit) do _unit addmagazines [_MMGmag, 1]; _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -177,49 +196,62 @@ switch (_typeofUnit) do _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: case "hmgag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -231,22 +263,36 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -256,8 +302,8 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; @@ -267,11 +313,11 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -282,23 +328,36 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -307,22 +366,22 @@ switch (_typeofUnit) do _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 1]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -333,19 +392,19 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 3]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope @@ -357,8 +416,8 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; @@ -367,8 +426,8 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; // Vehicle Driver Loadout: @@ -378,73 +437,65 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Helicopter Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; }; // UAV Operator Loadout: case "uav": @@ -452,9 +503,9 @@ switch (_typeofUnit) do _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; @@ -463,10 +514,10 @@ switch (_typeofUnit) do { _unit addBackpack _bagdiver; _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep ; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -476,32 +527,32 @@ switch (_typeofUnit) do { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_riflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Carbineer Loadout: case "car": { _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_carbinemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; + _unit addmagazines [_grenade, 3]; }; // Submachinegunner Loadout: case "smg": { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_grenade, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 3]; }; // Grenadier Loadout: case "gren": @@ -509,9 +560,9 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_glriflemag, 2]; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; }; diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index d9b3e8f85..19107e131 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - NATO - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -17,7 +17,7 @@ switch (_typeofUnit) do _unit addmagazines [_ARmag, 1]; _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 3]; _unit addmagazines [_ARmag_tr, 2]; @@ -29,25 +29,29 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": { + _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_ARmag, 2]; _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -55,7 +59,7 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; @@ -73,7 +77,7 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; @@ -93,7 +97,7 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; @@ -112,7 +116,7 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; @@ -129,12 +133,12 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; - _unit addItem _firstaid ; + _unit addItem _firstaid; }; // Designated Marksman Loadout: case "dm": @@ -142,7 +146,7 @@ switch (_typeofUnit) do _unit addmagazines [_DMriflemag, 1]; _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_DMriflemag, 4]; _unit addmagazines [_DMriflemag_tr, 2]; @@ -155,23 +159,38 @@ switch (_typeofUnit) do _unit addmagazines [_MMGmag, 1]; _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid ; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; }; // Medium MG Team Leader Loadout: - case "mmgag": + case "mmgl": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -180,7 +199,7 @@ switch (_typeofUnit) do _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; @@ -188,10 +207,10 @@ switch (_typeofUnit) do // Heavy MG Team Leader Loadout: case "hmgag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -201,29 +220,45 @@ switch (_typeofUnit) do // Medium AT Gunner Loadout: case "matg": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -234,19 +269,32 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -260,7 +308,7 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; @@ -271,7 +319,7 @@ switch (_typeofUnit) do _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -286,18 +334,31 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -311,7 +372,7 @@ switch (_typeofUnit) do _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; @@ -319,10 +380,10 @@ switch (_typeofUnit) do // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag ; + _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -337,7 +398,7 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; @@ -347,12 +408,11 @@ switch (_typeofUnit) do { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; @@ -362,7 +422,7 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; @@ -372,7 +432,7 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; }; @@ -383,51 +443,42 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smgmag, 3]; }; -// Helicopter Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; _unit addItem "ToolKit"; }; -// Helicopter Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid ; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; // Engineer (Demo) Loadout: case "eng": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -439,10 +490,10 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { - _unit addBackpack _baglarge; + _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -458,7 +509,7 @@ switch (_typeofUnit) do _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -469,8 +520,8 @@ switch (_typeofUnit) do { _unit addBackpack _bagdiver; _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep ; - _unit addItem _firstaid ; + _unit addweapon _diverWep; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; @@ -482,7 +533,7 @@ switch (_typeofUnit) do { _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; @@ -493,7 +544,7 @@ switch (_typeofUnit) do { _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; @@ -504,7 +555,7 @@ switch (_typeofUnit) do { _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 3]; @@ -515,7 +566,7 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; - _unit addItem _firstaid ; + _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; diff --git a/f/assignGear/f_assignGear_nato_v.sqf b/f/assignGear/f_assignGear_nato_v.sqf index 7be7155f7..99c73ab3d 100644 --- a/f/assignGear/f_assignGear_nato_v.sqf +++ b/f/assignGear/f_assignGear_nato_v.sqf @@ -12,7 +12,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; - _unit addMagazineCargoGlobal [_ratmag, 1]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; _unit addMagazineCargoGlobal [_smokegrenade, 4]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; @@ -33,7 +33,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_armag, 10]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; @@ -55,7 +55,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addmagazineCargoGlobal [_mgrenade,8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -111,14 +111,14 @@ _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_ratmag,1]; + _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,2]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -137,7 +137,7 @@ _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_ratmag,6]; + _unit addMagazineCargoGlobal [_RATmag1,6]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; @@ -145,7 +145,7 @@ _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_glsmokewhite,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,4]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -176,6 +176,8 @@ _unit addMagazineCargoGlobal [_chemgreen,2]; _unit addItemCargoGlobal [_firstaid,1]; _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; // CRATE: Small, ammo for 1 fireteam @@ -191,7 +193,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 5]; _unit addMagazineCargoGlobal [_glmag, 5]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addMagazineCargoGlobal [_mgrenade, 8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -212,7 +214,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_glmag, 20]; _unit addMagazineCargoGlobal [_glsmokewhite,16]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 25]; _unit addMagazineCargoGlobal [_mgrenade, 25]; _unit addMagazineCargoGlobal [_smokegrenade, 25]; @@ -233,7 +235,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 60]; _unit addMagazineCargoGlobal [_glmag, 60]; _unit addMagazineCargoGlobal [_glsmokewhite,50]; - _unit addMagazineCargoGlobal [_ratmag, 20]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; _unit addMagazineCargoGlobal [_grenade, 75]; _unit addMagazineCargoGlobal [_mgrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenade, 75]; diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index 0b9c8695d..f015dfa40 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -14,16 +14,20 @@ // aar - assistant automatic rifleman // rat - rifleman (AT) // dm - designated marksman +// mmgl - medium mg team leader // mmgg - medium mg gunner // mmgag - medium mg assistant +// matl - medium AT team leader // matg - medium AT gunner // matag - medium AT assistant // hmgg - heavy mg gunner (deployable) // hmgag - heavy mg assistant (deployable) -// hatg - heavy AT gunner (deployable) -// hatag - heavy AT assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant // mtrg - mortar gunner (deployable) // mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader // msamg - medium SAM gunner // msamag - medium SAM assistant gunner // hsamg - heavy SAM gunner (deployable) @@ -33,9 +37,8 @@ // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) -// pp - air vehicle pilot / co-pilot (repair) -// pcc - air vehicle co-pilot (repair) / crew chief (repair) // pc - air vehicle crew +// jp - jet pilot // eng - engineer (demo) // engm - engineer (mines) // uav - UAV operator @@ -49,6 +52,12 @@ // v_car - car/4x4 // v_tr - truck // v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet // // crate_small - small ammocrate // crate_med - medium ammocrate @@ -164,7 +173,7 @@ _chemblue = "Chemlight_blue"; // Backpacks _bag = "B_AssaultPack_rgr"; // carries 160, weighs 20 -_baglarge = "B_Carryall_cbr"; // carries 320, weighs 60 +_bagLarge = "B_Carryall_cbr"; // carries 320, weighs 60 _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "I_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner @@ -186,27 +195,31 @@ _ARmag_tr = "200Rnd_556x45_Box_Tracer_F"; // Medium MG _MMG = "LMG_Zafir_F"; _MMGmag = "150Rnd_762x54_Box"; +_MMGmag_tr = "150Rnd_762x54_Box_Tracer"; // Marksman rifle _DMrifle = "srifle_DMR_03_F"; _DMriflemag = "20Rnd_762x51_Mag"; // Rifleman AT -_RAT = "launch_RPG32_F"; -_RATmag = "RPG32_F"; +_RAT = "launch_RPG32_ghex_F"; +_RATmag1 = "RPG32_F"; +_RATmag2 = "RPG32_HE_F"; // Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; - -// Heavy AT -_HAT = "launch_I_Titan_short_F"; -_HATmag1 = "Titan_AT"; +_MAT = "launch_RPG32_ghex_F"; +_MATmag1 = "RPG32_F"; +_MATmag2 = "RPG32_HE_F"; // Surface Air _SAM = "launch_Titan_F"; _SAMmag = "Titan_AA"; +// Heavy AT +_HAT = "launch_O_Vorona_green_F"; +_HATmag1 = "Vorona_HEAT"; +_HATmag2 = "Vorona_HE"; + // Sniper _SNrifle = "srifle_LRR_F"; _SNrifleMag = "7Rnd_408_Mag"; @@ -230,6 +243,7 @@ _pilot = ["pp","pcc","pc"]; _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; +_jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -239,7 +253,7 @@ _baseHelmet = ["H_Beret_blk"]; _baseGlasses = ["G_Bandanna_blk","G_Bandanna_khk","G_Bandanna_oli"]; // Vests -_lightRig = ["V_Chestrig_blk","V_Chestrig_rgr"]; +_lightRig = ["V_TacVestIR_blk"]; _standardRig = ["V_TacVestIR_blk"]; // Diver @@ -254,6 +268,12 @@ _pilotHelmet = _baseHelmet; _pilotRig = ["V_Chestrig_blk"]; _pilotGlasses = []; +// Jet Pilot +_jetUniform = ["U_I_pilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_I"]; +_jetRig = []; +_jetGlasses = []; + // Crewman _crewUniform = _baseUniform; _crewHelmet = _baseHelmet; @@ -272,16 +292,6 @@ _sfhelmet = _baseHelmet; _sfRig = _standardRig; _sfGlasses = []; - -// ==================================================================================== - -// INTERPRET PASSED VARIABLES -// The following interprets what has been passed to this script element - -_typeofUnit = toLower (_this select 0); // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) -_unit = _this select 1; // expecting name of unit; originally passed by using 'this' in unit init -_isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle - // ==================================================================================== // This block needs only to be run on an infantry unit @@ -335,16 +345,3 @@ if (_loadout == 1) then { }; // ==================================================================================== - -// If this isn't run on an infantry unit we can exit -if !(_isMan) exitWith {}; - -// ==================================================================================== - -// Handle weapon attachments -#include "f_assignGear_attachments.sqf"; - -// ==================================================================================== - -// ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING -_unit selectweapon primaryweapon _unit; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index a99c18515..91f4dbf9c 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - Syndikat - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -20,8 +20,9 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": @@ -29,15 +30,15 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_RATmag, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": @@ -47,10 +48,10 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; }; // Fire Team Leader Loadout: @@ -61,10 +62,10 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_smokegrenadegreen, 2]; _unit addWeapon "Rangefinder"; }; @@ -74,12 +75,15 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_pistolmag, 2]; _unit addmagazines [_smokegrenadepurple, 2]; _unit addWeapon "Rangefinder"; }; @@ -93,10 +97,11 @@ switch (_typeofUnit) do _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokewhite, 5]; _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 4]; _unit addmagazines [_smokegrenadepurple, 2]; _unit addWeapon "Rangefinder"; }; @@ -106,11 +111,14 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_pistolmag, 3]; _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -123,9 +131,9 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -137,8 +145,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -150,10 +158,10 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addmagazines [_smokegrenade, 4]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; @@ -161,10 +169,25 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -177,7 +200,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -187,9 +210,9 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -204,10 +227,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -215,9 +238,22 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 1]; _unit addWeapon "Rangefinder"; }; @@ -233,9 +269,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": { _unit addBackpack _bagLarge; @@ -243,9 +280,22 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -259,7 +309,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -269,9 +319,9 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -286,9 +336,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": { _unit addBackpack _bagLarge; @@ -296,10 +346,23 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_SAMmag, 1]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; // Heavy SAM Gunner Loadout: @@ -312,7 +375,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": @@ -322,9 +385,9 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -336,9 +399,9 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 6]; + _unit addmagazines [_smokegrenade, 5]; _unit addmagazines [_SNrifleMag, 3]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: case "sp": @@ -346,8 +409,8 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 6]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SNrifleMag, 3]; @@ -361,7 +424,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -372,7 +435,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -384,24 +447,23 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -410,19 +472,9 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; + _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 5]; - }; // Engineer (Demo) Loadout: case "eng": { @@ -431,13 +483,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 1]; + _unit addmagazines [_satchel, 2]; }; // Engineer (Mines) Loadout: case "engm": @@ -447,10 +499,10 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -464,9 +516,9 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -476,8 +528,8 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_diverMag1, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; _unit addmagazines [_grenade, 3]; @@ -489,10 +541,10 @@ switch (_typeofUnit) do _unit addweapon _rifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_riflemag, 2]; + _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": @@ -501,10 +553,10 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -513,9 +565,9 @@ switch (_typeofUnit) do _unit addweapon _smg; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; + _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": @@ -525,10 +577,10 @@ switch (_typeofUnit) do _unit addweapon _glrifle; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_glriflemag, 2]; + _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 4]; }; // Include the loadouts for vehicles and crates: diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 126cfe6d3..ced05a992 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - Syndikat - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -30,7 +30,7 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_RATmag, 1]; + _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; @@ -38,7 +38,8 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_RATmag, 3]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": @@ -53,6 +54,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: case "ftl": @@ -65,8 +67,8 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_smokegrenadegreen, 2]; + _unit addmagazines [_smokegrenade, 4]; _unit addWeapon "Rangefinder"; }; // Squad Leader / DC Loadout: @@ -157,10 +159,11 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addmagazines [_smokegrenade, 4]; }; -// Medium MG Team Leader Loadout: +// Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; @@ -171,8 +174,22 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; }; // Heavy MG Gunner Loadout: @@ -213,9 +230,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; -// Medium AT Team Leader Loadout: +// Medium AT Assistant Loadout: case "matag": { _unit addBackpack _bag; @@ -226,7 +244,22 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -244,8 +277,21 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; -// Heavy AT Team Leader Loadout: +// Heavy AT Assistant Loadout: case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -289,16 +335,29 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; + _unit addmagazines [_SAMmag, 1]; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_smokegrenade, 4]; }; -// Medium SAM Team Leader Loadout: +// Medium SAM Assistant Loadout: case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; @@ -396,21 +455,20 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Pilot Loadout: - case "pp": +// Jet Pilot Loadout: + case "jp": { _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; - _unit addItem "ToolKit"; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; }; -// Heli Crew Chief Loadout: - case "pcc": +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": { _unit setUnitTrait ["engineer",true]; // Can repair _unit addBackpack _bag; @@ -422,16 +480,6 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; -// Heli Crew Loadout: - case "pc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; - }; // Engineer (Demo) Loadout: case "eng": { diff --git a/f/assignGear/f_assignGear_syndikat_v.sqf b/f/assignGear/f_assignGear_syndikat_v.sqf index 9737b348d..3775dd65f 100644 --- a/f/assignGear/f_assignGear_syndikat_v.sqf +++ b/f/assignGear/f_assignGear_syndikat_v.sqf @@ -12,7 +12,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; _unit addMagazineCargoGlobal [_armag, 5]; - _unit addMagazineCargoGlobal [_ratmag, 1]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; _unit addMagazineCargoGlobal [_grenade, 4]; _unit addMagazineCargoGlobal [_smokegrenade, 4]; _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; @@ -33,7 +33,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_armag, 10]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade, 12]; @@ -55,7 +55,7 @@ _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; _unit addMagazineCargoGlobal [_armag, 8]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addmagazineCargoGlobal [_mgrenade,8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -111,14 +111,14 @@ _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_ratmag,1]; + _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,2]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -137,7 +137,7 @@ _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_ratmag,6]; + _unit addMagazineCargoGlobal [_RATmag1,6]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; @@ -145,7 +145,7 @@ _unit addMagazineCargoGlobal [_glmag,12]; _unit addMagazineCargoGlobal [_glsmokewhite,12]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addBackpackCargoGlobal [_bagmedium,4]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; @@ -176,6 +176,8 @@ _unit addMagazineCargoGlobal [_chemgreen,2]; _unit addItemCargoGlobal [_firstaid,1]; _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; // CRATE: Small, ammo for 1 fireteam @@ -191,7 +193,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 5]; _unit addMagazineCargoGlobal [_glmag, 5]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; - _unit addMagazineCargoGlobal [_ratmag, 2]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; _unit addMagazineCargoGlobal [_grenade, 8]; _unit addMagazineCargoGlobal [_mgrenade, 8]; _unit addMagazineCargoGlobal [_smokegrenade, 8]; @@ -212,7 +214,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 20]; _unit addMagazineCargoGlobal [_glmag, 20]; _unit addMagazineCargoGlobal [_glsmokewhite,16]; - _unit addMagazineCargoGlobal [_ratmag, 6]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; _unit addMagazineCargoGlobal [_grenade, 25]; _unit addMagazineCargoGlobal [_mgrenade, 25]; _unit addMagazineCargoGlobal [_smokegrenade, 25]; @@ -233,7 +235,7 @@ _unit addMagazineCargoGlobal [_carbinemag, 60]; _unit addMagazineCargoGlobal [_glmag, 60]; _unit addMagazineCargoGlobal [_glsmokewhite,50]; - _unit addMagazineCargoGlobal [_ratmag, 20]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; _unit addMagazineCargoGlobal [_grenade, 75]; _unit addMagazineCargoGlobal [_mgrenade, 75]; _unit addMagazineCargoGlobal [_smokegrenade, 75]; diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 20ffbd6ec..87a4283f3 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -2,8 +2,15 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// DECLARE VARIABLES AND FUNCTIONS +// INTERPRET PASSED VARIABLES +// The following interprets what has been passed to this script +params[ + ["_typeofUnit", "", [""]], + ["_unit", objNull, [objNull]] +]; +private _isMan = _unit isKindOf "CAManBase"; // We check if we're dealing with a soldier or a vehicle +_typeofUnit = toLower _typeofUnit; // Tidy input for SWITCH/CASE statements, expecting something like : r = Rifleman, co = Commanding Officer, rat = Rifleman (AT) // ==================================================================================== @@ -11,12 +18,7 @@ // The following code detects what faction the unit's slot belongs to, and stores // it in the private variable _faction. It can also be passed as an optional parameter. - -params["_typeofUnit","_unit"]; -private _faction = toLower (faction _unit); - -_typeofUnit = toLower _typeofUnit; -_faction = toLower (param[2, (faction _unit)]); +private _faction = toLower (param[2, (faction _unit)]); // ==================================================================================== @@ -54,7 +56,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bagsmall","_bagmedium","_baglarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_typeofUnit","_unit","_isMan","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit"]; +private ["_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; // ==================================================================================== @@ -166,14 +168,33 @@ if (_faction in ["ind_c_f","syndikat"]) then { // ==================================================================================== -// This variable simply tracks the progress of the gear assignation process, for other -// scripts to reference. +// Handle weapon switching, weapon attachments, etc + +// This block needs only to be run on an infantry unit +if (_isMan) then { + + // Add extra FAKs, + // because the assignGear files were made when the sws was still existing. + private _numExtraFAK = 2; + for "_i" from 1 to _numExtraFAK do { + _unit addItem _firstaid; + }; + + // Handle weapon attachments + #include "f_assignGear_attachments.sqf"; + + // ENSURE UNIT HAS CORRECT WEAPON SELECTED ON SPAWNING + _unit selectweapon primaryweapon _unit; + +}; -_unit setVariable ["f_var_assignGear_done",true,true]; // ==================================================================================== -// DEBUG +// This variable simply tracks the progress of the gear assignation process, for other +// scripts to reference. + +_unit setVariable ["f_var_assignGear_done",true,true]; // ==================================================================================== diff --git a/mission.sqm b/mission.sqm index 4d8398eed..b43e53530 100644 --- a/mission.sqm +++ b/mission.sqm @@ -8,7 +8,7 @@ class EditorData toggles=513; class ItemIDProvider { - nextID=1134; + nextID=1234; }; class Camera { @@ -58,13 +58,16 @@ addons[]= "A3_Soft_F_Exp_Offroad_01", "A3_Soft_F_Gamma_SUV_01", "A3_Modules_F", - "A3_Data_F_Exp_A_Virtual" + "A3_Data_F_Exp_A_Virtual", + "A3_Air_F_EPC_Plane_CAS_01", + "A3_Air_F_Gamma_Plane_Fighter_03", + "A3_Air_F_EPC_Plane_CAS_02" }; class AddonsMetaData { class List { - items=20; + items=22; class Item0 { className="A3_Air_F_Heli"; @@ -205,6 +208,20 @@ class AddonsMetaData author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item20 + { + className="A3_Air_F_EPC"; + name="Arma 3 Win Episode - Aircraft"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item21 + { + className="A3_Air_F_Gamma"; + name="Arma 3 - Aircraft"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=1116085; @@ -270,7 +287,7 @@ class Mission }; class Entities { - items=394; + items=400; class Item0 { dataType="Object"; @@ -7340,13 +7357,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={621.67786,5.0014391,1372.7942}; + position[]={621.67798,5.0014391,1372.7941}; }; side="West"; flags=6; @@ -7354,8 +7371,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitNATO_MMG1_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG1_TL"; description="NATO Medium MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -7382,6 +7399,27 @@ class Mission id=269; type="B_soldier_AR_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={617.51489,5.0014391,1371.1731}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG1_AG"; + description="NATO Medium MG Team 1 Assistant"; + isPlayable=1; + }; + id=1209; + type="B_soldier_AAR_F"; + }; }; class Attributes { @@ -7418,13 +7456,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={621.31165,5.0014391,1361.0022}; + position[]={621.31201,5.0014391,1361.0021}; }; side="West"; flags=6; @@ -7432,8 +7470,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitNATO_MMG2_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG2_TL"; description="NATO Medium MG Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -7460,6 +7498,27 @@ class Mission id=272; type="B_soldier_AR_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={617.14893,5.0014391,1359.3811}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitNATO_MMG2_AG"; + description="NATO Medium MG Team 2 Assistant"; + isPlayable=1; + }; + id=1210; + type="B_soldier_AAR_F"; + }; }; class Attributes { @@ -7496,13 +7555,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={621.51672,5.0014391,1349.5032}; + position[]={621.51703,5.0014391,1349.5031}; }; side="West"; flags=6; @@ -7510,8 +7569,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MAT1_AG"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT1_TL"; description="NATO Medium AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -7539,6 +7598,27 @@ class Mission type="B_soldier_AT_F"; atlOffset=0.035766125; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={617.354,5.0014391,1347.8821}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT1_AG"; + description="NATO Medium AT Team 1 Assistant"; + isPlayable=1; + }; + id=1211; + type="B_soldier_AAT_F"; + }; }; class Attributes { @@ -7575,13 +7655,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={621.82825,5.0014391,1337.9661}; + position[]={621.828,5.0014391,1337.9661}; }; side="West"; flags=6; @@ -7589,8 +7669,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MAT2_AG"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT2_TL"; description="NATO Medium AT Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -7618,6 +7698,27 @@ class Mission id=278; type="B_soldier_AT_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={617.66602,5.0014391,1336.3441}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitNATO_MAT2_AG"; + description="NATO Medium AT Team 2 Assistant"; + isPlayable=1; + }; + id=1212; + type="B_soldier_AAT_F"; + }; }; class Attributes { @@ -7669,7 +7770,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hmgag"",this] call f_fnc_assignGear; "; - name="UnitNATO_HMG1_AG"; + name="UnitNATO_HMG1_TL"; description="NATO Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -7732,13 +7833,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={621.42981,5.0014391,1314.5901}; + position[]={621.42999,5.0014391,1314.5901}; }; side="West"; flags=6; @@ -7746,8 +7847,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitNATO_HAT1_AG"; + init="[""hatl"",this] call f_fnc_assignGear; "; + name="UnitNATO_HAT1_TL"; description="NATO Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -7775,6 +7876,27 @@ class Mission id=284; type="B_soldier_AT_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={617.26697,5.0014391,1312.968}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitNATO_HAT1_AG"; + description="NATO Heavy AT Team 1 Assistant"; + isPlayable=1; + }; + id=1213; + type="B_soldier_AAT_F"; + }; }; class Attributes { @@ -7826,7 +7948,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MTR1_AG"; + name="UnitNATO_MTR1_TL"; description="NATO Mortar Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -7892,13 +8014,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={621.65149,5.7161484,1290.2786}; + position[]={621.651,5.7164392,1290.2791}; }; side="West"; flags=2; @@ -7906,8 +8028,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitNATO_MSAM1_AG"; + init="[""msaml"",this] call f_fnc_assignGear; "; + name="UnitNATO_MSAM1_TL"; description="NATO Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -7936,6 +8058,27 @@ class Mission type="B_soldier_AA_F"; atlOffset=0.79047394; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={617.48901,5.7164392,1288.6571}; + }; + side="West"; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitNATO_MSAM1_AG"; + description="NATO Medium SAM Team 1 Assistant"; + isPlayable=1; + }; + id=1160; + type="B_soldier_AAA_F"; + atlOffset=0.71500015; + }; }; class Attributes { @@ -7988,7 +8131,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitNATO_HSAM1_AG"; + name="UnitNATO_HSAM1_TL"; description="NATO Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -8818,7 +8961,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH1_P"; description="NATO Transport Helo 1 Pilot"; isPlayable=1; @@ -8839,7 +8982,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH1_CP"; description="NATO Transport Helo 1 Co-Pilot"; isPlayable=1; @@ -8860,9 +9003,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH1_G1"; - description="NATO Transport Helo 1 Crew Chief (Repair)"; + description="NATO Transport Helo 1 Crew Chief"; isPlayable=1; }; id=322; @@ -8992,7 +9135,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH2_P"; description="NATO Transport Helo 2 Pilot"; isPlayable=1; @@ -9013,7 +9156,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH2_CP"; description="NATO Transport Helo 2 Co-Pilot"; isPlayable=1; @@ -9034,9 +9177,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH2_G1"; - description="NATO Transport Helo 2 Crew Chief (Repair)"; + description="NATO Transport Helo 2 Crew Chief"; isPlayable=1; }; id=327; @@ -9166,7 +9309,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH3_P"; description="NATO Transport Helo 3 Pilot"; isPlayable=1; @@ -9187,7 +9330,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH3_CP"; description="NATO Transport Helo 3 Co-Pilot"; isPlayable=1; @@ -9208,9 +9351,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH3_G1"; - description="NATO Transport Helo 3 Crew Chief (Repair)"; + description="NATO Transport Helo 3 Crew Chief"; isPlayable=1; }; id=332; @@ -9341,7 +9484,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH4_P"; description="NATO Transport Helo 4 Pilot"; isPlayable=1; @@ -9362,7 +9505,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH4_CP"; description="NATO Transport Helo 4 Co-Pilot"; isPlayable=1; @@ -9383,9 +9526,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH4_G1"; - description="NATO Transport Helo 4 Crew Chief (Repair)"; + description="NATO Transport Helo 4 Crew Chief"; isPlayable=1; }; id=337; @@ -9516,7 +9659,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH5_P"; description="NATO Transport Helo 5 Pilot"; isPlayable=1; @@ -9537,7 +9680,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH5_CP"; description="NATO Transport Helo 5 Co-Pilot"; isPlayable=1; @@ -9558,9 +9701,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH5_G1"; - description="NATO Transport Helo 5 Crew Chief (Repair)"; + description="NATO Transport Helo 5 Crew Chief"; isPlayable=1; }; id=342; @@ -9691,7 +9834,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH6_P"; description="NATO Transport Helo 6 Pilot"; isPlayable=1; @@ -9712,7 +9855,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH6_CP"; description="NATO Transport Helo 6 Co-Pilot"; isPlayable=1; @@ -9733,9 +9876,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH6_G1"; - description="NATO Transport Helo 6 Crew Chief (Repair)"; + description="NATO Transport Helo 6 Crew Chief"; isPlayable=1; }; id=347; @@ -9866,7 +10009,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH7_P"; description="NATO Transport Helo 7 Pilot"; isPlayable=1; @@ -9887,7 +10030,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH7_CP"; description="NATO Transport Helo 7 Co-Pilot"; isPlayable=1; @@ -9908,9 +10051,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH7_G1"; - description="NATO Transport Helo 7 Crew Chief (Repair)"; + description="NATO Transport Helo 7 Crew Chief"; isPlayable=1; }; id=352; @@ -10041,7 +10184,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH8_P"; description="NATO Transport Helo 8 Pilot"; isPlayable=1; @@ -10062,7 +10205,7 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH8_CP"; description="NATO Transport Helo 8 Co-Pilot"; isPlayable=1; @@ -10083,9 +10226,9 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_TH8_G1"; - description="NATO Transport Helo 8 Crew Chief (Repair)"; + description="NATO Transport Helo 8 Crew Chief"; isPlayable=1; }; id=357; @@ -10216,7 +10359,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_AH1_P"; description="NATO Attack Helo 1 Pilot"; isPlayable=1; @@ -10237,9 +10380,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitNATO_AH1_CP"; - description="NATO Attack Helo 1 Gunner (Repair)"; + description="NATO Attack Helo 1 Gunner"; isPlayable=1; }; id=361; @@ -13341,13 +13484,13 @@ class Mission side="East"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={2595.7317,5.0014391,1375.5728}; + position[]={2595.7319,5.0014391,1375.573}; }; side="East"; flags=6; @@ -13356,8 +13499,8 @@ class Mission skill=0.60000002; rank="CORPORAL"; lock="UNLOCKED"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MMG1_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG1_TL"; description="CSAT Medium MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -13431,6 +13574,28 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.5688,5.0014391,1373.951}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG1_AG"; + description="CSAT Medium MG Team 1 Assistant"; + isPlayable=1; + }; + id=1229; + type="O_Soldier_AAR_F"; + }; }; class Attributes { @@ -13467,13 +13632,13 @@ class Mission side="East"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={2595.9475,5.0014391,1361.355}; + position[]={2595.948,5.0014391,1361.3551}; }; side="East"; flags=6; @@ -13482,8 +13647,8 @@ class Mission skill=0.60000002; rank="CORPORAL"; lock="UNLOCKED"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MMG2_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG2_TL"; description="CSAT Medium MG Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -13557,6 +13722,28 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.7849,5.0014391,1359.733}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + lock="UNLOCKED"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MMG2_AG"; + description="CSAT Medium MG Team 2 Assistant"; + isPlayable=1; + }; + id=1230; + type="O_Soldier_AAR_F"; + }; }; class Attributes { @@ -13593,13 +13780,13 @@ class Mission side="East"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={2595.6252,5.0014391,1349.7603}; + position[]={2595.625,5.0014391,1349.76}; }; side="East"; flags=6; @@ -13607,8 +13794,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_MAT1_AG"; + init="[""matl"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MAT1_TL"; description="CSAT Medium AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -13681,6 +13868,27 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.4629,5.0014391,1348.139}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear;"; + name="UnitCSAT_MAT1_AG"; + description="CSAT Medium AT Team 1 Assistant"; + isPlayable=1; + }; + id=1231; + type="O_Soldier_AAT_F"; + }; }; class Attributes { @@ -13717,13 +13925,13 @@ class Mission side="East"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={2596.1155,5.0014391,1336.8003}; + position[]={2596.115,5.0014391,1336.8}; }; side="East"; flags=6; @@ -13731,8 +13939,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_MAT2_AG"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitCSAT_MAT2_TL"; description="CSAT Medium AT Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -13805,6 +14013,27 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.9529,5.0014391,1335.1791}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_MAT2_AG"; + description="CSAT Medium AT Team 2 Assistant"; + isPlayable=1; + }; + id=1232; + type="O_Soldier_AAT_F"; + }; }; class Attributes { @@ -13856,7 +14085,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hmgag"",this] call f_fnc_assignGear;"; - name="UnitCSAT_HMG1_AG"; + name="UnitCSAT_HMG1_TL"; description="CSAT Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -13965,13 +14194,13 @@ class Mission side="East"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={2595.6624,5.0014391,1312.0134}; + position[]={2595.6621,5.0014391,1312.0131}; }; side="East"; flags=6; @@ -13979,8 +14208,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_HAT1_AG"; + init="[""hatl"",this] call f_fnc_assignGear; "; + name="UnitCSAT_HAT1_TL"; description="CSAT Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -14053,6 +14282,27 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.5,5.0014391,1310.3921}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_HAT1_AG"; + description="CSAT Heavy AT Team 1 Assistant"; + isPlayable=1; + }; + id=1233; + type="O_Soldier_AAT_F"; + }; }; class Attributes { @@ -14104,7 +14354,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_MTR1_AG"; + name="UnitCSAT_MTR1_TL"; description="CSAT Mortar Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -14213,13 +14463,13 @@ class Mission side="East"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={2596.1624,5.0014391,1288.1716}; + position[]={2596.1621,5.0014391,1288.172}; }; side="East"; flags=6; @@ -14227,8 +14477,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_MSAM1_AG"; + init="[""msaml"",this] call f_fnc_assignGear; "; + name="UnitCSAT_MSAM1_TL"; description="CSAT Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -14301,6 +14551,27 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2592,5.0014391,1286.55}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitCSAT_MSAM1_AG"; + description="CSAT Medium SAM Team 1 Assistant"; + isPlayable=1; + }; + id=1208; + type="O_Soldier_AAA_F"; + }; }; class Attributes { @@ -14352,7 +14623,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitCSAT_HSAM1_AG"; + name="UnitCSAT_HSAM1_TL"; description="CSAT Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -15471,7 +15742,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH1_P"; description="CSAT Transport Helo 1 Pilot"; isPlayable=1; @@ -15492,9 +15763,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH1_CP"; - description="CSAT Transport Helo 1 Co-Pilot (Repair)"; + description="CSAT Transport Helo 1 Co-Pilot"; isPlayable=1; }; id=498; @@ -15637,7 +15908,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH2_P"; description="CSAT Transport Helo 2 Pilot"; isPlayable=1; @@ -15658,9 +15929,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH2_CP"; - description="CSAT Transport Helo 2 Co-Pilot (Repair)"; + description="CSAT Transport Helo 2 Co-Pilot"; isPlayable=1; }; id=502; @@ -15803,7 +16074,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH3_P"; description="CSAT Transport Helo 3 Pilot"; isPlayable=1; @@ -15824,9 +16095,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH3_CP"; - description="CSAT Transport Helo 3 Co-Pilot (Repair)"; + description="CSAT Transport Helo 3 Co-Pilot"; isPlayable=1; }; id=506; @@ -15914,7 +16185,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH4_P"; description="CSAT Transport Helo 4 Pilot"; isPlayable=1; @@ -15935,9 +16206,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH4_CP"; - description="CSAT Transport Helo 4 Co-Pilot (Repair)"; + description="CSAT Transport Helo 4 Co-Pilot"; isPlayable=1; }; id=509; @@ -16025,7 +16296,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH5_P"; description="CSAT Transport Helo 5 Pilot"; isPlayable=1; @@ -16046,9 +16317,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH5_CP"; - description="CSAT Transport Helo 5 Co-Pilot (Repair)"; + description="CSAT Transport Helo 5 Co-Pilot"; isPlayable=1; }; id=512; @@ -16136,7 +16407,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH6_P"; description="CSAT Transport Helo 6 Pilot"; isPlayable=1; @@ -16157,9 +16428,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH6_CP"; - description="CSAT Transport Helo 6 Co-Pilot (Repair)"; + description="CSAT Transport Helo 6 Co-Pilot"; isPlayable=1; }; id=515; @@ -16247,7 +16518,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH7_P"; description="CSAT Transport Helo 7 Pilot"; isPlayable=1; @@ -16268,9 +16539,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH7_CP"; - description="CSAT Transport Helo 7 Co-Pilot (Repair)"; + description="CSAT Transport Helo 7 Co-Pilot"; isPlayable=1; }; id=518; @@ -16358,7 +16629,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH8_P"; description="CSAT Transport Helo 8 Pilot"; isPlayable=1; @@ -16379,9 +16650,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_TH8_CP"; - description="CSAT Transport Helo 8 Co-Pilot (Repair)"; + description="CSAT Transport Helo 8 Co-Pilot"; isPlayable=1; }; id=521; @@ -16469,7 +16740,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_AH1_P"; description="CSAT Attack Helo 1 Pilot"; isPlayable=1; @@ -16513,9 +16784,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitCSAT_AH1_CP"; - description="CSAT Attack Helo 1 Gunner (Repair)"; + description="CSAT Attack Helo 1 Gunner"; isPlayable=1; }; id=524; @@ -18596,13 +18867,13 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1594.4077,5.0014391,761.87903}; + position[]={1594.408,5.0014391,761.87897}; }; side="Independent"; flags=6; @@ -18610,8 +18881,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitAAF_MMG1_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG1_TL"; description="AAF Medium MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -18638,6 +18909,27 @@ class Mission id=609; type="I_Soldier_AR_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1590.245,5.0014391,760.25702}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG1_AG"; + description="AAF Medium MG Team 1 Assistant"; + isPlayable=1; + }; + id=1224; + type="I_Soldier_AAR_F"; + }; }; class Attributes { @@ -18674,13 +18966,13 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1594.4331,5.0014391,747.13684}; + position[]={1594.433,5.0014391,747.13696}; }; side="Independent"; flags=6; @@ -18688,8 +18980,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitAAF_MMG2_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG2_TL"; description="AAF Medium MG Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -18716,6 +19008,27 @@ class Mission id=612; type="I_Soldier_AR_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1590.271,5.0014391,745.51501}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitAAF_MMG2_AG"; + description="AAF Medium MG Team 2 Assistant"; + isPlayable=1; + }; + id=1225; + type="I_Soldier_AAR_F"; + }; }; class Attributes { @@ -18752,14 +19065,14 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1594.5386,5.0014391,733.86145}; - angles[]={0,0.030932644,0}; + position[]={1594.5389,5.0014391,733.86096}; + angles[]={0,0.030927233,0}; }; side="Independent"; flags=6; @@ -18767,8 +19080,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MAT1_AG"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT1_TL"; description="AAF Medium AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -18795,6 +19108,28 @@ class Mission id=615; type="I_Soldier_AT_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1590.376,5.0014391,732.23999}; + angles[]={0,0.030927233,0}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT1_AG"; + description="AAF Medium AT Team 1 Assistant"; + isPlayable=1; + }; + id=1226; + type="I_Soldier_AAT_F"; + }; }; class Attributes { @@ -18831,13 +19166,13 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1594.9575,5.0014391,722.32629}; + position[]={1594.958,5.0014391,722.32599}; }; side="Independent"; flags=6; @@ -18845,8 +19180,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MAT2_AG"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT2_TL"; description="AAF Medium AT Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -18873,6 +19208,27 @@ class Mission id=618; type="I_Soldier_AT_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1590.7949,5.0014391,720.70502}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitAAF_MAT2_AG"; + description="AAF Medium AT Team 2 Assistant"; + isPlayable=1; + }; + id=1227; + type="I_Soldier_AAT_F"; + }; }; class Attributes { @@ -18924,7 +19280,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hmgag"",this] call f_fnc_assignGear; "; - name="UnitAAF_HMG1_AG"; + name="UnitAAF_HMG1_TL"; description="AAF Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -18987,13 +19343,13 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1594.8901,5.0014391,697.82727}; + position[]={1594.89,5.0014391,697.82697}; }; side="Independent"; flags=6; @@ -19001,8 +19357,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitAAF_HAT1_AG"; + init="[""hatl"",this] call f_fnc_assignGear; "; + name="UnitAAF_HAT1_TL"; description="AAF Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -19029,6 +19385,27 @@ class Mission id=624; type="I_Soldier_AT_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1590.7279,5.0014391,696.20599}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitAAF_HAT1_AG"; + description="AAF Heavy AT Team 1 Assistant"; + isPlayable=1; + }; + id=1228; + type="I_Soldier_AAT_F"; + }; }; class Attributes { @@ -19080,7 +19457,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MTR1_AG"; + name="UnitAAF_MTR1_TL"; description="AAF Mortar Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -19143,13 +19520,13 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1594.6802,5.0014391,673.71008}; + position[]={1594.6801,5.0014391,673.70996}; }; side="Independent"; flags=6; @@ -19157,8 +19534,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitAAF_MSAM1_AG"; + init="[""msaml"",this] call f_fnc_assignGear; "; + name="UnitAAF_MSAM1_TL"; description="AAF Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -19185,6 +19562,27 @@ class Mission id=630; type="I_Soldier_AA_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1590.5179,5.0014391,672.08801}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitAAF_MSAM1_AG"; + description="AAF Medium SAM Team 1 Assistant"; + isPlayable=1; + }; + id=1196; + type="I_Soldier_AAA_F"; + }; }; class Attributes { @@ -19236,7 +19634,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitAAF_HSAM1_AG"; + name="UnitAAF_HSAM1_TL"; description="AAF Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -20059,7 +20457,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH1_P"; description="AAF Transport Helo 1 Pilot"; isPlayable=1; @@ -20080,9 +20478,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH1_CP"; - description="AAF Transport Helo 1 Co-Pilot (Repair)"; + description="AAF Transport Helo 1 Co-Pilot"; isPlayable=1; }; id=661; @@ -20171,7 +20569,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH2_P"; description="AAF Transport Helo 2 Pilot"; isPlayable=1; @@ -20192,9 +20590,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH2_CP"; - description="AAF Transport Helo 2 Co-Pilot (Repair)"; + description="AAF Transport Helo 2 Co-Pilot"; isPlayable=1; }; id=664; @@ -20283,7 +20681,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH3_P"; description="AAF Transport Helo 3 Pilot"; isPlayable=1; @@ -20304,9 +20702,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH3_CP"; - description="AAF Transport Helo 3 Co-Pilot (Repair)"; + description="AAF Transport Helo 3 Co-Pilot"; isPlayable=1; }; id=667; @@ -20395,7 +20793,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH4_P"; description="AAF Transport Helo 4 Pilot"; isPlayable=1; @@ -20416,9 +20814,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_TH4_CP"; - description="AAF Transport Helo 4 Co-Pilot (Repair)"; + description="AAF Transport Helo 4 Co-Pilot"; isPlayable=1; }; id=670; @@ -20507,7 +20905,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_AH1_P"; description="AAF Attack Helo 1 Pilot"; isPlayable=1; @@ -20528,9 +20926,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitAAF_AH1_CP"; - description="AAF Attack Helo 1 Co-Pilot (Repair)"; + description="AAF Attack Helo 1 Co-Pilot"; isPlayable=1; }; id=673; @@ -22534,13 +22932,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={602.96912,5.153121,756.11713}; + position[]={602.96899,5.153439,756.117}; }; side="West"; flags=6; @@ -22548,8 +22946,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitFIA_MMG1_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG1_TL"; description="FIA Medium MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -22578,6 +22976,28 @@ class Mission type="B_G_Soldier_AR_F"; atlOffset=0.24621964; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={598.80688,5.153439,754.49603}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG1_AG"; + description="FIA Medium MG Team 1 Assistant"; + isPlayable=1; + }; + id=1214; + type="B_G_Soldier_lite_F"; + atlOffset=0.15199995; + }; }; class Attributes { @@ -22615,13 +23035,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={602.82947,5.0014391,744.77826}; + position[]={602.82898,5.0014391,744.77802}; }; side="West"; flags=6; @@ -22629,8 +23049,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitFIA_MMG2_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG2_TL"; description="FIA Medium MG Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -22657,6 +23077,27 @@ class Mission id=745; type="B_G_Soldier_AR_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={598.66699,5.0014391,743.15698}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitFIA_MMG2_AG"; + description="FIA Medium MG Team 2 Assistant"; + isPlayable=1; + }; + id=1215; + type="B_G_Soldier_lite_F"; + }; }; class Attributes { @@ -22693,13 +23134,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={603.17322,5.0014391,734.07025}; + position[]={603.17297,5.0014391,734.07001}; }; side="West"; flags=6; @@ -22707,8 +23148,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MAT1_AG"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT1_TL"; description="FIA Medium AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -22735,6 +23176,27 @@ class Mission id=748; type="B_G_Soldier_LAT_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={599.01099,5.0014391,732.44897}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT1_AG"; + description="FIA Medium AT Team 1 Assistant"; + isPlayable=1; + }; + id=1216; + type="B_G_Soldier_LAT_F"; + }; }; class Attributes { @@ -22771,13 +23233,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={603.0863,5.0014391,722.08783}; + position[]={603.086,5.0014391,722.08801}; }; side="West"; flags=6; @@ -22785,8 +23247,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MAT2_AG"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT2_TL"; description="FIA Medium AT Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -22814,6 +23276,27 @@ class Mission id=751; type="B_G_Soldier_LAT_F"; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={598.92395,5.0014391,720.466}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitFIA_MAT2_AG"; + description="FIA Medium AT Team 2 Assistant"; + isPlayable=1; + }; + id=1217; + type="B_G_Soldier_LAT_F"; + }; }; class Attributes { @@ -22865,7 +23348,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hmgag"",this] call f_fnc_assignGear; "; - name="UnitFIA_HMG1_AG"; + name="UnitFIA_HMG1_TL"; description="FIA Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -22928,13 +23411,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={603.3988,5.0014391,698.78607}; + position[]={603.39899,5.0014391,698.78601}; }; side="West"; flags=6; @@ -22942,8 +23425,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear; "; - name="UnitFIA_HAT1_AG"; + init="[""hatl"",this] call f_fnc_assignGear; "; + name="UnitFIA_HAT1_TL"; description="FIA Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -22972,6 +23455,27 @@ class Mission type="B_G_Soldier_LAT_F"; atlOffset=0.22868824; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={599.23596,5.0014391,697.164}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitFIA_HAT1_AG"; + description="FIA Heavy AT Team 1 Assistant"; + isPlayable=1; + }; + id=1218; + type="B_G_Soldier_LAT_F"; + }; }; class Attributes { @@ -23023,7 +23527,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""mtrag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MTR1_AG"; + name="UnitFIA_MTR1_TL"; description="FIA Mortar Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -23087,13 +23591,13 @@ class Mission side="West"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={603.39978,5.0014391,674.49994}; + position[]={603.40002,5.0014391,674.5}; }; side="West"; flags=6; @@ -23101,8 +23605,8 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear; "; - name="UnitFIA_MSAM1_AG"; + init="[""msaml"",this] call f_fnc_assignGear; "; + name="UnitFIA_MSAM1_TL"; description="FIA Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -23130,6 +23634,27 @@ class Mission type="B_G_Soldier_LAT_F"; atlOffset=0.53992844; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={599.23694,5.0014391,672.87799}; + }; + side="West"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitFIA_MSAM1_AG"; + description="FIA Medium SAM Team 1 Assistant"; + isPlayable=1; + }; + id=1172; + type="B_G_Soldier_LAT_F"; + }; }; class Attributes { @@ -23181,7 +23706,7 @@ class Mission skill=0.60000002; rank="CORPORAL"; init="[""hsamag"",this] call f_fnc_assignGear; "; - name="UnitFIA_HSAM1_AG"; + name="UnitFIA_HSAM1_TL"; description="FIA Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -23456,7 +23981,7 @@ class Mission { skill=0.60000002; rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitFIA_TH1_P"; description="FIA Transport Helo 1 Pilot"; isPlayable=1; @@ -23477,9 +24002,9 @@ class Mission { skill=0.60000002; rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitFIA_TH1_CP"; - description="FIA Transport Helo 1 Co-Pilot (Repair)"; + description="FIA Transport Helo 1 Co-Pilot"; isPlayable=1; }; id=777; @@ -27300,21 +27825,21 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1559.0209,5.0014391,1369.0061}; + position[]={1559.021,5.0014391,1369.0061}; }; side="Independent"; - flags=7; + flags=6; class Attributes { rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MMG1_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG1_TL"; description="Syndikat Medium MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -27386,6 +27911,26 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.8589,5.0014391,1367.384}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG1_AG"; + description="Syndikat Medium MG Team 1 Assistant"; + isPlayable=1; + }; + id=1219; + type="I_C_Soldier_Para_4_F"; + }; }; class Attributes { @@ -27422,21 +27967,21 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1558.8353,5.0014391,1356.4192}; + position[]={1558.835,5.0014391,1356.4191}; }; side="Independent"; - flags=7; + flags=6; class Attributes { rank="CORPORAL"; - init="[""mmgag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MMG2_AG"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG2_TL"; description="Syndikat Medium MG Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -27474,7 +28019,7 @@ class Mission position[]={1563.7787,5.0014391,1354.2551}; }; side="Independent"; - flags=5; + flags=4; class Attributes { init="[""mmgg"",this] call f_fnc_assignGear;"; @@ -27508,6 +28053,26 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.673,5.0014391,1354.7981}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MMG2_AG"; + description="Syndikat Medium MG Team 2 Assistant"; + isPlayable=1; + }; + id=1220; + type="I_C_Soldier_Para_4_F"; + }; }; class Attributes { @@ -27544,21 +28109,21 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1558.8588,5.0014391,1345.2571}; + position[]={1558.859,5.0014391,1345.2571}; }; side="Independent"; - flags=7; + flags=6; class Attributes { rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MAT1_AG"; + init="[""matl"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT1_TL"; description="Syndikat Medium AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -27630,6 +28195,26 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.6959,5.0014391,1343.635}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT1_AG"; + description="Syndikat Medium AT Team 1 Assistant"; + isPlayable=1; + }; + id=1221; + type="I_C_Soldier_Para_5_F"; + }; }; class Attributes { @@ -27666,21 +28251,21 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1559.0814,5.0014391,1333.7102}; + position[]={1559.0811,5.0014391,1333.7101}; }; side="Independent"; - flags=7; + flags=6; class Attributes { rank="CORPORAL"; - init="[""matag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MAT2_AG"; + init="[""matl"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT2_TL"; description="Syndikat Medium AT Team 2 Spotter (Leader)"; isPlayable=1; }; @@ -27752,6 +28337,26 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.9189,5.0014391,1332.0891}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MAT2_AG"; + description="Syndikat Medium AT Team 2 Assistant"; + isPlayable=1; + }; + id=1222; + type="I_C_Soldier_Para_5_F"; + }; }; class Attributes { @@ -27797,12 +28402,12 @@ class Mission position[]={1559.0209,5.0014391,1323.0881}; }; side="Independent"; - flags=7; + flags=6; class Attributes { rank="CORPORAL"; init="[""hmgag"",this] call f_fnc_assignGear;"; - name="UnitSyn_HMG1_AG"; + name="UnitSyn_HMG1_TL"; description="Syndikat Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -27910,21 +28515,21 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1558.8158,5.0014391,1310.2874}; + position[]={1558.816,5.0014391,1310.2871}; }; side="Independent"; - flags=7; + flags=6; class Attributes { rank="CORPORAL"; - init="[""hatag"",this] call f_fnc_assignGear;"; - name="UnitSyn_HAT1_AG"; + init="[""hatl"",this] call f_fnc_assignGear;"; + name="UnitSyn_HAT1_TL"; description="Syndikat Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -27996,6 +28601,26 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.6539,5.0014391,1308.666}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear;"; + name="UnitSyn_HAT1_AG"; + description="Syndikat Heavy AT Team 1 Assistant"; + isPlayable=1; + }; + id=1223; + type="I_C_Soldier_Para_5_F"; + }; }; class Attributes { @@ -28046,7 +28671,7 @@ class Mission { rank="CORPORAL"; init="[""mtrag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MTR1_AG"; + name="UnitSyn_MTR1_TL"; description="Syndikat Mortar Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -28154,21 +28779,21 @@ class Mission side="Independent"; class Entities { - items=2; + items=3; class Item0 { dataType="Object"; class PositionInfo { - position[]={1559.0326,5.0014391,1285.1262}; + position[]={1559.033,5.0014391,1285.1261}; }; side="Independent"; flags=6; class Attributes { rank="CORPORAL"; - init="[""msamag"",this] call f_fnc_assignGear;"; - name="UnitSyn_MSAM1_AG"; + init="[""msaml"",this] call f_fnc_assignGear;"; + name="UnitSyn_MSAM1_TL"; description="Syndikat Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -28240,6 +28865,26 @@ class Mission nAttributes=1; }; }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.0341,5.0014391,1283.089}; + }; + side="Independent"; + flags=4; + class Attributes + { + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear;"; + name="UnitSyn_MSAM1_AG"; + description="Syndikat Medium SAM Team 1 Assistant"; + isPlayable=1; + }; + id=1184; + type="I_C_Soldier_Para_5_F"; + }; }; class Attributes { @@ -28290,7 +28935,7 @@ class Mission { rank="CORPORAL"; init="[""hsamag"",this] call f_fnc_assignGear;"; - name="UnitSyn_HSAM1_AG"; + name="UnitSyn_HSAM1_TL"; description="Syndikat Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; }; @@ -28739,7 +29384,7 @@ class Mission class Attributes { rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitSyn_TH1_P"; description="Syndikat Transport Helo 1 Pilot"; isPlayable=1; @@ -28782,9 +29427,9 @@ class Mission class Attributes { rank="SERGEANT"; - init="[""pcc"",this] call f_fnc_assignGear; "; + init="[""pc"",this] call f_fnc_assignGear; "; name="UnitSyn_TH1_CP"; - description="Syndikat Transport Helo 1 Co-Pilot (Repair)"; + description="Syndikat Transport Helo 1 Co-Pilot"; isPlayable=1; }; id=941; @@ -31856,7 +32501,7 @@ class Mission class Attributes { rank="LIEUTENANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitGEN_TH1_P"; description="Gendarmerie Transport Helo 1 Pilot"; isPlayable=1; @@ -31899,9 +32544,9 @@ class Mission class Attributes { rank="SERGEANT"; - init="[""pp"",this] call f_fnc_assignGear;"; + init="[""pc"",this] call f_fnc_assignGear;"; name="UnitGEN_TH1_CP"; - description="Gendarmerie Transport Helo 1 Co-Pilot (Repair)"; + description="Gendarmerie Transport Helo 1 Co-Pilot"; isPlayable=1; }; id=1086; @@ -32903,6 +33548,359 @@ class Mission nAttributes=5; }; }; + class Item394 + { + dataType="Object"; + class PositionInfo + { + position[]={393.79614,7.380455,1306.8588}; + }; + side="Empty"; + flags=4; + class Attributes + { + init="[""v_jet"",this] call f_fnc_assignGear;"; + name="VehNATO_CAS1"; + }; + id=1134; + type="B_Plane_CAS_01_dynamicLoadout_F"; + }; + class Item395 + { + dataType="Group"; + side="West"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={390.034,5.0014391,1312.3861}; + angles[]={0,1.4669667,0}; + }; + side="West"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""jp"",this] call f_fnc_assignGear;"; + name="UnitNATO_CAS1_P"; + description="NATO CAS1 Pilot"; + isPlayable=1; + }; + id=1136; + type="B_Helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male12ENG"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99000001; + }; + }; + }; + nAttributes=2; + }; + }; + }; + class Attributes + { + name="GrpNATO_CAS1"; + }; + id=1135; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NATO CAS1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item396 + { + dataType="Object"; + class PositionInfo + { + position[]={1383.8635,7.4227982,675.79047}; + }; + side="Empty"; + flags=4; + class Attributes + { + init="[""v_jet"",this] call f_fnc_assignGear;"; + name="VehAAF_CAS1"; + }; + id=1139; + type="I_Plane_Fighter_03_dynamicLoadout_F"; + }; + class Item397 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1380.6572,5.0014391,679.09668}; + angles[]={-0,1.7658945,0}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""jp"",this] call f_fnc_assignGear;"; + name="UnitAAF_CAS1_P"; + description="AAF CAS1 Pilot"; + isPlayable=1; + }; + id=1143; + type="I_helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male04GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=2; + }; + }; + }; + class Attributes + { + name="GrpAAF_CAS1"; + }; + id=1142; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="AAF CAS1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item398 + { + dataType="Group"; + side="East"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2342.749,5.0014391,1312.0121}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""jp"",this] call f_fnc_assignGear;"; + name="UnitCSAT_CAS1_P"; + description="CSAT CAS1 Pilot"; + isPlayable=1; + }; + id=1145; + type="O_helipilot_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02PER"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=2; + }; + }; + }; + class Attributes + { + name="GrpCSAT_CAS1"; + }; + id=1144; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="CSAT CAS1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item399 + { + dataType="Object"; + class PositionInfo + { + position[]={2347.4487,7.9799161,1306.9673}; + }; + side="Empty"; + flags=4; + class Attributes + { + init="[""v_jet"",this] call f_fnc_assignGear;"; + name="VehCSAT_CAS1"; + }; + id=1146; + type="O_Plane_CAS_02_dynamicLoadout_F"; + }; }; class Connections { From b81e2d437c066ec7909ec378f7dd22087de732d1 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 28 Nov 2018 17:54:29 +0100 Subject: [PATCH 154/407] bump version to 3.5.2 (#190) --- README.md | 2 +- description.ext | 2 +- mission.sqm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6ef5b8596..6727667f0 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## -* F3 3-5-1 +* F3 3-5-2 * ws_fnc 05/07/2015 diff --git a/description.ext b/description.ext index 29a36de08..e95890e9c 100644 --- a/description.ext +++ b/description.ext @@ -1,4 +1,4 @@ -fa3_version[] = {3,5,1}; // WARNING: DO NOT CHANGE THIS LINE +fa3_version[] = {3,5,2}; // WARNING: DO NOT CHANGE THIS LINE // ============================================================================================ // F3 - Loading Screen diff --git a/mission.sqm b/mission.sqm index b43e53530..bca2c87e8 100644 --- a/mission.sqm +++ b/mission.sqm @@ -263,7 +263,7 @@ class Mission { class Intel { - briefingName="fa3-5-1"; + briefingName="fa3-5-2"; resistanceWest=0; timeOfChanges=28800; startWeather=0.50001526; From 9c6e0877577b6a3ee6accaaf71d1ef14960c1495 Mon Sep 17 00:00:00 2001 From: s Date: Fri, 28 Dec 2018 19:48:36 +0100 Subject: [PATCH 155/407] Fix slotting order of Gendarme --- mission.sqm | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/mission.sqm b/mission.sqm index bca2c87e8..5d38edd4f 100644 --- a/mission.sqm +++ b/mission.sqm @@ -5,10 +5,10 @@ class EditorData angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=513; + toggles=641; class ItemIDProvider { - nextID=1234; + nextID=1240; }; class Camera { @@ -31370,16 +31370,16 @@ class Mission position[]={509.84177,5.0014391,1044.8337}; }; side="West"; - flags=4; + flags=6; class Attributes { - rank="CORPORAL"; + rank="SERGEANT"; init="[""pat"",this] call f_fnc_assignGear;"; - name="UnitGEN_A_G1"; - description="Gendarmerie Alpha Gendarme"; + name="UnitGEN_A_Sgt"; + description="Gendarmerie Alpha Sergeant"; isPlayable=1; }; - id=1066; + id=1067; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -31413,16 +31413,16 @@ class Mission position[]={509.84177,5.0014391,1044.8337}; }; side="West"; - flags=6; + flags=4; class Attributes { - rank="SERGEANT"; + rank="CORPORAL"; init="[""pat"",this] call f_fnc_assignGear;"; - name="UnitGEN_A_Sgt"; - description="Gendarmerie Alpha Sergeant"; + name="UnitGEN_A_G1"; + description="Gendarmerie Alpha Gendarme"; isPlayable=1; }; - id=1067; + id=1235; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -31465,7 +31465,7 @@ class Mission description="Gendarmerie Alpha Gendarme"; isPlayable=1; }; - id=1068; + id=1237; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -31507,7 +31507,7 @@ class Mission description="Gendarmerie Alpha Gendarme"; isPlayable=1; }; - id=1069; + id=1238; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -31550,39 +31550,39 @@ class Mission class Item0 { linkID=0; - item0=1066; + item0=1067; item1=1090; class CustomData { - role=1; + role=2; + turretPath[]={0}; }; }; class Item1 { linkID=1; - item0=1067; + item0=1235; item1=1090; class CustomData { - role=3; - cargoIndex=0; + role=1; }; }; class Item2 { linkID=2; - item0=1068; + item0=1237; item1=1091; class CustomData { - role=3; - cargoIndex=0; + role=2; + turretPath[]={0}; }; }; class Item3 { linkID=3; - item0=1069; + item0=1238; item1=1091; class CustomData { From f03614b0ced65025bb9ca797f9c18a4f0c6f35c4 Mon Sep 17 00:00:00 2001 From: s Date: Fri, 28 Dec 2018 19:53:15 +0100 Subject: [PATCH 156/407] Swap order of loadout briefing --- f/briefing/f_loadoutNotes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index 7216de0c8..b31c615a1 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -242,6 +242,6 @@ private _text_group = "" + _text_notice; } forEach _units; // ==================================================================================== // Create Loadout pages -player createDiaryRecord ["diary", ["Loadout", _text]]; player createDiaryRecord ["diary", ["Loadout Team", _text_group]]; +player createDiaryRecord ["diary", ["Loadout", _text]]; // ==================================================================================== From ba40e0d2a7fae7b3507382d79790bb61ed8416b6 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sun, 13 Jan 2019 17:08:20 +0100 Subject: [PATCH 157/407] Issue 201: setTeamColours doesn't work when the group leader is an AI (#207) * setTeamColours did not work when the group leader was an AI * Update f/setTeamColours/f_setTeamColours.sqf Co-Authored-By: shadow-fa --- f/setTeamColours/f_setTeamColours.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/setTeamColours/f_setTeamColours.sqf b/f/setTeamColours/f_setTeamColours.sqf index 8e41f4e96..1c10bcf99 100644 --- a/f/setTeamColours/f_setTeamColours.sqf +++ b/f/setTeamColours/f_setTeamColours.sqf @@ -48,7 +48,7 @@ private _isFireteam = false; if(!_isFireteam) exitWith {}; // Only run this for the group leader: -if((leader (group player) != player)) exitWith {}; +if((((units group player) select {isPlayer _x}) #0) != player) exitWith {}; // ==================================================================================== From ec42e96c58669e0b927b040f6869e13e2f279a56 Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Sun, 20 Jan 2019 19:27:10 +0000 Subject: [PATCH 158/407] Issue 208 - Show HALO briefing to everyone if HALO is being used (#209) * [mct] Corrected script exit comment * [mct] Show HALO briefing to everyone if HALO is being used --- f/mapClickTeleport/f_mapClickTeleport.sqf | 27 +++++++++-------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/f/mapClickTeleport/f_mapClickTeleport.sqf b/f/mapClickTeleport/f_mapClickTeleport.sqf index a13f69024..62682a29c 100644 --- a/f/mapClickTeleport/f_mapClickTeleport.sqf +++ b/f/mapClickTeleport/f_mapClickTeleport.sqf @@ -39,27 +39,22 @@ f_var_mapClickTeleport_Units = f_var_mapClickTeleport_Units select {! isNil _x} // ==================================================================================== -// CHECK IF COMPONENT SHOULD BE ENABLED -// We end the script if it is not running on a server or if only group leaders can use -// the action and the player is not the leader of his/her group +// ADD BRIEFING PAGE - HALO +// Add a briefing page for everyone if HALO is being used -if (count f_var_mapClickTeleport_Units > 0 && !(player in f_var_mapClickTeleport_Units)) exitWith {}; -if (f_var_mapClickTeleport_GroupTeleport && player != leader group player) exitWith {}; +if (f_var_mapClickTeleport_Height > 0) then { + [] call f_fnc_mapClickTeleportBriefing; +}; // ==================================================================================== -// ADD BRIEFING PAGE - HALO -// Add a briefing page for everyone that can use the action or is affected by it +// CHECK IF COMPONENT SHOULD BE ENABLED +// We end the script if: +// - the teleport is restricted to certain units and the player isn't one of those units +// - or if only group leaders can use the action and the player is not the leader of his/her group -if (f_var_mapClickTeleport_Height > 0) then { - if (f_var_mapClickTeleport_GroupTeleport) then { - { - [_x] remoteExec ["f_fnc_mapClickTeleportBriefing", _x, true]; - } forEach (units group player); - } else { - [] call f_fnc_mapClickTeleportBriefing; - }; -}; +if (count f_var_mapClickTeleport_Units > 0 && !(player in f_var_mapClickTeleport_Units)) exitWith {}; +if (f_var_mapClickTeleport_GroupTeleport && player != leader group player) exitWith {}; // ==================================================================================== From 848cf9ce49a3dbab8f608f6b56979554f9ef41b2 Mon Sep 17 00:00:00 2001 From: s Date: Wed, 13 Feb 2019 22:38:00 +0100 Subject: [PATCH 159/407] issue 217: rename VehSyn_TH1_1 to VehSyn_TH1 --- mission.sqm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mission.sqm b/mission.sqm index 5d38edd4f..93a11e0e9 100644 --- a/mission.sqm +++ b/mission.sqm @@ -31146,7 +31146,7 @@ class Mission { skill=0.60000002; init="[""v_helo_l"",this,""syndikat""] call f_fnc_assignGear"; - name="VehSyn_TH1_1"; + name="VehSyn_TH1"; textures="Green"; pylons=";;"; }; From 140f6dc5529dcd1308cf5c56b9b4c83ffad52c55 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 24 Feb 2019 20:15:19 +0100 Subject: [PATCH 160/407] mapClickTeleportBriefing no longer requires a parameter --- f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf b/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf index ac94f9a85..e83a0e7a7 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf @@ -2,8 +2,6 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -params [["_unit", objNull, [objNull]]]; - if (!hasInterface) exitWith {}; if (!isDedicated && (isNull player)) then @@ -11,9 +9,6 @@ if (!isDedicated && (isNull player)) then waitUntil {sleep 0.1; !isNull player}; }; -if (_unit != player) exitWith {}; - - player createDiaryRecord ["diary", ["HALO Jumping 101", format ["TL/DR - OPEN YOUR PARACHUTE AT 200 METERS

From 36c7d0786b64b179c46d8fd60b5d1782a46fd530 Mon Sep 17 00:00:00 2001 From: s Date: Thu, 7 Mar 2019 20:22:00 +0100 Subject: [PATCH 161/407] Change unit type of CAS1 from helipilot_F to Fighter_Pilot_F --- mission.sqm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mission.sqm b/mission.sqm index 93a11e0e9..d7ecdbedc 100644 --- a/mission.sqm +++ b/mission.sqm @@ -33592,7 +33592,7 @@ class Mission isPlayable=1; }; id=1136; - type="B_Helipilot_F"; + type="B_Fighter_Pilot_F"; class CustomAttributes { class Attribute0 @@ -33710,7 +33710,7 @@ class Mission isPlayable=1; }; id=1143; - type="I_helipilot_F"; + type="I_Fighter_Pilot_F"; class CustomAttributes { class Attribute0 @@ -33810,7 +33810,7 @@ class Mission isPlayable=1; }; id=1145; - type="O_helipilot_F"; + type="O_Fighter_Pilot_F"; class CustomAttributes { class Attribute0 From 8881b0dd961ec1c9e08f34da6ede3777002ffcdb Mon Sep 17 00:00:00 2001 From: s Date: Sat, 9 Mar 2019 23:00:47 +0100 Subject: [PATCH 162/407] fix inconsistent slotting descriptions --- mission.sqm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mission.sqm b/mission.sqm index 93a11e0e9..a5fedfb2a 100644 --- a/mission.sqm +++ b/mission.sqm @@ -15481,7 +15481,7 @@ class Mission rank="CORPORAL"; init="[""vg"",this] call f_fnc_assignGear;"; name="UnitCSAT_IFV2_G"; - description="CSAT IFV2 Gunner"; + description="CSAT IFV 2 Gunner"; isPlayable=1; }; id=490; @@ -33588,7 +33588,7 @@ class Mission rank="LIEUTENANT"; init="[""jp"",this] call f_fnc_assignGear;"; name="UnitNATO_CAS1_P"; - description="NATO CAS1 Pilot"; + description="NATO CAS 1 Pilot"; isPlayable=1; }; id=1136; @@ -33706,7 +33706,7 @@ class Mission rank="LIEUTENANT"; init="[""jp"",this] call f_fnc_assignGear;"; name="UnitAAF_CAS1_P"; - description="AAF CAS1 Pilot"; + description="AAF CAS 1 Pilot"; isPlayable=1; }; id=1143; @@ -33806,7 +33806,7 @@ class Mission rank="LIEUTENANT"; init="[""jp"",this] call f_fnc_assignGear;"; name="UnitCSAT_CAS1_P"; - description="CSAT CAS1 Pilot"; + description="CSAT CAS 1 Pilot"; isPlayable=1; }; id=1145; From 30b294727dad428e4b32e71a18402f1ac6b88870 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sat, 16 Mar 2019 13:40:14 +0100 Subject: [PATCH 163/407] assignGear changes (#215) (Fixes #210, #211, #213, #214) * assignGear: move selectRandom in FIA gear * assignGear: Fix discrepancies between unit loadouts (issue 213) * assignGear: Fix case, HSAM bags, and variable definitions. (Issues #210 and #211) * assignGear give guerilla factions (at least) as many smokes as others * assignGear: Normalize use of _DMriflemag_tr * assignGear: R, CAR and SMG lose one frag to fit the scheme: [base]+[weapon]+[2xsmoke/2xfrag] * assignGear: MATG/HATG/HMGG/MSAMG/HSAMG get +2 carbine mags to conform to the carbine module * assignGear: Normalised (smoke-)grenades of guerilla factions with non-guerilla factions * assignGear: CO gets 4/2/2 and JTAC 3/3/2 white/red/green gl smokes * assignGear: Fix number of smokes for FIA, FIA AK, Syndikat * assignGear: Fix whitespace after addBackpack * assignGear: Fix header comments * assignGear: Fixed: matg accidentally got an increase of _MATmag1 instead of carbinemag in a previous commit. --- f/assignGear/f_assignGear_aaf.sqf | 2 +- f/assignGear/f_assignGear_aaf_light.sqf | 30 ++- f/assignGear/f_assignGear_aaf_standard.sqf | 34 +-- f/assignGear/f_assignGear_csat.sqf | 3 +- f/assignGear/f_assignGear_csatPacific.sqf | 3 +- .../f_assignGear_csatPacific_light.sqf | 116 ++++----- .../f_assignGear_csatPacific_standard.sqf | 116 ++++----- f/assignGear/f_assignGear_csat_light.sqf | 30 ++- f/assignGear/f_assignGear_csat_standard.sqf | 30 ++- f/assignGear/f_assignGear_ctrg.sqf | 5 +- f/assignGear/f_assignGear_ctrg_light.sqf | 116 ++++----- f/assignGear/f_assignGear_ctrg_standard.sqf | 119 ++++----- f/assignGear/f_assignGear_fia.sqf | 12 +- f/assignGear/f_assignGear_fiaAK.sqf | 6 +- f/assignGear/f_assignGear_fiaAK_light.sqf | 178 ++++++------- f/assignGear/f_assignGear_fiaAK_standard.sqf | 181 +++++++------- f/assignGear/f_assignGear_fia_light.sqf | 234 +++++++++--------- f/assignGear/f_assignGear_fia_standard.sqf | 234 +++++++++--------- f/assignGear/f_assignGear_fia_v.sqf | 12 +- f/assignGear/f_assignGear_gendarmerie.sqf | 2 +- f/assignGear/f_assignGear_nato.sqf | 5 +- f/assignGear/f_assignGear_natoPacific.sqf | 5 +- .../f_assignGear_natoPacific_light.sqf | 27 +- .../f_assignGear_natoPacific_standard.sqf | 27 +- f/assignGear/f_assignGear_nato_light.sqf | 27 +- f/assignGear/f_assignGear_nato_standard.sqf | 27 +- f/assignGear/f_assignGear_syndikat.sqf | 5 +- f/assignGear/f_assignGear_syndikat_light.sqf | 177 ++++++------- .../f_assignGear_syndikat_standard.sqf | 172 ++++++------- f/assignGear/fn_assignGear.sqf | 2 +- 30 files changed, 954 insertions(+), 983 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 2a34db06a..dfa199927 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -116,7 +116,6 @@ _carbinemag_tr = "30Rnd_556x45_Stanag_Tracer_Yellow"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "hgun_PDW2000_F"; _smgmag = "30Rnd_9x21_Mag"; -_smgmag_tr = "30Rnd_9x21_Mag"; // Diver _diverWep = "arifle_SDAR_F"; @@ -203,6 +202,7 @@ _MMGmag_tr = "150Rnd_762x54_Box_Tracer"; // Marksman rifle _DMrifle = "srifle_EBR_F"; _DMriflemag = "20Rnd_762x51_Mag"; +_DMriflemag_tr = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_MRAWS_olive_rail_F"; diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index a260b445d..7ca4c5701 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -98,8 +98,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -117,7 +118,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -145,7 +148,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -197,7 +201,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -223,7 +227,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; }; @@ -264,7 +268,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -329,7 +333,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -367,13 +371,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -530,7 +534,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -541,7 +545,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -551,7 +555,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index 82ccd69fa..f6a3c164d 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - AAF - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -101,8 +101,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -120,7 +121,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -148,7 +151,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -200,7 +204,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -226,7 +230,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; @@ -270,7 +274,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -335,7 +339,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -373,13 +377,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -412,9 +416,9 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": @@ -536,7 +540,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -547,7 +551,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -557,7 +561,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 3d75d35db..31574ed58 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -116,7 +116,6 @@ _carbinemag_tr = "30Rnd_65x39_caseless_green_mag_Tracer"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "SMG_02_F"; _smgmag = "30Rnd_9x21_Mag"; -_smgmag_tr = "30Rnd_9x21_Mag"; // Diver _diverWep = "arifle_SDAR_F"; @@ -209,10 +208,12 @@ _MMGmag_tr = "150Rnd_93x64_Mag"; // Marksman rifle _DMrifle = "srifle_DMR_01_F"; _DMriflemag = "10Rnd_762x54_Mag"; +_DMriflemag_tr = "10Rnd_762x54_Mag"; // ASP1-KIR // _DMrifle = "srifle_DMR_04_F"; // _DMriflemag = "10Rnd_127x54_Mag"; +// _DMriflemag_tr = "10Rnd_127x54_Mag"; // Rifleman AT _RAT = "launch_RPG32_F"; diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index a52e791d8..b861d6a94 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -116,7 +116,6 @@ _carbinemag_tr = "30Rnd_580x42_Mag_Tracer_F"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "SMG_02_F"; _smgmag = "30Rnd_9x21_Mag"; -_smgmag_tr = "30Rnd_9x21_Mag"; // Diver _diverWep = "arifle_SDAR_F"; @@ -208,10 +207,12 @@ _MMGmag_tr = "150Rnd_93x64_Mag"; // Marksman rifle _DMrifle = "srifle_DMR_07_blk_F"; _DMriflemag = "20Rnd_650x39_Cased_Mag_F"; +_DMriflemag_tr = "20Rnd_650x39_Cased_Mag_F"; // ASP1-KIR // _DMrifle = "srifle_DMR_04_F"; // _DMriflemag = "10Rnd_127x54_Mag"; +// _DMriflemag_tr = "10Rnd_127x54_Mag"; // Rifleman AT _RAT = "launch_RPG32_ghex_F"; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 884970e0c..40272256d 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -27,14 +27,14 @@ switch (_typeofUnit) do case "rat": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_RATmag1, 1]; }; @@ -98,8 +98,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -117,7 +118,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -128,12 +131,12 @@ switch (_typeofUnit) do { _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -145,7 +148,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -193,12 +197,12 @@ switch (_typeofUnit) do case "hmgg": { _unit addBackpack _baghmgg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -217,14 +221,14 @@ switch (_typeofUnit) do case "matg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; }; // Medium AT Assistant Loadout: @@ -258,14 +262,14 @@ switch (_typeofUnit) do case "hatg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -299,12 +303,12 @@ switch (_typeofUnit) do case "mtrg": { _unit addBackpack _bagmtrg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -323,14 +327,14 @@ switch (_typeofUnit) do case "msamg": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -363,17 +367,17 @@ switch (_typeofUnit) do case "hsamg": { _unit addBackpack _baghsamg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -469,12 +473,12 @@ switch (_typeofUnit) do case "eng": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -484,12 +488,12 @@ switch (_typeofUnit) do case "engm": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -500,12 +504,12 @@ switch (_typeofUnit) do case "uav": { _unit addBackpack _baguav; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -530,18 +534,18 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -551,7 +555,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index ded0fdc22..e0e244afe 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -27,14 +27,14 @@ switch (_typeofUnit) do case "rat": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_RATmag1, 1]; _unit addmagazines [_RATmag2, 1]; @@ -101,8 +101,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -120,7 +121,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -131,12 +134,12 @@ switch (_typeofUnit) do { _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -148,7 +151,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -196,12 +200,12 @@ switch (_typeofUnit) do case "hmgg": { _unit addBackpack _baghmgg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -220,14 +224,14 @@ switch (_typeofUnit) do case "matg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; }; @@ -264,14 +268,14 @@ switch (_typeofUnit) do case "hatg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -305,12 +309,12 @@ switch (_typeofUnit) do case "mtrg": { _unit addBackpack _bagmtrg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -329,14 +333,14 @@ switch (_typeofUnit) do case "msamg": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -369,17 +373,17 @@ switch (_typeofUnit) do case "hsamg": { _unit addBackpack _baghsamg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -475,12 +479,12 @@ switch (_typeofUnit) do case "eng": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -490,12 +494,12 @@ switch (_typeofUnit) do case "engm": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -506,12 +510,12 @@ switch (_typeofUnit) do case "uav": { _unit addBackpack _baguav; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -536,18 +540,18 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -557,7 +561,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 981e8cd35..f604dda2b 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -98,8 +98,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -117,7 +118,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -145,7 +148,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 11]; + _unit addmagazines [_DMriflemag, 7]; + _unit addmagazines [_DMriflemag_tr, 4]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -197,7 +201,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -223,7 +227,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; }; @@ -264,7 +268,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -329,7 +333,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -367,13 +371,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -530,7 +534,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -541,7 +545,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -551,7 +555,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 0a7a3221d..088500dfa 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -101,8 +101,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -120,7 +121,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -148,7 +151,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 11]; + _unit addmagazines [_DMriflemag, 7]; + _unit addmagazines [_DMriflemag_tr, 4]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -200,7 +204,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -226,7 +230,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; @@ -270,7 +274,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -335,7 +339,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -373,13 +377,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -536,7 +540,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -547,7 +551,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -557,7 +561,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 3c363de4e..e7a72f0d4 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -127,8 +127,7 @@ _diverMag3 = "20Rnd_556x45_UW_mag"; _glrifle = "arifle_SPAR_01_GL_blk_F"; _glriflemag = "30Rnd_556x45_Stanag_red"; _glriflemag_tr = "30Rnd_556x45_Stanag_Tracer_Red"; -_glmag = "1Rnd_HE_Grenade_shell"; // Ideal for Adversarial - Do not use with 3 Round version -//_glmag = "3Rnd_HE_Grenade_shell"; // Ideal for Co-op - Do not use with 1 Round version +_glmag = "1Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc _glsmokewhite = "1Rnd_Smoke_Grenade_shell"; @@ -202,10 +201,12 @@ _MMGmag_tr = "130Rnd_338_Mag"; // Marksman rifle _DMrifle = "arifle_SPAR_03_blk_F"; _DMriflemag = "20Rnd_762x51_Mag"; +_DMriflemag_tr = "20Rnd_762x51_Mag"; // MAR-10 //_DMrifle = "srifle_DMR_02_F"; //_DMriflemag = "10Rnd_338_Mag"; +//_DMriflemag_tr = "10Rnd_338_Mag"; // Rifleman AT _RAT = "launch_NLAW_F"; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index cbd38eff8..54601f866 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -27,14 +27,14 @@ switch (_typeofUnit) do case "rat": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_RATmag1, 1]; }; @@ -98,8 +98,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -117,7 +118,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -128,12 +131,12 @@ switch (_typeofUnit) do { _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -145,7 +148,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -193,12 +197,12 @@ switch (_typeofUnit) do case "hmgg": { _unit addBackpack _baghmgg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -217,14 +221,14 @@ switch (_typeofUnit) do case "matg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; }; // Medium AT Assistant Loadout: @@ -258,14 +262,14 @@ switch (_typeofUnit) do case "hatg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -299,12 +303,12 @@ switch (_typeofUnit) do case "mtrg": { _unit addBackpack _bagmtrg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -323,14 +327,14 @@ switch (_typeofUnit) do case "msamg": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -363,17 +367,17 @@ switch (_typeofUnit) do case "hsamg": { _unit addBackpack _baghsamg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -469,12 +473,12 @@ switch (_typeofUnit) do case "eng": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -484,12 +488,12 @@ switch (_typeofUnit) do case "engm": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -500,12 +504,12 @@ switch (_typeofUnit) do case "uav": { _unit addBackpack _baguav; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -530,18 +534,18 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -551,7 +555,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 6ec211e28..973e3da8d 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -27,14 +27,14 @@ switch (_typeofUnit) do case "rat": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_RATmag1, 1]; _unit addmagazines [_RATmag2, 1]; @@ -101,8 +101,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -120,7 +121,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -131,12 +134,12 @@ switch (_typeofUnit) do { _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -148,7 +151,8 @@ switch (_typeofUnit) do _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 6]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: @@ -196,12 +200,12 @@ switch (_typeofUnit) do case "hmgg": { _unit addBackpack _baghmgg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -220,15 +224,16 @@ switch (_typeofUnit) do case "matg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; // Medium AT Assistant Loadout: case "matag": @@ -242,6 +247,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; // Medium AT Team Leader Loadout: case "matl": @@ -255,20 +261,21 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: case "hatg": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -302,12 +309,12 @@ switch (_typeofUnit) do case "mtrg": { _unit addBackpack _bagmtrg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -326,14 +333,14 @@ switch (_typeofUnit) do case "msamg": { _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -366,17 +373,17 @@ switch (_typeofUnit) do case "hsamg": { _unit addBackpack _baghsamg; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 2]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -472,12 +479,12 @@ switch (_typeofUnit) do case "eng": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -487,12 +494,12 @@ switch (_typeofUnit) do case "engm": { _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; @@ -503,12 +510,12 @@ switch (_typeofUnit) do case "uav": { _unit addBackpack _baguav; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -533,18 +540,18 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -554,7 +561,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 1aef910a5..7495501cc 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -68,7 +68,7 @@ // GENERAL EQUIPMENT USED BY MULTIPLE CLASSES // ATTACHMENTS - PRIMARY -_attach1 = "acc_pointer_IR"; // IR Laser +_attach1 = ""; // IR Laser _attach2 = "acc_flashlight"; // Flashlight _silencer1 = "muzzle_snds_M"; // 5.56 suppressor @@ -94,7 +94,7 @@ _attachments = [_scope1]; // The default attachment set for most units, overwrit // ATTACHMENTS - HANDGUN _hg_silencer1 = "muzzle_snds_acp"; // .45 suppressor -_hg_scope1 = "optic_mrd"; // MRD +_hg_scope1 = "optic_MRD"; // MRD // Default setup _hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType @@ -104,19 +104,18 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) -_rifle = ["arifle_TRG21_F","arifle_TRG21_F","arifle_Mk20_plain_F"]; // Slight randomization, biased towards TRG +_rifle = selectRandom ["arifle_TRG21_F","arifle_TRG21_F","arifle_Mk20_plain_F"]; // Slight randomization, biased towards TRG _riflemag = "30Rnd_556x45_Stanag_red"; _riflemag_tr = "30Rnd_556x45_Stanag_Tracer_Red"; // Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) -_carbine = ["arifle_TRG20_F","arifle_TRG20_F","arifle_Mk20C_plain_F"]; // Slight randomization, biased towards TRG +_carbine = selectRandom ["arifle_TRG20_F","arifle_TRG20_F","arifle_Mk20C_plain_F"]; // Slight randomization, biased towards TRG _carbinemag = "30Rnd_556x45_Stanag_red"; _carbinemag_tr = "30Rnd_556x45_Stanag_Tracer_Red"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "hgun_PDW2000_F"; _smgmag = "30Rnd_9x21_Mag"; -_smgmag_tr = "30Rnd_9x21_Mag"; // Diver _diverWep = "arifle_SDAR_F"; @@ -125,7 +124,7 @@ _diverMag2 = "30Rnd_556x45_Stanag_Tracer_Red"; _diverMag3 = "20Rnd_556x45_UW_mag"; // Rifle with GL and HE grenades (CO, DC, FTLs) -_glrifle = ["arifle_TRG21_GL_F","arifle_TRG21_GL_F","arifle_Mk20_GL_plain_F"]; // Slight randomization, biased towards TRG_glriflemag = "30Rnd_556x45_Stanag_red"; +_glrifle = selectRandom ["arifle_TRG21_GL_F","arifle_TRG21_GL_F","arifle_Mk20_GL_plain_F"]; // Slight randomization, biased towards TRG _glriflemag = "30Rnd_556x45_Stanag_red"; _glriflemag_tr = "30Rnd_556x45_Stanag_Tracer_Red"; _glmag = "1Rnd_HE_Grenade_shell"; @@ -210,6 +209,7 @@ _MMGmag_tr = "150Rnd_762x54_Box_Tracer"; // Marksman rifle _DMrifle = "srifle_DMR_06_olive_F"; _DMriflemag = "20Rnd_762x51_Mag"; +_DMriflemag_tr = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_MRAWS_olive_rail_F"; diff --git a/f/assignGear/f_assignGear_fiaAK.sqf b/f/assignGear/f_assignGear_fiaAK.sqf index ce0f7a75e..77c6b1aed 100644 --- a/f/assignGear/f_assignGear_fiaAK.sqf +++ b/f/assignGear/f_assignGear_fiaAK.sqf @@ -68,7 +68,7 @@ // GENERAL EQUIPMENT USED BY MULTIPLE CLASSES // ATTACHMENTS - PRIMARY -_attach1 = "acc_pointer_IR"; // IR Laser +_attach1 = ""; // IR Laser _attach2 = "acc_flashlight"; // Flashlight _silencer1 = "muzzle_snds_M"; // 5.56 suppressor @@ -94,7 +94,7 @@ _attachments = [_scope1]; // The default attachment set for most units, overwr // ATTACHMENTS - HANDGUN _hg_silencer1 = ""; // PM 9MM does not accept a suppressor -_hg_scope1 = "optic_mrd"; // MRD +_hg_scope1 = "optic_MRD"; // MRD // Default setup _hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType @@ -116,7 +116,6 @@ _carbinemag_tr = "30Rnd_545x39_Mag_Tracer_F"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "hgun_PDW2000_F"; _smgmag = "30Rnd_9x21_Mag"; -_smgmag_tr = "30Rnd_9x21_Mag"; // Diver _diverWep = "arifle_SDAR_F"; @@ -210,6 +209,7 @@ _MMGmag_tr = "150Rnd_762x54_Box_Tracer"; // Marksman rifle _DMrifle = "srifle_DMR_06_olive_F"; _DMriflemag = "20Rnd_762x51_Mag"; +_DMriflemag_tr = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_RPG7_F"; diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf index 7c87d5616..cf7fbd401 100644 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ b/f/assignGear/f_assignGear_fiaAK_light.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - FIA AK - Light Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -18,11 +18,10 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": @@ -33,25 +32,22 @@ switch (_typeofUnit) do _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_RATmag1, 2]; }; // Assistant Autorifleman Loadout: case "aar": { - _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; }; // Fire Team Leader Loadout: @@ -61,13 +57,14 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenadegreen, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: case "dc": @@ -78,14 +75,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: case "co": @@ -96,14 +95,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: case "jtac": @@ -114,11 +115,14 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -130,10 +134,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -144,9 +147,10 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 6]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -156,10 +160,9 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Assistant Loadout: case "mmgag": @@ -168,10 +171,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; }; @@ -182,10 +185,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; @@ -197,10 +200,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -209,10 +211,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -224,10 +226,9 @@ switch (_typeofUnit) do _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; }; // Medium AT Assistant Loadout: @@ -237,10 +238,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; }; // Medium AT Team Leader Loadout: @@ -250,10 +251,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -266,10 +267,9 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -279,10 +279,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; }; // Heavy AT Team Leader Loadout: @@ -292,24 +292,23 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; // Mortar Gunner Loadout: case "mtrg": { - _unit addBackpack _bagmtrg ; + _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -318,10 +317,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -330,13 +329,12 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addweapon _SAM; _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -345,10 +343,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; }; // Medium SAM Team Leader Loadout: @@ -358,10 +356,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; @@ -372,22 +370,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -399,8 +396,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_SNrifleMag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: @@ -409,12 +406,13 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": @@ -422,9 +420,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -433,9 +430,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -445,9 +441,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Jet Pilot Loadout: @@ -470,9 +465,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Engineer (Demo) Loadout: @@ -482,11 +476,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_satchel, 2]; @@ -498,11 +491,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -515,10 +507,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -540,11 +531,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": @@ -552,11 +542,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -564,10 +553,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": @@ -576,16 +564,12 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; }; -// Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf -_carbine = [_carbine]; - // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf index 3fda2375b..f57fe10eb 100644 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ b/f/assignGear/f_assignGear_fiaAK_standard.sqf @@ -1,4 +1,4 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout +// F3 - Folk ARPS Assign Gear Script - FIA AK - Standard Loadout // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== @@ -18,11 +18,10 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": @@ -33,12 +32,12 @@ switch (_typeofUnit) do _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_RATmag1, 3]; + _unit addmagazines [_RATmag1, 2]; + _unit addmagazines [_RATmag2, 1]; }; // Assistant Autorifleman Loadout: case "aar": @@ -47,11 +46,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_RATmag1, 2]; }; @@ -62,13 +60,14 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenadegreen, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: case "dc": @@ -79,14 +78,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: case "co": @@ -97,14 +98,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: case "jtac": @@ -115,11 +118,14 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -131,10 +137,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -145,9 +150,10 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 6]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -157,10 +163,9 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Assistant Loadout: case "mmgag": @@ -169,10 +174,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; }; @@ -183,10 +188,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; @@ -198,10 +203,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -210,10 +214,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -225,11 +229,11 @@ switch (_typeofUnit) do _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; // Medium AT Assistant Loadout: case "matag": @@ -238,11 +242,12 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; }; // Medium AT Team Leader Loadout: case "matl": @@ -251,11 +256,12 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -267,10 +273,9 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -280,10 +285,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; }; // Heavy AT Team Leader Loadout: @@ -293,24 +298,23 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; // Mortar Gunner Loadout: case "mtrg": { - _unit addBackpack _bagmtrg ; + _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -319,10 +323,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -334,10 +338,9 @@ switch (_typeofUnit) do _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -346,10 +349,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; }; // Medium SAM Team Leader Loadout: @@ -359,10 +362,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; @@ -373,22 +376,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -400,8 +402,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_SNrifleMag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: @@ -410,12 +412,13 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": @@ -423,9 +426,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -434,9 +436,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -446,9 +447,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Jet Pilot Loadout: @@ -471,9 +471,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Engineer (Demo) Loadout: @@ -483,11 +482,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_satchel, 2]; @@ -499,11 +497,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -516,10 +513,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -541,11 +537,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": @@ -553,11 +548,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -565,10 +559,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": @@ -577,16 +570,12 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; }; -// Redefine _carbine as an array to avoid breaking selectRandom in f_assignGear_fia_v.sqf -_carbine = [_carbine]; - // Include the loadouts for vehicles and crates: #include "f_assignGear_fia_v.sqf"; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index c53bfde2c..220871c0c 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -18,39 +18,36 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; }; // Fire Team Leader Loadout: @@ -58,66 +55,74 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenadegreen, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: case "dc": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: case "co": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: case "jtac": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -127,12 +132,11 @@ switch (_typeofUnit) do _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -143,9 +147,10 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 6]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -155,22 +160,21 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; }; @@ -179,12 +183,12 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; @@ -194,24 +198,23 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": { _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -219,14 +222,13 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; }; // Medium AT Assistant Loadout: @@ -234,12 +236,12 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; }; // Medium AT Team Leader Loadout: @@ -247,12 +249,12 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -261,14 +263,13 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -276,12 +277,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; }; // Heavy AT Team Leader Loadout: @@ -289,38 +290,37 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; // Mortar Gunner Loadout: case "mtrg": { - _unit addBackpack _bagmtrg ; + _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": { _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -328,26 +328,25 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); - _unit addweapon _SAM; + _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium SAM Assistant Loadout: case "msamag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; }; // Medium SAM Team Leader Loadout: @@ -355,12 +354,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; @@ -369,24 +368,23 @@ switch (_typeofUnit) do { _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -398,7 +396,7 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; }; @@ -406,14 +404,15 @@ switch (_typeofUnit) do case "sp": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": @@ -421,9 +420,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -432,9 +430,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -444,9 +441,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Jet Pilot Loadout: @@ -469,9 +465,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Engineer (Demo) Loadout: @@ -479,13 +474,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_satchel, 2]; @@ -495,13 +489,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -512,12 +505,11 @@ switch (_typeofUnit) do { _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -527,7 +519,7 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; @@ -537,25 +529,23 @@ switch (_typeofUnit) do case "r": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": { _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -563,23 +553,21 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; }; // Include the loadouts for vehicles and crates: diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index e20e67eba..626f6a56f 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -18,26 +18,24 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_RATmag1, 1]; _unit addmagazines [_RATmag2, 1]; }; @@ -46,13 +44,12 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_RATmag1, 1]; }; @@ -61,66 +58,74 @@ switch (_typeofUnit) do { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenadegreen, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: case "dc": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: case "co": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; - _unit addmagazines [_smokegrenadepurple, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: case "jtac": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -130,12 +135,11 @@ switch (_typeofUnit) do _unit setUnitTrait ["medic",true]; // Can use medkit _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -146,9 +150,10 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 6]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -158,22 +163,21 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Assistant Loadout: case "mmgag": { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; }; @@ -182,12 +186,12 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; @@ -197,24 +201,23 @@ switch (_typeofUnit) do { _unit addBackpack _baghmgg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": { _unit addBackpack _baghmgag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -222,14 +225,13 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; }; @@ -238,12 +240,12 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; }; @@ -252,12 +254,12 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; @@ -267,14 +269,13 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -282,12 +283,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; }; // Heavy AT Team Leader Loadout: @@ -295,38 +296,37 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; // Mortar Gunner Loadout: case "mtrg": { - _unit addBackpack _bagmtrg ; + _unit addBackpack _bagmtrg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": { _unit addBackpack _bagmtrag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -334,26 +334,25 @@ switch (_typeofUnit) do { _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); - _unit addweapon _SAM; + _unit addweapon _carbine; _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium SAM Assistant Loadout: case "msamag": { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; }; // Medium SAM Team Leader Loadout: @@ -361,12 +360,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; @@ -375,24 +374,23 @@ switch (_typeofUnit) do { _unit addBackpack _baghsamg; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -404,7 +402,7 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; }; @@ -412,14 +410,15 @@ switch (_typeofUnit) do case "sp": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": @@ -427,9 +426,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -438,9 +436,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -450,9 +447,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Jet Pilot Loadout: @@ -475,9 +471,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Engineer (Demo) Loadout: @@ -485,13 +480,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_satchel, 2]; @@ -501,13 +495,12 @@ switch (_typeofUnit) do { _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -518,12 +511,11 @@ switch (_typeofUnit) do { _unit addBackpack _baguav; _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -533,7 +525,7 @@ switch (_typeofUnit) do _unit addmagazines [_diverMag1, 1]; _unit addweapon _diverWep; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_diverMag1, 4]; _unit addmagazines [_diverMag2, 2]; _unit addmagazines [_diverMag3, 3]; @@ -543,25 +535,23 @@ switch (_typeofUnit) do case "r": { _unit addmagazines [_riflemag, 1]; - _unit addweapon (selectRandom _rifle); + _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": { _unit addmagazines [_carbinemag, 1]; - _unit addweapon (selectRandom _carbine); + _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -569,23 +559,21 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": { _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; - _unit addweapon (selectRandom _glrifle); + _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; }; // Include the loadouts for vehicles and crates: diff --git a/f/assignGear/f_assignGear_fia_v.sqf b/f/assignGear/f_assignGear_fia_v.sqf index f23d03267..c9cf88450 100644 --- a/f/assignGear/f_assignGear_fia_v.sqf +++ b/f/assignGear/f_assignGear_fia_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(selectRandom _carbine), 2]; + _unit addWeaponCargoGlobal [_carbine, 2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,8 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - - _unit addWeaponCargoGlobal [(selectRandom _carbine), 4]; + _unit addWeaponCargoGlobal [_carbine, 4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,8 +50,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - - _unit addWeaponCargoGlobal [(selectRandom _carbine), 2]; + _unit addWeaponCargoGlobal [_carbine, 2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -107,7 +105,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(selectRandom _carbine), 2]; + _unit addWeaponCargoGlobal [_carbine, 2]; _unit addWeaponCargoGlobal [_rat,1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; @@ -133,7 +131,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [(selectRandom _carbine), 8]; + _unit addWeaponCargoGlobal [_carbine, 8]; _unit addWeaponCargoGlobal [_rat,2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index da386fb7b..312497795 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -49,7 +49,7 @@ _attachments = []; // The default attachment set for most units, overwritten i // ATTACHMENTS - HANDGUN _hg_silencer1 = "muzzle_snds_L"; // PM 9MM does not accept a suppressor -_hg_scope1 = "optic_mrd"; // MRD +_hg_scope1 = "optic_MRD"; // MRD // Default setup _hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index 1db6bba56..d020e7659 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -116,7 +116,6 @@ _carbinemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "SMG_01_F"; _smgmag = "30Rnd_45ACP_Mag_SMG_01"; -_smgmag_tr = "30Rnd_45ACP_Mag_SMG_01"; // Diver _diverWep = "arifle_SDAR_F"; @@ -129,7 +128,7 @@ _glrifle = "arifle_MX_GL_F"; _glriflemag = "30Rnd_65x39_caseless_mag"; _glriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; _glmag = "1Rnd_HE_Grenade_shell"; -_glmaglarge = "3Rnd_HE_Grenade_shell"; +//_glmag = "3Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc _glsmokewhite = "1Rnd_Smoke_Grenade_shell"; @@ -165,7 +164,7 @@ _nvg = "NVGoggles"; _laserdesignator = "Laserdesignator"; // UAV Terminal -_uavterminal = "B_UavTerminal"; // BLUFOR - FIA +_uavterminal = "B_UavTerminal"; // Chemlights _chemgreen = "Chemlight_green"; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index 094aa53a2..cc10ecb51 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -116,7 +116,6 @@ _carbinemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "SMG_01_F"; _smgmag = "30Rnd_45ACP_Mag_SMG_01"; -_smgmag_tr = "30Rnd_45ACP_Mag_SMG_01"; // Diver _diverWep = "arifle_SDAR_F"; @@ -129,7 +128,7 @@ _glrifle = "arifle_MX_GL_khk_F"; _glriflemag = "30Rnd_65x39_caseless_mag"; _glriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; _glmag = "1Rnd_HE_Grenade_shell"; -_glmaglarge = "3Rnd_HE_Grenade_shell"; +//_glmag = "3Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc _glsmokewhite = "1Rnd_Smoke_Grenade_shell"; @@ -165,7 +164,7 @@ _nvg = "NVGoggles_tna_F"; _laserdesignator = "Laserdesignator_01_khk_F"; // UAV Terminal -_uavterminal = "B_UavTerminal"; // BLUFOR - FIA +_uavterminal = "B_UavTerminal"; // Chemlights _chemgreen = "Chemlight_green"; diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 75e667174..20c651e7a 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -98,8 +98,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -117,7 +118,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -198,7 +201,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -224,7 +227,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; }; @@ -265,7 +268,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -330,7 +333,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -368,13 +371,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -531,7 +534,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -542,7 +545,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -552,7 +555,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index 27bfbd339..8ffccf054 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -101,8 +101,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -120,7 +121,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -201,7 +204,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -227,7 +230,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; @@ -271,7 +274,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -336,7 +339,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -374,13 +377,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -537,7 +540,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -548,7 +551,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -558,7 +561,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index 56c3e5d76..e84872bac 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -98,8 +98,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -117,7 +118,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -198,7 +201,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -224,7 +227,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; }; @@ -265,7 +268,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -330,7 +333,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -368,13 +371,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -531,7 +534,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -542,7 +545,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -552,7 +555,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 19107e131..25baf4255 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -101,8 +101,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; @@ -120,7 +121,9 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; @@ -201,7 +204,7 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy MG Team Leader Loadout: @@ -227,7 +230,7 @@ switch (_typeofUnit) do _unit addweapon _MAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; @@ -271,7 +274,7 @@ switch (_typeofUnit) do _unit addweapon _HAT; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_HATmag1, 1]; }; @@ -336,7 +339,7 @@ switch (_typeofUnit) do _unit addweapon _SAM; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Medium SAM Assistant Loadout: @@ -374,13 +377,13 @@ switch (_typeofUnit) do _unit addweapon _carbine; _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; @@ -537,7 +540,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Carbineer Loadout: case "car": @@ -548,7 +551,7 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Submachinegunner Loadout: case "smg": @@ -558,7 +561,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 3]; + _unit addmagazines [_grenade, 2]; }; // Grenadier Loadout: case "gren": diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index f015dfa40..c21eea4a1 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -68,7 +68,7 @@ // GENERAL EQUIPMENT USED BY MULTIPLE CLASSES // ATTACHMENTS - PRIMARY -_attach1 = "acc_pointer_IR"; // IR Laser +_attach1 = ""; // IR Laser _attach2 = "acc_flashlight"; // Flashlight _silencer1 = "mmuzzle_snds_B"; // 7.62 suppressor @@ -94,7 +94,7 @@ _attachments = [_scope1]; // The default attachment set for most units, overwrit // ATTACHMENTS - HANDGUN _hg_silencer1 = ""; // No suppressor for Zubr -_hg_scope1 = "optic_mrd"; // MRD +_hg_scope1 = "optic_MRD"; // MRD // Default setup _hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType @@ -200,6 +200,7 @@ _MMGmag_tr = "150Rnd_762x54_Box_Tracer"; // Marksman rifle _DMrifle = "srifle_DMR_03_F"; _DMriflemag = "20Rnd_762x51_Mag"; +_DMriflemag_tr = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_RPG32_ghex_F"; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index 91f4dbf9c..9b4d97930 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -18,11 +18,10 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": @@ -33,25 +32,22 @@ switch (_typeofUnit) do _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_RATmag1, 1]; }; // Assistant Autorifleman Loadout: case "aar": { - _unit addBackpack _bag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; }; // Fire Team Leader Loadout: @@ -61,13 +57,14 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_smokegrenadegreen, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: case "dc": @@ -78,14 +75,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; - _unit addmagazines [_smokegrenadepurple, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: case "co": @@ -96,14 +95,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; - _unit addmagazines [_smokegrenadepurple, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: case "jtac": @@ -114,11 +115,14 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -130,10 +134,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -144,9 +147,10 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 6]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -156,10 +160,9 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Assistant Loadout: case "mmgag": @@ -168,10 +171,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; }; @@ -182,10 +185,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; @@ -197,10 +200,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -209,10 +211,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -224,11 +226,10 @@ switch (_typeofUnit) do _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_MATmag1, 2]; }; // Medium AT Assistant Loadout: case "matag": @@ -237,11 +238,11 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; }; // Medium AT Team Leader Loadout: case "matl": @@ -250,11 +251,11 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; - _unit addmagazines [_MATmag1, 1]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; _unit addWeapon "Rangefinder"; }; // Heavy AT Gunner Loadout: @@ -266,10 +267,9 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -279,10 +279,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; }; // Heavy AT Team Leader Loadout: @@ -292,10 +292,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -306,10 +306,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -318,10 +317,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -333,10 +332,9 @@ switch (_typeofUnit) do _unit addmagazines [_SAMmag, 1]; _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -345,10 +343,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; }; // Medium SAM Team Leader Loadout: @@ -358,10 +356,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; @@ -372,22 +370,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -399,8 +396,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_SNrifleMag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: @@ -409,12 +406,13 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": @@ -422,9 +420,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -433,9 +430,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -445,9 +441,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Jet Pilot Loadout: @@ -470,9 +465,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Engineer (Demo) Loadout: @@ -482,11 +476,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_satchel, 2]; @@ -498,11 +491,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -515,10 +507,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -540,11 +531,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": @@ -552,11 +542,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -564,10 +553,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": @@ -576,11 +564,10 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; }; // Include the loadouts for vehicles and crates: diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index ced05a992..dfcbd75ad 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -18,11 +18,10 @@ switch (_typeofUnit) do _unit addweapon _AR; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_ARmag_tr, 1]; _unit addmagazines [_grenade, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Rifleman (AT) Loadout: case "rat": @@ -33,11 +32,10 @@ switch (_typeofUnit) do _unit addmagazines [_RATmag1, 1]; _unit addweapon _RAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_RATmag1, 1]; _unit addmagazines [_RATmag2, 1]; }; @@ -48,11 +46,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_ARmag, 1]; _unit addmagazines [_RATmag1, 1]; }; @@ -63,13 +60,14 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenadegreen, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: case "dc": @@ -80,14 +78,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; - _unit addmagazines [_smokegrenadepurple, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: case "co": @@ -98,14 +98,16 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 5]; - _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; - _unit addmagazines [_smokegrenadepurple, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: case "jtac": @@ -116,11 +118,14 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokered, 8]; - _unit addmagazines [_pistolmag, 3]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addmagazines ["Laserbatteries", 1]; _unit addWeapon _laserdesignator; }; @@ -132,10 +137,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem _medkit; _unit addItem _firstaid; }; @@ -146,9 +150,10 @@ switch (_typeofUnit) do _unit addweapon _DMrifle; _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_DMriflemag, 6]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; }; // Medium MG Gunner Loadout: case "mmgg": @@ -158,10 +163,9 @@ switch (_typeofUnit) do _unit addweapon _MMG; _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_MMGmag, 1]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium MG Assistant Loadout: case "mmgag": @@ -170,10 +174,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; }; @@ -184,10 +188,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; _unit addWeapon "Rangefinder"; @@ -199,10 +203,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy MG Team Leader Loadout: case "hmgag": @@ -211,10 +214,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium AT Gunner Loadout: @@ -226,10 +229,9 @@ switch (_typeofUnit) do _unit addmagazines [_MATmag1, 1]; _unit addweapon _MAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; }; @@ -240,10 +242,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; }; @@ -254,10 +256,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; _unit addWeapon "Rangefinder"; @@ -271,10 +273,9 @@ switch (_typeofUnit) do _unit addmagazines [_HATmag1, 1]; _unit addweapon _HAT; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addmagazines [_HATmag1, 1]; }; // Heavy AT Assistant Loadout: @@ -284,10 +285,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; }; // Heavy AT Team Leader Loadout: @@ -297,10 +298,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; _unit addWeapon "Rangefinder"; }; @@ -311,10 +312,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 2]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Mortar Team Leader Loadout: case "mtrag": @@ -323,10 +323,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Medium SAM Gunner Loadout: @@ -335,13 +335,12 @@ switch (_typeofUnit) do _unit addBackpack _bag; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; - _unit addweapon _SAM; _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Medium SAM Assistant Loadout: case "msamag": @@ -350,10 +349,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; }; // Medium SAM Team Leader Loadout: @@ -363,10 +362,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; _unit addWeapon "Rangefinder"; }; @@ -377,22 +376,21 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; - _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Heavy SAM Team Leader Loadout: case "hsamag": { - _unit addBackpack _baghmgag; + _unit addBackpack _baghsamag; _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; + _unit addmagazines [_grenade, 2]; _unit addWeapon "Rangefinder"; }; // Sniper Loadout: @@ -404,8 +402,8 @@ switch (_typeofUnit) do _unit addmagazines [_pistolmag, 1]; _unit addweapon _pistol; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; - _unit addmagazines [_SNrifleMag, 3]; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; _unit addmagazines [_pistolmag, 5]; }; // Spotter Loadout: @@ -414,12 +412,13 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 5]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SNrifleMag, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: case "vc": @@ -427,9 +426,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addweapon "Rangefinder"; }; // Vehicle Gunner Loadout: @@ -438,9 +436,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; }; // Vehicle Driver Loadout: case "vd": @@ -450,9 +447,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Jet Pilot Loadout: @@ -475,9 +471,8 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addmagazines [_smokegrenadeblue, 4]; _unit addItem "ToolKit"; }; // Engineer (Demo) Loadout: @@ -487,11 +482,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_satchel, 2]; @@ -503,11 +497,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit addItem "ToolKit"; _unit addItem "MineDetector"; _unit addmagazines [_APmine2, 4]; @@ -520,10 +513,9 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_smokegrenade, 4]; _unit linkItem _uavterminal; }; // Diver Loadout: @@ -545,11 +537,10 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 1]; _unit addweapon _rifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Carbineer Loadout: case "car": @@ -557,11 +548,10 @@ switch (_typeofUnit) do _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_carbinemag, 4]; _unit addmagazines [_carbinemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Submachinegunner Loadout: case "smg": @@ -569,10 +559,9 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 1]; _unit addweapon _smg; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_smgmag, 6]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_smokegrenade, 4]; }; // Grenadier Loadout: case "gren": @@ -581,11 +570,10 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 1]; + _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_glriflemag, 4]; _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; - _unit addmagazines [_smokegrenade, 4]; }; // Include the loadouts for vehicles and crates: diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 87a4283f3..271d87dc1 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -56,7 +56,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; +private ["_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; // ==================================================================================== From 1b995f5712e2daeb5dd01d4a295d5197b670ed0e Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Mon, 18 Mar 2019 19:31:32 +0100 Subject: [PATCH 164/407] adding 3IFB to assignGear (#221) * assignGear: adding 3IFB Co-authored-by: costno --- f/assignGear/f_assignGear_3IFB.sqf | 354 ++++++++++++ f/assignGear/f_assignGear_3IFB_light.sqf | 582 +++++++++++++++++++ f/assignGear/f_assignGear_3IFB_standard.sqf | 588 ++++++++++++++++++++ f/assignGear/f_assignGear_3IFB_v.sqf | 244 ++++++++ f/assignGear/fn_assignGear.sqf | 12 + 5 files changed, 1780 insertions(+) create mode 100644 f/assignGear/f_assignGear_3IFB.sqf create mode 100644 f/assignGear/f_assignGear_3IFB_light.sqf create mode 100644 f/assignGear/f_assignGear_3IFB_standard.sqf create mode 100644 f/assignGear/f_assignGear_3IFB_v.sqf diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf new file mode 100644 index 000000000..58c22598e --- /dev/null +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -0,0 +1,354 @@ +// F3 - Folk ARPS Assign Gear Script - 3IFB +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE EQUIPMENT TABLES +// The blocks of code below identifies equipment for this faction +// +// Defined loadouts: +// co - commander +// dc - deputy commander / squad leader +// m - medic +// ftl - fire team leader +// ar - automatic rifleman +// aar - assistant automatic rifleman +// rat - rifleman (AT) +// dm - designated marksman +// mmgl - medium mg team leader +// mmgg - medium mg gunner +// mmgag - medium mg assistant +// matl - medium AT team leader +// matg - medium AT gunner +// matag - medium AT assistant +// hmgg - heavy mg gunner (deployable) +// hmgag - heavy mg assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant +// mtrg - mortar gunner (deployable) +// mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader +// msamg - medium SAM gunner +// msamag - medium SAM assistant gunner +// hsamg - heavy SAM gunner (deployable) +// hsamag - heavy SAM assistant gunner (deployable) +// sn - sniper +// sp - spotter (for sniper) +// vc - vehicle commander +// vg - vehicle gunner +// vd - vehicle driver (repair) +// pc - air vehicle crew +// jp - jet pilot +// eng - engineer (demo) +// engm - engineer (mines) +// uav - UAV operator +// div - divers +// +// r - rifleman +// car - carabineer +// smg - submachinegunner +// gren - grenadier +// +// v_car - car/4x4 +// v_tr - truck +// v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet +// +// crate_small - small ammocrate +// crate_med - medium ammocrate +// crate_large - large ammocrate +// +// ==================================================================================== + +// GENERAL EQUIPMENT USED BY MULTIPLE CLASSES + +// ATTACHMENTS - PRIMARY +_attach1 = ""; // IR Laser +_attach2 = "acc_flashlight"; // Flashlight + +_silencer1 = "mmuzzle_snds_B"; // 7.62 suppressor +_silencer2 = "muzzle_snds_H"; // 6.5 suppressor + +_scope1 = "optic_ACO"; // ACO +_scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x +_scope3 = "optic_KHS_old"; // SOS Scope - 18x - 75x + +_bipod1 = "bipod_01_F_mtp"; // Default bipod +_bipod2 = "bipod_02_F_blk"; // Black bipod + +// Default setup +_attachments = []; // The default attachment set for most units, overwritten in the individual unitType + +// [] = remove all +// [_attach1,_scope1,_silencer] = remove all, add items assigned in _attach1, _scope1 and _silencer1 +// [_scope2] = add _scope2, remove rest +// false = keep attachments as they are + +// ==================================================================================== + +// ATTACHMENTS - HANDGUN +_hg_silencer1 = ""; // No suppressor for Zubr + +_hg_scope1 = "optic_MRD"; // MRD + +// Default setup +_hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType + +// ==================================================================================== + +// WEAPON SELECTION + +// Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) +_rifle = selectRandom ["arifle_AK12_F","arifle_AKM_F","arifle_AKM_F"];// Slight randomization, biased towards AKM +_riflemag = "30Rnd_762x39_Mag_F"; +_riflemag_tr = "30Rnd_762x39_Mag_Tracer_F"; + +// Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) +_carbine = selectRandom ["arifle_AK12_F","arifle_AKM_F","arifle_AKM_F"]; // Slight randomization, biased towards AKM +_carbinemag = "30Rnd_762x39_Mag_F"; +_carbinemag_tr = "30Rnd_762x39_Mag_Tracer_F"; + +// Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) +_smg = "arifle_AKS_F"; +_smgmag = "30Rnd_545x39_Mag_F"; + +// Diver +_diverWep = "arifle_SDAR_F"; +_diverMag1 = "30Rnd_762x39_Mag_F"; +_diverMag2 = "30Rnd_556x45_Stanag_Tracer_Yellow"; +_diverMag3 = "20Rnd_556x45_UW_mag"; + +// Rifle with GL and HE grenades (CO, DC, FTLs) +_glrifle = "arifle_AK12_GL_F"; // Slight randomization, biased towards TRG +_glriflemag = "30Rnd_762x39_Mag_F"; +_glriflemag_tr = "30Rnd_762x39_Mag_Tracer_F"; +_glmag = "1Rnd_HE_Grenade_shell"; + +// Smoke for FTLs, Squad Leaders, etc +_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; +_glsmokered = "1Rnd_SmokeRed_Grenade_shell"; + +// Flares for FTLs, Squad Leaders, etc +_glflarewhite = "UGL_FlareWhite_F"; +_glflarered = "UGL_FlareRed_F"; +_glflareyellow = "UGL_FlareYellow_F"; +_glflaregreen = "UGL_FlareGreen_F"; + +// Pistols (CO, DC, Automatic Rifleman, Medium MG Gunner) +_pistol = "hgun_Pistol_01_F"; +_pistolmag = "10Rnd_9x21_Mag"; + +// Grenades +_grenade = "HandGrenade"; +_Mgrenade = "MiniGrenade"; +_smokegrenade = "SmokeShell"; +_smokegrenadegreen = "SmokeShellGreen"; +_smokegrenadeblue = "SmokeShellBlue"; +_smokegrenadepurple = "SmokeShellPurple"; + +// misc medical items. +_firstaid = "FirstAidKit"; +_medkit = "Medikit"; + +// Night Vision Goggles +//_nvg = "NVGoggles_OPFOR"; + +// Laserdesignator +_laserdesignator = "Laserdesignator_03"; + +// UAV Terminal +_uavterminal = "I_UavTerminal"; + +// Chemlights +_chemgreen = "Chemlight_green"; +_chemred = "Chemlight_red"; +_chemyellow = "Chemlight_yellow"; +_chemblue = "Chemlight_blue"; + +// Backpacks +_bag = "B_FieldPack_khk"; // carries 160, weighs 20 +_baglarge = "B_Carryall_khk"; // carries 320, weighs 60 +_bagdiver = "B_AssaultPack_blk"; // used by divers +_baguav = "I_UAV_01_backpack_F"; // used by UAV operator +_baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner +_baghmgag = "B_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghatg = "B_AssaultPack_rgr"; // Used by Heavy AT Gunner +_bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner +_bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner +_baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner + +// ==================================================================================== + +// UNIQUE, ROLE-SPECIFIC EQUIPMENT + +// Automatic Rifleman +_AR = "LMG_03_F"; +_ARmag = "200Rnd_556x45_Box_F"; +_ARmag_tr = "200Rnd_556x45_Box_Tracer_F"; + +// Medium MG +_MMG = "LMG_Zafir_F"; +_MMGmag = "150Rnd_762x54_Box"; +_MMGmag_tr = "150Rnd_762x54_Box_Tracer"; + +// Marksman rifle +_DMrifle = "srifle_DMR_06_olive_F"; +_DMriflemag = "20Rnd_762x51_Mag"; +_DMriflemag_tr = "20Rnd_762x51_Mag"; + +// Rifleman AT +_RAT = "launch_RPG32_ghex_F"; +_RATmag1 = "RPG32_F"; +_RATmag2 = "RPG32_HE_F"; + +// Medium AT +_MAT = "launch_MRAWS_green_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; + +// Surface Air +_SAM = "launch_Titan_F"; +_SAMmag = "Titan_AA"; + +// Heavy AT +_HAT = "launch_O_Vorona_green_F"; +_HATmag1 = "Vorona_HEAT"; +_HATmag2 = "Vorona_HE"; + +// Sniper +_SNrifle = "srifle_DMR_05_blk_F"; +_SNrifleMag = "10Rnd_93x64_DMR_05_Mag"; + +// Engineer items +_ATmine = "ATMine_Range_Mag"; +_satchel = "SatchelCharge_Remote_Mag"; +_democharge = "DemoCharge_Remote_Mag"; +_APmine1 = "APERSBoundingMine_Range_Mag"; +_APmine2 = "APERSMine_Range_Mag"; + +// ==================================================================================== + +// CLOTHES AND UNIFORMS + +// Define classes. This defines which gear class gets which uniform +// "medium" vests are used for all classes if they are not assigned a specific uniform + +_diver = ["div"]; +_pilot = ["pp","pcc","pc"]; +_crew = ["vc","vg","vd"]; +_ghillie = ["sn","sp"]; +_specOp = []; +_jet = ["jp"]; + +// Basic clothing +// The outfit-piece is randomly selected from the array for each unit + +_baseUniform = ["U_BG_Guerrilla_6_1","U_BG_Guerilla2_2","U_BG_Guerilla2_1","U_BG_Guerilla2_3","U_BG_Guerilla1_1","U_BG_Guerilla1_2_F","U_BG_Leader", + "U_I_C_Soldier_Bandit_3_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_Para_1_F", + "U_I_G_Story_Protagonist_F","U_I_G_resistanceLeader_F","U_C_WorkerCoveralls" +]; +_baseHelmet = ["H_Beret_Colonel"]; +_baseGlasses = []; + +// Vests +// +//_lightRig = ["V_TacVest_Camo","V_I_G_resistanceLeader_F","V_TacVest_oli","V_TacVest_khk"]; +// ^^ Alternate Light Rigs ^^ +_lightRig = ["V_PlateCarrier1_blk","V_PlateCarrier1_rgr_noflag_F","V_PlateCarrierIA1_dgtl"]; +_standardRig = ["V_PlateCarrier1_blk","V_PlateCarrier1_rgr_noflag_F","V_PlateCarrierIA1_dgtl"]; + +// Diver +_diverUniform = ["U_B_Wetsuit"]; +_diverHelmet = []; +_diverRig = ["V_RebreatherB"]; +_diverGlasses = ["G_Diving"]; + +// Pilot +_pilotUniform = ["U_C_WorkerCoveralls"]; +_pilotHelmet = _baseHelmet; +_pilotRig = ["V_Chestrig_blk"]; +_pilotGlasses = []; + +// Jet Pilot +_jetUniform = ["U_I_pilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_I"]; +_jetRig = []; +_jetGlasses = []; + +// Crewman +_crewUniform = _baseUniform; +_crewHelmet = _baseHelmet; +_crewRig = ["V_Chestrig_blk"]; +_crewGlasses = []; + +// Ghillie +_ghillieUniform = ["U_B_GhillieSuit"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; +_ghillieHelmet = []; +_ghillieRig = ["V_Chestrig_rgr"]; +_ghillieGlasses = []; + +// Spec Op +_sfuniform = _baseUniform; +_sfhelmet = _baseHelmet; +_sfRig = _standardRig; +_sfGlasses = []; + +// ==================================================================================== + +// This block needs only to be run on an infantry unit +if (_isMan) then { + + // PREPARE UNIT FOR GEAR ADDITION + // The following code removes all existing weapons, items, magazines and backpacks + + removeBackpack _unit; + removeAllWeapons _unit; + removeAllItemsWithMagazines _unit; + removeAllAssignedItems _unit; + + // ==================================================================================== + + // HANDLE CLOTHES + // Handle clothes and helmets and such using the include file called next. + + #include "f_assignGear_clothes.sqf"; + + // ==================================================================================== + + // ADD UNIVERSAL ITEMS + // Add items universal to all units of this faction + + _unit linkItem _nvg; // Add and equip the faction's nvg + _unit addItem _firstaid; // Add a single first aid kit (FAK) + _unit linkItem "ItemMap"; // Add and equip the map + _unit linkItem "ItemCompass"; // Add and equip a compass + _unit linkItem "ItemRadio"; // Add and equip A3's default radio + _unit linkItem "ItemWatch"; // Add and equip a watch + _unit linkItem "ItemGPS"; // Add and equip a GPS + +}; + +// ==================================================================================== + +// SELECT LOADOUT +// Pick the appropriate loadout depending on the parameter + +_loadout = f_param_loadouts; + +// Light Loadout +if (_loadout == 0) then { + #include "f_assignGear_3IFB_light.sqf" +}; + +// Standard Loadout +if (_loadout == 1) then { + #include "f_assignGear_3IFB_standard.sqf" +}; + +// ==================================================================================== diff --git a/f/assignGear/f_assignGear_3IFB_light.sqf b/f/assignGear/f_assignGear_3IFB_light.sqf new file mode 100644 index 000000000..088188f76 --- /dev/null +++ b/f/assignGear/f_assignGear_3IFB_light.sqf @@ -0,0 +1,582 @@ +// F3 - Folk ARPS Assign Gear Script - 3IFB - Light Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 4]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 2]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_3IFB_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf new file mode 100644 index 000000000..5b794a102 --- /dev/null +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -0,0 +1,588 @@ +// F3 - Folk ARPS Assign Gear Script - 3IFB - Standard Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 4]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 4]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 2]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_3IFB_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_3IFB_v.sqf b/f/assignGear/f_assignGear_3IFB_v.sqf new file mode 100644 index 000000000..f84c0ab17 --- /dev/null +++ b/f/assignGear/f_assignGear_3IFB_v.sqf @@ -0,0 +1,244 @@ +// Vehicle & Box LOADOUTS - 3IFB + +// CARGO: CAR - room for 10 weapons and 50 cargo items + case "v_car": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 8]; + _unit addMagazineCargoGlobal [_glriflemag, 8]; + _unit addMagazineCargoGlobal [_carbinemag, 10]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; + _unit addMagazineCargoGlobal [_grenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 4]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addItemCargoGlobal [_firstaid,4]; + }; + +// CARGO: TRUCK - room for 50 weapons and 200 cargo items + case "v_tr": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade, 12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; + _unit addMagazineCargoGlobal [_glmag, 12]; + _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addItemCargoGlobal [_firstaid,8]; + }; + +// CARGO: IFV - room for 10 weapons and 100 cargo items + case "v_ifv": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; + _unit addMagazineCargoGlobal [_armag, 8]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addmagazineCargoGlobal [_mgrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 8]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addItemCargoGlobal [_firstaid,6]; + }; + +//CARGO: TANK + case "v_tank": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Light + case "v_helo_l": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 2]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Medium + case "v_helo_m": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine,2]; + _unit addWeaponCargoGlobal [_rat,1]; + _unit addMagazineCargoGlobal [_riflemag,10]; + _unit addMagazineCargoGlobal [_glriflemag,10]; + _unit addMagazineCargoGlobal [_carbinemag,10]; + _unit addMagazineCargoGlobal [_armag,6]; + _unit addMagazineCargoGlobal [_RATmag1,1]; + _unit addMagazineCargoGlobal [_grenade,4]; + _unit addmagazineCargoGlobal [_mgrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,4]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Heavy + case "v_helo_h": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine,8]; + _unit addWeaponCargoGlobal [_rat,2]; + _unit addMagazineCargoGlobal [_riflemag,20]; + _unit addMagazineCargoGlobal [_glriflemag,20]; + _unit addMagazineCargoGlobal [_carbinemag,20]; + _unit addMagazineCargoGlobal [_armag,12]; + _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_grenade,12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_glsmokewhite,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,4]; + _unit addItemCargoGlobal [_firstaid,6]; + _unit addBackpackCargoGlobal ["B_Parachute",4]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Attack + case "v_helo_a": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + }; + +//CARGO: Jet + case "v_jet": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,2]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,1]; + _unit addMagazineCargoGlobal [_chemgreen,2]; + _unit addItemCargoGlobal [_firstaid,1]; + _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +// CRATE: Small, ammo for 1 fireteam + case "crate_small": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_glmag, 5]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addMagazineCargoGlobal [_mgrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addItemCargoGlobal [_firstaid, 6]; + }; + +// CRATE: Medium, ammo for 1 squad + case "crate_med": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 15]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_armag, 15]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_glmag, 20]; + _unit addMagazineCargoGlobal [_glsmokewhite,16]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 25]; + _unit addMagazineCargoGlobal [_mgrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 6]; + _unit addItemCargoGlobal [_firstaid, 25]; + }; + +// CRATE: Large, ammo for 1 platoon + case "crate_large": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 45]; + _unit addMagazineCargoGlobal [_glriflemag, 60]; + _unit addMagazineCargoGlobal [_armag, 45]; + _unit addMagazineCargoGlobal [_carbinemag, 60]; + _unit addMagazineCargoGlobal [_glmag, 60]; + _unit addMagazineCargoGlobal [_glsmokewhite,50]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; + _unit addMagazineCargoGlobal [_grenade, 75]; + _unit addMagazineCargoGlobal [_mgrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; + _unit addItemCargoGlobal [_firstaid, 75]; + }; diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 271d87dc1..f45637e2b 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -168,6 +168,18 @@ if (_faction in ["ind_c_f","syndikat"]) then { // ==================================================================================== +// GEAR: 3IFB +// The following block of code executes only if the unit is manually assigned the 3IFB 'faction'; it +// automatically includes a file which contains the appropriate equipment data. +// Note the this faction doesn't exist in the game and so is a 'pseudo-faction'; in particular other faction +// sensitive components, such as briefings, are not aware of this 'pseudo-faction' and will use the +// underlying game faction of the unit +if (_faction in ["3ifb"]) then { + #include "f_assignGear_3IFB.sqf" +}; + +// ==================================================================================== + // Handle weapon switching, weapon attachments, etc // This block needs only to be run on an infantry unit From 8016ddfa7ab714618173c624a8f9e85232084294 Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Mon, 18 Mar 2019 18:32:16 +0000 Subject: [PATCH 165/407] [#228][assignGear] Remove FIA AK (#229) --- f/assignGear/f_assignGear_fiaAK.sqf | 357 ----------- f/assignGear/f_assignGear_fiaAK_light.sqf | 582 ------------------ f/assignGear/f_assignGear_fiaAK_standard.sqf | 588 ------------------- f/assignGear/fn_assignGear.sqf | 1 - 4 files changed, 1528 deletions(-) delete mode 100644 f/assignGear/f_assignGear_fiaAK.sqf delete mode 100644 f/assignGear/f_assignGear_fiaAK_light.sqf delete mode 100644 f/assignGear/f_assignGear_fiaAK_standard.sqf diff --git a/f/assignGear/f_assignGear_fiaAK.sqf b/f/assignGear/f_assignGear_fiaAK.sqf deleted file mode 100644 index 77c6b1aed..000000000 --- a/f/assignGear/f_assignGear_fiaAK.sqf +++ /dev/null @@ -1,357 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - FIA (AK) -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DEFINE EQUIPMENT TABLES -// The blocks of code below identifies equipment for this faction -// -// Defined loadouts: -// co - commander -// dc - deputy commander / squad leader -// m - medic -// ftl - fire team leader -// ar - automatic rifleman -// aar - assistant automatic rifleman -// rat - rifleman (AT) -// dm - designated marksman -// mmgl - medium mg team leader -// mmgg - medium mg gunner -// mmgag - medium mg assistant -// matl - medium AT team leader -// matg - medium AT gunner -// matag - medium AT assistant -// hmgg - heavy mg gunner (deployable) -// hmgag - heavy mg assistant (deployable) -// hatl - heavy AT team leader -// hatg - heavy AT gunner -// hatag - heavy AT assistant -// mtrg - mortar gunner (deployable) -// mtrag - mortar assistant (deployable) -// msaml - medium SAM team leader -// msamg - medium SAM gunner -// msamag - medium SAM assistant gunner -// hsamg - heavy SAM gunner (deployable) -// hsamag - heavy SAM assistant gunner (deployable) -// sn - sniper -// sp - spotter (for sniper) -// vc - vehicle commander -// vg - vehicle gunner -// vd - vehicle driver (repair) -// pc - air vehicle crew -// jp - jet pilot -// eng - engineer (demo) -// engm - engineer (mines) -// uav - UAV operator -// div - divers -// -// r - rifleman -// car - carabineer -// smg - submachinegunner -// gren - grenadier -// -// v_car - car/4x4 -// v_tr - truck -// v_ifv - ifv -// v_tank - tank -// v_helo_l - Rotary Transport Light -// v_helo_m - Rotary Transport Medium -// v_helo_h - Rotary Transport Heavy -// v_helo_a - Rotary Attack -// v_jet - Jet -// -// crate_small - small ammocrate -// crate_med - medium ammocrate -// crate_large - large ammocrate -// -// ==================================================================================== - -// GENERAL EQUIPMENT USED BY MULTIPLE CLASSES - -// ATTACHMENTS - PRIMARY -_attach1 = ""; // IR Laser -_attach2 = "acc_flashlight"; // Flashlight - -_silencer1 = "muzzle_snds_M"; // 5.56 suppressor -_silencer2 = "muzzle_snds_H"; // 6.5 suppressor - -_scope1 = "optic_ACO"; // ACO -_scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x -_scope3 = "optic_SOS"; // SOS Scope - 18x - 75x - -_bipod1 = "bipod_02_F_blk"; // Default bipod -_bipod2 = "bipod_02_F_blk"; // Black bipod - -// Default setup -_attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType - -// [] = remove all -// [_attach1,_scope1,_silencer] = remove all, add items assigned in _attach1, _scope1 and _silencer1 -// [_scope2] = add _scope2, remove rest -// false = keep attachments as they are - -// ==================================================================================== - -// ATTACHMENTS - HANDGUN -_hg_silencer1 = ""; // PM 9MM does not accept a suppressor - -_hg_scope1 = "optic_MRD"; // MRD - -// Default setup -_hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType - -// ==================================================================================== - -// WEAPON SELECTION - -// Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) -_rifle = "arifle_AKM_F"; -_riflemag = "30Rnd_762x39_Mag_F"; -_riflemag_tr = "30Rnd_762x39_Mag_Tracer_F"; - -// Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) -_carbine = "arifle_AKS_F"; -_carbinemag = "30Rnd_545x39_Mag_F"; -_carbinemag_tr = "30Rnd_545x39_Mag_Tracer_F"; - -// Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) -_smg = "hgun_PDW2000_F"; -_smgmag = "30Rnd_9x21_Mag"; - -// Diver -_diverWep = "arifle_SDAR_F"; -_diverMag1 = "30Rnd_556x45_Stanag_red"; -_diverMag2 = "30Rnd_556x45_Stanag_Tracer_Red"; -_diverMag3 = "20Rnd_556x45_UW_mag"; - -// Rifle with GL and HE grenades (CO, DC, FTLs) -_glrifle = "arifle_SPAR_01_GL_blk_F"; -_glriflemag = "30Rnd_556x45_Stanag_red"; -_glriflemag_tr = "30Rnd_556x45_Stanag_Tracer_Red"; -_glmag = "1Rnd_HE_Grenade_shell"; - -// Smoke for FTLs, Squad Leaders, etc -_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; -_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; -_glsmokered = "1Rnd_SmokeRed_Grenade_shell"; - -// Flares for FTLs, Squad Leaders, etc -_glflarewhite = "UGL_FlareWhite_F"; -_glflarered = "UGL_FlareRed_F"; -_glflareyellow = "UGL_FlareYellow_F"; -_glflaregreen = "UGL_FlareGreen_F"; - -// Pistols (CO, DC, Automatic Rifleman, Medium MG Gunner) -_pistol = "hgun_Pistol_01_F"; -_pistolmag = "10Rnd_9x21_Mag"; - -// Grenades -_grenade = "HandGrenade"; -_Mgrenade = "MiniGrenade"; -_smokegrenade = "SmokeShell"; -_smokegrenadegreen = "SmokeShellGreen"; -_smokegrenadeblue = "SmokeShellBlue"; -_smokegrenadepurple = "SmokeShellPurple"; - -// misc medical items. -_firstaid = "FirstAidKit"; -_medkit = "Medikit"; - -// Night Vision Goggles -_nvg = "NVGoggles"; - -// Laserdesignator -_laserdesignator = "Laserdesignator_03"; - -// UAV Terminal -_uavterminal = "B_UavTerminal"; // BLUFOR - FIA -//_uavterminal = "O_UavTerminal"; // OPFOR - FIA -//_uavterminal = "I_UavTerminal"; // INDP - FIA - -// Chemlights -_chemgreen = "Chemlight_green"; -_chemred = "Chemlight_red"; -_chemyellow = "Chemlight_yellow"; -_chemblue = "Chemlight_blue"; - -// Backpacks -_bag = "B_AssaultPack_cbr"; -_bagLarge = "B_Kitbag_cbr"; -_bagdiver = "B_AssaultPack_blk"; // used by divers -_baguav = "B_UAV_01_backpack_F"; // used by UAV operator -_baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner -_baghmgag = "B_HMG_01_support_F"; // used by Heavy MG assistant gunner -_baghatg = "B_AssaultPack_cbr"; // used by Heavy AT gunner -_baghatag = "B_Kitbag_cbr"; // used by Heavy AT assistant gunner ** -_bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner -_bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner -_baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner -_baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** - -// ==================================================================================== - -// UNIQUE, ROLE-SPECIFIC EQUIPMENT - -// Automatic Rifleman -_AR = "LMG_Mk200_F"; -_ARmag = "200Rnd_65x39_cased_Box"; -_ARmag_tr = "200Rnd_65x39_cased_Box_Tracer"; - -// Medium MG -_MMG = "LMG_Zafir_F"; -_MMGmag = "150Rnd_762x54_Box"; -_MMGmag_tr = "150Rnd_762x54_Box_Tracer"; - -// NON-DLC ALTERNATIVE: -// _MMG = "MMG_02_camo_F"; -// _MMGmag = "150Rnd_762x54_Box"; -// _MMGmag_tr = "150Rnd_762x54_Box"_Tracer"; - -// Marksman rifle -_DMrifle = "srifle_DMR_06_olive_F"; -_DMriflemag = "20Rnd_762x51_Mag"; -_DMriflemag_tr = "20Rnd_762x51_Mag"; - -// Rifleman AT -_RAT = "launch_RPG7_F"; -_RATmag1 = "RPG7_F"; -_RATmag2 = "RPG7_F"; // RPG7 has no HE rocket - -// Medium AT -_MAT = "launch_NLAW_F"; -_MATmag1 = "NLAW_F"; -_MATmag2 = "NLAW_F"; - -// Surface Air -_SAM = "launch_Titan_F"; -_SAMmag = "Titan_AA"; - -// Heavy AT -_HAT = "launch_Titan_short_F"; -_HATmag1 = "Titan_AT"; -_HATmag2 = "Titan_AP"; - -// Sniper -_SNrifle = "srifle_LRR_F"; -_SNrifleMag = "7Rnd_408_Mag"; - -// Engineer items -_ATmine = "ATMine_Range_Mag"; -_satchel = "SatchelCharge_Remote_Mag"; -_democharge = "DemoCharge_Remote_Mag"; -_APmine1 = "APERSBoundingMine_Range_Mag"; -_APmine2 = "APERSMine_Range_Mag"; - -// ==================================================================================== - -// CLOTHES AND UNIFORMS - -// Define classes. This defines which gear class gets which uniform -// "medium" vests are used for all classes if they are not assigned a specific uniform - -_diver = ["div"]; -_pilot = ["pp","pcc","pc"]; -_crew = ["vc","vg","vd"]; -_ghillie = ["sn","sp"]; -_specOp = []; -_jet = ["jp"]; - -// Basic clothing -// The outfit-piece is randomly selected from the array for each unit - -_baseUniform = ["U_BG_leader","U_BG_Guerilla1_1","U_BG_Guerilla2_1","U_BG_Guerilla2_2","U_BG_Guerilla2_3","U_BG_Guerilla3_1","U_BG_Guerilla3_2","U_BG_Guerrilla_6_1"]; -_baseHelmet = ["H_Shemag_olive","H_ShemagOpen_tan","H_Bandanna_khk","H_Booniehat_khk","H_Cap_oli","H_Watchcap_blk"]; -_baseGlasses = ["G_Bandanna_blk","G_Bandanna_khk","G_Bandanna_oli"]; - -// Vests -_lightRig = ["V_TacVestIR_blk"]; -_standardRig = ["V_TacVestIR_blk"]; - -// Diver -_diverUniform = ["U_B_Wetsuit"]; -_diverHelmet = []; -_diverRig = ["V_RebreatherB"]; -_diverGlasses = ["G_Diving"]; - -// Pilot -_pilotUniform = ["U_C_WorkerCoveralls"]; -_pilotHelmet = _baseHelmet; -_pilotRig = ["V_BandollierB_cbr"]; -_pilotGlasses = []; - -// Jet Pilot -_jetUniform = ["U_B_PilotCoveralls"]; -_jetHelmet = ["H_PilotHelmetFighter_B"]; -_jetRig = []; -_jetGlasses = []; - -// Crewman -_crewUniform = _baseUniform; -_crewHelmet = _baseHelmet; -_crewRig = ["V_BandollierB_cbr"]; -_crewGlasses = []; - -// Ghillie -_ghillieUniform = ["U_B_GhillieSuit"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; -_ghillieHelmet = []; -_ghillieRig = ["V_Chestrig_rgr"]; -_ghillieGlasses = []; - -// Spec Op (CTRG) -_sfuniform = ["U_B_CTRG_1","U_B_CTRG_2","U_B_CTRG_3"]; -_sfhelmet = _baseHelmet; -_sfRig = ["V_PlateCarrierL_CTRG","V_PlateCarrierH_CTRG"]; -_sfGlasses = []; - -// ==================================================================================== - -// This block needs only to be run on an infantry unit -if (_isMan) then { - - // PREPARE UNIT FOR GEAR ADDITION - // The following code removes all existing weapons, items, magazines and backpacks - - removeBackpack _unit; - removeAllWeapons _unit; - removeAllItemsWithMagazines _unit; - removeAllAssignedItems _unit; - - // ==================================================================================== - - // HANDLE CLOTHES - // Handle clothes and helmets and such using the include file called next. - - #include "f_assignGear_clothes.sqf"; - - // ==================================================================================== - - // ADD UNIVERSAL ITEMS - // Add items universal to all units of this faction - - _unit linkItem _nvg; // Add and equip the faction's nvg - _unit addItem _firstaid; // Add a single first aid kit (FAK) - _unit linkItem "ItemMap"; // Add and equip the map - _unit linkItem "ItemCompass"; // Add and equip a compass - _unit linkItem "ItemRadio"; // Add and equip A3's default radio - _unit linkItem "ItemWatch"; // Add and equip a watch - _unit linkItem "ItemGPS"; // Add and equip a GPS - -}; - -// ==================================================================================== - -// SELECT LOADOUT -// Pick the appropriate loadout depending on the parameter - -_loadout = f_param_loadouts; - -// Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_fiaAK_light.sqf" -}; - -// Standard Loadout -if (_loadout == 1) then { - #include "f_assignGear_fiaAK_standard.sqf" -}; - -// ==================================================================================== diff --git a/f/assignGear/f_assignGear_fiaAK_light.sqf b/f/assignGear/f_assignGear_fiaAK_light.sqf deleted file mode 100644 index cf7fbd401..000000000 --- a/f/assignGear/f_assignGear_fiaAK_light.sqf +++ /dev/null @@ -1,582 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - FIA AK - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 2]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_fia_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_fiaAK_standard.sqf b/f/assignGear/f_assignGear_fiaAK_standard.sqf deleted file mode 100644 index f57fe10eb..000000000 --- a/f/assignGear/f_assignGear_fiaAK_standard.sqf +++ /dev/null @@ -1,588 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - FIA AK - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 2]; - _unit addmagazines [_RATmag2, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_RATmag1, 2]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addmagazines [_MATmag2, 1]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addmagazines [_MATmag2, 1]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_fia_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index f45637e2b..b3390b0ee 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -143,7 +143,6 @@ if (_faction in ["ind_f","aaf"]) then { if (_faction in ["blu_g_f","opf_g_f","ind_g_f","fia"]) then { #include "f_assignGear_fia.sqf" - //#include "f_assignGear_fiaAK.sqf" // Alternative FIA loadouts using AKs and RPG-7s }; // ==================================================================================== From d3f857d398eb6e20775cde33820f746cad30fb41 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Mon, 18 Mar 2019 19:42:05 +0000 Subject: [PATCH 166/407] [#203][assignGear] Add bags to IFVs, tanks, and trucks --- f/assignGear/f_assignGear_3IFB_v.sqf | 7 +++++-- f/assignGear/f_assignGear_aaf_v.sqf | 7 +++++-- f/assignGear/f_assignGear_csat_v.sqf | 7 +++++-- f/assignGear/f_assignGear_ctrg_v.sqf | 7 +++++-- f/assignGear/f_assignGear_fia_v.sqf | 7 +++++-- f/assignGear/f_assignGear_nato_v.sqf | 7 +++++-- f/assignGear/f_assignGear_syndikat_v.sqf | 7 +++++-- 7 files changed, 35 insertions(+), 14 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB_v.sqf b/f/assignGear/f_assignGear_3IFB_v.sqf index f84c0ab17..52977aad9 100644 --- a/f/assignGear/f_assignGear_3IFB_v.sqf +++ b/f/assignGear/f_assignGear_3IFB_v.sqf @@ -40,6 +40,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; _unit addMagazineCargoGlobal [_glmag, 12]; _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,8]; }; @@ -62,6 +63,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; _unit addMagazineCargoGlobal [_glmag, 8]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,6]; }; @@ -75,6 +77,7 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -93,9 +96,9 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal [_firstaid,2]; _unit addBackpackCargoGlobal ["B_Parachute",2]; - _unit addItemCargoGlobal ["Toolkit",1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; //CARGO: Rotary Transport Medium diff --git a/f/assignGear/f_assignGear_aaf_v.sqf b/f/assignGear/f_assignGear_aaf_v.sqf index 0f90817ce..de1c89aad 100644 --- a/f/assignGear/f_assignGear_aaf_v.sqf +++ b/f/assignGear/f_assignGear_aaf_v.sqf @@ -40,6 +40,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; _unit addMagazineCargoGlobal [_glmag, 12]; _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,8]; }; @@ -62,6 +63,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; _unit addMagazineCargoGlobal [_glmag, 8]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,6]; }; @@ -75,6 +77,7 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -93,9 +96,9 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal [_firstaid,2]; _unit addBackpackCargoGlobal ["B_Parachute",2]; - _unit addItemCargoGlobal ["Toolkit",1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; //CARGO: Rotary Transport Medium diff --git a/f/assignGear/f_assignGear_csat_v.sqf b/f/assignGear/f_assignGear_csat_v.sqf index 381914416..d3e8f8f64 100644 --- a/f/assignGear/f_assignGear_csat_v.sqf +++ b/f/assignGear/f_assignGear_csat_v.sqf @@ -40,6 +40,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; _unit addMagazineCargoGlobal [_glmag, 12]; _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,8]; }; @@ -62,6 +63,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; _unit addMagazineCargoGlobal [_glmag, 8]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,6]; }; @@ -75,6 +77,7 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -93,9 +96,9 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal [_firstaid,2]; _unit addBackpackCargoGlobal ["B_Parachute",2]; - _unit addItemCargoGlobal ["Toolkit",1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; //CARGO: Rotary Transport Medium diff --git a/f/assignGear/f_assignGear_ctrg_v.sqf b/f/assignGear/f_assignGear_ctrg_v.sqf index a4b2f4a4e..23fb3f848 100644 --- a/f/assignGear/f_assignGear_ctrg_v.sqf +++ b/f/assignGear/f_assignGear_ctrg_v.sqf @@ -40,6 +40,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; _unit addMagazineCargoGlobal [_glmag, 12]; _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,8]; }; @@ -62,6 +63,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; _unit addMagazineCargoGlobal [_glmag, 8]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,6]; }; @@ -75,6 +77,7 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -93,9 +96,9 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal [_firstaid,2]; _unit addBackpackCargoGlobal ["B_Parachute",2]; - _unit addItemCargoGlobal ["Toolkit",1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; //CARGO: Rotary Transport Medium diff --git a/f/assignGear/f_assignGear_fia_v.sqf b/f/assignGear/f_assignGear_fia_v.sqf index c9cf88450..53c48498a 100644 --- a/f/assignGear/f_assignGear_fia_v.sqf +++ b/f/assignGear/f_assignGear_fia_v.sqf @@ -40,6 +40,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; _unit addMagazineCargoGlobal [_glmag, 12]; _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,8]; }; @@ -62,6 +63,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; _unit addMagazineCargoGlobal [_glmag, 8]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,6]; }; @@ -75,6 +77,7 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -93,9 +96,9 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal [_firstaid,2]; _unit addBackpackCargoGlobal ["B_Parachute",2]; - _unit addItemCargoGlobal ["Toolkit",1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; //CARGO: Rotary Transport Medium diff --git a/f/assignGear/f_assignGear_nato_v.sqf b/f/assignGear/f_assignGear_nato_v.sqf index 99c73ab3d..6ba75f151 100644 --- a/f/assignGear/f_assignGear_nato_v.sqf +++ b/f/assignGear/f_assignGear_nato_v.sqf @@ -40,6 +40,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; _unit addMagazineCargoGlobal [_glmag, 12]; _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,8]; }; @@ -62,6 +63,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; _unit addMagazineCargoGlobal [_glmag, 8]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,6]; }; @@ -75,6 +77,7 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -93,9 +96,9 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal [_firstaid,2]; _unit addBackpackCargoGlobal ["B_Parachute",2]; - _unit addItemCargoGlobal ["Toolkit",1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; //CARGO: Rotary Transport Medium diff --git a/f/assignGear/f_assignGear_syndikat_v.sqf b/f/assignGear/f_assignGear_syndikat_v.sqf index 3775dd65f..62b392b57 100644 --- a/f/assignGear/f_assignGear_syndikat_v.sqf +++ b/f/assignGear/f_assignGear_syndikat_v.sqf @@ -40,6 +40,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; _unit addMagazineCargoGlobal [_glmag, 12]; _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,8]; }; @@ -62,6 +63,7 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; _unit addMagazineCargoGlobal [_glmag, 8]; _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,6]; }; @@ -75,6 +77,7 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -93,9 +96,9 @@ _unit addMagazineCargoGlobal [_smokegrenade,4]; _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; - _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal [_firstaid,2]; _unit addBackpackCargoGlobal ["B_Parachute",2]; - _unit addItemCargoGlobal ["Toolkit",1]; + _unit addItemCargoGlobal ["Toolkit",1]; }; //CARGO: Rotary Transport Medium From 12046554d50f68849a779a53f915e46f2b634936 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Tue, 23 Apr 2019 12:43:01 +0100 Subject: [PATCH 167/407] [#234][Common] Added virtual faction functions --- f/common/fn_setVirtualFaction.sqf | 26 ++++++++++++++++++++++++++ f/common/fn_virtualFaction.sqf | 17 +++++++++++++++++ f/functions.hpp | 2 ++ 3 files changed, 45 insertions(+) create mode 100755 f/common/fn_setVirtualFaction.sqf create mode 100755 f/common/fn_virtualFaction.sqf diff --git a/f/common/fn_setVirtualFaction.sqf b/f/common/fn_setVirtualFaction.sqf new file mode 100755 index 000000000..e1cd29181 --- /dev/null +++ b/f/common/fn_setVirtualFaction.sqf @@ -0,0 +1,26 @@ +// F3 - Set Virtual Faction Function +// Scope: Argument Global, Effect Local +// Credits: Please see the FA3 online manual (https://github.com/folkarps/F3/wiki) +// ==================================================================================== + +// DECLARE VARIABLES AND FUNCTIONS + +private ["_obj", "_virtualFactionName"]; + +// SET KEY VARIABLES +// Using the arguments passed to the script, we first define some local variables. + +params [ + ["_obj", objNull, [objNull]], + ["_virtualFactionName", "", [""]] +]; + +// SPECIAL CASE: UNSET VIRTUAL FACTION +// Unset the virtual faction name when the passed name if the empty string +if (_virtualFactionName == "") exitWith { + _obj setVariable ["f_var_internal_virtualFactionName", nil]; +}; + +// SET VIRTUAL FACTION +// Set the case-insensitive virtual faction name variable of the object. +_obj setVariable ["f_var_internal_virtualFactionName", toLower _virtualFactionName]; diff --git a/f/common/fn_virtualFaction.sqf b/f/common/fn_virtualFaction.sqf new file mode 100755 index 000000000..8cec556d2 --- /dev/null +++ b/f/common/fn_virtualFaction.sqf @@ -0,0 +1,17 @@ +// F3 - Determine Virtual Faction Function +// Scope: Argument Global, Effect Local +// Credits: Please see the FA3 online manual (https://github.com/folkarps/F3/wiki) +// ==================================================================================== + +// DECLARE VARIABLES AND FUNCTIONS + +private ["_obj"]; + +// SET KEY VARIABLES +// Using the arguments passed to the script, we first define some local variables. + +params [["_obj", objNull, [objNull]]]; + +// DETERMINE VIRTUAL FACTION +// Get the virtual faction name variable of the object. If it is unset, return the output of `faction` instead +_obj getVariable ["f_var_internal_virtualFactionName", faction _obj]; diff --git a/f/functions.hpp b/f/functions.hpp index 4b3ab40cb..616ffd9be 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -7,6 +7,8 @@ class F // Defines the "owner" file = "f\common"; class processParamsArray{preInit = 1; postInit=1;}; class nearPlayer{}; + class virtualFaction{}; + class setVirtualFaction{}; }; class briefing { From e1d276bf3cc3a61fdae6224cf7285686d24254c7 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Tue, 23 Apr 2019 12:43:29 +0100 Subject: [PATCH 168/407] [#234][All] Changed all faction-aware functions to also be virtual-faction-aware --- f/assignGear/f_assignGear_AI.sqf | 4 ++-- f/assignGear/f_assignInsignia.sqf | 2 +- f/assignGear/fn_assignGear.sqf | 2 +- f/briefing/fn_createBriefing.sqf | 2 +- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 3 ++- f/groupMarkers/f_setLocalGroupMarkers.sqf | 2 +- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/f/assignGear/f_assignGear_AI.sqf b/f/assignGear/f_assignGear_AI.sqf index b36697b74..6c9184834 100644 --- a/f/assignGear/f_assignGear_AI.sqf +++ b/f/assignGear/f_assignGear_AI.sqf @@ -74,7 +74,7 @@ private _unitClasses = [ ["_Bandit_6_" , "gren" ], ["_Bandit_7_" , "car" ], ["_Bandit_8_" , "engm" ], - + ["_soldier_" , "r" ] // No comma after the last array! @@ -94,7 +94,7 @@ _units = _units select {!(_x in playableUnits) && (_x isKindOf "Man")}; { sleep 0.1; private _unit = _x; - private _faction = toLower (faction _unit); + private _faction = toLower ([_unit] call f_fnc_virtualFaction); // If the unit's faction is allowed, proceed if !(_faction in _excludeFactions) then { diff --git a/f/assignGear/f_assignInsignia.sqf b/f/assignGear/f_assignInsignia.sqf index 2bcc26f34..dbf967b75 100644 --- a/f/assignGear/f_assignInsignia.sqf +++ b/f/assignGear/f_assignInsignia.sqf @@ -4,7 +4,7 @@ private _badge = ""; params ["_unit", "_typeOfUnit","_insignia_styles"]; -private _faction = toLower (faction _unit); +private _faction = toLower ([_unit] call f_fnc_virtualFaction); // Note all badges must be defined in description.ext or be included your modpack. // See: https://community.bistudio.com/wiki/Arma_3_Unit_Insignia diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index b3390b0ee..1c9d71937 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -18,7 +18,7 @@ _typeofUnit = toLower _typeofUnit; // Tidy input for SWITCH/CASE statements, exp // The following code detects what faction the unit's slot belongs to, and stores // it in the private variable _faction. It can also be passed as an optional parameter. -private _faction = toLower (param[2, (faction _unit)]); +private _faction = toLower (param[2, ([_unit] call f_fnc_virtualFaction)]); // ==================================================================================== diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index f9630b16c..ebd79ad2a 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -23,7 +23,7 @@ private _fnc_debug = { // ==================================================================================== // DETECT PLAYER FACTION (use faction from group leader) -private _unitfaction =toLower (faction (leader group player)); +private _unitfaction =toLower ([leader group player] call f_fnc_virtualFaction); // DEBUG if (f_param_debugMode == 1) then diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index 99cdf83cf..c1a9253fa 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -73,7 +73,8 @@ if(_grpstemp isEqualType sideUnknown) then // if the variable is any of the side if(count _faction > 0) then { { - if !(faction (leader _x) in _faction) then + private _leaderFaction = [leader _x] call f_fnc_virtualFaction; + if !(_leaderFaction in _faction) then { _grps = _grps - [_x]; }; diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index e79dd025f..9869c76e0 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -15,7 +15,7 @@ if (!isDedicated && (isNull player)) then // The following code detects what faction the player's slot belongs to, and stores // it in the private variable _unitfaction params [ - ["_unitfaction", toLower (faction (leader group player)), [""]] + ["_unitfaction", toLower ([leader group player] call f_fnc_virtualFaction), [""]] ]; // ==================================================================================== From 940d346eff9d8b3eb47306464f3be9a9757d7449 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Tue, 23 Apr 2019 13:18:19 +0100 Subject: [PATCH 169/407] [#184][Template] Enabled Data Link Send for all playable infantry --- mission.sqm | 676 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 645 insertions(+), 31 deletions(-) diff --git a/mission.sqm b/mission.sqm index 3e16fbda9..674ec4ab9 100644 --- a/mission.sqm +++ b/mission.sqm @@ -39,6 +39,7 @@ addons[]= "A3_Soft_F_Beta_MRAP_03", "A3_Soft_F_MRAP_01", "A3_Soft_F_Beta_Truck_01", + "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_MRAP_02", "A3_Soft_F_Offroad_01", "A3_Soft_F_Gamma_Van_01", @@ -60,6 +61,7 @@ addons[]= "A3_Modules_F", "A3_Data_F_Exp_A_Virtual", "A3_Air_F_EPC_Plane_CAS_01", + "A3_Characters_F_Jets", "A3_Air_F_Gamma_Plane_Fighter_03", "A3_Air_F_EPC_Plane_CAS_02" }; @@ -67,7 +69,7 @@ class AddonsMetaData { class List { - items=22; + items=23; class Item0 { className="A3_Air_F_Heli"; @@ -139,68 +141,68 @@ class AddonsMetaData url="https://www.arma3.com"; }; class Item10 + { + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item11 { className="A3_Soft_F_Gamma"; name="Arma 3 - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item11 + class Item12 { className="A3_Weapons_F"; name="Arma 3 Alpha - Weapons and Accessories"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item12 + class Item13 { className="A3_Modules_F_Curator"; name="Arma 3 Zeus Update - Scripted Modules"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item13 + class Item14 { className="A3_Modules_F"; name="Arma 3 Alpha - Scripted Modules"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item14 + class Item15 { className="A3_Characters_F"; name="Arma 3 Alpha - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item15 + class Item16 { className="A3_Static_F"; name="Arma 3 Alpha - Turrets"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item16 + class Item17 { className="A3_Data_F_Curator"; name="Arma 3 Zeus Update - Main Configuration"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item17 + class Item18 { className="A3_Characters_F_Exp"; name="Arma 3 Apex - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item18 - { - className="A3_Soft_F_Exp"; - name="Arma 3 Apex - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; - }; class Item19 { className="A3_Data_F_Exp_A"; @@ -216,6 +218,13 @@ class AddonsMetaData url="https://www.arma3.com"; }; class Item21 + { + className="A3_Characters_F_Jets"; + name="Arma 3 Jets - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item22 { className="A3_Air_F_Gamma"; name="Arma 3 - Aircraft"; @@ -342,7 +351,7 @@ class Mission }; id=2; type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; }; class Item3 { @@ -498,6 +507,7 @@ class Mission }; id=10; type="B_APC_Tracked_01_rcws_F"; + atlOffset=-0.17999983; }; class Item11 { @@ -516,6 +526,7 @@ class Mission }; id=11; type="B_APC_Tracked_01_rcws_F"; + atlOffset=-0.17999983; }; class Item12 { @@ -534,6 +545,7 @@ class Mission }; id=12; type="B_APC_Tracked_01_rcws_F"; + atlOffset=-0.17999983; }; class Item13 { @@ -552,6 +564,7 @@ class Mission }; id=13; type="B_APC_Tracked_01_rcws_F"; + atlOffset=-0.17999983; }; class Item14 { @@ -589,7 +602,7 @@ class Mission }; id=15; type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; }; class Item16 { @@ -608,7 +621,7 @@ class Mission }; id=16; type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; }; class Item17 { @@ -628,7 +641,7 @@ class Mission }; id=17; type="I_Heli_Transport_02_F"; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; }; class Item18 { @@ -875,6 +888,7 @@ class Mission }; id=30; type="B_MBT_01_TUSK_F"; + atlOffset=-0.18917751; }; class Item31 { @@ -966,6 +980,7 @@ class Mission }; id=35; type="O_MBT_02_cannon_F"; + atlOffset=-0.18066597; }; class Item36 { @@ -984,6 +999,7 @@ class Mission }; id=36; type="I_MBT_03_cannon_F"; + atlOffset=-0.18000031; }; class Item37 { @@ -1020,6 +1036,7 @@ class Mission }; id=38; type="I_Truck_02_transport_F"; + atlOffset=-5.3405762e-005; }; class Item39 { @@ -1038,6 +1055,7 @@ class Mission }; id=39; type="I_Truck_02_transport_F"; + atlOffset=-5.3405762e-005; }; class Item40 { @@ -1056,6 +1074,7 @@ class Mission }; id=40; type="I_Truck_02_transport_F"; + atlOffset=-5.3405762e-005; }; class Item41 { @@ -1183,6 +1202,7 @@ class Mission }; id=47; type="O_Truck_02_transport_F"; + atlOffset=-5.3405762e-005; }; class Item48 { @@ -1201,6 +1221,7 @@ class Mission }; id=48; type="O_Truck_02_transport_F"; + atlOffset=-5.3405762e-005; }; class Item49 { @@ -1219,6 +1240,7 @@ class Mission }; id=49; type="O_Truck_02_transport_F"; + atlOffset=-5.3405762e-005; }; class Item50 { @@ -1940,6 +1962,7 @@ class Mission }; id=73; type="B_APC_Wheeled_01_cannon_F"; + atlOffset=-0.076682091; }; class Item74 { @@ -1958,6 +1981,7 @@ class Mission }; id=74; type="B_APC_Wheeled_01_cannon_F"; + atlOffset=-0.076682091; }; class Item75 { @@ -2013,6 +2037,7 @@ class Mission }; id=77; type="O_APC_Tracked_02_cannon_F"; + atlOffset=-0.18001461; }; class Item78 { @@ -2032,6 +2057,7 @@ class Mission }; id=78; type="O_APC_Tracked_02_cannon_F"; + atlOffset=-0.18001461; }; class Item79 { @@ -2088,7 +2114,7 @@ class Mission }; id=81; type="I_APC_tracked_03_cannon_F"; - atlOffset=0.19695234; + atlOffset=0.17517948; }; class Item82 { @@ -2107,6 +2133,7 @@ class Mission }; id=82; type="I_APC_tracked_03_cannon_F"; + atlOffset=-0.021772861; }; class Item83 { @@ -5162,6 +5189,7 @@ class Mission name="UnitNATO_CO"; description="NATO Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=191; type="B_officer_F"; @@ -5206,6 +5234,7 @@ class Mission name="UnitNATO_CO_JTAC"; description="NATO JTAC"; isPlayable=1; + reportRemoteTargets=1; }; id=192; type="B_officer_F"; @@ -5249,6 +5278,7 @@ class Mission name="UnitNATO_CO_UAV"; description="NATO UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=193; type="B_soldier_UAV_F"; @@ -5292,6 +5322,7 @@ class Mission name="UnitNATO_CO_M"; description="NATO Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=194; type="B_medic_F"; @@ -5373,6 +5404,7 @@ class Mission name="UnitNATO_DC"; description="NATO Deputy Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=196; type="B_officer_F"; @@ -5417,6 +5449,7 @@ class Mission name="UnitNATO_DC_JTAC"; description="NATO JTAC"; isPlayable=1; + reportRemoteTargets=1; }; id=197; type="B_officer_F"; @@ -5460,6 +5493,7 @@ class Mission name="UnitNATO_DC_UAV"; description="NATO UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=198; type="B_soldier_UAV_F"; @@ -5503,6 +5537,7 @@ class Mission name="UnitNATO_DC_M"; description="NATO Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=199; type="B_medic_F"; @@ -5584,6 +5619,7 @@ class Mission name="UnitNATO_COV_C"; description="NATO Command Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=201; type="B_crew_F"; @@ -5605,6 +5641,7 @@ class Mission name="UnitNATO_COV_G"; description="NATO Command Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=202; type="B_crew_F"; @@ -5625,6 +5662,7 @@ class Mission name="UnitNATO_COV_D"; description="NATO Command Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=203; type="B_crew_F"; @@ -5678,6 +5716,7 @@ class Mission }; }; id=200; + atlOffset=-0.17999983; class CustomAttributes { class Attribute0 @@ -5726,6 +5765,7 @@ class Mission name="UnitNATO_ASL_SL"; description="NATO Alpha Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=205; type="B_Soldier_SL_F"; @@ -5746,6 +5786,7 @@ class Mission name="UnitNATO_ASL_M"; description="NATO Alpha Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=206; type="B_medic_F"; @@ -5804,6 +5845,7 @@ class Mission name="UnitNATO_A1_FTL"; description="NATO Alpha 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=208; type="B_Soldier_TL_F"; @@ -5825,6 +5867,7 @@ class Mission name="UnitNATO_A1_AR1"; description="NATO Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=209; type="B_soldier_AR_F"; @@ -5846,6 +5889,7 @@ class Mission name="UnitNATO_A1_AR2"; description="NATO Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=210; type="B_soldier_AR_F"; @@ -5867,6 +5911,7 @@ class Mission name="UnitNATO_A1_AT"; description="NATO Alpha 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=211; type="B_soldier_LAT_F"; @@ -5887,6 +5932,7 @@ class Mission name="UnitNATO_A1_R1"; description="NATO Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=212; type="B_Soldier_F"; @@ -5907,6 +5953,7 @@ class Mission name="UnitNATO_A1_R2"; description="NATO Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=213; type="B_Soldier_F"; @@ -5965,6 +6012,7 @@ class Mission name="UnitNATO_A2_FTL"; description="NATO Alpha 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=215; type="B_Soldier_TL_F"; @@ -5986,6 +6034,7 @@ class Mission name="UnitNATO_A2_AR1"; description="NATO Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=216; type="B_soldier_AR_F"; @@ -6007,6 +6056,7 @@ class Mission name="UnitNATO_A2_AR2"; description="NATO Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=217; type="B_soldier_AR_F"; @@ -6028,6 +6078,7 @@ class Mission name="UnitNATO_A2_AT"; description="NATO Alpha 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=218; type="B_soldier_LAT_F"; @@ -6048,6 +6099,7 @@ class Mission name="UnitNATO_A2_R1"; description="NATO Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=219; type="B_Soldier_F"; @@ -6068,6 +6120,7 @@ class Mission name="UnitNATO_A2_R2"; description="NATO Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=220; type="B_Soldier_F"; @@ -6126,6 +6179,7 @@ class Mission name="UnitNATO_AV_C"; description="NATO Alpha Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=222; type="B_crew_F"; @@ -6147,6 +6201,7 @@ class Mission name="UnitNATO_AV_G"; description="NATO Alpha Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=223; type="B_crew_F"; @@ -6167,6 +6222,7 @@ class Mission name="UnitNATO_AV_D"; description="NATO Alpha Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=224; type="B_crew_F"; @@ -6220,6 +6276,7 @@ class Mission }; }; id=221; + atlOffset=-0.17999983; class CustomAttributes { class Attribute0 @@ -6268,6 +6325,7 @@ class Mission name="UnitNATO_BSL_SL"; description="NATO Bravo Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=226; type="B_Soldier_SL_F"; @@ -6288,6 +6346,7 @@ class Mission name="UnitNATO_BSL_M"; description="NATO Bravo Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=227; type="B_medic_F"; @@ -6346,6 +6405,7 @@ class Mission name="UnitNATO_B1_FTL"; description="NATO Bravo 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=229; type="B_Soldier_TL_F"; @@ -6367,6 +6427,7 @@ class Mission name="UnitNATO_B1_AR1"; description="NATO Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=230; type="B_soldier_AR_F"; @@ -6388,6 +6449,7 @@ class Mission name="UnitNATO_B1_AR2"; description="NATO Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=231; type="B_soldier_AR_F"; @@ -6409,6 +6471,7 @@ class Mission name="UnitNATO_B1_AT"; description="NATO Bravo 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=232; type="B_soldier_LAT_F"; @@ -6429,6 +6492,7 @@ class Mission name="UnitNATO_B1_R1"; description="NATO Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=233; type="B_Soldier_F"; @@ -6449,6 +6513,7 @@ class Mission name="UnitNATO_B1_R2"; description="NATO Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=234; type="B_Soldier_F"; @@ -6507,6 +6572,7 @@ class Mission name="UnitNATO_B2_FTL"; description="NATO Bravo 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=236; type="B_Soldier_TL_F"; @@ -6528,6 +6594,7 @@ class Mission name="UnitNATO_B2_AR1"; description="NATO Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=237; type="B_soldier_AR_F"; @@ -6549,6 +6616,7 @@ class Mission name="UnitNATO_B2_AR2"; description="NATO Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=238; type="B_soldier_AR_F"; @@ -6570,6 +6638,7 @@ class Mission name="UnitNATO_B2_AT"; description="NATO Bravo 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=239; type="B_soldier_LAT_F"; @@ -6590,6 +6659,7 @@ class Mission name="UnitNATO_B2_R1"; description="NATO Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=240; type="B_Soldier_F"; @@ -6610,6 +6680,7 @@ class Mission name="UnitNATO_B2_R2"; description="NATO Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=241; type="B_Soldier_F"; @@ -6668,6 +6739,7 @@ class Mission name="UnitNATO_BV_C"; description="NATO Bravo Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=243; type="B_crew_F"; @@ -6689,6 +6761,7 @@ class Mission name="UnitNATO_BV_G"; description="NATO Bravo Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=244; type="B_crew_F"; @@ -6709,6 +6782,7 @@ class Mission name="UnitNATO_BV_D"; description="NATO Bravo Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=245; type="B_crew_F"; @@ -6762,6 +6836,7 @@ class Mission }; }; id=242; + atlOffset=-0.17999983; class CustomAttributes { class Attribute0 @@ -6810,6 +6885,7 @@ class Mission name="UnitNATO_CSL_SL"; description="NATO Charlie Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=247; type="B_Soldier_SL_F"; @@ -6853,6 +6929,7 @@ class Mission name="UnitNATO_CSL_M"; description="NATO Charlie Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=248; type="B_medic_F"; @@ -6911,6 +6988,7 @@ class Mission name="UnitNATO_C1_FTL"; description="NATO Charlie 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=250; type="B_Soldier_TL_F"; @@ -6932,6 +7010,7 @@ class Mission name="UnitNATO_C1_AR1"; description="NATO Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=251; type="B_soldier_AR_F"; @@ -6953,6 +7032,7 @@ class Mission name="UnitNATO_C1_AR2"; description="NATO Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=252; type="B_soldier_AR_F"; @@ -6974,6 +7054,7 @@ class Mission name="UnitNATO_C1_AT"; description="NATO Charlie 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=253; type="B_soldier_LAT_F"; @@ -6994,6 +7075,7 @@ class Mission name="UnitNATO_C1_R1"; description="NATO Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=254; type="B_Soldier_F"; @@ -7014,6 +7096,7 @@ class Mission name="UnitNATO_C1_R2"; description="NATO Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=255; type="B_Soldier_F"; @@ -7072,6 +7155,7 @@ class Mission name="UnitNATO_C2_FTL"; description="NATO Charlie 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=257; type="B_Soldier_TL_F"; @@ -7093,6 +7177,7 @@ class Mission name="UnitNATO_C2_AR1"; description="NATO Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=258; type="B_soldier_AR_F"; @@ -7114,6 +7199,7 @@ class Mission name="UnitNATO_C2_AR2"; description="NATO Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=259; type="B_soldier_AR_F"; @@ -7135,6 +7221,7 @@ class Mission name="UnitNATO_C2_AT"; description="NATO Charlie 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=260; type="B_soldier_LAT_F"; @@ -7155,6 +7242,7 @@ class Mission name="UnitNATO_C2_R1"; description="NATO Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=261; type="B_Soldier_F"; @@ -7175,6 +7263,7 @@ class Mission name="UnitNATO_C2_R2"; description="NATO Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=262; type="B_Soldier_F"; @@ -7233,6 +7322,7 @@ class Mission name="UnitNATO_CV_C"; description="NATO Charlie Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=264; type="B_crew_F"; @@ -7254,6 +7344,7 @@ class Mission name="UnitNATO_CV_G"; description="NATO Charlie Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=265; type="B_crew_F"; @@ -7274,6 +7365,7 @@ class Mission name="UnitNATO_CV_D"; description="NATO Charlie Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=266; type="B_crew_F"; @@ -7327,6 +7419,7 @@ class Mission }; }; id=263; + atlOffset=-0.17999983; class CustomAttributes { class Attribute0 @@ -7375,6 +7468,7 @@ class Mission name="UnitNATO_MMG1_TL"; description="NATO Medium MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=268; type="B_Soldier_TL_F"; @@ -7395,6 +7489,7 @@ class Mission name="UnitNATO_MMG1_G"; description="NATO Medium MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=269; type="B_soldier_AR_F"; @@ -7416,6 +7511,7 @@ class Mission name="UnitNATO_MMG1_AG"; description="NATO Medium MG Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1209; type="B_soldier_AAR_F"; @@ -7474,6 +7570,7 @@ class Mission name="UnitNATO_MMG2_TL"; description="NATO Medium MG Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=271; type="B_Soldier_TL_F"; @@ -7494,6 +7591,7 @@ class Mission name="UnitNATO_MMG2_G"; description="NATO Medium MG Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=272; type="B_soldier_AR_F"; @@ -7515,6 +7613,7 @@ class Mission name="UnitNATO_MMG2_AG"; description="NATO Medium MG Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1210; type="B_soldier_AAR_F"; @@ -7573,6 +7672,7 @@ class Mission name="UnitNATO_MAT1_TL"; description="NATO Medium AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=274; type="B_Soldier_TL_F"; @@ -7593,6 +7693,7 @@ class Mission name="UnitNATO_MAT1_G"; description="NATO Medium AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=275; type="B_soldier_AT_F"; @@ -7615,6 +7716,7 @@ class Mission name="UnitNATO_MAT1_AG"; description="NATO Medium AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1211; type="B_soldier_AAT_F"; @@ -7673,6 +7775,7 @@ class Mission name="UnitNATO_MAT2_TL"; description="NATO Medium AT Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=277; type="B_Soldier_TL_F"; @@ -7694,6 +7797,7 @@ class Mission name="UnitNATO_MAT2_G"; description="NATO Medium AT Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=278; type="B_soldier_AT_F"; @@ -7715,6 +7819,7 @@ class Mission name="UnitNATO_MAT2_AG"; description="NATO Medium AT Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1212; type="B_soldier_AAT_F"; @@ -7773,6 +7878,7 @@ class Mission name="UnitNATO_HMG1_TL"; description="NATO Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=280; type="B_Soldier_TL_F"; @@ -7793,6 +7899,7 @@ class Mission name="UnitNATO_HMG1_G"; description="NATO Heavy MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=281; type="B_support_MG_F"; @@ -7851,6 +7958,7 @@ class Mission name="UnitNATO_HAT1_TL"; description="NATO Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=283; type="B_Soldier_TL_F"; @@ -7872,6 +7980,7 @@ class Mission name="UnitNATO_HAT1_G"; description="NATO Heavy AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=284; type="B_soldier_AT_F"; @@ -7893,6 +8002,7 @@ class Mission name="UnitNATO_HAT1_AG"; description="NATO Heavy AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1213; type="B_soldier_AAT_F"; @@ -7951,6 +8061,7 @@ class Mission name="UnitNATO_MTR1_TL"; description="NATO Mortar Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=286; type="B_support_AMort_F"; @@ -7972,6 +8083,7 @@ class Mission name="UnitNATO_MTR1_G"; description="NATO Mortar Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=287; type="B_support_Mort_F"; @@ -8032,10 +8144,11 @@ class Mission name="UnitNATO_MSAM1_TL"; description="NATO Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=289; type="B_soldier_AAA_F"; - atlOffset=0.71470928; + atlOffset=0.71500015; }; class Item1 { @@ -8053,6 +8166,7 @@ class Mission name="UnitNATO_MSAM1_G"; description="NATO Medium SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=290; type="B_soldier_AA_F"; @@ -8074,6 +8188,7 @@ class Mission name="UnitNATO_MSAM1_AG"; description="NATO Medium SAM Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1160; type="B_soldier_AAA_F"; @@ -8085,7 +8200,7 @@ class Mission name="GrpNATO_MSAM1"; }; id=288; - atlOffset=0.71470928; + atlOffset=0.71500015; class CustomAttributes { class Attribute0 @@ -8134,6 +8249,7 @@ class Mission name="UnitNATO_HSAM1_TL"; description="NATO Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=292; type="B_soldier_AAA_F"; @@ -8155,6 +8271,7 @@ class Mission name="UnitNATO_HSAM1_G"; description="NATO Heavy SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=293; type="B_soldier_AA_F"; @@ -8215,6 +8332,7 @@ class Mission name="UnitNATO_ST1_SP"; description="NATO Sniper Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=295; type="B_spotter_F"; @@ -8236,6 +8354,7 @@ class Mission name="UnitNATO_ST1_SN"; description="NATO Sniper Team 1 Sniper"; isPlayable=1; + reportRemoteTargets=1; }; id=296; type="B_sniper_F"; @@ -8296,6 +8415,7 @@ class Mission name="UnitNATO_ENG1_FTL"; description="NATO Engineer Team 1 Leader (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=298; type="B_engineer_F"; @@ -8317,6 +8437,7 @@ class Mission name="UnitNATO_ENG1_A1"; description="NATO Engineer Team 1 Assistant (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=299; type="B_engineer_F"; @@ -8337,6 +8458,7 @@ class Mission name="UnitNATO_ENG1_A2"; description="NATO Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=300; type="B_engineer_F"; @@ -8358,6 +8480,7 @@ class Mission name="UnitNATO_ENG1_A3"; description="NATO Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=301; type="B_engineer_F"; @@ -8418,6 +8541,7 @@ class Mission name="UnitNATO_DT1_TL"; description="NATO Diver Team 1 Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=303; type="B_diver_TL_F"; @@ -8439,6 +8563,7 @@ class Mission name="UnitNATO_DT1_D1"; description="NATO Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=304; type="B_diver_F"; @@ -8460,6 +8585,7 @@ class Mission name="UnitNATO_DT1_D2"; description="NATO Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=305; type="B_diver_F"; @@ -8481,6 +8607,7 @@ class Mission name="UnitNATO_DT1_D3"; description="NATO Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=306; type="B_diver_F"; @@ -8539,6 +8666,7 @@ class Mission name="UnitNATO_IFV1_C"; description="NATO IFV 1 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=308; type="B_crew_F"; @@ -8560,6 +8688,7 @@ class Mission name="UnitNATO_IFV1_G"; description="NATO IFV 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=309; type="B_crew_F"; @@ -8580,6 +8709,7 @@ class Mission name="UnitNATO_IFV1_D"; description="NATO IFV 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=310; type="B_crew_F"; @@ -8633,6 +8763,7 @@ class Mission }; }; id=307; + atlOffset=-0.076682091; class CustomAttributes { class Attribute0 @@ -8681,6 +8812,7 @@ class Mission name="UnitNATO_IFV2_C"; description="NATO IFV 2 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=312; type="B_crew_F"; @@ -8702,6 +8834,7 @@ class Mission name="UnitNATO_IFV2_G"; description="NATO IFV 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=313; type="B_crew_F"; @@ -8722,6 +8855,7 @@ class Mission name="UnitNATO_IFV2_D"; description="NATO IFV 2 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=314; type="B_crew_F"; @@ -8775,6 +8909,7 @@ class Mission }; }; id=311; + atlOffset=-0.076682091; class CustomAttributes { class Attribute0 @@ -8823,6 +8958,7 @@ class Mission name="UnitNATO_TNK1_C"; description="NATO Tank 1 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=316; type="B_crew_F"; @@ -8844,6 +8980,7 @@ class Mission name="UnitNATO_TNK1_G"; description="NATO Tank 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=317; type="B_crew_F"; @@ -8864,6 +9001,7 @@ class Mission name="UnitNATO_TNK1_D"; description="NATO Tank 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=318; type="B_crew_F"; @@ -8917,6 +9055,7 @@ class Mission }; }; id=315; + atlOffset=-0.18917751; class CustomAttributes { class Attribute0 @@ -8965,6 +9104,7 @@ class Mission name="UnitNATO_TH1_P"; description="NATO Transport Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=320; type="B_Helipilot_F"; @@ -8986,6 +9126,7 @@ class Mission name="UnitNATO_TH1_CP"; description="NATO Transport Helo 1 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=321; type="B_Helipilot_F"; @@ -9007,6 +9148,7 @@ class Mission name="UnitNATO_TH1_G1"; description="NATO Transport Helo 1 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=322; type="B_helicrew_F"; @@ -9027,6 +9169,7 @@ class Mission name="UnitNATO_TH1_G2"; description="NATO Transport Helo 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=323; type="B_helicrew_F"; @@ -9139,6 +9282,7 @@ class Mission name="UnitNATO_TH2_P"; description="NATO Transport Helo 2 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=325; type="B_Helipilot_F"; @@ -9160,6 +9304,7 @@ class Mission name="UnitNATO_TH2_CP"; description="NATO Transport Helo 2 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=326; type="B_Helipilot_F"; @@ -9181,6 +9326,7 @@ class Mission name="UnitNATO_TH2_G1"; description="NATO Transport Helo 2 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=327; type="B_helicrew_F"; @@ -9201,6 +9347,7 @@ class Mission name="UnitNATO_TH2_G2"; description="NATO Transport Helo 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=328; type="B_helicrew_F"; @@ -9313,6 +9460,7 @@ class Mission name="UnitNATO_TH3_P"; description="NATO Transport Helo 3 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=330; type="B_Helipilot_F"; @@ -9334,6 +9482,7 @@ class Mission name="UnitNATO_TH3_CP"; description="NATO Transport Helo 3 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=331; type="B_Helipilot_F"; @@ -9355,6 +9504,7 @@ class Mission name="UnitNATO_TH3_G1"; description="NATO Transport Helo 3 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=332; type="B_helicrew_F"; @@ -9375,6 +9525,7 @@ class Mission name="UnitNATO_TH3_G2"; description="NATO Transport Helo 3 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=333; type="B_helicrew_F"; @@ -9488,6 +9639,7 @@ class Mission name="UnitNATO_TH4_P"; description="NATO Transport Helo 4 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=335; type="B_Helipilot_F"; @@ -9509,6 +9661,7 @@ class Mission name="UnitNATO_TH4_CP"; description="NATO Transport Helo 4 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=336; type="B_Helipilot_F"; @@ -9530,6 +9683,7 @@ class Mission name="UnitNATO_TH4_G1"; description="NATO Transport Helo 4 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=337; type="B_helicrew_F"; @@ -9550,6 +9704,7 @@ class Mission name="UnitNATO_TH4_G2"; description="NATO Transport Helo 4 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=338; type="B_helicrew_F"; @@ -9663,6 +9818,7 @@ class Mission name="UnitNATO_TH5_P"; description="NATO Transport Helo 5 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=340; type="B_Helipilot_F"; @@ -9684,6 +9840,7 @@ class Mission name="UnitNATO_TH5_CP"; description="NATO Transport Helo 5 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=341; type="B_Helipilot_F"; @@ -9705,6 +9862,7 @@ class Mission name="UnitNATO_TH5_G1"; description="NATO Transport Helo 5 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=342; type="B_helicrew_F"; @@ -9725,6 +9883,7 @@ class Mission name="UnitNATO_TH5_G2"; description="NATO Transport Helo 5 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=343; type="B_helicrew_F"; @@ -9838,6 +9997,7 @@ class Mission name="UnitNATO_TH6_P"; description="NATO Transport Helo 6 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=345; type="B_Helipilot_F"; @@ -9859,6 +10019,7 @@ class Mission name="UnitNATO_TH6_CP"; description="NATO Transport Helo 6 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=346; type="B_Helipilot_F"; @@ -9880,6 +10041,7 @@ class Mission name="UnitNATO_TH6_G1"; description="NATO Transport Helo 6 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=347; type="B_helicrew_F"; @@ -9900,6 +10062,7 @@ class Mission name="UnitNATO_TH6_G2"; description="NATO Transport Helo 6 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=348; type="B_helicrew_F"; @@ -10013,6 +10176,7 @@ class Mission name="UnitNATO_TH7_P"; description="NATO Transport Helo 7 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=350; type="B_Helipilot_F"; @@ -10034,6 +10198,7 @@ class Mission name="UnitNATO_TH7_CP"; description="NATO Transport Helo 7 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=351; type="B_Helipilot_F"; @@ -10055,6 +10220,7 @@ class Mission name="UnitNATO_TH7_G1"; description="NATO Transport Helo 7 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=352; type="B_helicrew_F"; @@ -10075,6 +10241,7 @@ class Mission name="UnitNATO_TH7_G2"; description="NATO Transport Helo 7 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=353; type="B_helicrew_F"; @@ -10188,6 +10355,7 @@ class Mission name="UnitNATO_TH8_P"; description="NATO Transport Helo 8 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=355; type="B_Helipilot_F"; @@ -10209,6 +10377,7 @@ class Mission name="UnitNATO_TH8_CP"; description="NATO Transport Helo 8 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=356; type="B_Helipilot_F"; @@ -10230,6 +10399,7 @@ class Mission name="UnitNATO_TH8_G1"; description="NATO Transport Helo 8 Crew Chief"; isPlayable=1; + reportRemoteTargets=1; }; id=357; type="B_helicrew_F"; @@ -10250,6 +10420,7 @@ class Mission name="UnitNATO_TH8_G2"; description="NATO Transport Helo 8 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=358; type="B_helicrew_F"; @@ -10363,6 +10534,7 @@ class Mission name="UnitNATO_AH1_P"; description="NATO Attack Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=360; type="B_Helipilot_F"; @@ -10384,6 +10556,7 @@ class Mission name="UnitNATO_AH1_CP"; description="NATO Attack Helo 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=361; type="B_Helipilot_F"; @@ -10476,6 +10649,7 @@ class Mission name="UnitCSAT_CO"; description="CSAT Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=368; type="O_officer_F"; @@ -10520,6 +10694,7 @@ class Mission name="UnitCSAT_CO_JTAC"; description="CSAT JTAC"; isPlayable=1; + reportRemoteTargets=1; }; id=369; type="O_officer_F"; @@ -10563,6 +10738,7 @@ class Mission name="UnitCSAT_CO_UAV"; description="CSAT UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=370; type="O_soldier_UAV_F"; @@ -10606,6 +10782,7 @@ class Mission name="UnitCSAT_CO_M"; description="CSAT Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=371; type="O_medic_F"; @@ -10688,6 +10865,7 @@ class Mission name="UnitCSAT_DC"; description="CSAT Deputy Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=373; type="O_officer_F"; @@ -10710,6 +10888,7 @@ class Mission name="UnitCSAT_DC_JTAC"; description="CSAT JTAC"; isPlayable=1; + reportRemoteTargets=1; }; id=374; type="O_officer_F"; @@ -10730,6 +10909,7 @@ class Mission name="UnitCSAT_DC_UAV"; description="CSAT UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=375; type="O_soldier_UAV_F"; @@ -10773,6 +10953,7 @@ class Mission name="UnitCSAT_DC_M"; description="CSAT Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=376; type="O_medic_F"; @@ -10831,6 +11012,7 @@ class Mission name="UnitCSAT_COV_G"; description="CSAT Command Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=379; type="O_crew_F"; @@ -10851,6 +11033,7 @@ class Mission name="UnitCSAT_COV_D"; description="CSAT Command Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=380; type="O_crew_F"; @@ -10942,6 +11125,7 @@ class Mission name="UnitCSAT_ASL_SL"; description="CSAT Alpha Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=382; type="O_Soldier_SL_F"; @@ -10986,6 +11170,7 @@ class Mission name="UnitCSAT_ASL_M"; description="CSAT Alpha Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=383; type="O_medic_F"; @@ -11068,6 +11253,7 @@ class Mission name="UnitCSAT_A1_FTL"; description="CSAT Alpha 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=385; type="O_Soldier_TL_F"; @@ -11113,6 +11299,7 @@ class Mission name="UnitCSAT_A1_AR1"; description="CSAT Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=386; type="O_Soldier_AR_F"; @@ -11158,6 +11345,7 @@ class Mission name="UnitCSAT_A1_AR2"; description="CSAT Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=387; type="O_Soldier_AR_F"; @@ -11203,6 +11391,7 @@ class Mission name="UnitCSAT_A1_AT"; description="CSAT Alpha 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=388; type="O_Soldier_LAT_F"; @@ -11247,6 +11436,7 @@ class Mission name="UnitCSAT_A1_R1"; description="CSAT Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=389; type="O_Soldier_F"; @@ -11291,6 +11481,7 @@ class Mission name="UnitCSAT_A1_R2"; description="CSAT Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=390; type="O_Soldier_F"; @@ -11373,6 +11564,7 @@ class Mission name="UnitCSAT_A2_FTL"; description="CSAT Alpha 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=392; type="O_Soldier_TL_F"; @@ -11418,6 +11610,7 @@ class Mission name="UnitCSAT_A2_AR1"; description="CSAT Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=393; type="O_Soldier_AR_F"; @@ -11463,6 +11656,7 @@ class Mission name="UnitCSAT_A2_AR2"; description="CSAT Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=394; type="O_Soldier_AR_F"; @@ -11508,6 +11702,7 @@ class Mission name="UnitCSAT_A2_AT"; description="CSAT Alpha 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=395; type="O_Soldier_LAT_F"; @@ -11552,6 +11747,7 @@ class Mission name="UnitCSAT_A2_R1"; description="CSAT Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=396; type="O_Soldier_F"; @@ -11596,6 +11792,7 @@ class Mission name="UnitCSAT_A2_R2"; description="CSAT Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=397; type="O_Soldier_F"; @@ -11677,6 +11874,7 @@ class Mission name="UnitCSAT_AV_G"; description="CSAT Alpha Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=400; type="O_crew_F"; @@ -11697,6 +11895,7 @@ class Mission name="UnitCSAT_AV_D"; description="CSAT Alpha Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=401; type="O_crew_F"; @@ -11788,6 +11987,7 @@ class Mission name="UnitCSAT_BSL_SL"; description="CSAT Bravo Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=403; type="O_Soldier_SL_F"; @@ -11832,6 +12032,7 @@ class Mission name="UnitCSAT_BSL_M"; description="CSAT Bravo Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=404; type="O_medic_F"; @@ -11914,6 +12115,7 @@ class Mission name="UnitCSAT_B1_FTL"; description="CSAT Bravo 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=406; type="O_Soldier_TL_F"; @@ -11959,6 +12161,7 @@ class Mission name="UnitCSAT_B1_AR1"; description="CSAT Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=407; type="O_Soldier_AR_F"; @@ -12004,6 +12207,7 @@ class Mission name="UnitCSAT_B1_AR2"; description="CSAT Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=408; type="O_Soldier_AR_F"; @@ -12049,6 +12253,7 @@ class Mission name="UnitCSAT_B1_AT"; description="CSAT Bravo 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=409; type="O_Soldier_LAT_F"; @@ -12093,6 +12298,7 @@ class Mission name="UnitCSAT_B1_R1"; description="CSAT Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=410; type="O_Soldier_F"; @@ -12137,6 +12343,7 @@ class Mission name="UnitCSAT_B1_R2"; description="CSAT Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=411; type="O_Soldier_F"; @@ -12219,6 +12426,7 @@ class Mission name="UnitCSAT_B2_FTL"; description="CSAT Bravo 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=413; type="O_Soldier_TL_F"; @@ -12264,6 +12472,7 @@ class Mission name="UnitCSAT_B2_AR1"; description="CSAT Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=414; type="O_Soldier_AR_F"; @@ -12309,6 +12518,7 @@ class Mission name="UnitCSAT_B2_AR2"; description="CSAT Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=415; type="O_Soldier_AR_F"; @@ -12354,6 +12564,7 @@ class Mission name="UnitCSAT_B2_AT"; description="CSAT Bravo 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=416; type="O_Soldier_LAT_F"; @@ -12398,6 +12609,7 @@ class Mission name="UnitCSAT_B2_R1"; description="CSAT Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=417; type="O_Soldier_F"; @@ -12442,6 +12654,7 @@ class Mission name="UnitCSAT_B2_R2"; description="CSAT Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=418; type="O_Soldier_F"; @@ -12523,6 +12736,7 @@ class Mission name="UnitCSAT_BV_G"; description="CSAT Bravo Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=421; type="O_crew_F"; @@ -12566,6 +12780,7 @@ class Mission name="UnitCSAT_BV_D"; description="CSAT Bravo Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=422; type="O_crew_F"; @@ -12657,6 +12872,7 @@ class Mission name="UnitCSAT_CSL_SL"; description="CSAT Charlie Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=424; type="O_Soldier_SL_F"; @@ -12701,6 +12917,7 @@ class Mission name="UnitCSAT_CSL_M"; description="CSAT Charlie Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=425; type="O_medic_F"; @@ -12783,6 +13000,7 @@ class Mission name="UnitCSAT_C1_FTL"; description="CSAT Charlie 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=427; type="O_Soldier_TL_F"; @@ -12828,6 +13046,7 @@ class Mission name="UnitCSAT_C1_AR1"; description="CSAT Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=428; type="O_Soldier_AR_F"; @@ -12873,6 +13092,7 @@ class Mission name="UnitCSAT_C1_AR2"; description="CSAT Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=429; type="O_Soldier_AR_F"; @@ -12918,6 +13138,7 @@ class Mission name="UnitCSAT_C1_AT"; description="CSAT Charlie 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=430; type="O_Soldier_LAT_F"; @@ -12962,6 +13183,7 @@ class Mission name="UnitCSAT_C1_R1"; description="CSAT Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=431; type="O_Soldier_F"; @@ -13006,6 +13228,7 @@ class Mission name="UnitCSAT_C1_R2"; description="CSAT Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=432; type="O_Soldier_F"; @@ -13088,6 +13311,7 @@ class Mission name="UnitCSAT_C2_FTL"; description="CSAT Charlie 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=434; type="O_Soldier_TL_F"; @@ -13133,6 +13357,7 @@ class Mission name="UnitCSAT_C2_AR1"; description="CSAT Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=435; type="O_Soldier_AR_F"; @@ -13178,6 +13403,7 @@ class Mission name="UnitCSAT_C2_AR2"; description="CSAT Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=436; type="O_Soldier_AR_F"; @@ -13223,6 +13449,7 @@ class Mission name="UnitCSAT_C2_AT"; description="CSAT Charlie 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=437; type="O_Soldier_LAT_F"; @@ -13267,6 +13494,7 @@ class Mission name="UnitCSAT_C2_R1"; description="CSAT Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=438; type="O_Soldier_F"; @@ -13311,6 +13539,7 @@ class Mission name="UnitCSAT_C2_R2"; description="CSAT Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=439; type="O_Soldier_F"; @@ -13392,6 +13621,7 @@ class Mission name="UnitCSAT_CV_G"; description="CSAT Charlie Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=442; type="O_crew_F"; @@ -13412,6 +13642,7 @@ class Mission name="UnitCSAT_CV_D"; description="CSAT Charlie Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=443; type="O_crew_F"; @@ -13503,6 +13734,7 @@ class Mission name="UnitCSAT_MMG1_TL"; description="CSAT Medium MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=445; type="O_Soldier_TL_F"; @@ -13547,6 +13779,7 @@ class Mission name="UnitCSAT_MMG1_G"; description="CSAT Medium MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=446; type="O_Soldier_AR_F"; @@ -13592,6 +13825,7 @@ class Mission name="UnitCSAT_MMG1_AG"; description="CSAT Medium MG Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1229; type="O_Soldier_AAR_F"; @@ -13651,6 +13885,7 @@ class Mission name="UnitCSAT_MMG2_TL"; description="CSAT Medium MG Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=448; type="O_Soldier_TL_F"; @@ -13695,6 +13930,7 @@ class Mission name="UnitCSAT_MMG2_G"; description="CSAT Medium MG Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=449; type="O_Soldier_AR_F"; @@ -13740,6 +13976,7 @@ class Mission name="UnitCSAT_MMG2_AG"; description="CSAT Medium MG Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1230; type="O_Soldier_AAR_F"; @@ -13798,6 +14035,7 @@ class Mission name="UnitCSAT_MAT1_TL"; description="CSAT Medium AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=451; type="O_Soldier_TL_F"; @@ -13841,6 +14079,7 @@ class Mission name="UnitCSAT_MAT1_G"; description="CSAT Medium AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=452; type="O_Soldier_AT_F"; @@ -13885,6 +14124,7 @@ class Mission name="UnitCSAT_MAT1_AG"; description="CSAT Medium AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1231; type="O_Soldier_AAT_F"; @@ -13943,6 +14183,7 @@ class Mission name="UnitCSAT_MAT2_TL"; description="CSAT Medium AT Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=454; type="O_Soldier_TL_F"; @@ -13986,6 +14227,7 @@ class Mission name="UnitCSAT_MAT2_G"; description="CSAT Medium AT Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=455; type="O_Soldier_AT_F"; @@ -14030,6 +14272,7 @@ class Mission name="UnitCSAT_MAT2_AG"; description="CSAT Medium AT Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1232; type="O_Soldier_AAT_F"; @@ -14088,6 +14331,7 @@ class Mission name="UnitCSAT_HMG1_TL"; description="CSAT Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=457; type="O_Soldier_TL_F"; @@ -14131,6 +14375,7 @@ class Mission name="UnitCSAT_HMG1_G"; description="CSAT Heavy MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=458; type="O_Soldier_AR_F"; @@ -14212,6 +14457,7 @@ class Mission name="UnitCSAT_HAT1_TL"; description="CSAT Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=460; type="O_Soldier_TL_F"; @@ -14255,6 +14501,7 @@ class Mission name="UnitCSAT_HAT1_G"; description="CSAT Heavy AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=461; type="O_Soldier_AT_F"; @@ -14299,6 +14546,7 @@ class Mission name="UnitCSAT_HAT1_AG"; description="CSAT Heavy AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1233; type="O_Soldier_AAT_F"; @@ -14357,6 +14605,7 @@ class Mission name="UnitCSAT_MTR1_TL"; description="CSAT Mortar Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=463; type="O_support_AMort_F"; @@ -14400,6 +14649,7 @@ class Mission name="UnitCSAT_MTR1_G"; description="CSAT Mortar Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=464; type="O_support_Mort_F"; @@ -14481,6 +14731,7 @@ class Mission name="UnitCSAT_MSAM1_TL"; description="CSAT Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=466; type="O_Soldier_AAA_F"; @@ -14524,6 +14775,7 @@ class Mission name="UnitCSAT_MSAM1_G"; description="CSAT Medium SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=467; type="O_Soldier_AA_F"; @@ -14568,6 +14820,7 @@ class Mission name="UnitCSAT_MSAM1_AG"; description="CSAT Medium SAM Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1208; type="O_Soldier_AAA_F"; @@ -14626,6 +14879,7 @@ class Mission name="UnitCSAT_HSAM1_TL"; description="CSAT Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=469; type="O_Soldier_AAA_F"; @@ -14669,6 +14923,7 @@ class Mission name="UnitCSAT_HSAM1_G"; description="CSAT Heavy SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=470; type="O_Soldier_AA_F"; @@ -14750,6 +15005,7 @@ class Mission name="UnitCSAT_ST1_SP"; description="CSAT Sniper Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=472; type="O_spotter_F"; @@ -14793,6 +15049,7 @@ class Mission name="UnitCSAT_ST1_SN"; description="CSAT Sniper Team 1 Sniper"; isPlayable=1; + reportRemoteTargets=1; }; id=473; type="O_sniper_F"; @@ -14874,6 +15131,7 @@ class Mission name="UnitCSAT_ENG1_FTL"; description="CSAT Engineer Team 1 Leader (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=475; type="O_engineer_F"; @@ -14917,6 +15175,7 @@ class Mission name="UnitCSAT_ENG1_A1"; description="CSAT Engineer Team 1 Assistant (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=476; type="O_engineer_F"; @@ -14960,6 +15219,7 @@ class Mission name="UnitCSAT_ENG1_A2"; description="CSAT Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=477; type="O_engineer_F"; @@ -15003,6 +15263,7 @@ class Mission name="UnitCSAT_ENG1_A3"; description="CSAT Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=478; type="O_engineer_F"; @@ -15084,6 +15345,7 @@ class Mission name="UnitCSAT_DT1_TL"; description="CSAT Diver Team 1 Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=480; type="O_diver_TL_F"; @@ -15128,6 +15390,7 @@ class Mission name="UnitCSAT_DT1_D1"; description="CSAT Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=481; type="O_diver_F"; @@ -15172,6 +15435,7 @@ class Mission name="UnitCSAT_DT1_D2"; description="CSAT Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=482; type="O_diver_F"; @@ -15216,6 +15480,7 @@ class Mission name="UnitCSAT_DT1_D3"; description="CSAT Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=483; type="O_diver_F"; @@ -15297,6 +15562,7 @@ class Mission name="UnitCSAT_IFV1_C"; description="CSAT IFV 1 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=485; type="O_crew_F"; @@ -15341,6 +15607,7 @@ class Mission name="UnitCSAT_IFV1_G"; description="CSAT IFV 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=486; type="O_crew_F"; @@ -15361,6 +15628,7 @@ class Mission name="UnitCSAT_IFV1_D"; description="CSAT IFV 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=487; type="O_crew_F"; @@ -15414,6 +15682,7 @@ class Mission }; }; id=484; + atlOffset=-0.18001461; class CustomAttributes { class Attribute0 @@ -15462,6 +15731,7 @@ class Mission name="UnitCSAT_IFV2_C"; description="CSAT IFV 2 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=489; type="O_crew_F"; @@ -15483,6 +15753,7 @@ class Mission name="UnitCSAT_IFV2_G"; description="CSAT IFV 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=490; type="O_crew_F"; @@ -15503,6 +15774,7 @@ class Mission name="UnitCSAT_IFV2_D"; description="CSAT IFV 2 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=491; type="O_crew_F"; @@ -15556,6 +15828,7 @@ class Mission }; }; id=488; + atlOffset=-0.18001461; class CustomAttributes { class Attribute0 @@ -15604,6 +15877,7 @@ class Mission name="UnitCSAT_TNK1_C"; description="CSAT Tank 1 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=493; type="O_crew_F"; @@ -15625,6 +15899,7 @@ class Mission name="UnitCSAT_TNK1_G"; description="CSAT Tank 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=494; type="O_crew_F"; @@ -15645,6 +15920,7 @@ class Mission name="UnitCSAT_TNK1_D"; description="CSAT Tank 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=495; type="O_crew_F"; @@ -15698,6 +15974,7 @@ class Mission }; }; id=492; + atlOffset=-0.18066597; class CustomAttributes { class Attribute0 @@ -15746,6 +16023,7 @@ class Mission name="UnitCSAT_TH1_P"; description="CSAT Transport Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=497; type="O_helipilot_F"; @@ -15767,6 +16045,7 @@ class Mission name="UnitCSAT_TH1_CP"; description="CSAT Transport Helo 1 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=498; type="O_helipilot_F"; @@ -15788,6 +16067,7 @@ class Mission name="UnitCSAT_TH1_LM"; description="CSAT Transport Helo 1 Loadmaster"; isPlayable=1; + reportRemoteTargets=1; }; id=499; type="O_helicrew_F"; @@ -15912,6 +16192,7 @@ class Mission name="UnitCSAT_TH2_P"; description="CSAT Transport Helo 2 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=501; type="O_helipilot_F"; @@ -15933,6 +16214,7 @@ class Mission name="UnitCSAT_TH2_CP"; description="CSAT Transport Helo 2 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=502; type="O_helipilot_F"; @@ -15954,6 +16236,7 @@ class Mission name="UnitCSAT_TH2_LM"; description="CSAT Transport Helo 2 Loadmaster"; isPlayable=1; + reportRemoteTargets=1; }; id=503; type="O_helicrew_F"; @@ -16078,6 +16361,7 @@ class Mission name="UnitCSAT_TH3_P"; description="CSAT Transport Helo 3 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=505; type="O_helipilot_F"; @@ -16099,6 +16383,7 @@ class Mission name="UnitCSAT_TH3_CP"; description="CSAT Transport Helo 3 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=506; type="O_helipilot_F"; @@ -16189,6 +16474,7 @@ class Mission name="UnitCSAT_TH4_P"; description="CSAT Transport Helo 4 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=508; type="O_helipilot_F"; @@ -16210,6 +16496,7 @@ class Mission name="UnitCSAT_TH4_CP"; description="CSAT Transport Helo 4 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=509; type="O_helipilot_F"; @@ -16300,6 +16587,7 @@ class Mission name="UnitCSAT_TH5_P"; description="CSAT Transport Helo 5 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=511; type="O_helipilot_F"; @@ -16321,6 +16609,7 @@ class Mission name="UnitCSAT_TH5_CP"; description="CSAT Transport Helo 5 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=512; type="O_helipilot_F"; @@ -16411,6 +16700,7 @@ class Mission name="UnitCSAT_TH6_P"; description="CSAT Transport Helo 6 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=514; type="O_helipilot_F"; @@ -16432,6 +16722,7 @@ class Mission name="UnitCSAT_TH6_CP"; description="CSAT Transport Helo 6 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=515; type="O_helipilot_F"; @@ -16522,6 +16813,7 @@ class Mission name="UnitCSAT_TH7_P"; description="CSAT Transport Helo 7 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=517; type="O_helipilot_F"; @@ -16543,6 +16835,7 @@ class Mission name="UnitCSAT_TH7_CP"; description="CSAT Transport Helo 7 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=518; type="O_helipilot_F"; @@ -16633,6 +16926,7 @@ class Mission name="UnitCSAT_TH8_P"; description="CSAT Transport Helo 8 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=520; type="O_helipilot_F"; @@ -16654,6 +16948,7 @@ class Mission name="UnitCSAT_TH8_CP"; description="CSAT Transport Helo 8 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=521; type="O_helipilot_F"; @@ -16744,6 +17039,7 @@ class Mission name="UnitCSAT_AH1_P"; description="CSAT Attack Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=523; type="O_helipilot_F"; @@ -16788,6 +17084,7 @@ class Mission name="UnitCSAT_AH1_CP"; description="CSAT Attack Helo 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=524; type="O_helipilot_F"; @@ -16878,6 +17175,7 @@ class Mission name="UnitAAF_CO"; description="AAF Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=531; type="I_officer_F"; @@ -16899,6 +17197,7 @@ class Mission name="UnitAAF_CO_JTAC"; description="AAF Forward Observer"; isPlayable=1; + reportRemoteTargets=1; }; id=532; type="I_officer_F"; @@ -16919,6 +17218,7 @@ class Mission name="UnitAAF_CO_UAV"; description="AAF UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=533; type="I_soldier_UAV_F"; @@ -16939,6 +17239,7 @@ class Mission name="UnitAAF_CO_M"; description="AAF Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=534; type="I_medic_F"; @@ -16997,6 +17298,7 @@ class Mission name="UnitAAF_DC"; description="AAF Deputy Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=536; type="I_officer_F"; @@ -17018,6 +17320,7 @@ class Mission name="UnitAAF_DC_JTAC"; description="AAF Forward Observer"; isPlayable=1; + reportRemoteTargets=1; }; id=537; type="I_officer_F"; @@ -17038,6 +17341,7 @@ class Mission name="UnitAAF_DC_UAV"; description="AAF UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=538; type="I_soldier_UAV_F"; @@ -17058,6 +17362,7 @@ class Mission name="UnitAAF_DC_M"; description="AAF Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=539; type="I_medic_F"; @@ -17117,6 +17422,7 @@ class Mission name="UnitAAF_COV_C"; description="AAF Command Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=541; type="I_crew_F"; @@ -17138,6 +17444,7 @@ class Mission name="UnitAAF_COV_G"; description="AAF Command Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=542; type="I_crew_F"; @@ -17158,6 +17465,7 @@ class Mission name="UnitAAF_COV_D"; description="AAF Command Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=543; type="I_crew_F"; @@ -17259,6 +17567,7 @@ class Mission name="UnitAAF_ASL_SL"; description="AAF Alpha Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=545; type="I_Soldier_SL_F"; @@ -17279,6 +17588,7 @@ class Mission name="UnitAAF_ASL_M"; description="AAF Alpha Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=546; type="I_medic_F"; @@ -17337,6 +17647,7 @@ class Mission name="UnitAAF_A1_FTL"; description="AAF Alpha 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=548; type="I_Soldier_TL_F"; @@ -17358,6 +17669,7 @@ class Mission name="UnitAAF_A1_AR1"; description="AAF Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=549; type="I_Soldier_AR_F"; @@ -17379,6 +17691,7 @@ class Mission name="UnitAAF_A1_AR2"; description="AAF Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=550; type="I_Soldier_AR_F"; @@ -17400,6 +17713,7 @@ class Mission name="UnitAAF_A1_AT"; description="AAF Alpha 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=551; type="I_Soldier_LAT_F"; @@ -17420,6 +17734,7 @@ class Mission name="UnitAAF_A1_R1"; description="AAF Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=552; type="I_soldier_F"; @@ -17440,6 +17755,7 @@ class Mission name="UnitAAF_A1_R2"; description="AAF Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=553; type="I_soldier_F"; @@ -17498,6 +17814,7 @@ class Mission name="UnitAAF_A2_FTL"; description="AAF Alpha 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=555; type="I_Soldier_TL_F"; @@ -17519,6 +17836,7 @@ class Mission name="UnitAAF_A2_AR1"; description="AAF Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=556; type="I_Soldier_AR_F"; @@ -17540,6 +17858,7 @@ class Mission name="UnitAAF_A2_AR2"; description="AAF Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=557; type="I_Soldier_AR_F"; @@ -17561,6 +17880,7 @@ class Mission name="UnitAAF_A2_AT"; description="AAF Alpha 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=558; type="I_Soldier_LAT_F"; @@ -17581,6 +17901,7 @@ class Mission name="UnitAAF_A2_R1"; description="AAF Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=559; type="I_soldier_F"; @@ -17601,6 +17922,7 @@ class Mission name="UnitAAF_A2_R2"; description="AAF Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=560; type="I_soldier_F"; @@ -17659,6 +17981,7 @@ class Mission name="UnitAAF_AV_C"; description="AAF Alpha Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=562; type="I_crew_F"; @@ -17680,6 +18003,7 @@ class Mission name="UnitAAF_AV_G"; description="AAF Alpha Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=563; type="I_crew_F"; @@ -17700,6 +18024,7 @@ class Mission name="UnitAAF_AV_D"; description="AAF Alpha Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=564; type="I_crew_F"; @@ -17801,6 +18126,7 @@ class Mission name="UnitAAF_BSL_SL"; description="AAF Bravo Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=566; type="I_Soldier_SL_F"; @@ -17821,6 +18147,7 @@ class Mission name="UnitAAF_BSL_M"; description="AAF Bravo Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=567; type="I_medic_F"; @@ -17879,6 +18206,7 @@ class Mission name="UnitAAF_B1_FTL"; description="AAF Bravo 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=569; type="I_Soldier_TL_F"; @@ -17900,6 +18228,7 @@ class Mission name="UnitAAF_B1_AR1"; description="AAF Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=570; type="I_Soldier_AR_F"; @@ -17921,6 +18250,7 @@ class Mission name="UnitAAF_B1_AR2"; description="AAF Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=571; type="I_Soldier_AR_F"; @@ -17942,6 +18272,7 @@ class Mission name="UnitAAF_B1_AT"; description="AAF Bravo 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=572; type="I_Soldier_LAT_F"; @@ -17962,6 +18293,7 @@ class Mission name="UnitAAF_B1_R1"; description="AAF Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=573; type="I_soldier_F"; @@ -17982,6 +18314,7 @@ class Mission name="UnitAAF_B1_R2"; description="AAF Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=574; type="I_soldier_F"; @@ -18040,6 +18373,7 @@ class Mission name="UnitAAF_B2_FTL"; description="AAF Bravo 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=576; type="I_Soldier_TL_F"; @@ -18061,6 +18395,7 @@ class Mission name="UnitAAF_B2_AR1"; description="AAF Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=577; type="I_Soldier_AR_F"; @@ -18082,6 +18417,7 @@ class Mission name="UnitAAF_B2_AR2"; description="AAF Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=578; type="I_Soldier_AR_F"; @@ -18103,6 +18439,7 @@ class Mission name="UnitAAF_B2_AT"; description="AAF Bravo 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=579; type="I_Soldier_LAT_F"; @@ -18123,6 +18460,7 @@ class Mission name="UnitAAF_B2_R1"; description="AAF Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=580; type="I_soldier_F"; @@ -18143,6 +18481,7 @@ class Mission name="UnitAAF_B2_R2"; description="AAF Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=581; type="I_soldier_F"; @@ -18201,6 +18540,7 @@ class Mission name="UnitAAF_BV_C"; description="AAF Bravo Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=583; type="I_crew_F"; @@ -18222,6 +18562,7 @@ class Mission name="UnitAAF_BV_G"; description="AAF Bravo Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=584; type="I_crew_F"; @@ -18242,6 +18583,7 @@ class Mission name="UnitAAF_BV_D"; description="AAF Bravo Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=585; type="I_crew_F"; @@ -18343,6 +18685,7 @@ class Mission name="UnitAAF_CSL_SL"; description="AAF Charlie Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=587; type="I_Soldier_SL_F"; @@ -18363,6 +18706,7 @@ class Mission name="UnitAAF_CSL_M"; description="AAF Charlie Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=588; type="I_medic_F"; @@ -18421,6 +18765,7 @@ class Mission name="UnitAAF_C1_FTL"; description="AAF Charlie 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=590; type="I_Soldier_TL_F"; @@ -18442,6 +18787,7 @@ class Mission name="UnitAAF_C1_AR1"; description="AAF Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=591; type="I_Soldier_AR_F"; @@ -18463,6 +18809,7 @@ class Mission name="UnitAAF_C1_AR2"; description="AAF Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=592; type="I_Soldier_AR_F"; @@ -18484,6 +18831,7 @@ class Mission name="UnitAAF_C1_AT"; description="AAF Charlie 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=593; type="I_Soldier_LAT_F"; @@ -18504,6 +18852,7 @@ class Mission name="UnitAAF_C1_R1"; description="AAF Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=594; type="I_soldier_F"; @@ -18524,6 +18873,7 @@ class Mission name="UnitAAF_C1_R2"; description="AAF Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=595; type="I_soldier_F"; @@ -18582,6 +18932,7 @@ class Mission name="UnitAAF_C2_FTL"; description="AAF Charlie 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=597; type="I_Soldier_TL_F"; @@ -18603,6 +18954,7 @@ class Mission name="UnitAAF_C2_AR1"; description="AAF Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=598; type="I_Soldier_AR_F"; @@ -18624,6 +18976,7 @@ class Mission name="UnitAAF_C2_AR2"; description="AAF Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=599; type="I_Soldier_AR_F"; @@ -18645,6 +18998,7 @@ class Mission name="UnitAAF_C2_AT"; description="AAF Charlie 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=600; type="I_Soldier_LAT_F"; @@ -18665,6 +19019,7 @@ class Mission name="UnitAAF_C2_R1"; description="AAF Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=601; type="I_soldier_F"; @@ -18685,6 +19040,7 @@ class Mission name="UnitAAF_C2_R2"; description="AAF Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=602; type="I_soldier_F"; @@ -18743,6 +19099,7 @@ class Mission name="UnitAAF_CV_C"; description="AAF Charlie Vehicle Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=604; type="I_crew_F"; @@ -18764,6 +19121,7 @@ class Mission name="UnitAAF_CV_G"; description="AAF Charlie Vehicle Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=605; type="I_crew_F"; @@ -18784,6 +19142,7 @@ class Mission name="UnitAAF_CV_D"; description="AAF Charlie Vehicle Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=606; type="I_crew_F"; @@ -18885,6 +19244,7 @@ class Mission name="UnitAAF_MMG1_TL"; description="AAF Medium MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=608; type="I_Soldier_TL_F"; @@ -18905,6 +19265,7 @@ class Mission name="UnitAAF_MMG1_G"; description="AAF Medium MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=609; type="I_Soldier_AR_F"; @@ -18926,6 +19287,7 @@ class Mission name="UnitAAF_MMG1_AG"; description="AAF Medium MG Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1224; type="I_Soldier_AAR_F"; @@ -18984,6 +19346,7 @@ class Mission name="UnitAAF_MMG2_TL"; description="AAF Medium MG Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=611; type="I_Soldier_TL_F"; @@ -19004,6 +19367,7 @@ class Mission name="UnitAAF_MMG2_G"; description="AAF Medium MG Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=612; type="I_Soldier_AR_F"; @@ -19025,6 +19389,7 @@ class Mission name="UnitAAF_MMG2_AG"; description="AAF Medium MG Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1225; type="I_Soldier_AAR_F"; @@ -19084,6 +19449,7 @@ class Mission name="UnitAAF_MAT1_TL"; description="AAF Medium AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=614; type="I_Soldier_TL_F"; @@ -19104,6 +19470,7 @@ class Mission name="UnitAAF_MAT1_G"; description="AAF Medium AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=615; type="I_Soldier_AT_F"; @@ -19126,6 +19493,7 @@ class Mission name="UnitAAF_MAT1_AG"; description="AAF Medium AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1226; type="I_Soldier_AAT_F"; @@ -19184,6 +19552,7 @@ class Mission name="UnitAAF_MAT2_TL"; description="AAF Medium AT Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=617; type="I_Soldier_TL_F"; @@ -19204,6 +19573,7 @@ class Mission name="UnitAAF_MAT2_G"; description="AAF Medium AT Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=618; type="I_Soldier_AT_F"; @@ -19225,6 +19595,7 @@ class Mission name="UnitAAF_MAT2_AG"; description="AAF Medium AT Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1227; type="I_Soldier_AAT_F"; @@ -19283,6 +19654,7 @@ class Mission name="UnitAAF_HMG1_TL"; description="AAF Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=620; type="I_Soldier_TL_F"; @@ -19303,6 +19675,7 @@ class Mission name="UnitAAF_HMG1_G"; description="AAF Heavy MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=621; type="I_support_MG_F"; @@ -19361,6 +19734,7 @@ class Mission name="UnitAAF_HAT1_TL"; description="AAF Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=623; type="I_Soldier_TL_F"; @@ -19381,6 +19755,7 @@ class Mission name="UnitAAF_HAT1_G"; description="AAF Heavy AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=624; type="I_Soldier_AT_F"; @@ -19402,6 +19777,7 @@ class Mission name="UnitAAF_HAT1_AG"; description="AAF Heavy AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1228; type="I_Soldier_AAT_F"; @@ -19460,6 +19836,7 @@ class Mission name="UnitAAF_MTR1_TL"; description="AAF Mortar Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=626; type="I_support_AMort_F"; @@ -19480,6 +19857,7 @@ class Mission name="UnitAAF_MTR1_G"; description="AAF Mortar Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=627; type="I_support_Mort_F"; @@ -19538,6 +19916,7 @@ class Mission name="UnitAAF_MSAM1_TL"; description="AAF Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=629; type="I_Soldier_AAA_F"; @@ -19558,6 +19937,7 @@ class Mission name="UnitAAF_MSAM1_G"; description="AAF Medium SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=630; type="I_Soldier_AA_F"; @@ -19579,6 +19959,7 @@ class Mission name="UnitAAF_MSAM1_AG"; description="AAF Medium SAM Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1196; type="I_Soldier_AAA_F"; @@ -19637,6 +20018,7 @@ class Mission name="UnitAAF_HSAM1_TL"; description="AAF Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=632; type="I_Soldier_AAA_F"; @@ -19657,6 +20039,7 @@ class Mission name="UnitAAF_HSAM1_G"; description="AAF Heavy SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=633; type="I_Soldier_AA_F"; @@ -19715,6 +20098,7 @@ class Mission name="UnitAAF_ST1_SP"; description="AAF Sniper Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=635; type="I_Spotter_F"; @@ -19735,6 +20119,7 @@ class Mission name="UnitAAF_ST1_SN"; description="AAF Sniper Team 1 Sniper"; isPlayable=1; + reportRemoteTargets=1; }; id=636; type="I_Sniper_F"; @@ -19792,6 +20177,7 @@ class Mission name="UnitAAF_ENG1_FTL"; description="AAF Engineer Team 1 Leader (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=638; type="I_engineer_F"; @@ -19812,6 +20198,7 @@ class Mission name="UnitAAF_ENG1_A1"; description="AAF Engineer Team 1 Assistant (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=639; type="I_engineer_F"; @@ -19832,6 +20219,7 @@ class Mission name="UnitAAF_ENG1_A2"; description="AAF Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=640; type="I_engineer_F"; @@ -19852,6 +20240,7 @@ class Mission name="UnitAAF_ENG1_A3"; description="AAF Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=641; type="I_engineer_F"; @@ -19910,6 +20299,7 @@ class Mission name="UnitAAF_DT1_TL"; description="AAF Diver Team 1 Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=643; type="I_diver_F"; @@ -19931,6 +20321,7 @@ class Mission name="UnitAAF_DT1_D1"; description="AAF Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=644; type="I_diver_F"; @@ -19952,6 +20343,7 @@ class Mission name="UnitAAF_DT1_D2"; description="AAF Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=645; type="I_diver_F"; @@ -19973,6 +20365,7 @@ class Mission name="UnitAAF_DT1_D3"; description="AAF Diver Team 1 Diver"; isPlayable=1; + reportRemoteTargets=1; }; id=646; type="I_diver_F"; @@ -20031,6 +20424,7 @@ class Mission name="UnitAAF_IFV1_C"; description="AAF IFV 1 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=648; type="I_crew_F"; @@ -20053,6 +20447,7 @@ class Mission name="UnitAAF_IFV1_G"; description="AAF IFV 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=649; type="I_crew_F"; @@ -20074,6 +20469,7 @@ class Mission name="UnitAAF_IFV1_D"; description="AAF IFV 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=650; type="I_crew_F"; @@ -20128,7 +20524,7 @@ class Mission }; }; id=647; - atlOffset=0.19695234; + atlOffset=0.17517948; class CustomAttributes { class Attribute0 @@ -20177,6 +20573,7 @@ class Mission name="UnitAAF_IFV2_C"; description="AAF IFV 2 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=652; type="I_crew_F"; @@ -20198,6 +20595,7 @@ class Mission name="UnitAAF_IFV2_G"; description="AAF IFV 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=653; type="I_crew_F"; @@ -20218,6 +20616,7 @@ class Mission name="UnitAAF_IFV2_D"; description="AAF IFV 2 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=654; type="I_crew_F"; @@ -20271,6 +20670,7 @@ class Mission }; }; id=651; + atlOffset=-0.021772861; class CustomAttributes { class Attribute0 @@ -20319,6 +20719,7 @@ class Mission name="UnitAAF_TNK1_C"; description="AAF Tank 1 Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=656; type="I_crew_F"; @@ -20340,6 +20741,7 @@ class Mission name="UnitAAF_TNK1_G"; description="AAF Tank 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=657; type="I_crew_F"; @@ -20360,6 +20762,7 @@ class Mission name="UnitAAF_TNK1_D"; description="AAF Tank 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=658; type="I_crew_F"; @@ -20413,6 +20816,7 @@ class Mission }; }; id=655; + atlOffset=-0.18000031; class CustomAttributes { class Attribute0 @@ -20461,6 +20865,7 @@ class Mission name="UnitAAF_TH1_P"; description="AAF Transport Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=660; type="I_helipilot_F"; @@ -20482,6 +20887,7 @@ class Mission name="UnitAAF_TH1_CP"; description="AAF Transport Helo 1 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=661; type="I_helipilot_F"; @@ -20524,7 +20930,7 @@ class Mission }; }; id=659; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; class CustomAttributes { class Attribute0 @@ -20573,6 +20979,7 @@ class Mission name="UnitAAF_TH2_P"; description="AAF Transport Helo 2 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=663; type="I_helipilot_F"; @@ -20594,6 +21001,7 @@ class Mission name="UnitAAF_TH2_CP"; description="AAF Transport Helo 2 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=664; type="I_helipilot_F"; @@ -20636,7 +21044,7 @@ class Mission }; }; id=662; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; class CustomAttributes { class Attribute0 @@ -20685,6 +21093,7 @@ class Mission name="UnitAAF_TH3_P"; description="AAF Transport Helo 3 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=666; type="I_helipilot_F"; @@ -20706,6 +21115,7 @@ class Mission name="UnitAAF_TH3_CP"; description="AAF Transport Helo 3 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=667; type="I_helipilot_F"; @@ -20748,7 +21158,7 @@ class Mission }; }; id=665; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; class CustomAttributes { class Attribute0 @@ -20797,6 +21207,7 @@ class Mission name="UnitAAF_TH4_P"; description="AAF Transport Helo 4 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=669; type="I_helipilot_F"; @@ -20818,6 +21229,7 @@ class Mission name="UnitAAF_TH4_CP"; description="AAF Transport Helo 4 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=670; type="I_helipilot_F"; @@ -20860,7 +21272,7 @@ class Mission }; }; id=668; - atlOffset=-4.7683716e-007; + atlOffset=-0.024078369; class CustomAttributes { class Attribute0 @@ -20909,6 +21321,7 @@ class Mission name="UnitAAF_AH1_P"; description="AAF Attack Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=672; type="I_helipilot_F"; @@ -20930,6 +21343,7 @@ class Mission name="UnitAAF_AH1_CP"; description="AAF Attack Helo 1 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=673; type="I_helipilot_F"; @@ -21020,6 +21434,7 @@ class Mission name="UnitFIA_CO"; description="CTRG Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=680; type="B_G_officer_F"; @@ -21041,6 +21456,7 @@ class Mission name="UnitFIA_CO_JTAC"; description="CTRG JTAC"; isPlayable=1; + reportRemoteTargets=1; }; id=681; type="B_G_officer_F"; @@ -21061,6 +21477,7 @@ class Mission name="UnitFIA_CO_UAV"; description="FIA UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=682; type="B_G_Soldier_F"; @@ -21081,6 +21498,7 @@ class Mission name="UnitFIA_CO_M"; description="FIA Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=683; type="B_G_medic_F"; @@ -21139,6 +21557,7 @@ class Mission name="UnitFIA_DC"; description="FIA Deputy Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=685; type="B_G_officer_F"; @@ -21184,6 +21603,7 @@ class Mission name="UnitFIA_DC_JTAC"; description="FIA Forward Observer"; isPlayable=1; + reportRemoteTargets=1; }; id=686; type="B_G_officer_F"; @@ -21228,6 +21648,7 @@ class Mission name="UnitFIA_DC_UAV"; description="FIA UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=687; type="B_G_Soldier_F"; @@ -21272,6 +21693,7 @@ class Mission name="UnitFIA_DC_M"; description="FIA Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=688; type="B_G_medic_F"; @@ -21355,6 +21777,7 @@ class Mission name="UnitFIA_ASL_SL"; description="CTRG Alpha Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=690; type="B_G_Soldier_SL_F"; @@ -21398,6 +21821,7 @@ class Mission name="UnitFIA_ASL_M"; description="FIA Alpha Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=691; type="B_G_medic_F"; @@ -21479,6 +21903,7 @@ class Mission name="UnitFIA_A1_FTL"; description="FIA Alpha 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=693; type="B_G_Soldier_TL_F"; @@ -21523,6 +21948,7 @@ class Mission name="UnitFIA_A1_AR1"; description="FIA Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=694; type="B_G_Soldier_AR_F"; @@ -21568,6 +21994,7 @@ class Mission name="UnitFIA_A1_AR2"; description="FIA Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=695; type="B_G_Soldier_AR_F"; @@ -21612,6 +22039,7 @@ class Mission name="UnitFIA_A1_AT"; description="FIA Alpha 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=696; type="B_G_Soldier_LAT_F"; @@ -21656,6 +22084,7 @@ class Mission name="UnitFIA_A1_R1"; description="FIA Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=697; type="B_G_Soldier_F"; @@ -21699,6 +22128,7 @@ class Mission name="UnitFIA_A1_R2"; description="FIA Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=698; type="B_G_Soldier_F"; @@ -21780,6 +22210,7 @@ class Mission name="UnitFIA_A2_FTL"; description="FIA Alpha 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=700; type="B_G_Soldier_TL_F"; @@ -21824,6 +22255,7 @@ class Mission name="UnitFIA_A2_AR1"; description="FIA Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=701; type="B_G_Soldier_AR_F"; @@ -21868,6 +22300,7 @@ class Mission name="UnitFIA_A2_AR2"; description="FIA Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=702; type="B_G_Soldier_AR_F"; @@ -21912,6 +22345,7 @@ class Mission name="UnitFIA_A2_AT"; description="FIA Alpha 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=703; type="B_G_Soldier_LAT_F"; @@ -21955,6 +22389,7 @@ class Mission name="UnitFIA_A2_R1"; description="FIA Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=704; type="B_G_Soldier_F"; @@ -21998,6 +22433,7 @@ class Mission name="UnitFIA_A2_R2"; description="FIA Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=705; type="B_G_Soldier_F"; @@ -22079,6 +22515,7 @@ class Mission name="UnitFIA_BSL_SL"; description="CTRG Bravo Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=707; type="B_G_Soldier_SL_F"; @@ -22122,6 +22559,7 @@ class Mission name="UnitFIA_BSL_M"; description="FIA Bravo Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=708; type="B_G_medic_F"; @@ -22203,6 +22641,7 @@ class Mission name="UnitFIA_B1_FTL"; description="FIA Bravo 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=710; type="B_G_Soldier_TL_F"; @@ -22224,6 +22663,7 @@ class Mission name="UnitFIA_B1_AR1"; description="FIA Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=711; type="B_G_Soldier_AR_F"; @@ -22268,6 +22708,7 @@ class Mission name="UnitFIA_B1_AR2"; description="FIA Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=712; type="B_G_Soldier_AR_F"; @@ -22289,6 +22730,7 @@ class Mission name="UnitFIA_B1_AT"; description="FIA Bravo 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=713; type="B_G_Soldier_LAT_F"; @@ -22309,6 +22751,7 @@ class Mission name="UnitFIA_B1_R1"; description="FIA Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=714; type="B_G_Soldier_F"; @@ -22329,6 +22772,7 @@ class Mission name="UnitFIA_B1_R2"; description="FIA Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=715; type="B_G_Soldier_F"; @@ -22387,6 +22831,7 @@ class Mission name="UnitFIA_B2_FTL"; description="FIA Bravo 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=717; type="B_G_Soldier_TL_F"; @@ -22408,6 +22853,7 @@ class Mission name="UnitFIA_B2_AR1"; description="FIA Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=718; type="B_G_Soldier_AR_F"; @@ -22429,6 +22875,7 @@ class Mission name="UnitFIA_B2_AR2"; description="FIA Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=719; type="B_G_Soldier_AR_F"; @@ -22450,6 +22897,7 @@ class Mission name="UnitFIA_B2_AT"; description="FIA Bravo 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=720; type="B_G_Soldier_LAT_F"; @@ -22470,6 +22918,7 @@ class Mission name="UnitFIA_B2_R1"; description="FIA Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=721; type="B_G_Soldier_F"; @@ -22490,6 +22939,7 @@ class Mission name="UnitFIA_B2_R2"; description="FIA Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=722; type="B_G_Soldier_F"; @@ -22548,6 +22998,7 @@ class Mission name="UnitFIA_CSL_SL"; description="FIA Charlie Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=724; type="B_G_Soldier_SL_F"; @@ -22568,6 +23019,7 @@ class Mission name="UnitFIA_CSL_M"; description="FIA Charlie Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=725; type="B_G_medic_F"; @@ -22628,6 +23080,7 @@ class Mission name="UnitFIA_C1_FTL"; description="FIA Charlie 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=727; type="B_G_Soldier_TL_F"; @@ -22649,6 +23102,7 @@ class Mission name="UnitFIA_C1_AR1"; description="FIA Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=728; type="B_G_Soldier_AR_F"; @@ -22670,6 +23124,7 @@ class Mission name="UnitFIA_C1_AR2"; description="FIA Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=729; type="B_G_Soldier_AR_F"; @@ -22691,6 +23146,7 @@ class Mission name="UnitFIA_C1_AT"; description="FIA Charlie 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=730; type="B_G_Soldier_LAT_F"; @@ -22711,6 +23167,7 @@ class Mission name="UnitFIA_C1_R1"; description="FIA Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=731; type="B_G_Soldier_F"; @@ -22731,6 +23188,7 @@ class Mission name="UnitFIA_C1_R2"; description="FIA Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=732; type="B_G_Soldier_F"; @@ -22789,6 +23247,7 @@ class Mission name="UnitFIA_C2_FTL"; description="FIA Charlie 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=734; type="B_G_Soldier_TL_F"; @@ -22810,6 +23269,7 @@ class Mission name="UnitFIA_C2_AR1"; description="FIA Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=735; type="B_G_Soldier_AR_F"; @@ -22831,6 +23291,7 @@ class Mission name="UnitFIA_C2_AR2"; description="FIA Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=736; type="B_G_Soldier_AR_F"; @@ -22852,6 +23313,7 @@ class Mission name="UnitFIA_C2_AT"; description="FIA Charlie 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=737; type="B_G_Soldier_LAT_F"; @@ -22872,6 +23334,7 @@ class Mission name="UnitFIA_C2_R1"; description="FIA Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=738; type="B_G_Soldier_F"; @@ -22892,6 +23355,7 @@ class Mission name="UnitFIA_C2_R2"; description="FIA Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=739; type="B_G_Soldier_F"; @@ -22950,10 +23414,11 @@ class Mission name="UnitFIA_MMG1_TL"; description="FIA Medium MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=741; type="B_G_Soldier_TL_F"; - atlOffset=0.1516819; + atlOffset=0.15199995; }; class Item1 { @@ -22971,6 +23436,7 @@ class Mission name="UnitFIA_MMG1_G"; description="FIA Medium MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=742; type="B_G_Soldier_AR_F"; @@ -22993,6 +23459,7 @@ class Mission name="UnitFIA_MMG1_AG"; description="FIA Medium MG Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1214; type="B_G_Soldier_lite_F"; @@ -23004,7 +23471,7 @@ class Mission name="GrpFIA_MMG1"; }; id=740; - atlOffset=0.1516819; + atlOffset=0.15199995; class CustomAttributes { class Attribute0 @@ -23053,6 +23520,7 @@ class Mission name="UnitFIA_MMG2_TL"; description="FIA Medium MG Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=744; type="B_G_Soldier_TL_F"; @@ -23073,6 +23541,7 @@ class Mission name="UnitFIA_MMG2_G"; description="FIA Medium MG Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=745; type="B_G_Soldier_AR_F"; @@ -23094,6 +23563,7 @@ class Mission name="UnitFIA_MMG2_AG"; description="FIA Medium MG Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1215; type="B_G_Soldier_lite_F"; @@ -23152,6 +23622,7 @@ class Mission name="UnitFIA_MAT1_TL"; description="FIA Medium AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=747; type="B_G_Soldier_TL_F"; @@ -23172,6 +23643,7 @@ class Mission name="UnitFIA_MAT1_G"; description="FIA Medium AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=748; type="B_G_Soldier_LAT_F"; @@ -23193,6 +23665,7 @@ class Mission name="UnitFIA_MAT1_AG"; description="FIA Medium AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1216; type="B_G_Soldier_LAT_F"; @@ -23251,6 +23724,7 @@ class Mission name="UnitFIA_MAT2_TL"; description="FIA Medium AT Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=750; type="B_G_Soldier_TL_F"; @@ -23272,6 +23746,7 @@ class Mission name="UnitFIA_MAT2_G"; description="FIA Medium AT Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=751; type="B_G_Soldier_LAT_F"; @@ -23293,6 +23768,7 @@ class Mission name="UnitFIA_MAT2_AG"; description="FIA Medium AT Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1217; type="B_G_Soldier_LAT_F"; @@ -23351,6 +23827,7 @@ class Mission name="UnitFIA_HMG1_TL"; description="FIA Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=753; type="B_G_Soldier_TL_F"; @@ -23371,6 +23848,7 @@ class Mission name="UnitFIA_HMG1_G"; description="FIA Heavy MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=754; type="B_G_Soldier_AR_F"; @@ -23429,6 +23907,7 @@ class Mission name="UnitFIA_HAT1_TL"; description="FIA Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=756; type="B_G_Soldier_TL_F"; @@ -23450,6 +23929,7 @@ class Mission name="UnitFIA_HAT1_G"; description="FIA Heavy AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=757; type="B_G_Soldier_LAT_F"; @@ -23472,6 +23952,7 @@ class Mission name="UnitFIA_HAT1_AG"; description="FIA Heavy AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1218; type="B_G_Soldier_LAT_F"; @@ -23530,6 +24011,7 @@ class Mission name="UnitFIA_MTR1_TL"; description="FIA Mortar Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=759; type="B_G_Soldier_F"; @@ -23550,6 +24032,7 @@ class Mission name="UnitFIA_MTR1_G"; description="FIA Mortar Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=760; type="B_G_Soldier_A_F"; @@ -23609,6 +24092,7 @@ class Mission name="UnitFIA_MSAM1_TL"; description="FIA Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=762; type="B_G_Soldier_LAT_F"; @@ -23629,6 +24113,7 @@ class Mission name="UnitFIA_MSAM1_G"; description="FIA Medium SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=763; type="B_G_Soldier_LAT_F"; @@ -23651,6 +24136,7 @@ class Mission name="UnitFIA_MSAM1_AG"; description="FIA Medium SAM Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1172; type="B_G_Soldier_LAT_F"; @@ -23709,6 +24195,7 @@ class Mission name="UnitFIA_HSAM1_TL"; description="FIA Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=765; type="B_G_Soldier_LAT_F"; @@ -23730,6 +24217,7 @@ class Mission name="UnitFIA_HSAM1_G"; description="FIA Heavy SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=766; type="B_G_Soldier_LAT_F"; @@ -23788,6 +24276,7 @@ class Mission name="UnitFIA_ST1_SP"; description="FIA Sniper Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=768; type="B_G_Soldier_M_F"; @@ -23809,6 +24298,7 @@ class Mission name="UnitFIA_ST1_G"; description="FIA Sniper Team 1 Sniper"; isPlayable=1; + reportRemoteTargets=1; }; id=769; type="B_G_Soldier_M_F"; @@ -23867,6 +24357,7 @@ class Mission name="UnitFIA_ENG1_FTL"; description="FIA Engineer Team 1 Leader (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=771; type="B_G_engineer_F"; @@ -23887,6 +24378,7 @@ class Mission name="UnitFIA_ENG1_A1"; description="FIA Engineer Team 1 Assistant (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=772; type="B_G_engineer_F"; @@ -23907,6 +24399,7 @@ class Mission name="UnitFIA_ENG1_A2"; description="FIA Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=773; type="B_G_engineer_F"; @@ -23927,6 +24420,7 @@ class Mission name="UnitFIA_ENG1_A3"; description="FIA Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=774; type="B_G_engineer_F"; @@ -23985,6 +24479,7 @@ class Mission name="UnitFIA_TH1_P"; description="FIA Transport Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=776; type="B_G_engineer_F"; @@ -24006,6 +24501,7 @@ class Mission name="UnitFIA_TH1_CP"; description="FIA Transport Helo 1 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=777; type="B_G_engineer_F"; @@ -24095,6 +24591,7 @@ class Mission name="UnitFIA_IFV1_D"; description="FIA Technical 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=1032; type="B_G_Soldier_F"; @@ -24139,6 +24636,7 @@ class Mission name="UnitFIA_IFV1_G"; description="FIA Technical 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=1033; type="B_G_Soldier_F"; @@ -24252,6 +24750,7 @@ class Mission name="UnitFIA_IFV2_G"; description="FIA Technical 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=1030; type="B_G_Soldier_F"; @@ -24295,6 +24794,7 @@ class Mission name="UnitFIA_IFV2_D"; description="FIA Technical 2 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=1031; type="B_G_Soldier_F"; @@ -24406,6 +24906,7 @@ class Mission init="this addAction [""Start Camera"",""[] call bis_fnc_camera;"",[],2,false,true,"""",""driver _target == _this""]; this allowDamage false;"; description="BBC Reporter"; isPlayable=1; + reportRemoteTargets=1; }; id=790; type="C_journalist_F"; @@ -24463,6 +24964,7 @@ class Mission init="this addAction [""Start Camera"",""[] call bis_fnc_camera;"",[],2,false,true,"""",""driver _target == _this""]; this allowDamage false;"; description="CNN Reporter"; isPlayable=1; + reportRemoteTargets=1; }; id=792; type="C_journalist_F"; @@ -25373,6 +25875,7 @@ class Mission name="UnitSyn_CO"; description="Syndikat Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=827; type="I_C_Soldier_Para_2_F"; @@ -25416,6 +25919,7 @@ class Mission name="UnitSyn_CO_JTAC"; description="Syndikat JTAC"; isPlayable=1; + reportRemoteTargets=1; }; id=824; type="I_C_Soldier_Para_1_F"; @@ -25458,6 +25962,7 @@ class Mission name="UnitSyn_CO_UAV"; description="Syndikat UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=825; type="I_C_Soldier_Para_1_F"; @@ -25500,6 +26005,7 @@ class Mission name="UnitSyn_CO_M"; description="Syndikat Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=826; type="I_C_Soldier_Para_3_F"; @@ -25580,6 +26086,7 @@ class Mission name="UnitSyn_DC"; description="Syndikat Deputy Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=842; type="I_C_Soldier_Para_2_F"; @@ -25623,6 +26130,7 @@ class Mission name="UnitSyn_DC_JTAC"; description="Syndikat JTAC"; isPlayable=1; + reportRemoteTargets=1; }; id=839; type="I_C_Soldier_Para_1_F"; @@ -25665,6 +26173,7 @@ class Mission name="UnitSyn_DC_UAV"; description="Syndikat UAV Operator"; isPlayable=1; + reportRemoteTargets=1; }; id=840; type="I_C_Soldier_Para_1_F"; @@ -25707,6 +26216,7 @@ class Mission name="UnitSyn_DC_M"; description="Syndikat Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=841; type="I_C_Soldier_Para_3_F"; @@ -25787,6 +26297,7 @@ class Mission name="UnitSyn_ASL_SL"; description="Syndikat Alpha Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=855; type="I_C_Soldier_Para_2_F"; @@ -25829,6 +26340,7 @@ class Mission name="UnitSyn_ASL_M"; description="Syndikat Alpha Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=854; type="I_C_Soldier_Para_3_F"; @@ -25909,6 +26421,7 @@ class Mission name="UnitSyn_A1_FTL"; description="Syndikat Alpha 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=862; type="I_C_Soldier_Para_2_F"; @@ -25952,6 +26465,7 @@ class Mission name="UnitSyn_A1_AR1"; description="Syndikat Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=857; type="I_C_Soldier_Para_4_F"; @@ -25995,6 +26509,7 @@ class Mission name="UnitSyn_A1_AR2"; description="Syndikat Alpha 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=858; type="I_C_Soldier_Para_4_F"; @@ -26038,6 +26553,7 @@ class Mission name="UnitSyn_A1_AT"; description="Syndikat Alpha 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=859; type="I_C_Soldier_Para_5_F"; @@ -26080,6 +26596,7 @@ class Mission name="UnitSyn_A1_R1"; description="Syndikat Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=860; type="I_C_Soldier_Para_1_F"; @@ -26122,6 +26639,7 @@ class Mission name="UnitSyn_A1_R2"; description="Syndikat Alpha 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=861; type="I_C_Soldier_Para_1_F"; @@ -26202,6 +26720,7 @@ class Mission name="UnitSyn_A2_FTL"; description="Syndikat Alpha 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=869; type="I_C_Soldier_Para_2_F"; @@ -26245,6 +26764,7 @@ class Mission name="UnitSyn_A2_AR1"; description="Syndikat Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=864; type="I_C_Soldier_Para_4_F"; @@ -26288,6 +26808,7 @@ class Mission name="UnitSyn_A2_AR2"; description="Syndikat Alpha 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=865; type="I_C_Soldier_Para_4_F"; @@ -26331,6 +26852,7 @@ class Mission name="UnitSyn_A2_AT"; description="Syndikat Alpha 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=866; type="I_C_Soldier_Para_5_F"; @@ -26373,6 +26895,7 @@ class Mission name="UnitSyn_A2_R1"; description="Syndikat Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=867; type="I_C_Soldier_Para_1_F"; @@ -26415,6 +26938,7 @@ class Mission name="UnitSyn_A2_R2"; description="Syndikat Alpha 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=868; type="I_C_Soldier_Para_1_F"; @@ -26495,6 +27019,7 @@ class Mission name="UnitSyn_BSL_SL"; description="Syndikat Bravo Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=872; type="I_C_Soldier_Para_2_F"; @@ -26537,6 +27062,7 @@ class Mission name="UnitSyn_BSL_M"; description="Syndikat Bravo Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=871; type="I_C_Soldier_Para_3_F"; @@ -26617,6 +27143,7 @@ class Mission name="UnitSyn_B1_FTL"; description="Syndikat Bravo 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=879; type="I_C_Soldier_Para_2_F"; @@ -26660,6 +27187,7 @@ class Mission name="UnitSyn_B1_AR1"; description="Syndikat Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=874; type="I_C_Soldier_Para_4_F"; @@ -26703,6 +27231,7 @@ class Mission name="UnitSyn_B1_AR2"; description="Syndikat Bravo 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=875; type="I_C_Soldier_Para_4_F"; @@ -26746,6 +27275,7 @@ class Mission name="UnitSyn_B1_AT"; description="Syndikat Bravo 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=876; type="I_C_Soldier_Para_5_F"; @@ -26788,6 +27318,7 @@ class Mission name="UnitSyn_B1_R1"; description="Syndikat Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=877; type="I_C_Soldier_Para_1_F"; @@ -26830,6 +27361,7 @@ class Mission name="UnitSyn_B1_R2"; description="Syndikat Bravo 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=878; type="I_C_Soldier_Para_1_F"; @@ -26910,6 +27442,7 @@ class Mission name="UnitSyn_B2_FTL"; description="Syndikat Bravo 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=886; type="I_C_Soldier_Para_2_F"; @@ -26953,6 +27486,7 @@ class Mission name="UnitSyn_B2_AR1"; description="Syndikat Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=881; type="I_C_Soldier_Para_4_F"; @@ -26996,6 +27530,7 @@ class Mission name="UnitSyn_B2_AR2"; description="Syndikat Bravo 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=882; type="I_C_Soldier_Para_4_F"; @@ -27039,6 +27574,7 @@ class Mission name="UnitSyn_B2_AT"; description="Syndikat Bravo 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=883; type="I_C_Soldier_Para_5_F"; @@ -27081,6 +27617,7 @@ class Mission name="UnitSyn_B2_R1"; description="Syndikat Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=884; type="I_C_Soldier_Para_1_F"; @@ -27123,6 +27660,7 @@ class Mission name="UnitSyn_B2_R2"; description="Syndikat Bravo 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=885; type="I_C_Soldier_Para_1_F"; @@ -27203,6 +27741,7 @@ class Mission name="UnitSyn_CSL_SL"; description="Syndikat Charlie Squad Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=889; type="I_C_Soldier_Para_2_F"; @@ -27245,6 +27784,7 @@ class Mission name="UnitSyn_CSL_M"; description="Syndikat Charlie Medic"; isPlayable=1; + reportRemoteTargets=1; }; id=888; type="I_C_Soldier_Para_3_F"; @@ -27325,6 +27865,7 @@ class Mission name="UnitSyn_C1_FTL"; description="Syndikat Charlie 1 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=896; type="I_C_Soldier_Para_2_F"; @@ -27368,6 +27909,7 @@ class Mission name="UnitSyn_C1_AR1"; description="Syndikat Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=891; type="I_C_Soldier_Para_4_F"; @@ -27411,6 +27953,7 @@ class Mission name="UnitSyn_C1_AR2"; description="Syndikat Charlie 1 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=892; type="I_C_Soldier_Para_4_F"; @@ -27454,6 +27997,7 @@ class Mission name="UnitSyn_C1_AT"; description="Syndikat Charlie 1 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=893; type="I_C_Soldier_Para_5_F"; @@ -27496,6 +28040,7 @@ class Mission name="UnitSyn_C1_R1"; description="Syndikat Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=894; type="I_C_Soldier_Para_1_F"; @@ -27538,6 +28083,7 @@ class Mission name="UnitSyn_C1_R2"; description="Syndikat Charlie 1 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=895; type="I_C_Soldier_Para_1_F"; @@ -27618,6 +28164,7 @@ class Mission name="UnitSyn_C2_FTL"; description="Syndikat Charlie 2 Fire Team Leader"; isPlayable=1; + reportRemoteTargets=1; }; id=903; type="I_C_Soldier_Para_2_F"; @@ -27661,6 +28208,7 @@ class Mission name="UnitSyn_C2_AR1"; description="Syndikat Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=898; type="I_C_Soldier_Para_4_F"; @@ -27704,6 +28252,7 @@ class Mission name="UnitSyn_C2_AR2"; description="Syndikat Charlie 2 Automatic Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=899; type="I_C_Soldier_Para_4_F"; @@ -27747,6 +28296,7 @@ class Mission name="UnitSyn_C2_AT"; description="Syndikat Charlie 2 Assaultman (AT)"; isPlayable=1; + reportRemoteTargets=1; }; id=900; type="I_C_Soldier_Para_5_F"; @@ -27766,6 +28316,7 @@ class Mission name="UnitSyn_C2_R1"; description="Syndikat Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=901; type="I_C_Soldier_Para_1_F"; @@ -27785,6 +28336,7 @@ class Mission name="UnitSyn_C2_R2"; description="Syndikat Charlie 2 Rifleman"; isPlayable=1; + reportRemoteTargets=1; }; id=902; type="I_C_Soldier_Para_1_F"; @@ -27842,6 +28394,7 @@ class Mission name="UnitSyn_MMG1_TL"; description="Syndikat Medium MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=905; type="I_C_Soldier_Para_2_F"; @@ -27884,6 +28437,7 @@ class Mission name="UnitSyn_MMG1_G"; description="Syndikat Medium MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=906; type="I_C_Soldier_Para_4_F"; @@ -27927,6 +28481,7 @@ class Mission name="UnitSyn_MMG1_AG"; description="Syndikat Medium MG Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1219; type="I_C_Soldier_Para_4_F"; @@ -27984,6 +28539,7 @@ class Mission name="UnitSyn_MMG2_TL"; description="Syndikat Medium MG Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=908; type="I_C_Soldier_Para_2_F"; @@ -28026,6 +28582,7 @@ class Mission name="UnitSyn_MMG2_G"; description="Syndikat Medium MG Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=909; type="I_C_Soldier_Para_4_F"; @@ -28069,6 +28626,7 @@ class Mission name="UnitSyn_MMG2_AG"; description="Syndikat Medium MG Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1220; type="I_C_Soldier_Para_4_F"; @@ -28126,6 +28684,7 @@ class Mission name="UnitSyn_MAT1_TL"; description="Syndikat Medium AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=911; type="I_C_Soldier_Para_2_F"; @@ -28168,6 +28727,7 @@ class Mission name="UnitSyn_MAT1_G"; description="Syndikat Medium AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=912; type="I_C_Soldier_Para_5_F"; @@ -28211,6 +28771,7 @@ class Mission name="UnitSyn_MAT1_AG"; description="Syndikat Medium AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1221; type="I_C_Soldier_Para_5_F"; @@ -28268,6 +28829,7 @@ class Mission name="UnitSyn_MAT2_TL"; description="Syndikat Medium AT Team 2 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=914; type="I_C_Soldier_Para_2_F"; @@ -28310,6 +28872,7 @@ class Mission name="UnitSyn_MAT2_G"; description="Syndikat Medium AT Team 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=915; type="I_C_Soldier_Para_5_F"; @@ -28353,6 +28916,7 @@ class Mission name="UnitSyn_MAT2_AG"; description="Syndikat Medium AT Team 2 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1222; type="I_C_Soldier_Para_5_F"; @@ -28410,6 +28974,7 @@ class Mission name="UnitSyn_HMG1_TL"; description="Syndikat Heavy MG Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=917; type="I_C_Soldier_Para_2_F"; @@ -28452,6 +29017,7 @@ class Mission name="UnitSyn_HMG1_G"; description="Syndikat Heavy MG Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=918; type="I_C_Soldier_Para_4_F"; @@ -28532,6 +29098,7 @@ class Mission name="UnitSyn_HAT1_TL"; description="Syndikat Heavy AT Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=920; type="I_C_Soldier_Para_2_F"; @@ -28574,6 +29141,7 @@ class Mission name="UnitSyn_HAT1_G"; description="Syndikat Heavy AT Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=921; type="I_C_Soldier_Para_5_F"; @@ -28617,6 +29185,7 @@ class Mission name="UnitSyn_HAT1_AG"; description="Syndikat Heavy AT Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1223; type="I_C_Soldier_Para_5_F"; @@ -28674,6 +29243,7 @@ class Mission name="UnitSyn_MTR1_TL"; description="Syndikat Mortar Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=923; type="I_C_Soldier_Para_1_F"; @@ -28716,6 +29286,7 @@ class Mission name="UnitSyn_MTR1_G"; description="Syndikat Mortar Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=924; type="I_C_Soldier_Para_1_F"; @@ -28796,6 +29367,7 @@ class Mission name="UnitSyn_MSAM1_TL"; description="Syndikat Medium SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=926; type="I_C_Soldier_Para_5_F"; @@ -28838,6 +29410,7 @@ class Mission name="UnitSyn_MSAM1_G"; description="Syndikat Medium SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=927; type="I_C_Soldier_Para_5_F"; @@ -28881,6 +29454,7 @@ class Mission name="UnitSyn_MSAM1_AG"; description="Syndikat Medium SAM Team 1 Assistant"; isPlayable=1; + reportRemoteTargets=1; }; id=1184; type="I_C_Soldier_Para_5_F"; @@ -28938,6 +29512,7 @@ class Mission name="UnitSyn_HSAM1_TL"; description="Syndikat Heavy SAM Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=929; type="I_C_Soldier_Para_5_F"; @@ -28980,6 +29555,7 @@ class Mission name="UnitSyn_HSAM1_G"; description="Syndikat Heavy SAM Team 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=930; type="I_C_Soldier_Para_5_F"; @@ -29060,6 +29636,7 @@ class Mission name="UnitSyn_ST1_SP"; description="Syndikat Sniper Team 1 Spotter (Leader)"; isPlayable=1; + reportRemoteTargets=1; }; id=932; type="I_C_Soldier_Para_1_F"; @@ -29102,6 +29679,7 @@ class Mission name="UnitSyn_ST1_G"; description="Syndikat Sniper Team 1 Sniper"; isPlayable=1; + reportRemoteTargets=1; }; id=933; type="I_C_Soldier_Para_1_F"; @@ -29182,6 +29760,7 @@ class Mission name="UnitSyn_ENG1_FTL"; description="Syndikat Engineer Team 1 Leader (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=935; type="I_C_Soldier_Para_8_F"; @@ -29224,6 +29803,7 @@ class Mission name="UnitSyn_ENG1_A1"; description="Syndikat Engineer Team 1 Assistant (Demo)"; isPlayable=1; + reportRemoteTargets=1; }; id=936; type="I_C_Soldier_Para_8_F"; @@ -29266,6 +29846,7 @@ class Mission name="UnitSyn_ENG1_A2"; description="Syndikat Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=937; type="I_C_Soldier_Para_8_F"; @@ -29308,6 +29889,7 @@ class Mission name="UnitSyn_ENG1_A3"; description="Syndikat Engineer Team 1 Assistant (Mines)"; isPlayable=1; + reportRemoteTargets=1; }; id=938; type="I_C_Soldier_Para_8_F"; @@ -29388,6 +29970,7 @@ class Mission name="UnitSyn_TH1_P"; description="Syndikat Transport Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=940; type="I_C_Helipilot_F"; @@ -29431,6 +30014,7 @@ class Mission name="UnitSyn_TH1_CP"; description="Syndikat Transport Helo 1 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=941; type="I_C_Helipilot_F"; @@ -29496,6 +30080,7 @@ class Mission }; }; id=939; + atlOffset=0.33195591; class CustomAttributes { class Attribute0 @@ -29543,6 +30128,7 @@ class Mission name="UnitSyn_IFV1_G"; description="Syndikat Technical 1 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=944; type="I_C_Soldier_Para_1_F"; @@ -29585,6 +30171,7 @@ class Mission name="UnitSyn_IFV1_D"; description="Syndikat Technical 1 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=945; type="I_C_Soldier_Para_1_F"; @@ -29716,6 +30303,7 @@ class Mission name="UnitSyn_IFV2_G"; description="Syndikat Technical 2 Gunner"; isPlayable=1; + reportRemoteTargets=1; }; id=948; type="I_C_Soldier_Para_1_F"; @@ -29758,6 +30346,7 @@ class Mission name="UnitSyn_IFV2_D"; description="Syndikat Technical 2 Driver (Repair)"; isPlayable=1; + reportRemoteTargets=1; }; id=949; type="I_C_Soldier_Para_1_F"; @@ -31141,7 +31730,7 @@ class Mission position[]={1559.641,6.8630314,1225.556}; }; side="Independent"; - flags=6; + flags=2; class Attributes { skill=0.60000002; @@ -31152,6 +31741,7 @@ class Mission }; id=1027; type="I_Heli_light_03_dynamicLoadout_F"; + atlOffset=0.33195591; }; class Item349 { @@ -31176,6 +31766,7 @@ class Mission name="UnitGEN_CO"; description="Gendarmerie Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=1038; type="B_GEN_Commander_F"; @@ -31277,6 +31868,7 @@ class Mission name="UnitGEN_DC"; description="Gendarmerie Deputy Commander"; isPlayable=1; + reportRemoteTargets=1; }; id=1040; type="B_GEN_Commander_F"; @@ -31378,6 +31970,7 @@ class Mission name="UnitGEN_A_Sgt"; description="Gendarmerie Alpha Sergeant"; isPlayable=1; + reportRemoteTargets=1; }; id=1067; type="B_GEN_Soldier_F"; @@ -31421,6 +32014,7 @@ class Mission name="UnitGEN_A_G1"; description="Gendarmerie Alpha Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1235; type="B_GEN_Soldier_F"; @@ -31464,6 +32058,7 @@ class Mission name="UnitGEN_A_G2"; description="Gendarmerie Alpha Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1237; type="B_GEN_Soldier_F"; @@ -31506,6 +32101,7 @@ class Mission name="UnitGEN_A_G3"; description="Gendarmerie Alpha Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1238; type="B_GEN_Soldier_F"; @@ -31639,6 +32235,7 @@ class Mission name="UnitGEN_B_Sgt"; description="Gendarmerie Bravo Sergeant"; isPlayable=1; + reportRemoteTargets=1; }; id=1070; type="B_GEN_Soldier_F"; @@ -31682,6 +32279,7 @@ class Mission name="UnitGEN_B_G1"; description="Gendarmerie Bravo Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1071; type="B_GEN_Soldier_F"; @@ -31725,6 +32323,7 @@ class Mission name="UnitGEN_B_G2"; description="Gendarmerie Bravo Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1072; type="B_GEN_Soldier_F"; @@ -31767,6 +32366,7 @@ class Mission name="UnitGEN_B_G3"; description="Gendarmerie Bravo Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1073; type="B_GEN_Soldier_F"; @@ -31901,6 +32501,7 @@ class Mission name="UnitGEN_C_Sgt"; description="Gendarmerie Charlie Sergeant"; isPlayable=1; + reportRemoteTargets=1; }; id=1074; type="B_GEN_Soldier_F"; @@ -31944,6 +32545,7 @@ class Mission name="UnitGEN_C_G1"; description="Gendarmerie Charlie Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1075; type="B_GEN_Soldier_F"; @@ -31987,6 +32589,7 @@ class Mission name="UnitGEN_C_G2"; description="Gendarmerie Charlie Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1076; type="B_GEN_Soldier_F"; @@ -32029,6 +32632,7 @@ class Mission name="UnitGEN_C_G3"; description="Gendarmerie Charlie Gendarme"; isPlayable=1; + reportRemoteTargets=1; }; id=1077; type="B_GEN_Soldier_F"; @@ -32163,6 +32767,7 @@ class Mission name="UnitGEN_J_Sgt"; description="Gendarmerie Juliet Sergeant (Night Force)"; isPlayable=1; + reportRemoteTargets=1; }; id=1078; type="B_GEN_Soldier_F"; @@ -32206,6 +32811,7 @@ class Mission name="UnitGEN_J_G1"; description="Gendarmerie Juliet Gendarme (Night Force)"; isPlayable=1; + reportRemoteTargets=1; }; id=1079; type="B_GEN_Soldier_F"; @@ -32249,6 +32855,7 @@ class Mission name="UnitGEN_J_G2"; description="Gendarmerie Juliet Gendarme (Night Force)"; isPlayable=1; + reportRemoteTargets=1; }; id=1080; type="B_GEN_Soldier_F"; @@ -32291,6 +32898,7 @@ class Mission name="UnitGEN_J_G3"; description="Gendarmerie Juliet Gendarme (Night Force)"; isPlayable=1; + reportRemoteTargets=1; }; id=1081; type="B_GEN_Soldier_F"; @@ -32425,6 +33033,7 @@ class Mission name="UnitGEN_MK_MK"; description="Gendarmerie Marksman"; isPlayable=1; + reportRemoteTargets=1; }; id=1082; type="B_GEN_Soldier_F"; @@ -32505,6 +33114,7 @@ class Mission name="UnitGEN_TH1_P"; description="Gendarmerie Transport Helo 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=1084; type="B_GEN_Commander_F"; @@ -32548,6 +33158,7 @@ class Mission name="UnitGEN_TH1_CP"; description="Gendarmerie Transport Helo 1 Co-Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=1086; type="B_GEN_Commander_F"; @@ -33590,6 +34201,7 @@ class Mission name="UnitNATO_CAS1_P"; description="NATO CAS 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=1136; type="B_Fighter_Pilot_F"; @@ -33696,7 +34308,7 @@ class Mission class PositionInfo { position[]={1380.6572,5.0014391,679.09668}; - angles[]={-0,1.7658945,0}; + angles[]={0,1.7658945,0}; }; side="Independent"; flags=6; @@ -33708,6 +34320,7 @@ class Mission name="UnitAAF_CAS1_P"; description="AAF CAS 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=1143; type="I_Fighter_Pilot_F"; @@ -33808,6 +34421,7 @@ class Mission name="UnitCSAT_CAS1_P"; description="CSAT CAS 1 Pilot"; isPlayable=1; + reportRemoteTargets=1; }; id=1145; type="O_Fighter_Pilot_F"; From b5180a94ae86c265b00b9e73f42c87890c2e853e Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Tue, 23 Apr 2019 14:05:13 +0100 Subject: [PATCH 170/407] [#184][Template] Enabled Data Link Send for all vehicles with laser designators by default --- mission.sqm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mission.sqm b/mission.sqm index 674ec4ab9..d455b7542 100644 --- a/mission.sqm +++ b/mission.sqm @@ -580,6 +580,7 @@ class Mission skill=0.60000002; init="[""v_helo_a"",this] call f_fnc_assignGear;"; name="VehNATO_AH1"; + reportRemoteTargets=1; }; id=14; type="B_Heli_Attack_01_dynamicLoadout_F"; @@ -867,6 +868,7 @@ class Mission init="[""v_helo_a"",this] call f_fnc_assignGear;"; name="VehCSAT_AH1"; textures="Opfor"; + reportRemoteTargets=1; }; id=29; type="O_Heli_Attack_02_dynamicLoadout_F"; @@ -1090,6 +1092,7 @@ class Mission skill=0.60000002; init="[""v_car"",this] call f_fnc_assignGear"; name="VehAAF_CAR1"; + reportRemoteTargets=1; }; id=41; type="I_MRAP_03_F"; @@ -1393,6 +1396,7 @@ class Mission skill=0.60000002; init="[""v_car"",this] call f_fnc_assignGear"; name="VehAAF_CAR2"; + reportRemoteTargets=1; }; id=57; type="I_MRAP_03_F"; @@ -2149,6 +2153,7 @@ class Mission skill=0.60000002; init="[""v_car"",this] call f_fnc_assignGear"; name="VehAAF_CAR3"; + reportRemoteTargets=1; }; id=83; type="I_MRAP_03_F"; @@ -2167,6 +2172,7 @@ class Mission skill=0.60000002; init="[""v_car"",this] call f_fnc_assignGear"; name="VehAAF_CAR4"; + reportRemoteTargets=1; }; id=84; type="I_MRAP_03_F"; From 28a99c7fe3ff21528ac71c719a0db8deda552792 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Tue, 23 Apr 2019 14:37:02 +0100 Subject: [PATCH 171/407] [#184][Template] Enabled Data Link Receive for all vehicles that can load LOL munitions by default --- mission.sqm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/mission.sqm b/mission.sqm index d455b7542..6673eadde 100644 --- a/mission.sqm +++ b/mission.sqm @@ -581,6 +581,7 @@ class Mission init="[""v_helo_a"",this] call f_fnc_assignGear;"; name="VehNATO_AH1"; reportRemoteTargets=1; + receiveRemoteTargets=1; }; id=14; type="B_Heli_Attack_01_dynamicLoadout_F"; @@ -677,6 +678,7 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH3"; + receiveRemoteTargets=1; pylons=";;"; }; id=19; @@ -696,6 +698,7 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH4"; + receiveRemoteTargets=1; pylons=";;"; }; id=20; @@ -715,6 +718,7 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH5"; + receiveRemoteTargets=1; pylons=";;"; }; id=21; @@ -734,6 +738,7 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH6"; + receiveRemoteTargets=1; pylons=";;"; }; id=22; @@ -753,6 +758,7 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH7"; + receiveRemoteTargets=1; pylons=";;"; }; id=23; @@ -772,6 +778,7 @@ class Mission skill=0.60000002; init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehCSAT_TH8"; + receiveRemoteTargets=1; pylons=";;"; }; id=24; @@ -869,6 +876,7 @@ class Mission name="VehCSAT_AH1"; textures="Opfor"; reportRemoteTargets=1; + receiveRemoteTargets=1; }; id=29; type="O_Heli_Attack_02_dynamicLoadout_F"; @@ -1017,6 +1025,7 @@ class Mission skill=0.60000002; init="[""v_helo_a"",this] call f_fnc_assignGear"; name="VehAAF_AH1"; + receiveRemoteTargets=1; }; id=37; type="I_Heli_light_03_dynamicLoadout_F"; @@ -3020,6 +3029,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; }; id=117; type="B_Heli_Light_01_dynamicLoadout_F"; @@ -3331,6 +3341,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; }; id=127; type="B_Heli_Light_01_dynamicLoadout_F"; @@ -3642,6 +3653,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; }; id=137; type="B_Heli_Light_01_dynamicLoadout_F"; @@ -3881,6 +3893,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; pylons="PylonWeapon_2000Rnd_65x39_belt;PylonRack_12Rnd_missiles;"; }; id=144; @@ -4186,6 +4199,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; pylons="PylonWeapon_2000Rnd_65x39_belt;PylonRack_12Rnd_missiles;"; }; id=154; @@ -4491,6 +4505,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; }; id=164; type="I_Heli_light_03_dynamicLoadout_F"; @@ -4795,6 +4810,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; }; id=174; type="I_Heli_light_03_dynamicLoadout_F"; @@ -5166,6 +5182,7 @@ class Mission class Attributes { skill=0.60000002; + receiveRemoteTargets=1; }; id=187; type="B_Heli_Light_01_dynamicLoadout_F"; @@ -31061,6 +31078,7 @@ class Mission { skill=0.60000002; textures="Green"; + receiveRemoteTargets=1; }; id=968; type="I_Heli_light_03_dynamicLoadout_F"; @@ -31535,6 +31553,7 @@ class Mission { skill=0.60000002; textures="Green"; + receiveRemoteTargets=1; }; id=978; type="I_Heli_light_03_dynamicLoadout_F"; @@ -31743,6 +31762,7 @@ class Mission init="[""v_helo_l"",this,""syndikat""] call f_fnc_assignGear"; name="VehSyn_TH1"; textures="Green"; + receiveRemoteTargets=1; pylons=";;"; }; id=1027; @@ -34178,6 +34198,7 @@ class Mission { init="[""v_jet"",this] call f_fnc_assignGear;"; name="VehNATO_CAS1"; + receiveRemoteTargets=1; }; id=1134; type="B_Plane_CAS_01_dynamicLoadout_F"; @@ -34297,6 +34318,7 @@ class Mission { init="[""v_jet"",this] call f_fnc_assignGear;"; name="VehAAF_CAS1"; + receiveRemoteTargets=1; }; id=1139; type="I_Plane_Fighter_03_dynamicLoadout_F"; @@ -34517,6 +34539,7 @@ class Mission { init="[""v_jet"",this] call f_fnc_assignGear;"; name="VehCSAT_CAS1"; + receiveRemoteTargets=1; }; id=1146; type="O_Plane_CAS_02_dynamicLoadout_F"; From 1d4d75dd5d34a3f6ddd258f72f9e29b709e9b5b3 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 1 May 2019 19:28:32 +0100 Subject: [PATCH 172/407] Style update to f/briefing/fn_createBriefing.sqf Co-Authored-By: SamLex --- f/briefing/fn_createBriefing.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index ebd79ad2a..d5759955b 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -23,7 +23,7 @@ private _fnc_debug = { // ==================================================================================== // DETECT PLAYER FACTION (use faction from group leader) -private _unitfaction =toLower ([leader group player] call f_fnc_virtualFaction); +private _unitfaction = toLower ([leader group player] call f_fnc_virtualFaction); // DEBUG if (f_param_debugMode == 1) then From 117e6b0e6aba45cd9d400105b0e4be3423706b73 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 1 May 2019 20:32:12 +0200 Subject: [PATCH 173/407] issue 233: Use new magazine classes (#240) * AssignGear: issue 233: Use new magazine classes --- f/assignGear/f_assignGear_csatPacific.sqf | 4 ++-- f/assignGear/f_assignGear_natoPacific.sqf | 20 ++++++++++---------- f/assignGear/f_assignGear_syndikat.sqf | 14 +++++++------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index b861d6a94..9b1cb8f4c 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -191,8 +191,8 @@ _baghsamag = "O_HMG_01_support_F"; // used by Heavy SAM assistant gunner // Automatic Rifleman _AR = "arifle_CTARS_ghex_F"; -_ARmag = "100Rnd_580x42_Mag_F"; -_ARmag_tr = "100Rnd_580x42_Mag_Tracer_F"; +_ARmag = "100Rnd_580x42_ghex_Mag_F"; +_ARmag_tr = "100Rnd_580x42_ghex_Mag_Tracer_F"; // Medium MG _MMG = "MMG_01_tan_F"; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index cc10ecb51..e509ea5fb 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -105,13 +105,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) _rifle = "arifle_MX_khk_F"; -_riflemag = "30Rnd_65x39_caseless_mag"; -_riflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; +_riflemag = "30Rnd_65x39_caseless_khaki_mag"; +_riflemag_tr = "30Rnd_65x39_caseless_khaki_mag_Tracer"; // Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) _carbine = "arifle_MXC_khk_F"; -_carbinemag = "30Rnd_65x39_caseless_mag"; -_carbinemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; +_carbinemag = "30Rnd_65x39_caseless_khaki_mag"; +_carbinemag_tr = "30Rnd_65x39_caseless_khaki_mag_Tracer"; // Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) _smg = "SMG_01_F"; @@ -125,8 +125,8 @@ _diverMag3 = "20Rnd_556x45_UW_mag"; // Rifle with GL and HE grenades (CO, DC, FTLs) _glrifle = "arifle_MX_GL_khk_F"; -_glriflemag = "30Rnd_65x39_caseless_mag"; -_glriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; +_glriflemag = "30Rnd_65x39_caseless_khaki_mag"; +_glriflemag_tr = "30Rnd_65x39_caseless_khaki_mag_Tracer"; _glmag = "1Rnd_HE_Grenade_shell"; //_glmag = "3Rnd_HE_Grenade_shell"; @@ -192,8 +192,8 @@ _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** // Automatic Rifleman _AR = "arifle_MX_SW_khk_F"; -_ARmag = "100Rnd_65x39_caseless_mag"; -_ARmag_tr = "100Rnd_65x39_caseless_mag_Tracer"; +_ARmag = "100Rnd_65x39_caseless_khaki_mag"; +_ARmag_tr = "100Rnd_65x39_caseless_khaki_mag_tracer"; // Medium MG _MMG = "MMG_02_black_F"; @@ -207,8 +207,8 @@ _MMGmag_tr = "130Rnd_338_Mag"; // Marksman rifle _DMrifle = "arifle_MXM_khk_F"; -_DMriflemag = "30Rnd_65x39_caseless_mag"; -_DMriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; +_DMriflemag = "30Rnd_65x39_caseless_khaki_mag"; +_DMriflemag_tr = "30Rnd_65x39_caseless_khaki_mag_Tracer"; // Rifleman AT _RAT = "launch_MRAWS_green_F"; diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index c21eea4a1..606283f9c 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -104,12 +104,12 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) -_rifle = "arifle_AK12_F"; // Slight randomization, biased towards TRG -_riflemag = "30Rnd_762x39_Mag_F"; -_riflemag_tr = "30Rnd_762x39_Mag_Tracer_F"; +_rifle = "arifle_AK12_F"; +_riflemag = "30Rnd_762x39_AK12_Mag_F"; +_riflemag_tr = "30Rnd_762x39_AK12_Mag_Tracer_F"; // Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) -_carbine = "arifle_AKS_F"; // Slight randomization, biased towards TRG +_carbine = "arifle_AKS_F"; _carbinemag = "30Rnd_545x39_Mag_F"; _carbinemag_tr = "30Rnd_545x39_Mag_Tracer_F"; @@ -124,9 +124,9 @@ _diverMag2 = "30Rnd_556x45_Stanag_Tracer_Yellow"; _diverMag3 = "20Rnd_556x45_UW_mag"; // Rifle with GL and HE grenades (CO, DC, FTLs) -_glrifle = "arifle_AK12_GL_F"; // Slight randomization, biased towards TRG -_glriflemag = "30Rnd_762x39_Mag_F"; -_glriflemag_tr = "30Rnd_762x39_Mag_Tracer_F"; +_glrifle = "arifle_AK12_GL_F"; +_glriflemag = "30Rnd_762x39_AK12_Mag_F"; +_glriflemag_tr = "30Rnd_762x39_AK12_Mag_Tracer_F"; _glmag = "1Rnd_HE_Grenade_shell"; // Smoke for FTLs, Squad Leaders, etc From ee6e71718ad0cc739c1237c70b2fbc742df2e193 Mon Sep 17 00:00:00 2001 From: Euan J Hunter Date: Fri, 3 May 2019 12:59:47 +0100 Subject: [PATCH 174/407] Bumped version to FA3.5.3 --- README.md | 2 +- description.ext | 2 +- mission.sqm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6727667f0..02d0c496d 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## -* F3 3-5-2 +* F3 3-5-3 * ws_fnc 05/07/2015 diff --git a/description.ext b/description.ext index e95890e9c..8b380b594 100644 --- a/description.ext +++ b/description.ext @@ -1,4 +1,4 @@ -fa3_version[] = {3,5,2}; // WARNING: DO NOT CHANGE THIS LINE +fa3_version[] = {3,5,3}; // WARNING: DO NOT CHANGE THIS LINE // ============================================================================================ // F3 - Loading Screen diff --git a/mission.sqm b/mission.sqm index 6673eadde..d1016dfe9 100644 --- a/mission.sqm +++ b/mission.sqm @@ -272,7 +272,7 @@ class Mission { class Intel { - briefingName="fa3-5-2"; + briefingName="fa3-5-3"; resistanceWest=0; timeOfChanges=28800; startWeather=0.50001526; From 3909f6dd5732d10f2462955bc556f91bce0c86c8 Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Fri, 3 May 2019 13:51:28 +0100 Subject: [PATCH 175/407] Issue 212 add 3IFB (#237) * [#212][AssignGear] Added 3IFB insignia assignment * [#212][AssignGear] Updated 3IFB comment to reflect virtual factions * [#212][Briefing] Added 3IFB briefing file * [#212][GroupMarkers] Added 3IFB group data * [#212][Template] Added 3IFB * [#212][Template] Remounted 3IFB techs and TH. Moved TH to bottom of slotting --- f/assignGear/f_assignInsignia.sqf | 20 +- f/assignGear/fn_assignGear.sqf | 12 +- f/briefing/f_briefing_3ifb.sqf | 69 + f/briefing/fn_createBriefing.sqf | 6 + f/groupMarkers/f_setLocalGroupMarkers.sqf | 5 + f/groupMarkers/fn_groupData.sqf | 67 +- mission.sqm | 5558 ++++++++++++++++++++- 7 files changed, 5490 insertions(+), 247 deletions(-) create mode 100644 f/briefing/f_briefing_3ifb.sqf diff --git a/f/assignGear/f_assignInsignia.sqf b/f/assignGear/f_assignInsignia.sqf index dbf967b75..6aed898eb 100644 --- a/f/assignGear/f_assignInsignia.sqf +++ b/f/assignGear/f_assignInsignia.sqf @@ -286,6 +286,24 @@ switch (_faction) do ["GrpSyndikat_DC","NATO_DC_Badge"] ]; }; + case "3ifb" :{ + _groupBadges = [ + ["Grp3IFB_ASL","NATO_ASL_Badge"], + ["Grp3IFB_A1","NATO_A1_Badge"], + ["Grp3IFB_A2","NATO_A2_Badge"], + ["Grp3IFB_A3","NATO_A3_Badge"], + ["Grp3IFB_BSL","NATO_BSL_Badge"], + ["Grp3IFB_B1","NATO_B1_Badge"], + ["Grp3IFB_B2","NATO_B2_Badge"], + ["Grp3IFB_B3","NATO_B3_Badge"], + ["Grp3IFB_CSL","NATO_CSL_Badge"], + ["Grp3IFB_C1","NATO_C1_Badge"], + ["Grp3IFB_C2","NATO_C2_Badge"], + ["Grp3IFB_C3","NATO_C3_Badge"], + ["Grp3IFB_CO","NATO_CO_Badge"], + ["Grp3IFB_DC","NATO_DC_Badge"] + ]; + }; }; // ==================================================================================== @@ -331,4 +349,4 @@ if (_badge != "") then { _unit setvariable ["bis_fnc_setUnitInsignia_class",_badge,false]; _unit setobjecttexture [_index,_texture]; }; -}; \ No newline at end of file +}; diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 1c9d71937..f4923a95b 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -167,12 +167,12 @@ if (_faction in ["ind_c_f","syndikat"]) then { // ==================================================================================== +// VIRTUAL FACTIONS + // GEAR: 3IFB -// The following block of code executes only if the unit is manually assigned the 3IFB 'faction'; it -// automatically includes a file which contains the appropriate equipment data. -// Note the this faction doesn't exist in the game and so is a 'pseudo-faction'; in particular other faction -// sensitive components, such as briefings, are not aware of this 'pseudo-faction' and will use the -// underlying game faction of the unit +// The following block of code executes only if the unit is assigned to the 3IFB virtual faction +// with f_fnc_setVirtualFaction; it automatically includes a file which contains the appropriate +// equipment data. if (_faction in ["3ifb"]) then { #include "f_assignGear_3IFB.sqf" }; @@ -184,7 +184,7 @@ if (_faction in ["3ifb"]) then { // This block needs only to be run on an infantry unit if (_isMan) then { - // Add extra FAKs, + // Add extra FAKs, // because the assignGear files were made when the sws was still existing. private _numExtraFAK = 2; for "_i" from 1 to _numExtraFAK do { diff --git a/f/briefing/f_briefing_3ifb.sqf b/f/briefing/f_briefing_3ifb.sqf new file mode 100644 index 000000000..33c7cc789 --- /dev/null +++ b/f/briefing/f_briefing_3ifb.sqf @@ -0,0 +1,69 @@ +// F3 - Briefing +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// VIRTUAL FACTION: 3IFB + +// ==================================================================================== + +// NOTES: ADMINISTRATION +// The code below creates the administration sub-section of notes. + +_adm = player createDiaryRecord ["diary", ["Administration"," +
+*** Insert information on administration and logistics here. *** +"]]; + +// ==================================================================================== + +// NOTES: EXECUTION +// The code below creates the execution sub-section of notes. + +_exe = player createDiaryRecord ["diary", ["Execution"," +
+COMMANDER'S INTENT +
+*** Insert very short summary of plan here. *** +

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

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

+SPECIAL TASKS +
+*** Insert instructions for specific units here. *** +"]]; + +// ==================================================================================== + +// NOTES: MISSION +// The code below creates the mission sub-section of notes. + +_mis = player createDiaryRecord ["diary", ["Mission"," +
+*** Insert the mission here. *** +"]]; + +// ==================================================================================== + +// NOTES: SITUATION +// The code below creates the situation sub-section of notes. + +_sit = player createDiaryRecord ["diary", ["Situation"," +
+*** Insert general information about the situation here.*** +

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

+FRIENDLY FORCES +
+*** Insert information about friendly forces here.*** +"]]; + +// ==================================================================================== diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index d5759955b..0761d0f22 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -96,6 +96,12 @@ if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { [_unitfaction] call _fnc_debug; }; +// VIRTUAL FACTION > 3IFB +if (_unitfaction in ["3ifb"]) exitwith { + #include "f_briefing_3ifb.sqf" + [_unitfaction] call _fnc_debug; +}; + // ZEUS if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { #include "f_briefing_zeus.sqf" diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index 9869c76e0..b3ec146ce 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -62,6 +62,11 @@ if (_unitfaction in ["ind_c_f"]) then { _groups = f_var_groupData_indfor_syn; }; +// Markers seen by players in 3IFB (virtual) slots. +if (_unitfaction in ["3ifb"]) then { + _groups = f_var_groupData_indfor_3ifb; +}; + // ==================================================================================== { diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf index c77ee8f15..407968bb4 100644 --- a/f/groupMarkers/fn_groupData.sqf +++ b/f/groupMarkers/fn_groupData.sqf @@ -133,7 +133,7 @@ f_var_groupData_blufor_fia = [ ["GrpFIA_IFV1", _ifv, "TECH1", "ColorRed", "FIA TECH1 -"], ["GrpFIA_IFV2", _ifv, "TECH2", "ColorRed", "FIA TECH2 -"], ["GrpFIA_TNK1", _tnk, "TNK1", "ColorRed", "FIA TNK1 -"], - + ["GrpFIA_CAS1", _pla, "CAS1", "ColorOrange", "FIA CAS1 -"], ["GrpFIA_TH1", _hel, "TH1", "ColorRed", "FIA TH1 -"], @@ -268,7 +268,7 @@ f_var_groupData_opfor_fia = [ ["GrpOFIA_IFV1", _ifv, "TECH1", "ColorRed", "FIA O TECH1 -"], ["GrpOFIA_IFV2", _ifv, "TECH2", "ColorRed", "FIA O TECH2 -"], ["GrpOFIA_TNK1", _tnk, "TNK1", "ColorRed", "FIA O TNK1 -"], - + ["GrpOFIA_CAS1", _pla, "CAS1", "ColorOrange", "FIA O CAS1 -"], ["GrpOFIA_TH1", _hel, "TH1", "ColorRed", "FIA O TH1 -"], @@ -470,6 +470,68 @@ f_var_groupData_indfor_syn = [ ["UnitSyn_BSL_M", _med, "BM", "ColorBlack", ""], ["UnitSyn_CSL_M", _med, "CM", "ColorBlack", ""] ]; + +f_var_groupData_indfor_3ifb = [ + ["Grp3IFB_CO", _hq, "CO", "ColorYellow", "3IFB CO -"], + ["Grp3IFB_DC", _hq, "DC", "ColorYellow", "3IFB DC -"], + ["Grp3IFB_COV", _ifv, "COV", "ColorYellow", "3IFB COV -"], + + ["Grp3IFB_ASL", _hq, "ASL", "ColorRed", "3IFB ASL -"], + ["Grp3IFB_A1", _ft, "A1", "ColorRed", "3IFB A1 -"], + ["Grp3IFB_A2", _ft, "A2", "ColorRed", "3IFB A2 -"], + ["Grp3IFB_AV", _ifv, "AV", "ColorRed", "3IFB AV -"], + + ["Grp3IFB_BSL", _hq, "BSL", "ColorBlue", "3IFB BSL -"], + ["Grp3IFB_B1", _ft, "B1", "ColorBlue", "3IFB B1 -"], + ["Grp3IFB_B2", _ft, "B2", "ColorBlue", "3IFB B2 -"], + ["Grp3IFB_BV", _ifv, "BV", "ColorBlue", "3IFB BV -"], + + ["Grp3IFB_CSL", _hq, "CSL", "ColorGreen", "3IFB CSL -"], + ["Grp3IFB_C1", _ft, "C1", "ColorGreen", "3IFB C1 -"], + ["Grp3IFB_C2", _ft, "C2", "ColorGreen", "3IFB C2 -"], + ["Grp3IFB_CV", _ifv, "CV", "ColorGreen", "3IFB CV -"], + + ["Grp3IFB_JSL", _hq, "JSL", "ColorPink", "3IFB JSL -"], + ["Grp3IFB_J1", _ft, "J1", "ColorPink", "3IFB J1 -"], + ["Grp3IFB_J2", _ft, "J2", "ColorPink", "3IFB J2 -"], + ["Grp3IFB_JV", _ifv, "JV", "ColorPink", "3IFB JV -"], + + ["Grp3IFB_MMG1", _sup, "MMG1", "ColorOrange", "3IFB MMG1 -"], + ["Grp3IFB_MMG2", _sup, "MMG2", "ColorOrange", "3IFB MMG2 -"], + ["Grp3IFB_HMG1", _sup, "HMG1", "ColorOrange", "3IFB HMG1 -"], + ["Grp3IFB_MAT1", _lau, "MAT1", "ColorOrange", "3IFB MAT1 -"], + ["Grp3IFB_MAT2", _lau, "MAT2", "ColorOrange", "3IFB MAT2 -"], + ["Grp3IFB_HAT1", _lau, "HAT1", "ColorOrange", "3IFB HAT1 -"], + ["Grp3IFB_MTR1", _mor, "MTR1", "ColorOrange", "3IFB MTR1 -"], + ["Grp3IFB_MSAM1", _lau, "MSAM1", "ColorOrange", "3IFB MSAM1 -"], + ["Grp3IFB_HSAM1", _lau, "HSAM1", "ColorOrange", "3IFB HSAM1 -"], + ["Grp3IFB_ST1", _rec, "ST1", "ColorOrange", "3IFB ST1 -"], + ["Grp3IFB_DT1", _rec, "DT1", "ColorOrange", "3IFB DT1 -"], + ["Grp3IFB_ENG1", _eng, "ENG1", "ColorOrange", "3IFB ENG1 -"], + + ["Grp3IFB_IFV1", _ifv, "TECH1", "ColorRed", "3IFB TECH1 -"], + ["Grp3IFB_IFV2", _ifv, "TECH2", "ColorRed", "3IFB TECH2 -"], + ["Grp3IFB_TNK1", _tnk, "TNK1", "ColorRed", "3IFB TNK1 -"], + + ["Grp3IFB_CAS1", _pla, "CAS1", "ColorOrange", "3IFB CAS1 -"], + + ["Grp3IFB_TH1", _hel, "TH1", "ColorRed", "3IFB TH1 -"], + ["Grp3IFB_TH2", _hel, "TH2", "ColorRed", "3IFB TH2 -"], + ["Grp3IFB_TH3", _hel, "TH3", "ColorBlue", "3IFB TH3 -"], + ["Grp3IFB_TH4", _hel, "TH4", "ColorBlue", "3IFB TH4 -"], + ["Grp3IFB_TH5", _hel, "TH5", "ColorGreen", "3IFB TH5 -"], + ["Grp3IFB_TH6", _hel, "TH6", "ColorGreen", "3IFB TH6 -"], + ["Grp3IFB_TH7", _hel, "TH7", "ColorOrange", "3IFB TH7 -"], + ["Grp3IFB_TH8", _hel, "TH8", "ColorOrange", "3IFB TH8 -"], + + ["Grp3IFB_AH1", _hel, "AH1", "ColorRed", "3IFB AH1 -"], + + ["Unit3IFB_CO_M", _med, "COM", "ColorBlack", ""], + ["Unit3IFB_DC_M", _med, "DCM", "ColorBlack", ""], + ["Unit3IFB_ASL_M", _med, "AM", "ColorBlack", ""], + ["Unit3IFB_BSL_M", _med, "BM", "ColorBlack", ""], + ["Unit3IFB_CSL_M", _med, "CM", "ColorBlack", ""] +]; // ==================================================================================== // Adding all of the group data to a single array @@ -482,5 +544,6 @@ f_var_groupData_all append f_var_groupData_opfor_fia; f_var_groupData_all append f_var_groupData_indfor_aaf; f_var_groupData_all append f_var_groupData_indfor_fia; f_var_groupData_all append f_var_groupData_indfor_syn; +f_var_groupData_all append f_var_groupData_indfor_3ifb; // ==================================================================================== diff --git a/mission.sqm b/mission.sqm index 6673eadde..886d21976 100644 --- a/mission.sqm +++ b/mission.sqm @@ -5,17 +5,17 @@ class EditorData angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=641; + toggles=513; class ItemIDProvider { - nextID=1240; + nextID=1656; }; class Camera { - pos[]={496.543,7.4236813,1023.0076}; - dir[]={-0.84531337,-0.17032278,0.50663656}; - up[]={-0.14613166,0.98536563,0.087582253}; - aside[]={0.51416159,-1.0040822e-007,0.85785311}; + pos[]={1465.2286,112.83681,885.57111}; + dir[]={-0.012939595,-0.69021803,0.72348863}; + up[]={-0.012342638,0.72360009,0.69011098}; + aside[]={0.99984413,-4.4892658e-009,0.017882211}; }; }; binarizationWanted=0; @@ -63,13 +63,14 @@ addons[]= "A3_Air_F_EPC_Plane_CAS_01", "A3_Characters_F_Jets", "A3_Air_F_Gamma_Plane_Fighter_03", - "A3_Air_F_EPC_Plane_CAS_02" + "A3_Air_F_EPC_Plane_CAS_02", + "A3_Soft_F_Bootcamp_Van_01" }; class AddonsMetaData { class List { - items=23; + items=24; class Item0 { className="A3_Air_F_Heli"; @@ -231,6 +232,13 @@ class AddonsMetaData author="Bohemia Interactive"; url="https://www.arma3.com"; }; + class Item23 + { + className="A3_Soft_F_Bootcamp"; + name="Arma 3 Bootcamp Update - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; }; }; randomSeed=1116085; @@ -296,7 +304,7 @@ class Mission }; class Entities { - items=400; + items=460; class Item0 { dataType="Object"; @@ -30679,7 +30687,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1507.1195,5.8924227,1374.9778}; + position[]={1507.12,5.8924227,1374.978}; }; side="Empty"; flags=4; @@ -30687,7 +30695,7 @@ class Mission { skill=0.60000002; init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; - name="CrateFIA_C_1"; + name="CrateSyn_C"; }; id=961; type="IG_supplyCrate_F"; @@ -30720,7 +30728,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1465.9681,5.8924227,1375.2434}; + position[]={1465.968,5.8924227,1375.243}; }; side="Empty"; flags=4; @@ -30728,7 +30736,7 @@ class Mission { skill=0.60000002; init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; - name="CrateFIA_B_1"; + name="CrateSyn_B"; }; id=962; type="IG_supplyCrate_F"; @@ -30761,7 +30769,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1425.1469,5.8924227,1375.5403}; + position[]={1425.147,5.8924227,1375.54}; }; side="Empty"; flags=4; @@ -30769,7 +30777,7 @@ class Mission { skill=0.60000002; init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; - name="CrateFIA_A_1"; + name="CrateSyn_A"; }; id=963; type="IG_supplyCrate_F"; @@ -34544,298 +34552,5192 @@ class Mission id=1146; type="O_Plane_CAS_02_dynamicLoadout_F"; }; - }; - class Connections - { - class LinkIDProvider - { - nextID=81; - }; - class Links + class Item400 { - items=81; - class Item0 + dataType="Object"; + class PositionInfo { - linkID=0; - item0=813; - item1=110; - class CustomData - { - type="Sync"; - }; + position[]={1412.1403,5.8924227,1074.8203}; }; - class Item1 + side="Empty"; + flags=4; + class Attributes { - linkID=1; - item0=804; - item1=110; - class CustomData - { - type="Sync"; - }; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; + name="Crate3IFB_A"; }; - class Item2 + id=1399; + type="IG_supplyCrate_F"; + class CustomAttributes { - linkID=2; - item0=192; - item1=110; - class CustomData + class Attribute0 { - type="Sync"; + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; }; + nAttributes=1; }; - class Item3 + }; + class Item401 + { + dataType="Object"; + class PositionInfo { - linkID=3; - item0=115; - item1=813; - class CustomData - { - type="Sync"; - }; + position[]={1454.1492,5.8924227,1075.9512}; }; - class Item4 + side="Empty"; + flags=4; + class Attributes { - linkID=4; - item0=118; - item1=804; - class CustomData - { - type="Sync"; - }; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; + name="Crate3IFB_B"; }; - class Item5 + id=1400; + type="IG_supplyCrate_F"; + class CustomAttributes { - linkID=5; - item0=820; - item1=120; - class CustomData + class Attribute0 { - type="Sync"; + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; }; + nAttributes=1; }; - class Item6 + }; + class Item402 + { + dataType="Object"; + class PositionInfo { - linkID=6; - item0=802; - item1=120; - class CustomData - { - type="Sync"; - }; + position[]={1494.1052,5.8924227,1074.7432}; }; - class Item7 + side="Empty"; + flags=4; + class Attributes { - linkID=7; - item0=681; - item1=120; - class CustomData - { - type="Sync"; - }; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; + name="Crate3IFB_C"; }; - class Item8 + id=1401; + type="IG_supplyCrate_F"; + class CustomAttributes { - linkID=8; - item0=125; - item1=820; - class CustomData + class Attribute0 { - type="Sync"; + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; }; + nAttributes=1; }; - class Item9 + }; + class Item403 + { + dataType="Logic"; + class PositionInfo { - linkID=9; - item0=128; - item1=802; - class CustomData - { - type="Sync"; - }; + position[]={1355.8893,5,1062.4961}; }; - class Item10 + id=1538; + type="SupportProvider_Artillery"; + }; + class Item404 + { + dataType="Object"; + class PositionInfo { - linkID=10; - item0=814; - item1=130; - class CustomData - { - type="Sync"; - }; + position[]={1532.8141,5.6047058,935.72253}; }; - class Item11 + side="Independent"; + flags=6; + class Attributes { - linkID=11; - item0=801; - item1=130; - class CustomData - { - type="Sync"; - }; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_helo_l"",this] call f_fnc_assignGear"; + name="Veh3IFB_TH1"; + textures="Elliptical"; }; - class Item12 + id=1405; + type="C_Heli_Light_01_civil_F"; + }; + class Item405 + { + dataType="Logic"; + class PositionInfo { - linkID=12; - item0=686; - item1=130; - class CustomData - { - type="Sync"; - }; + position[]={1357.984,5.4784107,1064.8203}; }; - class Item13 + id=1417; + type="SupportRequester"; + atlOffset=0.47841072; + class CustomAttributes { - linkID=13; - item0=135; - item1=814; - class CustomData + class Attribute0 { - type="Sync"; + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; }; - }; - class Item14 - { - linkID=14; - item0=138; - item1=801; - class CustomData + class Attribute1 { - type="Sync"; + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; }; - }; - class Item15 - { - linkID=15; - item0=819; - item1=140; - class CustomData + class Attribute2 { - type="Sync"; + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; }; - }; - class Item16 - { - linkID=16; - item0=799; - item1=140; - class CustomData + class Attribute3 { - type="Sync"; + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; }; - }; - class Item17 - { - linkID=17; - item0=369; - item1=140; - class CustomData + class Attribute4 { - type="Sync"; + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; }; - }; - class Item18 - { - linkID=18; - item0=149; - item1=819; - class CustomData + class Attribute5 { - type="Sync"; + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; }; - }; - class Item19 - { - linkID=19; - item0=145; - item1=799; - class CustomData + class Attribute6 { - type="Sync"; + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; }; + nAttributes=7; }; - class Item20 + }; + class Item406 + { + dataType="Group"; + side="Independent"; + class Entities { - linkID=20; - item0=818; - item1=150; - class CustomData + items=1; + class Item0 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={1355.9049,5.3587284,1059.6226}; + }; + side="Independent"; + flags=2; + class Attributes + { + }; + id=1419; + type="B_Soldier_F"; + atlOffset=0.35728931; }; }; - class Item21 + class Attributes { - linkID=21; - item0=800; - item1=150; - class CustomData - { - type="Sync"; - }; }; - class Item22 + class CrewLinks { - linkID=22; - item0=374; - item1=150; - class CustomData + class LinkIDProvider { - type="Sync"; + nextID=1; }; - }; - class Item23 - { - linkID=23; - item0=159; - item1=818; - class CustomData + class Links { - type="Sync"; + items=1; + class Item0 + { + linkID=0; + item0=1419; + item1=1420; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; }; }; - class Item24 + id=1418; + atlOffset=0.35728931; + }; + class Item407 + { + dataType="Object"; + class PositionInfo { - linkID=24; - item0=155; - item1=800; - class CustomData - { - type="Sync"; - }; + position[]={1355.9049,6.0789151,1059.5721}; }; - class Item25 + side="Independent"; + flags=2; + class Attributes { - linkID=25; - item0=817; - item1=160; - class CustomData - { - type="Sync"; - }; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; }; - class Item26 + id=1420; + type="B_Mortar_01_F"; + atlOffset=0.35728931; + }; + class Item408 + { + dataType="Group"; + side="Independent"; + class Entities { - linkID=26; - item0=797; - item1=160; - class CustomData + items=2; + class Item0 { - type="Sync"; + dataType="Object"; + class PositionInfo + { + position[]={1360.2526,5.0109735,1058.3986}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=1422; + type="B_Helipilot_F"; + atlOffset=0.009534359; }; - }; - class Item27 - { - linkID=27; - item0=532; - item1=160; - class CustomData + class Item1 { - type="Sync"; - }; - }; - class Item28 - { + dataType="Object"; + class PositionInfo + { + position[]={1360.2526,5.0109735,1058.3986}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=1423; + type="B_Helipilot_F"; + atlOffset=0.009534359; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1422; + item1=1424; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=1423; + item1=1424; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=1421; + atlOffset=0.009534359; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=" -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item409 + { + dataType="Object"; + class PositionInfo + { + position[]={1360.2526,6.7886786,1058.3496}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; + receiveRemoteTargets=1; + }; + id=1424; + type="B_Heli_Light_01_dynamicLoadout_F"; + atlOffset=0.009534359; + }; + class Item410 + { + dataType="Logic"; + class PositionInfo + { + position[]={1358.8209,5.8319387,1040.9912}; + }; + id=1425; + type="SupportRequester"; + atlOffset=0.83193874; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item411 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1356.7653,5.7404861,1035.8462}; + }; + side="Independent"; + flags=2; + class Attributes + { + }; + id=1427; + type="B_Soldier_F"; + atlOffset=0.73904705; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=1427; + item1=1428; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=1426; + atlOffset=0.73904705; + }; + class Item412 + { + dataType="Object"; + class PositionInfo + { + position[]={1356.7653,6.4606729,1035.7958}; + }; + side="Independent"; + flags=2; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; + }; + id=1428; + type="B_Mortar_01_F"; + atlOffset=0.73904705; + }; + class Item413 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1361.1305,5.2110257,1034.6027}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=1430; + type="B_Helipilot_F"; + atlOffset=0.20958662; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1361.1305,5.2110257,1034.6027}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=1431; + type="B_Helipilot_F"; + atlOffset=0.20958662; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1430; + item1=1432; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=1431; + item1=1432; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=1429; + atlOffset=0.20958662; + }; + class Item414 + { + dataType="Object"; + class PositionInfo + { + position[]={1361.1305,6.9887309,1034.5537}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; + receiveRemoteTargets=1; + }; + id=1432; + type="B_Heli_Light_01_dynamicLoadout_F"; + atlOffset=0.20958662; + }; + class Item415 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1374.589,5.0014391,1067.248}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="COLONEL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""co"",this] call f_fnc_assignGear;"; + name="Unit3IFB_CO"; + description="3IFB Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1560; + type="I_G_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1379.589,5.0014391,1065.597}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""jtac"",this] call f_fnc_assignGear;"; + name="Unit3IFB_CO_JTAC"; + description="3IFB JTAC"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1561; + type="I_G_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=2; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1370.1198,5.0014391,1064.2362}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""uav"",this] call f_fnc_assignGear;"; + name="Unit3IFB_CO_UAV"; + description="3IFB UAV Operator"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1562; + type="I_G_Soldier_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1384.5895,5.0014391,1062.8573}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="Unit3IFB_CO_M"; + description="3IFB Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1563; + type="I_G_medic_F"; + }; + }; + class Attributes + { + name="Grp3IFB_CO"; + }; + id=1433; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item416 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1374.0514,5.2133446,1042.8837}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="MAJOR"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""dc"",this] call f_fnc_assignGear;"; + name="Unit3IFB_DC"; + description="3IFB Deputy Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1564; + type="I_G_officer_F"; + atlOffset=0.21190548; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1379.0514,5.2344303,1041.2333}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""jtac"",this] call f_fnc_assignGear;"; + name="Unit3IFB_DC_JTAC"; + description="3IFB Forward Observer"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1565; + type="I_G_officer_F"; + atlOffset=0.23299122; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1369.0514,5.1082706,1041.2333}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""uav"",this] call f_fnc_assignGear;"; + name="Unit3IFB_DC_UAV"; + description="3IFB UAV Operator"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1566; + type="I_G_Soldier_F"; + atlOffset=0.10683155; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1384.0514,5.1013861,1038.494}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="Unit3IFB_DC_M"; + description="3IFB Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1567; + type="I_G_medic_F"; + atlOffset=0.099946976; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="Grp3IFB_DC"; + }; + id=1438; + atlOffset=0.21190548; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item417 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1410.743,5.0014391,1066.639}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""dc"",this] call f_fnc_assignGear;"; + name="Unit3IFB_ASL_SL"; + description="3IFB Alpha Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1568; + type="I_G_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.7428,5.0014391,1064.9882}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="Unit3IFB_ASL_M"; + description="3IFB Alpha Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1569; + type="I_G_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="Grp3IFB_ASL"; + }; + id=1443; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item418 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1411.3024,5.0014391,1045.1337}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A1_FTL"; + description="3IFB Alpha 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1570; + type="I_G_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1416.3024,5.0913763,1043.4833}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A1_AR1"; + description="3IFB Alpha 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1571; + type="I_G_Soldier_AR_F"; + atlOffset=0.08993721; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1406.3024,5.0014391,1043.4833}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A1_AR2"; + description="3IFB Alpha 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1572; + type="I_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1421.3024,5.248991,1040.744}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A1_AT"; + description="3IFB Alpha 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1573; + type="I_G_Soldier_LAT_F"; + atlOffset=0.24755192; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1401.3024,5.0014391,1040.744}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A1_R1"; + description="3IFB Alpha 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1574; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1426.3024,5.0014391,1036.1971}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A1_R2"; + description="3IFB Alpha 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1575; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="Grp3IFB_A1"; + }; + id=1446; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item419 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1411.066,5.0014391,1021.2548}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A2_FTL"; + description="3IFB Alpha 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1576; + type="I_G_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1416.066,5.0014391,1019.6044}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A2_AR1"; + description="3IFB Alpha 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1577; + type="I_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1406.066,5.0014391,1019.6044}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A2_AR2"; + description="3IFB Alpha 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1578; + type="I_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1421.066,5.0014391,1016.8651}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A2_AT"; + description="3IFB Alpha 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1579; + type="I_G_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1401.066,5.0014391,1016.8651}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A2_R1"; + description="3IFB Alpha 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1580; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1426.066,5.0014391,1012.3182}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_A2_R2"; + description="3IFB Alpha 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1581; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="Grp3IFB_A2"; + }; + id=1453; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item420 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.425,5.0014391,1066.592}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""dc"",this] call f_fnc_assignGear;"; + name="Unit3IFB_BSL_SL"; + description="3IFB Bravo Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1582; + type="I_G_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1456.4246,5.0014391,1064.9413}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="Unit3IFB_BSL_M"; + description="3IFB Bravo Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1583; + type="I_G_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="Grp3IFB_BSL"; + }; + id=1460; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item421 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1452.1912,5.0014391,1044.8964}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B1_FTL"; + description="3IFB Bravo 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1584; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.1912,5.0014391,1043.2469}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B1_AR1"; + description="3IFB Bravo 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1585; + type="I_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1447.1912,5.0014391,1043.2469}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B1_AR2"; + description="3IFB Bravo 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1586; + type="I_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1462.1912,5.0014391,1040.5067}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B1_AT"; + description="3IFB Bravo 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1587; + type="I_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1442.1912,5.0014391,1040.5067}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B1_R1"; + description="3IFB Bravo 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1588; + type="I_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1467.1912,5.0014391,1035.9608}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B1_R2"; + description="3IFB Bravo 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1589; + type="I_G_Soldier_F"; + }; + }; + class Attributes + { + name="Grp3IFB_B1"; + }; + id=1463; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item422 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.6316,5.0014391,1021.6688}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B2_FTL"; + description="3IFB Bravo 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1590; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1456.6316,5.0014391,1020.0175}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B2_AR1"; + description="3IFB Bravo 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1591; + type="I_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1446.6316,5.0014391,1020.0175}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B2_AR2"; + description="3IFB Bravo 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1592; + type="I_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1461.6316,5.0014391,1017.2782}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B2_AT"; + description="3IFB Bravo 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1593; + type="I_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1441.6316,5.0014391,1017.2782}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B2_R1"; + description="3IFB Bravo 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1594; + type="I_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1466.6316,5.0014391,1012.7313}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_B2_R2"; + description="3IFB Bravo 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1595; + type="I_G_Soldier_F"; + }; + }; + class Attributes + { + name="Grp3IFB_B2"; + }; + id=1470; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item423 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1494.6082,5.3023081,1065.995}; + }; + side="Independent"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""dc"",this] call f_fnc_assignGear;"; + name="Unit3IFB_CSL_SL"; + description="3IFB Charlie Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1596; + type="I_G_Soldier_SL_F"; + atlOffset=0.30086899; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1499.6082,5.6464462,1064.3446}; + }; + side="Independent"; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="Unit3IFB_CSL_M"; + description="3IFB Charlie Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1597; + type="I_G_medic_F"; + atlOffset=0.64500713; + }; + }; + class Attributes + { + name="Grp3IFB_CSL"; + }; + id=1477; + atlOffset=0.30086899; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item424 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1495.0095,5.0014391,1044.2352}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C1_FTL"; + description="3IFB Charlie 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1598; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1500.0095,5.0014391,1042.5858}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C1_AR1"; + description="3IFB Charlie 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1599; + type="I_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1490.0095,5.0014391,1042.5858}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C1_AR2"; + description="3IFB Charlie 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1600; + type="I_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1505.0095,5.0014391,1039.8456}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C1_AT"; + description="3IFB Charlie 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1601; + type="I_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1485.0095,5.0014391,1039.8456}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C1_R1"; + description="3IFB Charlie 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1602; + type="I_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1510.0095,5.0014391,1035.2987}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C1_R2"; + description="3IFB Charlie 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1603; + type="I_G_Soldier_F"; + }; + }; + class Attributes + { + name="Grp3IFB_C1"; + }; + id=1480; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item425 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1495.3142,5.0014391,1021.1317}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C2_FTL"; + description="3IFB Charlie 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1604; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1500.3142,5.0014391,1019.4813}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C2_AR1"; + description="3IFB Charlie 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1605; + type="I_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1490.3142,5.0014391,1019.4813}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C2_AR2"; + description="3IFB Charlie 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1606; + type="I_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1505.3142,5.0014391,1016.7421}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C2_AT"; + description="3IFB Charlie 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1607; + type="I_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1485.3142,5.0014391,1016.7421}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C2_R1"; + description="3IFB Charlie 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1608; + type="I_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1510.3142,5.0014391,1012.1942}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="Unit3IFB_C2_R2"; + description="3IFB Charlie 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1609; + type="I_G_Soldier_F"; + }; + }; + class Attributes + { + name="Grp3IFB_C2"; + }; + id=1487; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item426 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.2993,5.153439,1066.2166}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mmgl"",this] call f_fnc_assignGear;"; + name="Unit3IFB_MMG1_TL"; + description="3IFB Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1610; + type="I_G_Soldier_TL_F"; + atlOffset=0.15199995; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.2996,5.2476587,1064.5663}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mmgg"",this] call f_fnc_assignGear;"; + name="Unit3IFB_MMG1_G"; + description="3IFB Medium MG Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1611; + type="I_G_Soldier_AR_F"; + atlOffset=0.24621964; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1527.1372,5.153439,1064.5956}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mmgag"",this] call f_fnc_assignGear;"; + name="Unit3IFB_MMG1_AG"; + description="3IFB Medium MG Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1612; + type="I_G_Soldier_lite_F"; + atlOffset=0.15199995; + }; + }; + class Attributes + { + name="Grp3IFB_MMG1"; + }; + id=1494; + atlOffset=0.15199995; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item427 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.1594,5.0014391,1054.8776}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mmgl"",this] call f_fnc_assignGear;"; + name="Unit3IFB_MMG2_TL"; + description="3IFB Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1613; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.1599,5.0014391,1053.2274}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mmgg"",this] call f_fnc_assignGear;"; + name="Unit3IFB_MMG2_G"; + description="3IFB Medium MG Team 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1614; + type="I_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1526.9973,5.0014391,1053.2566}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mmgag"",this] call f_fnc_assignGear;"; + name="Unit3IFB_MMG2_AG"; + description="3IFB Medium MG Team 2 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1615; + type="I_G_Soldier_lite_F"; + }; + }; + class Attributes + { + name="Grp3IFB_MMG2"; + }; + id=1498; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item428 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.5034,5.0014391,1044.1696}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""matl"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MAT1_TL"; + description="3IFB Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1616; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.5037,5.0014391,1042.5194}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""matg"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MAT1_G"; + description="3IFB Medium AT Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1617; + type="I_G_Soldier_LAT_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1527.3413,5.0014391,1042.5486}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""matag"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MAT1_AG"; + description="3IFB Medium AT Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1618; + type="I_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="Grp3IFB_MAT1"; + }; + id=1502; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item429 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.4164,5.0014391,1032.1875}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""matl"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MAT2_TL"; + description="3IFB Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1619; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.4167,5.0014391,1030.537}; + }; + side="Independent"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""matg"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MAT2_G"; + description="3IFB Medium AT Team 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1620; + type="I_G_Soldier_LAT_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1527.2544,5.0014391,1030.5656}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""matag"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MAT2_AG"; + description="3IFB Medium AT Team 2 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1621; + type="I_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="Grp3IFB_MAT2"; + }; + id=1506; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item430 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.905,5.0014391,1021.2889}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""hmgag"",this] call f_fnc_assignGear; "; + name="Unit3IFB_HMG1_TL"; + description="3IFB Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1622; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.905,5.0014391,1019.6385}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""hmgg"",this] call f_fnc_assignGear; "; + name="Unit3IFB_HMG1_G"; + description="3IFB Heavy MG Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1623; + type="I_G_Soldier_AR_F"; + }; + }; + class Attributes + { + name="Grp3IFB_HMG1"; + }; + id=1510; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item431 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.7294,5.0014391,1008.8856}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""hatl"",this] call f_fnc_assignGear; "; + name="Unit3IFB_HAT1_TL"; + description="3IFB Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1624; + type="I_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.7292,5.2301273,1007.2352}; + }; + side="Independent"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""hatg"",this] call f_fnc_assignGear; "; + name="Unit3IFB_HAT1_G"; + description="3IFB Heavy AT Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1625; + type="I_G_Soldier_LAT_F"; + atlOffset=0.22868824; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1527.5664,5.0014391,1007.2635}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""hatag"",this] call f_fnc_assignGear; "; + name="Unit3IFB_HAT1_AG"; + description="3IFB Heavy AT Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1626; + type="I_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="Grp3IFB_HAT1"; + }; + id=1513; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item432 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.7312,5.0014391,997.11707}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mtrag"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MTR1_TL"; + description="3IFB Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1627; + type="I_G_Soldier_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.7312,5.3897858,995.46667}; + }; + side="Independent"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""mtrg"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MTR1_G"; + description="3IFB Mortar Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1628; + type="I_G_Soldier_A_F"; + atlOffset=0.38834667; + }; + }; + class Attributes + { + name="Grp3IFB_MTR1"; + }; + id=1517; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item433 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.7305,5.0014391,984.59955}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""msaml"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MSAM1_TL"; + description="3IFB Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1629; + type="I_G_Soldier_LAT_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.7302,5.5413675,982.9491}; + }; + side="Independent"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""msamg"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MSAM1_G"; + description="3IFB Medium SAM Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1630; + type="I_G_Soldier_LAT_F"; + atlOffset=0.53992844; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1527.5674,5.0014391,982.97754}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""msamag"",this] call f_fnc_assignGear; "; + name="Unit3IFB_MSAM1_AG"; + description="3IFB Medium SAM Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1631; + type="I_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="Grp3IFB_MSAM1"; + }; + id=1520; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item434 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.6296,5.0014391,971.82507}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""hsamag"",this] call f_fnc_assignGear; "; + name="Unit3IFB_HSAM1_TL"; + description="3IFB Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1632; + type="I_G_Soldier_LAT_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.6296,5.0014391,970.17468}; + }; + side="Independent"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""hsamg"",this] call f_fnc_assignGear; "; + name="Unit3IFB_HSAM1_G"; + description="3IFB Heavy SAM Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1633; + type="I_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="Grp3IFB_HSAM1"; + }; + id=1524; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item435 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1531.5027,5.0014391,960.9198}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""sp"",this] call f_fnc_assignGear; "; + name="Unit3IFB_ST1_SP"; + description="3IFB Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1634; + type="I_G_Soldier_M_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1536.5027,5.0014391,959.26941}; + }; + side="Independent"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""sn"",this] call f_fnc_assignGear; "; + name="Unit3IFB_ST1_G"; + description="3IFB Sniper Team 1 Sniper"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1635; + type="I_G_Soldier_M_F"; + }; + }; + class Attributes + { + name="Grp3IFB_ST1"; + }; + id=1527; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item436 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1532.2742,5.0014391,948.57312}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""eng"",this] call f_fnc_assignGear;"; + name="Unit3IFB_ENG1_FTL"; + description="3IFB Engineer Team 1 Leader (Demo)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1636; + type="I_G_engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1537.2742,5.0014391,946.92273}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""eng"",this] call f_fnc_assignGear;"; + name="Unit3IFB_ENG1_A1"; + description="3IFB Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1637; + type="I_G_engineer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1527.2742,5.0014391,946.92273}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""engm"",this] call f_fnc_assignGear;"; + name="Unit3IFB_ENG1_A2"; + description="3IFB Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1638; + type="I_G_engineer_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1542.2742,5.0014391,944.18347}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""engm"",this] call f_fnc_assignGear;"; + name="Unit3IFB_ENG1_A3"; + description="3IFB Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1639; + type="I_G_engineer_F"; + }; + }; + class Attributes + { + name="Grp3IFB_ENG1"; + }; + id=1530; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item437 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1378.1918,5.0014391,983.27466}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + name="Unit3IFB_IFV1_D"; + description="3IFB Technical 1 Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1650; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1378.1918,5.0014391,983.27466}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + name="Unit3IFB_IFV1_G"; + description="3IFB Technical 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1651; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="Grp3IFB_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1650; + item1=1652; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=1651; + item1=1652; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=1642; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB IFV1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item438 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1412.9154,5.0014391,983.19165}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + name="Unit3IFB_IFV2_G"; + description="3IFB Technical 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1653; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99833667; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1412.9154,5.0014391,983.19165}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + name="Unit3IFB_IFV2_D"; + description="3IFB Technical 2 Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1654; + type="I_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="Grp3IFB_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1653; + item1=1655; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item1 + { + linkID=1; + item0=1654; + item1=1655; + class CustomData + { + role=1; + }; + }; + }; + }; + id=1646; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB IFV2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item439 + { + dataType="Logic"; + class PositionInfo + { + position[]={1356.7262,5.8610754,1038.666}; + }; + id=1537; + type="SupportProvider_Artillery"; + atlOffset=0.8610754; + }; + class Item440 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1532.814,5.0014391,936.75256}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""pc"",this] call f_fnc_assignGear;"; + name="Unit3IFB_TH1_P"; + description="3IFB Transport Helo 1 Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1640; + type="I_G_engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1532.814,5.0014391,936.75256}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""pc"",this] call f_fnc_assignGear;"; + name="Unit3IFB_TH1_CP"; + description="3IFB Transport Helo 1 Co-Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=1641; + type="I_G_engineer_F"; + }; + }; + class Attributes + { + name="Grp3IFB_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=1640; + item1=1405; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=1641; + item1=1405; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=1402; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="3IFB TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item441 + { + dataType="Logic"; + class PositionInfo + { + position[]={1401.9275,0,1086.1885}; + }; + name="F3_preMount_3IFB_5"; + init="[synchronizedObjects this, [""Grp3IFB_ASL"",""Grp3IFB_A1"",""Grp3IFB_A2""], true, false] call f_fnc_mountGroups;"; + id=1539; + type="Logic"; + atlOffset=-5; + }; + class Item442 + { + dataType="Logic"; + class PositionInfo + { + position[]={1445.5618,0,1088.2759}; + }; + name="F3_preMount_3IFB_6"; + init="[synchronizedObjects this, [""Grp3IFB_BSL"",""Grp3IFB_B1"",""Grp3IFB_B2""], true, false] call f_fnc_mountGroups;"; + id=1540; + type="Logic"; + atlOffset=-5; + }; + class Item443 + { + dataType="Logic"; + class PositionInfo + { + position[]={1486.9343,0,1090.4456}; + }; + name="F3_preMount_3IFB_7"; + init="[synchronizedObjects this, [""Grp3IFB_CSL"",""Grp3IFB_C1"",""Grp3IFB_C2""], true, false] call f_fnc_mountGroups;"; + id=1541; + type="Logic"; + atlOffset=-5; + }; + class Item444 + { + dataType="Logic"; + class PositionInfo + { + position[]={1363.9072,0,1080.5378}; + }; + name="F3_preMount_3IFB_8"; + init="[synchronizedObjects this, [""Grp3IFB_CO""], true, false] call f_fnc_mountGroups;"; + id=1542; + type="Logic"; + atlOffset=-5; + }; + class Item445 + { + dataType="Logic"; + class PositionInfo + { + position[]={1365.365,0,1054.7144}; + }; + name="F3_preMount_3IFB_9"; + init="[synchronizedObjects this, [""Grp3IFB_DC""], true, false] call f_fnc_mountGroups;"; + id=1543; + type="Logic"; + atlOffset=-5; + }; + class Item446 + { + dataType="Object"; + class PositionInfo + { + position[]={1544.7996,6.6115026,1036.6387}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="Veh3IFB_CAR4"; + textures="Guerilla_07"; + }; + id=1544; + type="I_G_Offroad_01_F"; + }; + class Item447 + { + dataType="Object"; + class PositionInfo + { + position[]={1368.8815,6.6115026,1067.9521}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="Veh3IFB_CAR1"; + textures="Guerilla_07"; + }; + id=1545; + type="I_G_Offroad_01_F"; + }; + class Item448 + { + dataType="Object"; + class PositionInfo + { + position[]={1368.9606,6.7971687,1045.4297}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="Veh3IFB_CAR2"; + textures="Guerilla_07"; + }; + id=1546; + type="I_G_Offroad_01_F"; + atlOffset=0.18566608; + }; + class Item449 + { + dataType="Object"; + class PositionInfo + { + position[]={1544.0339,6.6115026,1059.2061}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="Veh3IFB_CAR3"; + textures="Guerilla_07"; + }; + id=1547; + type="I_G_Offroad_01_F"; + }; + class Item450 + { + dataType="Object"; + class PositionInfo + { + position[]={1410.2662,6.8716264,1082.0282}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="Veh3IFB_TR1"; + textures="Guerilla_04"; + }; + id=1548; + type="I_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item451 + { + dataType="Object"; + class PositionInfo + { + position[]={1418.1637,6.8716264,1077.535}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="Veh3IFB_TR2"; + textures="Guerilla_04"; + }; + id=1549; + type="I_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item452 + { + dataType="Object"; + class PositionInfo + { + position[]={1454.1765,6.8716264,1082.8163}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="Veh3IFB_TR3"; + textures="Guerilla_04"; + }; + id=1550; + type="I_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item453 + { + dataType="Object"; + class PositionInfo + { + position[]={1464.2869,6.8716264,1077.66}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="Veh3IFB_TR4"; + textures="Guerilla_04"; + }; + id=1557; + type="I_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item454 + { + dataType="Object"; + class PositionInfo + { + position[]={1494.6326,6.8716264,1082.662}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="Veh3IFB_TR5"; + textures="Guerilla_04"; + }; + id=1558; + type="I_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item455 + { + dataType="Object"; + class PositionInfo + { + position[]={1503.4949,6.8716264,1077.1532}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="Veh3IFB_TR6"; + textures="Guerilla_04"; + }; + id=1559; + type="I_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item456 + { + dataType="Logic"; + class PositionInfo + { + position[]={1361.316,5.7177486,1039.123}; + }; + id=1535; + type="SupportProvider_Virtual_CAS_Heli"; + atlOffset=0.71774864; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item457 + { + dataType="Logic"; + class PositionInfo + { + position[]={1360.1705,5.4597912,1062.4004}; + }; + id=1536; + type="SupportProvider_Virtual_CAS_Heli"; + atlOffset=0.45979118; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item458 + { + dataType="Object"; + class PositionInfo + { + position[]={1378.1918,7.1644082,983.26599}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_ifv"",this] call f_fnc_assignGear"; + name="Veh3IFB_IFV1"; + textures="Guerilla_07"; + }; + id=1652; + type="I_G_Offroad_01_armed_F"; + }; + class Item459 + { + dataType="Object"; + class PositionInfo + { + position[]={1412.9154,7.1644082,983.18298}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""v_ifv"",this] call f_fnc_assignGear"; + name="Veh3IFB_IFV2"; + textures="Guerilla_07"; + }; + id=1655; + type="I_G_Offroad_01_armed_F"; + }; + }; + class Connections + { + class LinkIDProvider + { + nextID=99; + }; + class Links + { + items=99; + class Item0 + { + linkID=0; + item0=813; + item1=110; + class CustomData + { + type="Sync"; + }; + }; + class Item1 + { + linkID=1; + item0=804; + item1=110; + class CustomData + { + type="Sync"; + }; + }; + class Item2 + { + linkID=2; + item0=192; + item1=110; + class CustomData + { + type="Sync"; + }; + }; + class Item3 + { + linkID=3; + item0=115; + item1=813; + class CustomData + { + type="Sync"; + }; + }; + class Item4 + { + linkID=4; + item0=118; + item1=804; + class CustomData + { + type="Sync"; + }; + }; + class Item5 + { + linkID=5; + item0=820; + item1=120; + class CustomData + { + type="Sync"; + }; + }; + class Item6 + { + linkID=6; + item0=802; + item1=120; + class CustomData + { + type="Sync"; + }; + }; + class Item7 + { + linkID=7; + item0=681; + item1=120; + class CustomData + { + type="Sync"; + }; + }; + class Item8 + { + linkID=8; + item0=125; + item1=820; + class CustomData + { + type="Sync"; + }; + }; + class Item9 + { + linkID=9; + item0=128; + item1=802; + class CustomData + { + type="Sync"; + }; + }; + class Item10 + { + linkID=10; + item0=814; + item1=130; + class CustomData + { + type="Sync"; + }; + }; + class Item11 + { + linkID=11; + item0=801; + item1=130; + class CustomData + { + type="Sync"; + }; + }; + class Item12 + { + linkID=12; + item0=686; + item1=130; + class CustomData + { + type="Sync"; + }; + }; + class Item13 + { + linkID=13; + item0=135; + item1=814; + class CustomData + { + type="Sync"; + }; + }; + class Item14 + { + linkID=14; + item0=138; + item1=801; + class CustomData + { + type="Sync"; + }; + }; + class Item15 + { + linkID=15; + item0=819; + item1=140; + class CustomData + { + type="Sync"; + }; + }; + class Item16 + { + linkID=16; + item0=799; + item1=140; + class CustomData + { + type="Sync"; + }; + }; + class Item17 + { + linkID=17; + item0=369; + item1=140; + class CustomData + { + type="Sync"; + }; + }; + class Item18 + { + linkID=18; + item0=149; + item1=819; + class CustomData + { + type="Sync"; + }; + }; + class Item19 + { + linkID=19; + item0=145; + item1=799; + class CustomData + { + type="Sync"; + }; + }; + class Item20 + { + linkID=20; + item0=818; + item1=150; + class CustomData + { + type="Sync"; + }; + }; + class Item21 + { + linkID=21; + item0=800; + item1=150; + class CustomData + { + type="Sync"; + }; + }; + class Item22 + { + linkID=22; + item0=374; + item1=150; + class CustomData + { + type="Sync"; + }; + }; + class Item23 + { + linkID=23; + item0=159; + item1=818; + class CustomData + { + type="Sync"; + }; + }; + class Item24 + { + linkID=24; + item0=155; + item1=800; + class CustomData + { + type="Sync"; + }; + }; + class Item25 + { + linkID=25; + item0=817; + item1=160; + class CustomData + { + type="Sync"; + }; + }; + class Item26 + { + linkID=26; + item0=797; + item1=160; + class CustomData + { + type="Sync"; + }; + }; + class Item27 + { + linkID=27; + item0=532; + item1=160; + class CustomData + { + type="Sync"; + }; + }; + class Item28 + { linkID=28; item0=169; item1=817; @@ -35364,6 +40266,186 @@ class Mission type="Sync"; }; }; + class Item81 + { + linkID=81; + item0=1538; + item1=1417; + class CustomData + { + type="Sync"; + }; + }; + class Item82 + { + linkID=82; + item0=1536; + item1=1417; + class CustomData + { + type="Sync"; + }; + }; + class Item83 + { + linkID=83; + item0=1561; + item1=1417; + class CustomData + { + type="Sync"; + }; + }; + class Item84 + { + linkID=84; + item0=1419; + item1=1538; + class CustomData + { + type="Sync"; + }; + }; + class Item85 + { + linkID=85; + item0=1422; + item1=1536; + class CustomData + { + type="Sync"; + }; + }; + class Item86 + { + linkID=86; + item0=1537; + item1=1425; + class CustomData + { + type="Sync"; + }; + }; + class Item87 + { + linkID=87; + item0=1535; + item1=1425; + class CustomData + { + type="Sync"; + }; + }; + class Item88 + { + linkID=88; + item0=1565; + item1=1425; + class CustomData + { + type="Sync"; + }; + }; + class Item89 + { + linkID=89; + item0=1427; + item1=1537; + class CustomData + { + type="Sync"; + }; + }; + class Item90 + { + linkID=90; + item0=1430; + item1=1535; + class CustomData + { + type="Sync"; + }; + }; + class Item91 + { + linkID=91; + item0=1548; + item1=1539; + class CustomData + { + type="Sync"; + }; + }; + class Item92 + { + linkID=92; + item0=1549; + item1=1539; + class CustomData + { + type="Sync"; + }; + }; + class Item93 + { + linkID=93; + item0=1545; + item1=1542; + class CustomData + { + type="Sync"; + }; + }; + class Item94 + { + linkID=94; + item0=1550; + item1=1540; + class CustomData + { + type="Sync"; + }; + }; + class Item95 + { + linkID=95; + item0=1557; + item1=1540; + class CustomData + { + type="Sync"; + }; + }; + class Item96 + { + linkID=96; + item0=1558; + item1=1541; + class CustomData + { + type="Sync"; + }; + }; + class Item97 + { + linkID=97; + item0=1559; + item1=1541; + class CustomData + { + type="Sync"; + }; + }; + class Item98 + { + linkID=98; + item0=1546; + item1=1543; + class CustomData + { + type="Sync"; + }; + }; }; }; }; From a65eb03cb2e8ccfbd42920bce86e27cd01d121fa Mon Sep 17 00:00:00 2001 From: s Date: Sun, 12 May 2019 21:17:10 +0200 Subject: [PATCH 176/407] add hsamag bags for 3ifb,ctrg,syndikat --- f/assignGear/f_assignGear_3IFB.sqf | 1 + f/assignGear/f_assignGear_ctrg.sqf | 1 + f/assignGear/f_assignGear_syndikat.sqf | 1 + 3 files changed, 3 insertions(+) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 58c22598e..2d7e131ad 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -182,6 +182,7 @@ _baghatg = "B_AssaultPack_rgr"; // Used by Heavy AT Gunner _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner +_baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** // ==================================================================================== diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index e7a72f0d4..15d4698c1 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -183,6 +183,7 @@ _baghatag = "B_HMG_01_support_F"; // used by Heavy AT assistant gunner _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner +_baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** // ==================================================================================== diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index 606283f9c..f358fdafa 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -182,6 +182,7 @@ _baghatg = "B_AssaultPack_rgr"; // Used by Heavy AT Gunner _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner +_baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** // ==================================================================================== From bb9ab57faafa8d58abcd1a25e9b692aa97b03641 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Jul 2019 09:20:37 +0100 Subject: [PATCH 177/407] Issue #239 launcher attachments (#255) * Add launcher attachment variables * Add section to handle launcher attachments Also corrected spelling errors in original comments. * Change removal method to cleaner loop done by shadow-fa Co-Authored-By: shadow-fa * Add radio bag variable * Add shotgun variables for NPR --- f/assignGear/f_assignGear_3IFB.sqf | 7 +++++++ f/assignGear/f_assignGear_aaf.sqf | 7 +++++++ f/assignGear/f_assignGear_attachments.sqf | 15 +++++++++++++-- f/assignGear/f_assignGear_csat.sqf | 7 +++++++ f/assignGear/f_assignGear_csatPacific.sqf | 7 +++++++ f/assignGear/f_assignGear_ctrg.sqf | 7 +++++++ f/assignGear/f_assignGear_fia.sqf | 7 +++++++ f/assignGear/f_assignGear_gendarmerie.sqf | 7 +++++++ f/assignGear/f_assignGear_nato.sqf | 7 +++++++ f/assignGear/f_assignGear_natoPacific.sqf | 7 +++++++ f/assignGear/f_assignGear_syndikat.sqf | 7 +++++++ f/assignGear/fn_assignGear.sqf | 2 +- 12 files changed, 84 insertions(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 2d7e131ad..092405410 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index dfa199927..38bba83e3 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_attachments.sqf b/f/assignGear/f_assignGear_attachments.sqf index 16ec909ad..372a193fa 100644 --- a/f/assignGear/f_assignGear_attachments.sqf +++ b/f/assignGear/f_assignGear_attachments.sqf @@ -1,7 +1,7 @@ if (_attachments isEqualType []) then { removeAllPrimaryWeaponItems _unit; { - // loop trough the attachments and add them to the weapon + // loop through the attachments and add them to the weapon _unit addPrimaryWeaponItem _x; } foreach _attachments; }; @@ -10,7 +10,18 @@ if (_attachments isEqualType []) then { if (_hg_attachments isEqualType []) then { removeAllHandgunItems _unit; { - // loop trough the attachments and add them to the weapon + // loop through the attachments and add them to the weapon _unit addHandgunItem _x; } foreach _hg_attachments; }; + +// Handle launcher attachments +if (_lau_attachments isEqualType []) then { + { + _unit removeSecondaryWeaponItem _x; + } forEach secondaryWeaponItems _unit; + { + // loop through the attachments and add them to the weapon + _unit addSecondaryWeaponItem _x; + } foreach _lau_attachments; +}; diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 31574ed58..4f5327a69 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 9b1cb8f4c..2a71c9754 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 15d4698c1..8bb9f48d3 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 7495501cc..b99c70c92 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 312497795..486224e2b 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -56,6 +56,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index d020e7659..030d6a769 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index e509ea5fb..e06a385bb 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index f358fdafa..e3b9fb071 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -101,6 +101,13 @@ _hg_attachments= []; // The default attachment set for handguns, overwritten in // ==================================================================================== +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + // WEAPON SELECTION // Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index f4923a95b..26687e2e4 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -56,7 +56,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; +private ["_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; // ==================================================================================== From e705389b85c5313b7410bf0e98dac5fbaafbd967 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Jul 2019 12:01:16 +0100 Subject: [PATCH 178/407] groupData and briefing changes for #254 and #248 (#256) * Add Woodland NATO, Spetsnaz, LDF, and civilian factions * Add blocks for LDF, Spetsnaz, and Civ Spetsnaz and LDF blocks duplicated from NATO. Civilian block assumes GrpCIV_R1 group variable names for reporter groups. * Add group variable names to reporters Matches group data in new civilian handling * Added NATO Woodland to NATO briefing. * Added briefing handling for LDF, Spetsnaz, and Looters * Add blank briefings for LDF, Spetsnaz and Looters * Added block for Looters faction * Add Looters array to All array * Add handling for Looter faction * Change "Looters" to "NPR" Per host discussion, the Livonia guerrilla faction is being referred to as the Nadbor People's Republic. * Add insignias for Contact factions --- f/assignGear/f_assignInsignia.sqf | 75 +++++++++ f/briefing/f_briefing_ldf.sqf | 69 ++++++++ f/briefing/f_briefing_npr.sqf | 69 ++++++++ f/briefing/f_briefing_spetsnaz.sqf | 69 ++++++++ f/briefing/fn_createBriefing.sqf | 21 ++- f/groupMarkers/f_setLocalGroupMarkers.sqf | 22 ++- f/groupMarkers/fn_groupData.sqf | 195 ++++++++++++++++++++++ mission.sqm | 2 + 8 files changed, 520 insertions(+), 2 deletions(-) create mode 100644 f/briefing/f_briefing_ldf.sqf create mode 100644 f/briefing/f_briefing_npr.sqf create mode 100644 f/briefing/f_briefing_spetsnaz.sqf diff --git a/f/assignGear/f_assignInsignia.sqf b/f/assignGear/f_assignInsignia.sqf index 6aed898eb..5085f39eb 100644 --- a/f/assignGear/f_assignInsignia.sqf +++ b/f/assignGear/f_assignInsignia.sqf @@ -49,6 +49,9 @@ private _roleBadge = switch (_typeofUnit) do case "blu_f" : {_NATO_Medic_Badge}; case "opf_f" : {_CSAT_Medic_Badge}; case "ind_f" : {"AAF_Medic_Badge"}; + case "ind_e_f" : {"AAF_Medic_Badge"}; + case "opf_r_f" : {"CSAT_Pacific_Medic_Badge"}; + case "blu_w_f" : {"NATO_Pacific_Medic_Bade"}; default {"NATO_Medic_Badge"}; }; }; @@ -119,6 +122,24 @@ switch (_faction) do ["GrpNATO_DC","NATO_Pacific_DC_Badge"] ]; }; + case "blu_w_f": { + _groupBadges = [ + ["GrpNATO_ASL","NATO_Pacific_ASL_Badge"], + ["GrpNATO_A1","NATO_Pacific_A1_Badge"], + ["GrpNATO_A2","NATO_Pacific_A2_Badge"], + ["GrpNATO_A3","NATO_Pacific_A3_Badge"], + ["GrpNATO_BSL","NATO_Pacific_BSL_Badge"], + ["GrpNATO_B1","NATO_Pacific_B1_Badge"], + ["GrpNATO_B2","NATO_Pacific_B2_Badge"], + ["GrpNATO_B3","NATO_Pacific_B3_Badge"], + ["GrpNATO_CSL","NATO_Pacific_CSL_Badge"], + ["GrpNATO_C1","NATO_Pacific_C1_Badge"], + ["GrpNATO_C2","NATO_Pacific_C2_Badge"], + ["GrpNATO_C3","NATO_Pacific_C3_Badge"], + ["GrpNATO_CO","NATO_Pacific_CO_Badge"], + ["GrpNATO_DC","NATO_Pacific_DC_Badge"] + ]; + }; case "opf_f": { switch (_insignia_style_CSAT) do { @@ -196,6 +217,24 @@ switch (_faction) do ["GrpCSAT_DC","CSAT_Pacific_DC_Badge"] ]; }; + case "opf_r_f": { + _groupBadges = [ + ["GrpSpetsnaz_ASL","CSAT_Pacific_ASL_Badge"], + ["GrpSpetsnaz_A1","CSAT_Pacific_A1_Badge"], + ["GrpSpetsnaz_A2","CSAT_Pacific_A2_Badge"], + ["GrpSpetsnaz_A3","CSAT_Pacific_A3_Badge"], + ["GrpSpetsnaz_BSL","CSAT_Pacific_BSL_Badge"], + ["GrpSpetsnaz_B1","CSAT_Pacific_B1_Badge"], + ["GrpSpetsnaz_B2","CSAT_Pacific_B2_Badge"], + ["GrpSpetsnaz_B3","CSAT_Pacific_B3_Badge"], + ["GrpSpetsnaz_CSL","CSAT_Pacific_CSL_Badge"], + ["GrpSpetsnaz_C1","CSAT_Pacific_C1_Badge"], + ["GrpSpetsnaz_C2","CSAT_Pacific_C2_Badge"], + ["GrpSpetsnaz_C3","CSAT_Pacific_C3_Badge"], + ["GrpSpetsnaz_CO","CSAT_Pacific_CO_Badge"], + ["GrpSpetsnaz_DC","CSAT_Pacific_DC_Badge"] + ]; + }; case "ind_f": { _groupBadges = [ ["GrpAAF_ASL","AAF_ASL_Badge"], @@ -214,6 +253,24 @@ switch (_faction) do ["GrpAAF_DC","AAF_DC_Badge"] ]; }; + case "ind_e_f": { + _groupBadges = [ + ["GrpLDF_ASL","AAF_ASL_Badge"], + ["GrpLDF_A1","AAF_A1_Badge"], + ["GrpLDF_A2","AAF_A2_Badge"], + ["GrpLDF_A3","AAF_A3_Badge"], + ["GrpLDF_BSL","AAF_BSL_Badge"], + ["GrpLDF_B1","AAF_B1_Badge"], + ["GrpLDF_B2","AAF_B2_Badge"], + ["GrpLDF_B3","AAF_B3_Badge"], + ["GrpLDF_CSL","AAF_CSL_Badge"], + ["GrpLDF_C1","AAF_C1_Badge"], + ["GrpLDF_C2","AAF_C2_Badge"], + ["GrpLDF_C3","AAF_C3_Badge"], + ["GrpLDF_CO","AAF_CO_Badge"], + ["GrpLDF_DC","AAF_DC_Badge"] + ]; + }; case "blu_g_f" : { _groupBadges = [ ["GrpFIA_ASL","NATO_ASL_Badge"], @@ -286,6 +343,24 @@ switch (_faction) do ["GrpSyndikat_DC","NATO_DC_Badge"] ]; }; + case "ind_l_f" :{ + _groupBadges = [ + ["GrpNPR_ASL","NATO_ASL_Badge"], + ["GrpNPR_A1","NATO_A1_Badge"], + ["GrpNPR_A2","NATO_A2_Badge"], + ["GrpNPR_A3","NATO_A3_Badge"], + ["GrpNPR_BSL","NATO_BSL_Badge"], + ["GrpNPR_B1","NATO_B1_Badge"], + ["GrpNPR_B2","NATO_B2_Badge"], + ["GrpNPR_B3","NATO_B3_Badge"], + ["GrpNPR_CSL","NATO_CSL_Badge"], + ["GrpNPR_C1","NATO_C1_Badge"], + ["GrpNPR_C2","NATO_C2_Badge"], + ["GrpNPR_C3","NATO_C3_Badge"], + ["GrpNPR_CO","NATO_CO_Badge"], + ["GrpNPR_DC","NATO_DC_Badge"] + ]; + }; case "3ifb" :{ _groupBadges = [ ["Grp3IFB_ASL","NATO_ASL_Badge"], diff --git a/f/briefing/f_briefing_ldf.sqf b/f/briefing/f_briefing_ldf.sqf new file mode 100644 index 000000000..a3cf13898 --- /dev/null +++ b/f/briefing/f_briefing_ldf.sqf @@ -0,0 +1,69 @@ +// F3 - Briefing +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// FACTION: LDF + +// ==================================================================================== + +// NOTES: ADMINISTRATION +// The code below creates the administration sub-section of notes. + +_adm = player createDiaryRecord ["diary", ["Administration"," +
+*** Insert information on administration and logistics here. *** +"]]; + +// ==================================================================================== + +// NOTES: EXECUTION +// The code below creates the execution sub-section of notes. + +_exe = player createDiaryRecord ["diary", ["Execution"," +
+COMMANDER'S INTENT +
+*** Insert very short summary of plan here. *** +

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

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

+SPECIAL TASKS +
+*** Insert instructions for specific units here. *** +"]]; + +// ==================================================================================== + +// NOTES: MISSION +// The code below creates the mission sub-section of notes. + +_mis = player createDiaryRecord ["diary", ["Mission"," +
+*** Insert the mission here. *** +"]]; + +// ==================================================================================== + +// NOTES: SITUATION +// The code below creates the situation sub-section of notes. + +_sit = player createDiaryRecord ["diary", ["Situation"," +
+*** Insert general information about the situation here.*** +

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

+FRIENDLY FORCES +
+*** Insert information about friendly forces here.*** +"]]; + +// ==================================================================================== diff --git a/f/briefing/f_briefing_npr.sqf b/f/briefing/f_briefing_npr.sqf new file mode 100644 index 000000000..6475ffeb5 --- /dev/null +++ b/f/briefing/f_briefing_npr.sqf @@ -0,0 +1,69 @@ +// F3 - Briefing +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// FACTION: NPR + +// ==================================================================================== + +// NOTES: ADMINISTRATION +// The code below creates the administration sub-section of notes. + +_adm = player createDiaryRecord ["diary", ["Administration"," +
+*** Insert information on administration and logistics here. *** +"]]; + +// ==================================================================================== + +// NOTES: EXECUTION +// The code below creates the execution sub-section of notes. + +_exe = player createDiaryRecord ["diary", ["Execution"," +
+COMMANDER'S INTENT +
+*** Insert very short summary of plan here. *** +

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

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

+SPECIAL TASKS +
+*** Insert instructions for specific units here. *** +"]]; + +// ==================================================================================== + +// NOTES: MISSION +// The code below creates the mission sub-section of notes. + +_mis = player createDiaryRecord ["diary", ["Mission"," +
+*** Insert the mission here. *** +"]]; + +// ==================================================================================== + +// NOTES: SITUATION +// The code below creates the situation sub-section of notes. + +_sit = player createDiaryRecord ["diary", ["Situation"," +
+*** Insert general information about the situation here.*** +

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

+FRIENDLY FORCES +
+*** Insert information about friendly forces here.*** +"]]; + +// ==================================================================================== diff --git a/f/briefing/f_briefing_spetsnaz.sqf b/f/briefing/f_briefing_spetsnaz.sqf new file mode 100644 index 000000000..96579e8ad --- /dev/null +++ b/f/briefing/f_briefing_spetsnaz.sqf @@ -0,0 +1,69 @@ +// F3 - Briefing +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// FACTION: Spetsnaz + +// ==================================================================================== + +// NOTES: ADMINISTRATION +// The code below creates the administration sub-section of notes. + +_adm = player createDiaryRecord ["diary", ["Administration"," +
+*** Insert information on administration and logistics here. *** +"]]; + +// ==================================================================================== + +// NOTES: EXECUTION +// The code below creates the execution sub-section of notes. + +_exe = player createDiaryRecord ["diary", ["Execution"," +
+COMMANDER'S INTENT +
+*** Insert very short summary of plan here. *** +

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

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

+SPECIAL TASKS +
+*** Insert instructions for specific units here. *** +"]]; + +// ==================================================================================== + +// NOTES: MISSION +// The code below creates the mission sub-section of notes. + +_mis = player createDiaryRecord ["diary", ["Mission"," +
+*** Insert the mission here. *** +"]]; + +// ==================================================================================== + +// NOTES: SITUATION +// The code below creates the situation sub-section of notes. + +_sit = player createDiaryRecord ["diary", ["Situation"," +
+*** Insert general information about the situation here.*** +

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

+FRIENDLY FORCES +
+*** Insert information about friendly forces here.*** +"]]; + +// ==================================================================================== diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index 0761d0f22..c4b41f6df 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -49,7 +49,7 @@ if (serverCommandAvailable "#kick" || !isMultiplayer) then { // The following code blocks include faction-specific briefing files. // BLUFOR > NATO -if (_unitfaction in ["blu_f","blu_t_f"]) exitwith { +if (_unitfaction in ["blu_f","blu_t_f","blu_w_f"]) exitwith { #include "f_briefing_nato.sqf" [_unitfaction] call _fnc_debug; }; @@ -72,18 +72,37 @@ if (_unitfaction in ["opf_f","opf_t_f"]) exitwith { [_unitfaction] call _fnc_debug; }; +// OPFOR > Spetsnaz +if (_unitfaction in ["opf_r_f"]) exitwith { + #include "f_briefing_spetsnaz.sqf" + [_unitfaction] call _fnc_debug; +}; + // INDEPENDENT > AAF if (_unitfaction in ["ind_f"]) exitwith { #include "f_briefing_aaf.sqf" [_unitfaction] call _fnc_debug; }; +// INDEPENDENT > LDF +if (_unitfaction in ["ind_e_f"]) exitwith { + #include "f_briefing_ldf.sqf" + [_unitfaction] call _fnc_debug; +}; + // INDEPENDENT > SYNDIKAT if (_unitfaction in ["ind_c_f"]) exitwith { #include "f_briefing_syndikat.sqf" [_unitfaction] call _fnc_debug; }; +// INDEPENDENT > NPR (Looters) +if (_unitfaction in ["ind_l_f"]) exitwith { + #include "f_briefing_npr.sqf" + [_unitfaction] call _fnc_debug; +}; + + // BLUFOR > CTRG if (_unitfaction in ["blu_ctrg_f"]) exitwith { #include "f_briefing_ctrg.sqf" diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index b3ec146ce..cbf1ba3de 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -23,7 +23,7 @@ params [ private _groups = []; // Markers seen by players in NATO, NATO (Pacific) & CTRG slots. -if (_unitfaction in ["blu_f","blu_t_f","blu_ctrg_f"]) then { +if (_unitfaction in ["blu_f","blu_t_f","blu_ctrg_f","blu_w_f"]) then { _groups = f_var_groupData_blufor_nato; }; @@ -47,11 +47,21 @@ if (_unitfaction in ["opf_g_f"]) then { _groups = f_var_groupData_opfor_fia; }; +// Markers seen by players in Spetsnaz slots. +if (_unitfaction in ["opf_r_f"]) then { + _groups = f_var_groupData_opfor_spetsnaz; +}; + // Markers seen by players in AAF slots. if (_unitfaction in ["ind_f"]) then { _groups = f_var_groupData_indfor_aaf; }; +// Markers seen by players in LDF slots. +if (_unitfaction in ["ind_e_f"]) then { + _groups = f_var_groupData_indfor_ldf; +}; + // Markers seen by players in INDEPENDENT-FIA slots. if (_unitfaction in ["ind_g_f"]) then { _groups = f_var_groupData_indfor_fia; @@ -67,6 +77,16 @@ if (_unitfaction in ["3ifb"]) then { _groups = f_var_groupData_indfor_3ifb; }; +// Markers seen by players in NPR (Looters) slots. +if (_unitfaction in ["ind_l_f"]) then { + _groups = f_var_groupData_indfor_npr; +}; + +// Markers seen by players in Civilian slots. +if (_unitfaction in ["civ_f","civ_idap_f"]) then { + _groups = f_var_groupData_civ; +}; + // ==================================================================================== { diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf index 407968bb4..7819a1ce5 100644 --- a/f/groupMarkers/fn_groupData.sqf +++ b/f/groupMarkers/fn_groupData.sqf @@ -289,6 +289,68 @@ f_var_groupData_opfor_fia = [ ["UnitOFIA_CSL_M", _med, "CM", "ColorBlack", ""] ]; +f_var_groupData_opfor_spetsnaz = [ + ["GrpSpetsnaz_CO", _hq, "CO", "ColorYellow", "Spetsnaz CO -"], + ["GrpSpetsnaz_DC", _hq, "DC", "ColorYellow", "Spetsnaz DC -"], + ["GrpSpetsnaz_COV", _ifv, "COV", "ColorYellow", "Spetsnaz COV -"], + + ["GrpSpetsnaz_ASL", _hq, "ASL", "ColorRed", "Spetsnaz ASL -"], + ["GrpSpetsnaz_A1", _ft, "A1", "ColorRed", "Spetsnaz A1 -"], + ["GrpSpetsnaz_A2", _ft, "A2", "ColorRed", "Spetsnaz A2 -"], + ["GrpSpetsnaz_AV", _ifv, "AV", "ColorRed", "Spetsnaz AV -"], + + ["GrpSpetsnaz_BSL", _hq, "BSL", "ColorBlue", "Spetsnaz BSL -"], + ["GrpSpetsnaz_B1", _ft, "B1", "ColorBlue", "Spetsnaz B1 -"], + ["GrpSpetsnaz_B2", _ft, "B2", "ColorBlue", "Spetsnaz B2 -"], + ["GrpSpetsnaz_BV", _ifv, "BV", "ColorBlue", "Spetsnaz BV -"], + + ["GrpSpetsnaz_CSL", _hq, "CSL", "ColorGreen", "Spetsnaz CSL -"], + ["GrpSpetsnaz_C1", _ft, "C1", "ColorGreen", "Spetsnaz C1 -"], + ["GrpSpetsnaz_C2", _ft, "C2", "ColorGreen", "Spetsnaz C2 -"], + ["GrpSpetsnaz_CV", _ifv, "CV", "ColorGreen", "Spetsnaz CV -"], + + ["GrpSpetsnaz_JSL", _hq, "JSL", "ColorPink", "Spetsnaz JSL -"], + ["GrpSpetsnaz_J1", _ft, "J1", "ColorPink", "Spetsnaz J1 -"], + ["GrpSpetsnaz_J2", _ft, "J2", "ColorPink", "Spetsnaz J2 -"], + ["GrpSpetsnaz_JV", _ifv, "JV", "ColorPink", "Spetsnaz JV -"], + + ["GrpSpetsnaz_MMG1", _sup, "MMG1", "ColorOrange", "Spetsnaz MMG1 -"], + ["GrpSpetsnaz_MMG2", _sup, "MMG2", "ColorOrange", "Spetsnaz MMG2 -"], + ["GrpSpetsnaz_HMG1", _sup, "HMG1", "ColorOrange", "Spetsnaz HMG1 -"], + ["GrpSpetsnaz_MAT1", _lau, "MAT1", "ColorOrange", "Spetsnaz MAT1 -"], + ["GrpSpetsnaz_MAT2", _lau, "MAT2", "ColorOrange", "Spetsnaz MAT2 -"], + ["GrpSpetsnaz_HAT1", _lau, "HAT1", "ColorOrange", "Spetsnaz HAT1 -"], + ["GrpSpetsnaz_MTR1", _mor, "MTR1", "ColorOrange", "Spetsnaz MTR1 -"], + ["GrpSpetsnaz_MSAM1", _lau, "MSAM1", "ColorOrange", "Spetsnaz MSAM1 -"], + ["GrpSpetsnaz_HSAM1", _lau, "HSAM1", "ColorOrange", "Spetsnaz HSAM1 -"], + ["GrpSpetsnaz_ST1", _rec, "ST1", "ColorOrange", "Spetsnaz ST1 -"], + ["GrpSpetsnaz_DT1", _rec, "DT1", "ColorOrange", "Spetsnaz DT1 -"], + ["GrpSpetsnaz_ENG1", _eng, "ENG1", "ColorOrange", "Spetsnaz ENG1 -"], + + ["GrpSpetsnaz_IFV1", _ifv, "IFV1", "ColorOrange", "Spetsnaz IFV1 -"], + ["GrpSpetsnaz_IFV2", _ifv, "IFV2", "ColorOrange", "Spetsnaz IFV2 -"], + ["GrpSpetsnaz_TNK1", _tnk, "TNK1", "ColorRed", "Spetsnaz TNK1 -"], + + ["GrpSpetsnaz_CAS1", _pla, "CAS1", "ColorOrange", "Spetsnaz CAS1 -"], + + ["GrpSpetsnaz_TH1", _hel, "TH1", "ColorRed", "Spetsnaz TH1 -"], + ["GrpSpetsnaz_TH2", _hel, "TH2", "ColorRed", "Spetsnaz TH2 -"], + ["GrpSpetsnaz_TH3", _hel, "TH3", "ColorBlue", "Spetsnaz TH3 -"], + ["GrpSpetsnaz_TH4", _hel, "TH4", "ColorBlue", "Spetsnaz TH4 -"], + ["GrpSpetsnaz_TH5", _hel, "TH5", "ColorGreen", "Spetsnaz TH5 -"], + ["GrpSpetsnaz_TH6", _hel, "TH6", "ColorGreen", "Spetsnaz TH6 -"], + ["GrpSpetsnaz_TH7", _hel, "TH7", "ColorOrange", "Spetsnaz TH7 -"], + ["GrpSpetsnaz_TH8", _hel, "TH8", "ColorOrange", "Spetsnaz TH8 -"], + + ["GrpSpetsnaz_AH1", _hel, "AH1", "ColorRed", "Spetsnaz AH1 -"], + + ["UnitSpetsnaz_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitSpetsnaz_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitSpetsnaz_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitSpetsnaz_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitSpetsnaz_CSL_M", _med, "CM", "ColorBlack", ""] +]; + f_var_groupData_indfor_aaf = [ ["GrpAAF_CO", _hq, "CO", "ColorYellow", "AAF CO -"], ["GrpAAF_DC", _hq, "DC", "ColorYellow", "AAF DC -"], @@ -532,6 +594,135 @@ f_var_groupData_indfor_3ifb = [ ["Unit3IFB_BSL_M", _med, "BM", "ColorBlack", ""], ["Unit3IFB_CSL_M", _med, "CM", "ColorBlack", ""] ]; + +f_var_groupData_indfor_LDF = [ + ["GrpLDF_CO", _hq, "CO", "ColorYellow", "LDF CO -"], + ["GrpLDF_DC", _hq, "DC", "ColorYellow", "LDF DC -"], + ["GrpLDF_COV", _ifv, "COV", "ColorYellow", "LDF COV -"], + + ["GrpLDF_ASL", _hq, "ASL", "ColorRed", "LDF ASL -"], + ["GrpLDF_A1", _ft, "A1", "ColorRed", "LDF A1 -"], + ["GrpLDF_A2", _ft, "A2", "ColorRed", "LDF A2 -"], + ["GrpLDF_AV", _ifv, "AV", "ColorRed", "LDF AV -"], + + ["GrpLDF_BSL", _hq, "BSL", "ColorBlue", "LDF BSL -"], + ["GrpLDF_B1", _ft, "B1", "ColorBlue", "LDF B1 -"], + ["GrpLDF_B2", _ft, "B2", "ColorBlue", "LDF B2 -"], + ["GrpLDF_BV", _ifv, "BV", "ColorBlue", "LDF BV -"], + + ["GrpLDF_CSL", _hq, "CSL", "ColorGreen", "LDF CSL -"], + ["GrpLDF_C1", _ft, "C1", "ColorGreen", "LDF C1 -"], + ["GrpLDF_C2", _ft, "C2", "ColorGreen", "LDF C2 -"], + ["GrpLDF_CV", _ifv, "CV", "ColorGreen", "LDF CV -"], + + ["GrpLDF_JSL", _hq, "JSL", "ColorPink", "LDF JSL -"], + ["GrpLDF_J1", _ft, "J1", "ColorPink", "LDF J1 -"], + ["GrpLDF_J2", _ft, "J2", "ColorPink", "LDF J2 -"], + ["GrpLDF_JV", _ifv, "JV", "ColorPink", "LDF JV -"], + + ["GrpLDF_MMG1", _sup, "MMG1", "ColorOrange", "LDF MMG1 -"], + ["GrpLDF_MMG2", _sup, "MMG2", "ColorOrange", "LDF MMG2 -"], + ["GrpLDF_HMG1", _sup, "HMG1", "ColorOrange", "LDF HMG1 -"], + ["GrpLDF_MAT1", _lau, "MAT1", "ColorOrange", "LDF MAT1 -"], + ["GrpLDF_MAT2", _lau, "MAT2", "ColorOrange", "LDF MAT2 -"], + ["GrpLDF_HAT1", _lau, "HAT1", "ColorOrange", "LDF HAT1 -"], + ["GrpLDF_MTR1", _mor, "MTR1", "ColorOrange", "LDF MTR1 -"], + ["GrpLDF_MSAM1", _lau, "MSAM1", "ColorOrange", "LDF MSAM1 -"], + ["GrpLDF_HSAM1", _lau, "HSAM1", "ColorOrange", "LDF HSAM1 -"], + ["GrpLDF_ST1", _rec, "ST1", "ColorOrange", "LDF ST1 -"], + ["GrpLDF_DT1", _rec, "DT1", "ColorOrange", "LDF DT1 -"], + ["GrpLDF_ENG1", _eng, "ENG1", "ColorOrange", "LDF ENG1 -"], + + ["GrpLDF_IFV1", _ifv, "IFV1", "ColorOrange", "LDF IFV1 -"], + ["GrpLDF_IFV2", _ifv, "IFV2", "ColorOrange", "LDF IFV2 -"], + ["GrpLDF_TNK1", _tnk, "TNK1", "ColorRed", "LDF TNK1 -"], + + ["GrpLDF_CAS1", _pla, "CAS1", "ColorOrange", "LDF CAS1 -"], + + ["GrpLDF_TH1", _hel, "TH1", "ColorRed", "LDF TH1 -"], + ["GrpLDF_TH2", _hel, "TH2", "ColorRed", "LDF TH2 -"], + ["GrpLDF_TH3", _hel, "TH3", "ColorBlue", "LDF TH3 -"], + ["GrpLDF_TH4", _hel, "TH4", "ColorBlue", "LDF TH4 -"], + ["GrpLDF_TH5", _hel, "TH5", "ColorGreen", "LDF TH5 -"], + ["GrpLDF_TH6", _hel, "TH6", "ColorGreen", "LDF TH6 -"], + ["GrpLDF_TH7", _hel, "TH7", "ColorOrange", "LDF TH7 -"], + ["GrpLDF_TH8", _hel, "TH8", "ColorOrange", "LDF TH8 -"], + + ["GrpLDF_AH1", _hel, "AH1", "ColorRed", "LDF AH1 -"], + + ["UnitLDF_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitLDF_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitLDF_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitLDF_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitLDF_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_indfor_npr = [ + ["GrpNPR_CO", _hq, "CO", "ColorYellow", "NPR CO -"], + ["GrpNPR_DC", _hq, "DC", "ColorYellow", "NPR DC -"], + ["GrpNPR_COV", _ifv, "COV", "ColorYellow", "NPR COV -"], + + ["GrpNPR_ASL", _hq, "ASL", "ColorRed", "NPR ASL -"], + ["GrpNPR_A1", _ft, "A1", "ColorRed", "NPR A1 -"], + ["GrpNPR_A2", _ft, "A2", "ColorRed", "NPR A2 -"], + ["GrpNPR_AV", _ifv, "AV", "ColorRed", "NPR AV -"], + + ["GrpNPR_BSL", _hq, "BSL", "ColorBlue", "NPR BSL -"], + ["GrpNPR_B1", _ft, "B1", "ColorBlue", "NPR B1 -"], + ["GrpNPR_B2", _ft, "B2", "ColorBlue", "NPR B2 -"], + ["GrpNPR_BV", _ifv, "BV", "ColorBlue", "NPR BV -"], + + ["GrpNPR_CSL", _hq, "CSL", "ColorGreen", "NPR CSL -"], + ["GrpNPR_C1", _ft, "C1", "ColorGreen", "NPR C1 -"], + ["GrpNPR_C2", _ft, "C2", "ColorGreen", "NPR C2 -"], + ["GrpNPR_CV", _ifv, "CV", "ColorGreen", "NPR CV -"], + + ["GrpNPR_JSL", _hq, "JSL", "ColorPink", "NPR JSL -"], + ["GrpNPR_J1", _ft, "J1", "ColorPink", "NPR J1 -"], + ["GrpNPR_J2", _ft, "J2", "ColorPink", "NPR J2 -"], + ["GrpNPR_JV", _ifv, "JV", "ColorPink", "NPR JV -"], + + ["GrpNPR_MMG1", _sup, "MMG1", "ColorOrange", "NPR MMG1 -"], + ["GrpNPR_MMG2", _sup, "MMG2", "ColorOrange", "NPR MMG2 -"], + ["GrpNPR_HMG1", _sup, "HMG1", "ColorOrange", "NPR HMG1 -"], + ["GrpNPR_MAT1", _lau, "MAT1", "ColorOrange", "NPR MAT1 -"], + ["GrpNPR_MAT2", _lau, "MAT2", "ColorOrange", "NPR MAT2 -"], + ["GrpNPR_HAT1", _lau, "HAT1", "ColorOrange", "NPR HAT1 -"], + ["GrpNPR_MTR1", _mor, "MTR1", "ColorOrange", "NPR MTR1 -"], + ["GrpNPR_MSAM1", _lau, "MSAM1", "ColorOrange", "NPR MSAM1 -"], + ["GrpNPR_HSAM1", _lau, "HSAM1", "ColorOrange", "NPR HSAM1 -"], + ["GrpNPR_ST1", _rec, "ST1", "ColorOrange", "NPR ST1 -"], + ["GrpNPR_DT1", _rec, "DT1", "ColorOrange", "NPR DT1 -"], + ["GrpNPR_ENG1", _eng, "ENG1", "ColorOrange", "NPR ENG1 -"], + + ["GrpNPR_IFV1", _ifv, "IFV1", "ColorOrange", "NPR IFV1 -"], + ["GrpNPR_IFV2", _ifv, "IFV2", "ColorOrange", "NPR IFV2 -"], + ["GrpNPR_TNK1", _tnk, "TNK1", "ColorRed", "NPR TNK1 -"], + + ["GrpNPR_CAS1", _pla, "CAS1", "ColorOrange", "NPR CAS1 -"], + + ["GrpNPR_TH1", _hel, "TH1", "ColorRed", "NPR TH1 -"], + ["GrpNPR_TH2", _hel, "TH2", "ColorRed", "NPR TH2 -"], + ["GrpNPR_TH3", _hel, "TH3", "ColorBlue", "NPR TH3 -"], + ["GrpNPR_TH4", _hel, "TH4", "ColorBlue", "NPR TH4 -"], + ["GrpNPR_TH5", _hel, "TH5", "ColorGreen", "NPR TH5 -"], + ["GrpNPR_TH6", _hel, "TH6", "ColorGreen", "NPR TH6 -"], + ["GrpNPR_TH7", _hel, "TH7", "ColorOrange", "NPR TH7 -"], + ["GrpNPR_TH8", _hel, "TH8", "ColorOrange", "NPR TH8 -"], + + ["GrpNPR_AH1", _hel, "AH1", "ColorRed", "NPR AH1 -"], + + ["UnitNPR_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitNPR_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitNPR_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitNPR_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitNPR_CSL_M", _med, "CM", "ColorBlack", ""] +]; + +f_var_groupData_civ = [ + ["GrpCIV_R1", _hq, "R1", "ColorPink", "Reporter 1"], + ["GrpCIV_R2", _hq, "R2", "ColorPink", "Reporter 2"] +]; // ==================================================================================== // Adding all of the group data to a single array @@ -541,9 +732,13 @@ f_var_groupData_all append f_var_groupData_blufor_fia; f_var_groupData_all append f_var_groupData_blufor_gen; f_var_groupData_all append f_var_groupData_opfor_csat; f_var_groupData_all append f_var_groupData_opfor_fia; +f_var_groupData_all append f_var_groupData_opfor_spetsnaz; f_var_groupData_all append f_var_groupData_indfor_aaf; f_var_groupData_all append f_var_groupData_indfor_fia; f_var_groupData_all append f_var_groupData_indfor_syn; f_var_groupData_all append f_var_groupData_indfor_3ifb; +f_var_groupData_all append f_var_groupData_indfor_ldf; +f_var_groupData_all append f_var_groupData_indfor_npr; +f_var_groupData_all append f_var_groupData_civ; // ==================================================================================== diff --git a/mission.sqm b/mission.sqm index 8b7b5f1bd..d861e744e 100644 --- a/mission.sqm +++ b/mission.sqm @@ -24969,6 +24969,7 @@ class Mission }; class Attributes { + name="GrpCIV_R1"; }; id=789; atlOffset=0.15991211; @@ -25026,6 +25027,7 @@ class Mission }; class Attributes { + name="GrpCIV_R2"; }; id=791; }; From 556ed6efb179265e77ddf8236f128b6c5f0f2aa5 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sun, 28 Jul 2019 13:54:01 +0200 Subject: [PATCH 179/407] Issue #254 Add gear for contact factions (#257) * Add LDF gear Co-authored-by: costno * Add section for launcher attachments Matches other assignGear files as per #239 * assignGear: Add Spetsnaz Co-authored-by: costno * Add NATO MTP radio pack * Add CSAT Hex radio pack * Add AAF Digi radio pack * Add CSAT Pacific Hex radio pack * Add NATO Tropic radio pack * Add radio bags for DC, CO, JTAC * Change RAT HEAT to HEAT 55 * Add Woodland comment switch for standard NATO units * Add NATO Woodland Co-authored-by: NikkoJT <35894105+NikkoJT@users.noreply.github.com> * Add NPR gear files Per host discussion, the "Looters" are now the Nadbor People's Republic. These files, created by Costno and cleaned up by me, add their gear. I've also updated 3IFB with Contact changes from Costno and added their radio bags. Co-Authored-By: costno * Correct vehicle file calls in LDF assignGear --- f/assignGear/f_assignGear_3IFB.sqf | 17 +- f/assignGear/f_assignGear_3IFB_light.sqf | 3 + f/assignGear/f_assignGear_3IFB_standard.sqf | 3 + f/assignGear/f_assignGear_aaf.sqf | 3 +- f/assignGear/f_assignGear_aaf_light.sqf | 3 + f/assignGear/f_assignGear_aaf_standard.sqf | 3 + f/assignGear/f_assignGear_csat.sqf | 2 +- f/assignGear/f_assignGear_csatPacific.sqf | 1 + .../f_assignGear_csatPacific_light.sqf | 3 + .../f_assignGear_csatPacific_standard.sqf | 3 + f/assignGear/f_assignGear_csat_light.sqf | 3 + f/assignGear/f_assignGear_csat_standard.sqf | 3 + f/assignGear/f_assignGear_fia.sqf | 2 +- f/assignGear/f_assignGear_ldf.sqf | 359 +++++++++++ f/assignGear/f_assignGear_ldf_light.sqf | 585 +++++++++++++++++ f/assignGear/f_assignGear_ldf_standard.sqf | 591 +++++++++++++++++ f/assignGear/f_assignGear_ldf_v.sqf | 247 ++++++++ f/assignGear/f_assignGear_nato.sqf | 3 +- f/assignGear/f_assignGear_natoPacific.sqf | 3 +- .../f_assignGear_natoPacific_light.sqf | 3 + .../f_assignGear_natoPacific_standard.sqf | 3 + f/assignGear/f_assignGear_natoWoodland.sqf | 361 +++++++++++ .../f_assignGear_natoWoodland_light.sqf | 585 +++++++++++++++++ .../f_assignGear_natoWoodland_standard.sqf | 591 +++++++++++++++++ f/assignGear/f_assignGear_nato_light.sqf | 3 + f/assignGear/f_assignGear_nato_standard.sqf | 3 + f/assignGear/f_assignGear_npr.sqf | 389 ++++++++++++ f/assignGear/f_assignGear_npr_light.sqf | 585 +++++++++++++++++ f/assignGear/f_assignGear_npr_standard.sqf | 591 +++++++++++++++++ f/assignGear/f_assignGear_npr_v.sqf | 247 ++++++++ f/assignGear/f_assignGear_spetsnaz.sqf | 373 +++++++++++ f/assignGear/f_assignGear_spetsnaz_light.sqf | 582 +++++++++++++++++ .../f_assignGear_spetsnaz_standard.sqf | 592 ++++++++++++++++++ f/assignGear/f_assignGear_spetsnaz_v.sqf | 247 ++++++++ f/assignGear/fn_assignGear.sqf | 45 +- 35 files changed, 7023 insertions(+), 14 deletions(-) create mode 100644 f/assignGear/f_assignGear_ldf.sqf create mode 100644 f/assignGear/f_assignGear_ldf_light.sqf create mode 100644 f/assignGear/f_assignGear_ldf_standard.sqf create mode 100644 f/assignGear/f_assignGear_ldf_v.sqf create mode 100644 f/assignGear/f_assignGear_natoWoodland.sqf create mode 100644 f/assignGear/f_assignGear_natoWoodland_light.sqf create mode 100644 f/assignGear/f_assignGear_natoWoodland_standard.sqf create mode 100644 f/assignGear/f_assignGear_npr.sqf create mode 100644 f/assignGear/f_assignGear_npr_light.sqf create mode 100644 f/assignGear/f_assignGear_npr_standard.sqf create mode 100644 f/assignGear/f_assignGear_npr_v.sqf create mode 100644 f/assignGear/f_assignGear_spetsnaz.sqf create mode 100644 f/assignGear/f_assignGear_spetsnaz_light.sqf create mode 100644 f/assignGear/f_assignGear_spetsnaz_standard.sqf create mode 100644 f/assignGear/f_assignGear_spetsnaz_v.sqf diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 092405410..4f5a7686e 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -190,15 +190,16 @@ _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = selectRandom ["B_RadioBag_01_eaf_F","B_RadioBag_01_black_F","B_RadioBag_01_digi_F","B_RadioBag_01_black_F"]; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. // ==================================================================================== // UNIQUE, ROLE-SPECIFIC EQUIPMENT // Automatic Rifleman -_AR = "LMG_03_F"; -_ARmag = "200Rnd_556x45_Box_F"; -_ARmag_tr = "200Rnd_556x45_Box_Tracer_F"; +_AR = "arifle_RPK12_F"; +_ARmag = "75Rnd_762x39_Mag_F"; +_ARmag_tr = "75Rnd_762x39_Mag_Tracer_F"; // Medium MG _MMG = "LMG_Zafir_F"; @@ -211,7 +212,7 @@ _DMriflemag = "20Rnd_762x51_Mag"; _DMriflemag_tr = "20Rnd_762x51_Mag"; // Rifleman AT -_RAT = "launch_RPG32_ghex_F"; +_RAT = "launch_RPG32_green_F"; _RATmag1 = "RPG32_F"; _RATmag2 = "RPG32_HE_F"; @@ -259,7 +260,9 @@ _jet = ["jp"]; _baseUniform = ["U_BG_Guerrilla_6_1","U_BG_Guerilla2_2","U_BG_Guerilla2_1","U_BG_Guerilla2_3","U_BG_Guerilla1_1","U_BG_Guerilla1_2_F","U_BG_Leader", "U_I_C_Soldier_Bandit_3_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_Para_1_F", - "U_I_G_Story_Protagonist_F","U_I_G_resistanceLeader_F","U_C_WorkerCoveralls" + "U_I_G_Story_Protagonist_F","U_I_G_resistanceLeader_F","U_C_WorkerCoveralls", + "U_C_Uniform_Farmer_01_F","U_I_L_Uniform_01_camo_F","U_I_L_Uniform_01_deserter_F","U_I_L_Uniform_01_tshirt_black_F","U_I_L_Uniform_01_tshirt_olive_F","U_I_L_Uniform_01_tshirt_skull_F", + "U_O_R_Gorka_01_black_F" ]; _baseHelmet = ["H_Beret_Colonel"]; _baseGlasses = []; @@ -268,8 +271,8 @@ _baseGlasses = []; // //_lightRig = ["V_TacVest_Camo","V_I_G_resistanceLeader_F","V_TacVest_oli","V_TacVest_khk"]; // ^^ Alternate Light Rigs ^^ -_lightRig = ["V_PlateCarrier1_blk","V_PlateCarrier1_rgr_noflag_F","V_PlateCarrierIA1_dgtl"]; -_standardRig = ["V_PlateCarrier1_blk","V_PlateCarrier1_rgr_noflag_F","V_PlateCarrierIA1_dgtl"]; +_lightRig = ["V_PlateCarrier1_blk","V_PlateCarrier1_rgr_noflag_F","V_PlateCarrierIA1_dgtl","V_CarrierRigKBT_01_light_Olive_F","V_CarrierRigKBT_01_light_EAF_F"]; +_standardRig = ["V_PlateCarrier1_blk","V_PlateCarrier1_rgr_noflag_F","V_PlateCarrierIA1_dgtl","V_CarrierRigKBT_01_light_Olive_F","V_CarrierRigKBT_01_light_EAF_F"]; // Diver _diverUniform = ["U_B_Wetsuit"]; diff --git a/f/assignGear/f_assignGear_3IFB_light.sqf b/f/assignGear/f_assignGear_3IFB_light.sqf index 088188f76..050122945 100644 --- a/f/assignGear/f_assignGear_3IFB_light.sqf +++ b/f/assignGear/f_assignGear_3IFB_light.sqf @@ -69,6 +69,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -89,6 +90,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -109,6 +111,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index 5b794a102..a53de2d70 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 38bba83e3..1602715dc 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -191,6 +191,7 @@ _bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "I_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "I_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "I_HMG_01_support_F"; // used by Heavy SAM assistant gunner +_bagRadio = "B_RadioBag_01_digi_F"; // ==================================================================================== @@ -213,7 +214,7 @@ _DMriflemag_tr = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_MRAWS_olive_rail_F"; -_RATmag1 = "MRAWS_HEAT_F"; +_RATmag1 = "MRAWS_HEAT55_F"; _RATmag2 = "MRAWS_HE_F"; // Medium AT diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index 7ca4c5701..189b73799 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -69,6 +69,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -89,6 +90,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -109,6 +111,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index f6a3c164d..52d39f8ef 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 4f5327a69..22a69cf7a 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -192,7 +192,7 @@ _bagmtrg = "O_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "O_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "O_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "O_HMG_01_support_F"; // used by Heavy SAM assistant gunner - +_bagRadio = "B_RadioBag_01_hex_F"; // ==================================================================================== // UNIQUE, ROLE-SPECIFIC EQUIPMENT diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 2a71c9754..d7260f10b 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -191,6 +191,7 @@ _bagmtrg = "O_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "O_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "O_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "O_HMG_01_support_F"; // used by Heavy SAM assistant gunner +_bagRadio = "B_RadioBag_01_ghex_F"; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 40272256d..986aaf3c2 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -69,6 +69,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -89,6 +90,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -109,6 +111,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index e0e244afe..83e3b0eee 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index f604dda2b..2637fd4b8 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -69,6 +69,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -89,6 +90,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -109,6 +111,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 088500dfa..82a47d062 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index b99c70c92..c057c8ce2 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -220,7 +220,7 @@ _DMriflemag_tr = "20Rnd_762x51_Mag"; // Rifleman AT _RAT = "launch_MRAWS_olive_rail_F"; -_RATmag1 = "MRAWS_HEAT_F"; +_RATmag1 = "MRAWS_HEAT55_F"; _RATmag2 = "MRAWS_HE_F"; // Medium AT diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf new file mode 100644 index 000000000..f2ddbb595 --- /dev/null +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -0,0 +1,359 @@ +// F3 - Folk ARPS Assign Gear Script - LDF +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE EQUIPMENT TABLES +// The blocks of code below identifies equipment for this faction +// +// Defined loadouts: +// co - commander +// dc - deputy commander / squad leader +// m - medic +// ftl - fire team leader +// ar - automatic rifleman +// aar - assistant automatic rifleman +// rat - rifleman (AT) +// dm - designated marksman +// mmgl - medium mg team leader +// mmgg - medium mg gunner +// mmgag - medium mg assistant +// matl - medium AT team leader +// matg - medium AT gunner +// matag - medium AT assistant +// hmgg - heavy mg gunner (deployable) +// hmgag - heavy mg assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant +// mtrg - mortar gunner (deployable) +// mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader +// msamg - medium SAM gunner +// msamag - medium SAM assistant gunner +// hsamg - heavy SAM gunner (deployable) +// hsamag - heavy SAM assistant gunner (deployable) +// sn - sniper +// sp - spotter (for sniper) +// vc - vehicle commander +// vg - vehicle gunner +// vd - vehicle driver (repair) +// pc - air vehicle crew +// jp - jet pilot +// eng - engineer (demo) +// engm - engineer (mines) +// uav - UAV operator +// div - divers +// +// r - rifleman +// car - carabineer +// smg - submachinegunner +// gren - grenadier +// +// v_car - car/4x4 +// v_tr - truck +// v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet +// +// crate_small - small ammocrate +// crate_med - medium ammocrate +// crate_large - large ammocrate +// +// ==================================================================================== + +// GENERAL EQUIPMENT USED BY MULTIPLE CLASSES + +// ATTACHMENTS - PRIMARY +_attach1 = "acc_pointer_IR"; // IR Laser +_attach2 = "acc_flashlight"; // Flashlight + +_silencer1 = "muzzle_snds_M"; // 5.56 suppressor +_silencer2 = "muzzle_snds_H"; // 6.5 suppressor + +_scope1 = "optic_ACO"; // ACO +_scope2 = "optic_ico_01_f"; // MRCO Scope - 1x - 6x +_scope3 = "optic_SOS"; // SOS Scope - 18x - 75x + +_bipod1 = "bipod_01_F_blk"; // Default bipod +_bipod2 = "bipod_03_F_blk"; // Black bipod + +// Default setup +_attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType + +// [] = remove all +// [_attach1,_scope1,_silencer] = remove all, add items assigned in _attach1, _scope1 and _silencer1 +// [_scope2] = add _scope2, remove rest +// false = keep attachments as they are + +// ==================================================================================== + +// ATTACHMENTS - HANDGUN +_hg_silencer1 = "muzzle_snds_acp"; // .45 suppressor + +_hg_scope1 = "optic_MRD_black"; // MRD + +// Default setup +_hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType + +// ==================================================================================== + +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + + +// WEAPON SELECTION + +// Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) +_rifle = "arifle_MSBS65_F"; +_riflemag = "30Rnd_65x39_caseless_msbs_mag"; +_riflemag_tr = "30Rnd_65x39_caseless_msbs_mag_Tracer"; + +// Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) +_carbine = "arifle_MSBS65_F"; +_carbinemag = "30Rnd_65x39_caseless_msbs_mag"; +_carbinemag_tr = "30Rnd_65x39_caseless_msbs_mag_Tracer"; + +// Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) +_smg = "SMG_03C_black"; +_smgmag = "50Rnd_570x28_SMG_03"; + +// Diver +_diverWep = "arifle_SDAR_F"; +_diverMag1 = "30Rnd_556x45_Stanag_red"; +_diverMag2 = "30Rnd_556x45_Stanag_Tracer_Red"; +_diverMag3 = "20Rnd_556x45_UW_mag"; + +// Rifle with GL and HE grenades (CO, DC, FTLs) +_glrifle = "arifle_MSBS65_GL_F"; +_glriflemag = "30Rnd_65x39_caseless_msbs_mag"; +_glriflemag_tr = "30Rnd_65x39_caseless_msbs_mag_Tracer"; +_glmag = "1Rnd_HE_Grenade_shell"; + +// Smoke for FTLs, Squad Leaders, etc +_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; +_glsmokered = "1Rnd_SmokeRed_Grenade_shell"; + +// Flares for FTLs, Squad Leaders, etc +_glflarewhite = "UGL_FlareWhite_F"; +_glflarered = "UGL_FlareRed_F"; +_glflareyellow = "UGL_FlareYellow_F"; +_glflaregreen = "UGL_FlareGreen_F"; + +// Pistols (CO, DC, Automatic Rifleman, Medium MG Gunner) +_pistol = "hgun_Pistol_heavy_01_green_F"; +_pistolmag = "11Rnd_45ACP_Mag"; + +// Grenades +_grenade = "HandGrenade"; +_Mgrenade = "MiniGrenade"; +_smokegrenade = "SmokeShell"; +_smokegrenadegreen = "SmokeShellGreen"; +_smokegrenadeblue = "SmokeShellBlue"; +_smokegrenadepurple = "SmokeShellPurple"; + +// misc medical items. +_firstaid = "FirstAidKit"; +_medkit = "Medikit"; + +// Night Vision Goggles +_nvg = "NVGoggles_INDEP"; + +// Laserdesignator +_laserdesignator = "Laserdesignator_03"; + +// UAV Terminal +_uavterminal = "I_E_UavTerminal"; + +// Chemlights +_chemgreen = "Chemlight_green"; +_chemred = "Chemlight_red"; +_chemyellow = "Chemlight_yellow"; +_chemblue = "Chemlight_blue"; + +// Backpacks +_bag = "B_AssaultPack_eaf_F"; // The standard bag for most classes +_bagLarge = "B_Carryall_eaf_F"; // Larger bag for some special purpose classes +_bagdiver = "B_AssaultPack_blk"; // used by divers +_baguav = "I_E_UAV_01_backpack_F"; // used by UAV operator +_baghmgg = "I_E_HMG_01_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_E_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghatg = "I_E_AT_01_weapon_F"; // used by Heavy AT gunner +_baghatag = "I_E_HMG_01_support_F"; // used by Heavy AT assistant gunner +_bagmtrg = "I_E_Mortar_01_weapon_F"; // used by Mortar gunner +_bagmtrag = "I_E_Mortar_01_support_F"; // used by Mortar assistant gunner +_baghsamg = "I_E_AA_01_weapon_F"; // used by Heavy SAM gunner +_baghsamag = "I_E_HMG_01_support_F"; // used by Heavy SAM assistant gunner +_bagRadio = "B_RadioBag_01_eaf_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. + +// ==================================================================================== + +// UNIQUE, ROLE-SPECIFIC EQUIPMENT + +// Automatic Rifleman +_AR = "LMG_Mk200_black_F"; +_ARmag = "200Rnd_65x39_cased_Box"; +_ARmag_tr = "200Rnd_65x39_cased_Box_Tracer"; + +// Medium MG +_MMG = "MMG_02_black_F"; +_MMGmag = "130Rnd_338_Mag"; +_MMGmag_tr = "130Rnd_338_Mag"; + +// Marksman rifle +_DMrifle = "arifle_MSBS65_Mark_F"; +_DMriflemag = "30Rnd_65x39_caseless_msbs_mag"; +_DMriflemag_tr = "30Rnd_65x39_caseless_msbs_mag_Tracer"; + +// Rifleman AT +_RAT = "launch_MRAWS_green_rail_F"; +_RATmag1 = "MRAWS_HEAT55_F"; +_RATmag2 = "MRAWS_HE_F"; + +// Medium AT +_MAT = "launch_MRAWS_green_rail_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; + +// Surface Air +_SAM = "launch_I_Titan_eaf_F"; +_SAMmag = "Titan_AA"; + +// Heavy AT +_HAT = "launch_I_Titan_short_F"; +_HATmag1 = "Titan_AT"; +_HATmag2 = "Titan_AP"; + +// Sniper +_SNrifle = "srifle_GM6_F"; +_SNrifleMag = "5Rnd_127x108_Mag"; + +// Engineer items +_ATmine = "ATMine_Range_Mag"; +_satchel = "SatchelCharge_Remote_Mag"; +_democharge = "DemoCharge_Remote_Mag"; +_APmine1 = "APERSBoundingMine_Range_Mag"; +_APmine2 = "APERSMine_Range_Mag"; + +// ==================================================================================== + +// CLOTHES AND UNIFORMS + +// Define classes. This defines which gear class gets which uniform +// "medium" vests are used for all classes if they are not assigned a specific uniform + +_diver = ["div"]; +_pilot = ["pp","pcc","pc"]; +_crew = ["vc","vg","vd"]; +_ghillie = ["sn","sp"]; +_specOp = []; +_jet = ["jp"]; + +// Basic clothing +// The outfit-piece is randomly selected from the array for each unit + +_baseUniform = ["U_I_E_Uniform_01_F","U_I_E_Uniform_01_shortsleeve_F","U_I_E_Uniform_01_tanktop_F"]; +_baseHelmet = ["H_HelmetHBK_headset_F","H_HelmetHBK_F","H_HelmetHBK_ear_F","H_HelmetHBK_headset_F"]; //50% chance of the best looking helmet. +_baseGlasses = []; + +// Vests +_lightRig = ["V_CarrierRigKBT_01_light_EAF_F"]; +_standardRig = ["V_CarrierRigKBT_01_light_EAF_F"]; + +// Diver +_diverUniform = ["U_B_Wetsuit"]; +_diverHelmet = []; +_diverRig = ["V_RebreatherIA"]; +_diverGlasses = ["G_Diving"]; + +// Pilot +_pilotUniform = ["U_I_E_Uniform_01_coveralls_F"]; +_pilotHelmet = ["H_PilotHelmetHeli_I_E"]; +_pilotRig = ["V_TacVest_oli"]; +_pilotGlasses = []; + +// Jet Pilot +_jetUniform = ["U_I_E_Uniform_01_coveralls_F"]; +_jetHelmet = ["H_PilotHelmetFighter_I"]; +_jetRig = []; +_jetGlasses = []; + +// Crewman +_crewUniform = ["U_I_E_Uniform_01_F"]; +_crewHelmet = ["H_Tank_eaf_F"]; +_crewRig = ["V_TacVest_oli"]; +_crewGlasses = []; + +// Ghillie +_ghillieUniform = ["U_I_GhillieSuit"]; //DLC alternatives: ["U_I_FullGhillie_lsh","U_I_FullGhillie_ard","U_I_FullGhillie_sard"]; +_ghillieHelmet = []; +_ghillieRig = ["V_Chestrig_rgr"]; +_ghillieGlasses = []; + +// Spec Op - no nice stuff for AAF +_sfuniform = _baseUniform; +_sfhelmet = _baseHelmet; +_sfRig = _standardRig; +_sfGlasses = []; + +// ==================================================================================== + +// This block needs only to be run on an infantry unit +if (_isMan) then { + + // PREPARE UNIT FOR GEAR ADDITION + // The following code removes all existing weapons, items, magazines and backpacks + + removeBackpack _unit; + removeAllWeapons _unit; + removeAllItemsWithMagazines _unit; + removeAllAssignedItems _unit; + + // ==================================================================================== + + // HANDLE CLOTHES + // Handle clothes and helmets and such using the include file called next. + + #include "f_assignGear_clothes.sqf"; + + // ==================================================================================== + + // ADD UNIVERSAL ITEMS + // Add items universal to all units of this faction + + _unit linkItem _nvg; // Add and equip the faction's nvg + _unit addItem _firstaid; // Add a single first aid kit (FAK) + _unit linkItem "ItemMap"; // Add and equip the map + _unit linkItem "ItemCompass"; // Add and equip a compass + _unit linkItem "ItemRadio"; // Add and equip A3's default radio + _unit linkItem "ItemWatch"; // Add and equip a watch + _unit linkItem "ItemGPS"; // Add and equip a GPS + +}; + +// ==================================================================================== + +// SELECT LOADOUT +// Pick the appropriate loadout depending on the parameter + +_loadout = f_param_loadouts; + +// Light Loadout +if (_loadout == 0) then { + #include "f_assignGear_ldf_light.sqf" +}; + +// Standard Loadout +if (_loadout == 1) then { + #include "f_assignGear_ldf_standard.sqf" +}; + +// ==================================================================================== diff --git a/f/assignGear/f_assignGear_ldf_light.sqf b/f/assignGear/f_assignGear_ldf_light.sqf new file mode 100644 index 000000000..97b8279c3 --- /dev/null +++ b/f/assignGear/f_assignGear_ldf_light.sqf @@ -0,0 +1,585 @@ +// F3 - Folk ARPS Assign Gear Script - LDF - Light Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_ldf_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_ldf_standard.sqf b/f/assignGear/f_assignGear_ldf_standard.sqf new file mode 100644 index 000000000..e0141bf90 --- /dev/null +++ b/f/assignGear/f_assignGear_ldf_standard.sqf @@ -0,0 +1,591 @@ +// F3 - Folk ARPS Assign Gear Script - LDF - Standard Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_ldf_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_ldf_v.sqf b/f/assignGear/f_assignGear_ldf_v.sqf new file mode 100644 index 000000000..96ad6d8d0 --- /dev/null +++ b/f/assignGear/f_assignGear_ldf_v.sqf @@ -0,0 +1,247 @@ +// Vehicle & Box LOADOUTS - LDF + +// CARGO: CAR - room for 10 weapons and 50 cargo items + case "v_car": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 8]; + _unit addMagazineCargoGlobal [_glriflemag, 8]; + _unit addMagazineCargoGlobal [_carbinemag, 10]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; + _unit addMagazineCargoGlobal [_grenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 4]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addItemCargoGlobal [_firstaid,4]; + }; + +// CARGO: TRUCK - room for 50 weapons and 200 cargo items + case "v_tr": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade, 12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; + _unit addMagazineCargoGlobal [_glmag, 12]; + _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; + _unit addItemCargoGlobal [_firstaid,8]; + }; + +// CARGO: IFV - room for 10 weapons and 100 cargo items + case "v_ifv": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; + _unit addMagazineCargoGlobal [_armag, 8]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addmagazineCargoGlobal [_mgrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 8]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,6]; + }; + +//CARGO: TANK + case "v_tank": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Light + case "v_helo_l": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 2]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Medium + case "v_helo_m": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine,2]; + _unit addWeaponCargoGlobal [_rat,1]; + _unit addMagazineCargoGlobal [_riflemag,10]; + _unit addMagazineCargoGlobal [_glriflemag,10]; + _unit addMagazineCargoGlobal [_carbinemag,10]; + _unit addMagazineCargoGlobal [_armag,6]; + _unit addMagazineCargoGlobal [_RATmag1,1]; + _unit addMagazineCargoGlobal [_grenade,4]; + _unit addmagazineCargoGlobal [_mgrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,4]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Heavy + case "v_helo_h": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine,8]; + _unit addWeaponCargoGlobal [_rat,2]; + _unit addMagazineCargoGlobal [_riflemag,20]; + _unit addMagazineCargoGlobal [_glriflemag,20]; + _unit addMagazineCargoGlobal [_carbinemag,20]; + _unit addMagazineCargoGlobal [_armag,12]; + _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_grenade,12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_glsmokewhite,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,4]; + _unit addItemCargoGlobal [_firstaid,6]; + _unit addBackpackCargoGlobal ["B_Parachute",4]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Attack + case "v_helo_a": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + }; + +//CARGO: Jet + case "v_jet": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,2]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,1]; + _unit addMagazineCargoGlobal [_chemgreen,2]; + _unit addItemCargoGlobal [_firstaid,1]; + _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +// CRATE: Small, ammo for 1 fireteam + case "crate_small": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_glmag, 5]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addMagazineCargoGlobal [_mgrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addItemCargoGlobal [_firstaid, 6]; + }; + +// CRATE: Medium, ammo for 1 squad + case "crate_med": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 15]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_armag, 15]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_glmag, 20]; + _unit addMagazineCargoGlobal [_glsmokewhite,16]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 25]; + _unit addMagazineCargoGlobal [_mgrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 6]; + _unit addItemCargoGlobal [_firstaid, 25]; + }; + +// CRATE: Large, ammo for 1 platoon + case "crate_large": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 45]; + _unit addMagazineCargoGlobal [_glriflemag, 60]; + _unit addMagazineCargoGlobal [_armag, 45]; + _unit addMagazineCargoGlobal [_carbinemag, 60]; + _unit addMagazineCargoGlobal [_glmag, 60]; + _unit addMagazineCargoGlobal [_glsmokewhite,50]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; + _unit addMagazineCargoGlobal [_grenade, 75]; + _unit addMagazineCargoGlobal [_mgrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; + _unit addItemCargoGlobal [_firstaid, 75]; + }; diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index 030d6a769..cdb09b6f2 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -192,6 +192,7 @@ _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = "B_RadioBag_01_mtp_F"; // ==================================================================================== @@ -219,7 +220,7 @@ _DMriflemag_tr = "30Rnd_65x39_caseless_mag_Tracer"; // Rifleman AT _RAT = "launch_MRAWS_sand_F"; -_RATmag1 = "MRAWS_HEAT_F"; +_RATmag1 = "MRAWS_HEAT55_F"; _RATmag2 = "MRAWS_HE_F"; // Medium AT diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index e06a385bb..48b3623b5 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -192,6 +192,7 @@ _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = "B_RadioBag_01_tropic_F"; // ==================================================================================== @@ -224,7 +225,7 @@ _RATmag2 = "MRAWS_HE_F"; // Medium AT _MAT = "launch_MRAWS_green_F"; -_MATmag1 = "MRAWS_HEAT_F"; +_MATmag1 = "MRAWS_HEAT55_F"; _MATmag2 = "MRAWS_HE_F"; // Surface Air diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 20c651e7a..96b19ccba 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -69,6 +69,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -89,6 +90,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -109,6 +111,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index 8ffccf054..4efb3df91 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf new file mode 100644 index 000000000..4163da937 --- /dev/null +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -0,0 +1,361 @@ +// F3 - Folk ARPS Assign Gear Script - NATO (Woodland) +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE EQUIPMENT TABLES +// The blocks of code below identifies equipment for this faction +// +// Defined loadouts: +// co - commander +// dc - deputy commander / squad leader +// m - medic +// ftl - fire team leader +// ar - automatic rifleman +// aar - assistant automatic rifleman +// rat - rifleman (AT) +// dm - designated marksman +// mmgl - medium mg team leader +// mmgg - medium mg gunner +// mmgag - medium mg assistant +// matl - medium AT team leader +// matg - medium AT gunner +// matag - medium AT assistant +// hmgg - heavy mg gunner (deployable) +// hmgag - heavy mg assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant +// mtrg - mortar gunner (deployable) +// mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader +// msamg - medium SAM gunner +// msamag - medium SAM assistant gunner +// hsamg - heavy SAM gunner (deployable) +// hsamag - heavy SAM assistant gunner (deployable) +// sn - sniper +// sp - spotter (for sniper) +// vc - vehicle commander +// vg - vehicle gunner +// vd - vehicle driver (repair) +// pc - air vehicle crew +// jp - jet pilot +// eng - engineer (demo) +// engm - engineer (mines) +// uav - UAV operator +// div - divers +// +// r - rifleman +// car - carabineer +// smg - submachinegunner +// gren - grenadier +// +// v_car - car/4x4 +// v_tr - truck +// v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet +// +// crate_small - small ammocrate +// crate_med - medium ammocrate +// crate_large - large ammocrate +// +// ==================================================================================== + +// GENERAL EQUIPMENT USED BY MULTIPLE CLASSES + +// ATTACHMENTS - PRIMARY +_attach1 = "acc_pointer_IR"; // IR Laser +_attach2 = "acc_flashlight"; // Flashlight + +_silencer1 = "muzzle_snds_M"; // 5.56 suppressor +_silencer2 = "muzzle_snds_H"; // 6.5 suppressor + +_scope1 = "optic_Holosight_blk_F"; // Basic Scope +_scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x +_scope3 = "optic_SOS"; // SOS Scope - 18x - 75x + +_bipod1 = "bipod_01_F_blk"; // Default bipod +_bipod2 = "bipod_01_F_khk"; // Green bipod + +// Default setup +_attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType + +// [] = remove all +// [_attach1,_scope1,_silencer] = remove all, add items assigned in _attach1, _scope1 and _silencer1 +// [_scope2] = add _scope2, remove rest +// false = keep attachments as they are + +// ==================================================================================== + +// ATTACHMENTS - HANDGUN +_hg_silencer1 = "muzzle_snds_acp"; // .45 suppressor + +_hg_scope1 = "optic_MRD_black"; // MRD + +// Default setup +_hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType + +// ==================================================================================== + +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// WEAPON SELECTION + +// Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) +_rifle = "arifle_MX_black_F"; +_riflemag = "30Rnd_65x39_caseless_black_mag"; +_riflemag_tr = "30Rnd_65x39_caseless_black_mag_Tracer"; + +// Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) +_carbine = "arifle_MXC_black_F"; +_carbinemag = "30Rnd_65x39_caseless_black_mag"; +_carbinemag_tr = "30Rnd_65x39_caseless_black_mag_Tracer"; + +// Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) +_smg = "SMG_01_F"; +_smgmag = "30Rnd_45ACP_Mag_SMG_01"; + +// Diver +_diverWep = "arifle_SDAR_F"; +_diverMag1 = "30Rnd_556x45_Stanag_red"; +_diverMag2 = "30Rnd_556x45_Stanag_Tracer_Red"; +_diverMag3 = "20Rnd_556x45_UW_mag"; + +// Rifle with GL and HE grenades (CO, DC, FTLs) +_glrifle = "arifle_MX_GL_black_F"; +_glriflemag = "30Rnd_65x39_caseless_black_mag"; +_glriflemag_tr = "30Rnd_65x39_caseless_black_mag_Tracer"; +_glmag = "1Rnd_HE_Grenade_shell"; +//_glmag = "3Rnd_HE_Grenade_shell"; + +// Smoke for FTLs, Squad Leaders, etc +_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; +_glsmokered = "1Rnd_SmokeRed_Grenade_shell"; + +// Flares for FTLs, Squad Leaders, etc +_glflarewhite = "3Rnd_UGL_FlareWhite_F"; +_glflarered = "3Rnd_UGL_FlareRed_F"; +_glflareyellow = "3Rnd_UGL_FlareYellow_F"; +_glflaregreen = "3Rnd_UGL_FlareGreen_F"; + +// Pistols (CO, DC, Automatic Rifleman, Medium MG Gunner) +_pistol = "hgun_Pistol_heavy_01_green_F"; +_pistolmag = "11Rnd_45ACP_Mag"; + +// Grenades +_grenade = "HandGrenade"; +_Mgrenade = "MiniGrenade"; +_smokegrenade = "SmokeShell"; +_smokegrenadegreen = "SmokeShellGreen"; +_smokegrenadeblue = "SmokeShellBlue"; +_smokegrenadepurple = "SmokeShellPurple"; + +// misc medical items. +_firstaid = "FirstAidKit"; +_medkit = "Medikit"; + +// Night Vision Goggles +_nvg = "NVGoggles_INDEP"; + +// Laserdesignator +_laserdesignator = "Laserdesignator_01_khk_F"; + +// UAV Terminal +_uavterminal = "B_UavTerminal"; + +// Chemlights +_chemgreen = "Chemlight_green"; +_chemred = "Chemlight_red"; +_chemyellow = "Chemlight_yellow"; +_chemblue = "Chemlight_blue"; + +// Backpacks +_bag = "B_AssaultPack_wdl_f"; +_bagLarge = "B_Kitbag_rgr"; +_bagdiver = "B_AssaultPack_blk"; // used by divers +_baguav = "B_UAV_01_backpack_F"; // used by UAV operator +_baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghatg = "B_AssaultPack_wdl_f"; // used by Heavy AT gunner +_baghatag = "B_Kitbag_rgr"; // used by Heavy AT assistant gunner ** +_bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner +_bagmtrag = "I_Mortar_01_support_F"; // used by Mortar assistant gunner +_baghsamg = "I_AA_01_weapon_F"; // used by Heavy SAM gunner +_baghsamag = "I_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = "B_RadioBag_01_wdl_F"; + +// ==================================================================================== + +// UNIQUE, ROLE-SPECIFIC EQUIPMENT + +// Automatic Rifleman +_AR = "arifle_MX_SW_black_F"; +_ARmag = "100Rnd_65x39_caseless_black_mag"; +_ARmag_tr = "100Rnd_65x39_caseless_black_mag_Tracer"; + +// Medium MG +_MMG = "MMG_02_black_F"; +_MMGmag = "130Rnd_338_Mag"; +_MMGmag_tr = "130Rnd_338_Mag"; + +// NON-DLC ALTERNATIVE: +// _MMG = "LMG_Zafir_F"; +// _MMGmag = "150Rnd_762x54_Box"; +// _MMGmag_tr = "150Rnd_762x54_Box"_Tracer"; + +// Marksman rifle +_DMrifle = "arifle_MXM_black_F"; +_DMriflemag = "30Rnd_65x39_caseless_black_mag"; +_DMriflemag_tr = "30Rnd_65x39_caseless_black_mag_Tracer"; + +// Rifleman AT +_RAT = "launch_MRAWS_green_F"; +_RATmag1 = "MRAWS_HEAT55_F"; +_RATmag2 = "MRAWS_HE_F"; + +// Medium AT +_MAT = "launch_MRAWS_green_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; + +// Surface Air +_SAM = "launch_B_Titan_Olive_F"; +_SAMmag = "Titan_AA"; + +// Heavy AT +_HAT = "launch_I_Titan_short_F"; +_HATmag1 = "Titan_AT"; +_HATmag2 = "Titan_AP"; + +// Sniper +_SNrifle = "srifle_LRR_F"; +_SNrifleMag = "7Rnd_408_Mag"; + +// Engineer items +_ATmine = "ATMine_Range_Mag"; +_satchel = "SatchelCharge_Remote_Mag"; +_democharge = "DemoCharge_Remote_Mag"; +_APmine1 = "APERSBoundingMine_Range_Mag"; +_APmine2 = "APERSMine_Range_Mag"; + +// ==================================================================================== + +// CLOTHES AND UNIFORMS + +// Define classes. This defines which gear class gets which uniform +// "medium" vests are used for all classes if they are not assigned a specific uniform + +_diver = ["div"]; +_pilot = ["pp","pcc","pc"]; +_crew = ["vc","vg","vd"]; +_ghillie = ["sn","sp"]; +_specOp = []; +_jet = ["jp"]; + +// Basic clothing +// The outfit-piece is randomly selected from the array for each unit +_baseUniform = ["U_B_CombatUniform_mcam_wdl_f","U_B_CombatUniform_tshirt_mcam_wdL_f","U_B_CombatUniform_vest_mcam_wdl_f"]; +_baseHelmet = ["H_HelmetB_plain_wdl"]; +_baseGlasses = []; + +// Vests +_lightRig = ["V_PlateCarrier2_wdl"]; +_standardRig = ["V_PlateCarrier2_wdl"]; + +// Diver +_diverUniform = ["U_B_Wetsuit"]; +_diverHelmet = []; +_diverRig = ["V_RebreatherB"]; +_diverGlasses = ["G_Diving"]; + +// Pilot +_pilotUniform = ["U_B_HeliPilotCoveralls"]; +_pilotHelmet = ["H_PilotHelmetHeli_B"]; +_pilotRig = ["V_TacVest_blk"]; +_pilotGlasses = []; + +// Jet Pilot +_jetUniform = ["U_B_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_B"]; +_jetRig = []; +_jetGlasses = []; + +// Crewman +_crewUniform = ["U_B_CombatUniform_vest_mcam_wdl_f"]; +_crewHelmet = ["H_HelmetCrew_B"]; +_crewRig = ["V_Chestrig_rgr"]; +_crewGlasses = []; + +// Ghillie +_ghillieUniform = ["U_B_T_Sniper_F"]; //DLC alternatives: ["U_B_T_FullGhillie_tna_F"]; +_ghillieHelmet = []; +_ghillieRig = ["V_Chestrig_rgr"]; +_ghillieGlasses = []; + +// Spec Op +_sfuniform = ["U_B_CombatUniform_vest_mcam_wdl_f"]; +_sfhelmet = ["H_HelmetSpecB_wdl"]; +_sfRig = ["V_PlateCarrierSpec_wdl"]; +_sfGlasses = []; + +// ==================================================================================== + +// This block needs only to be run on an infantry unit +if (_isMan) then { + + // PREPARE UNIT FOR GEAR ADDITION + // The following code removes all existing weapons, items, magazines and backpacks + + removeBackpack _unit; + removeAllWeapons _unit; + removeAllItemsWithMagazines _unit; + removeAllAssignedItems _unit; + + // ==================================================================================== + + // HANDLE CLOTHES + // Handle clothes and helmets and such using the include file called next. + + #include "f_assignGear_clothes.sqf"; + + // ==================================================================================== + + // ADD UNIVERSAL ITEMS + // Add items universal to all units of this faction + + _unit linkItem _nvg; // Add and equip the faction's nvg + _unit addItem _firstaid; // Add a single first aid kit (FAK) + _unit linkItem "ItemMap"; // Add and equip the map + _unit linkItem "ItemCompass"; // Add and equip a compass + _unit linkItem "ItemRadio"; // Add and equip A3's default radio + _unit linkItem "ItemWatch"; // Add and equip a watch + _unit linkItem "ItemGPS"; // Add and equip a GPS + +}; + +// ==================================================================================== + +// SELECT LOADOUT +// Pick the appropriate loadout depending on the parameter + +_loadout = f_param_loadouts; + +// Light Loadout +if (_loadout == 0) then { + #include "f_assignGear_natoWoodland_light.sqf" +}; + +// Standard Loadout +if (_loadout == 1) then { + #include "f_assignGear_natoWoodland_standard.sqf" +}; + +// ==================================================================================== diff --git a/f/assignGear/f_assignGear_natoWoodland_light.sqf b/f/assignGear/f_assignGear_natoWoodland_light.sqf new file mode 100644 index 000000000..91e322890 --- /dev/null +++ b/f/assignGear/f_assignGear_natoWoodland_light.sqf @@ -0,0 +1,585 @@ +// F3 - Folk ARPS Assign Gear Script - NATO - Light Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_nato_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; \ No newline at end of file diff --git a/f/assignGear/f_assignGear_natoWoodland_standard.sqf b/f/assignGear/f_assignGear_natoWoodland_standard.sqf new file mode 100644 index 000000000..1adb95d3d --- /dev/null +++ b/f/assignGear/f_assignGear_natoWoodland_standard.sqf @@ -0,0 +1,591 @@ +// F3 - Folk ARPS Assign Gear Script - NATO - Standard Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; + _unit addmagazines [_RATmag1, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_nato_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; \ No newline at end of file diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index e84872bac..29170a5bd 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -69,6 +69,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -89,6 +90,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -109,6 +111,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 25baf4255..1b9d6bd7b 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf new file mode 100644 index 000000000..0c261e209 --- /dev/null +++ b/f/assignGear/f_assignGear_npr.sqf @@ -0,0 +1,389 @@ +// F3 - Folk ARPS Assign Gear Script - NPR +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE EQUIPMENT TABLES +// The blocks of code below identifies equipment for this faction +// +// Defined loadouts: +// co - commander +// dc - deputy commander / squad leader +// m - medic +// ftl - fire team leader +// ar - automatic rifleman +// aar - assistant automatic rifleman +// rat - rifleman (AT) +// dm - designated marksman +// mmgl - medium mg team leader +// mmgg - medium mg gunner +// mmgag - medium mg assistant +// matl - medium AT team leader +// matg - medium AT gunner +// matag - medium AT assistant +// hmgg - heavy mg gunner (deployable) +// hmgag - heavy mg assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant +// mtrg - mortar gunner (deployable) +// mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader +// msamg - medium SAM gunner +// msamag - medium SAM assistant gunner +// hsamg - heavy SAM gunner (deployable) +// hsamag - heavy SAM assistant gunner (deployable) +// sn - sniper +// sp - spotter (for sniper) +// vc - vehicle commander +// vg - vehicle gunner +// vd - vehicle driver (repair) +// pc - air vehicle crew +// jp - jet pilot +// eng - engineer (demo) +// engm - engineer (mines) +// uav - UAV operator +// div - divers +// +// r - rifleman +// car - carabineer +// smg - submachinegunner +// gren - grenadier +// +// v_car - car/4x4 +// v_tr - truck +// v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet +// +// crate_small - small ammocrate +// crate_med - medium ammocrate +// crate_large - large ammocrate +// +// ==================================================================================== + +// GENERAL EQUIPMENT USED BY MULTIPLE CLASSES + +// ATTACHMENTS - PRIMARY +_attach1 = ""; // IR Laser +_attach2 = "acc_flashlight"; // Flashlight + +_silencer1 = "muzzle_snds_M"; // 5.56 suppressor +_silencer2 = "muzzle_snds_H"; // 6.5 suppressor + +_scope1 = "optic_ACO"; // ACO +_scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x +_scope3 = "optic_SOS"; // SOS Scope - 18x - 75x + +_bipod1 = "bipod_02_F_blk"; // Default bipod +_bipod2 = "bipod_02_F_blk"; // Black bipod + +// Default setup +_attachments = []; // The default attachment set for most units, overwritten in the individual unitType + +// [] = remove all +// [_attach1,_scope1,_silencer] = remove all, add items assigned in _attach1, _scope1 and _silencer1 +// [_scope2] = add _scope2, remove rest +// false = keep attachments as they are + +// ==================================================================================== + +// ATTACHMENTS - HANDGUN +_hg_silencer1 = "muzzle_snds_acp"; // .45 suppressor + +_hg_scope1 = "optic_MRD"; // MRD + +// Default setup +_hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType + +// ==================================================================================== + +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + +// WEAPON SELECTION +/* +// Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) +_rifle = selectRandom ["arifle_MSBS65_black_F","arifle_MSBS65_camo_F","arifle_MSBS65_F"]; // Slight randomization, biased towards TRG +_riflemag = "30Rnd_65x39_caseless_msbs_mag"; +_riflemag_tr = "30Rnd_65x39_caseless_msbs_mag_Tracer"; +*/ +_rifle = "arifle_AKM_F"; +_riflemag = "30Rnd_762x39_Mag_F"; +_riflemag_tr = "30Rnd_762x39_Mag_Tracer_F"; +/* +// Standard Carabineer (MAT Gunner, MTR Gunner, Carabineer) +_carbine = selectRandom ["arifle_MSBS65_black_F","arifle_MSBS65_camo_F","arifle_MSBS65_F"]; // Slight randomization, biased towards TRG +_carbinemag = "30Rnd_65x39_caseless_msbs_mag"; +_carbinemag_tr = "30Rnd_65x39_caseless_msbs_mag_Tracer"; +*/ +_carbine = "arifle_AK12U_F"; // Slight randomization, biased towards TRG +_carbinemag = "30Rnd_762x39_Mag_F"; +_carbinemag_tr = "30Rnd_762x39_Mag_Tracer_F"; + +// Shotgun (Medic, Rifleman (AT)) +_shotgun = "sgun_HunterShotgun_01_F"; +_shotgunmag1 = "2Rnd_12Gauge_Pellets"; +_shotgunmag2 = "2Rnd_12Gauge_Slug"; + +// Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) +_smg = "hgun_PDW2000_F"; +_smgmag = "30Rnd_9x21_Mag"; + +// Diver +_diverWep = "arifle_SDAR_F"; +_diverMag1 = "30Rnd_556x45_Stanag_red"; +_diverMag2 = "30Rnd_556x45_Stanag_Tracer_Red"; +_diverMag3 = "20Rnd_556x45_UW_mag"; +/* +// Rifle with GL and HE grenades (CO, DC, FTLs) +_glrifle = selectRandom ["arifle_MSBS65_GL_black_F","arifle_MSBS65_GL_camo_F","arifle_MSBS65_GL_F"]; // Slight randomization, biased towards TRG +_glriflemag = "30Rnd_65x39_caseless_msbs_mag"; +_glriflemag_tr = "30Rnd_65x39_caseless_msbs_mag_Tracer"; +_glmag = "1Rnd_HE_Grenade_shell"; +*/ +_glrifle = "arifle_AK12_GL_F"; // Slight randomization, biased towards TRG +_glriflemag = "30Rnd_762x39_Mag_F"; +_glriflemag_tr = "30Rnd_762x39_Mag_Tracer_F"; +_glmag = "1Rnd_HE_Grenade_shell"; + +// Smoke for FTLs, Squad Leaders, etc +_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; +_glsmokered = "1Rnd_SmokeRed_Grenade_shell"; + +// Flares for FTLs, Squad Leaders, etc +_glflarewhite = "UGL_FlareWhite_F"; +_glflarered = "UGL_FlareRed_F"; +_glflareyellow = "UGL_FlareYellow_F"; +_glflaregreen = "UGL_FlareGreen_F"; + +// Pistols (CO, DC, Automatic Rifleman, Medium MG Gunner) +_pistol = "hgun_Pistol_heavy_02_F"; +_pistolmag = "6Rnd_45ACP_Cylinder"; + +// Grenades +_grenade = "HandGrenade"; +_Mgrenade = "MiniGrenade"; +_smokegrenade = "SmokeShell"; +_smokegrenadegreen = "SmokeShellGreen"; +_smokegrenadeblue = "SmokeShellBlue"; +_smokegrenadepurple = "SmokeShellPurple"; + +// misc medical items. +_firstaid = "FirstAidKit"; +_medkit = "Medikit"; + +// Night Vision Goggles +_nvg = "NVGoggles_OPFOR"; + +// Laserdesignator +_laserdesignator = "Laserdesignator_03"; + +// UAV Terminal +_uavterminal = "B_UavTerminal"; // BLUFOR - FIA +//_uavterminal = "O_UavTerminal"; // OPFOR - FIA +//_uavterminal = "I_UavTerminal"; // INDP - FIA + +// Chemlights +_chemgreen = "Chemlight_green"; +_chemred = "Chemlight_red"; +_chemyellow = "Chemlight_yellow"; +_chemblue = "Chemlight_blue"; + +// Backpacks +_bag = "B_FieldPack_green_F"; +_bagLarge = "B_Carryall_oli"; +_bagdiver = "B_AssaultPack_blk"; // used by divers +_baguav = "I_UAV_01_backpack_F"; // used by UAV operator +_baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghatg = "I_AssaultPack_cbr"; // used by Heavy AT gunner +_baghatag = "I_Kitbag_cbr"; // used by Heavy AT assistant gunner ** +_bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner +_bagmtrag = "I_Mortar_01_support_F"; // used by Mortar assistant gunner +_baghsamg = "I_AA_01_weapon_F"; // used by Heavy SAM gunner +_baghsamag = "I_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = "B_RadioBag_01_black_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. + +// ==================================================================================== + +// UNIQUE, ROLE-SPECIFIC EQUIPMENT +/* +// Automatic Rifleman +_AR = "LMG_Mk200_black_F"; +_ARmag = "200Rnd_65x39_cased_Box"; +_ARmag_tr = "200Rnd_65x39_cased_Box_Tracer"; +*/ +_AR = "arifle_AKM_F"; +_ARmag = "75Rnd_762x39_Mag_F"; +_ARmag_tr = "75Rnd_762x39_Mag_Tracer_F"; + +// Medium MG +_MMG = "LMG_Zafir_F"; +_MMGmag = "150Rnd_762x54_Box"; +_MMGmag_tr = "150Rnd_762x54_Box_Tracer"; + +// NON-DLC ALTERNATIVE: +// _MMG = "MMG_02_camo_F"; +// _MMGmag = "150Rnd_762x54_Box"; +// _MMGmag_tr = "150Rnd_762x54_Box"_Tracer"; + +// Marksman rifle +_DMrifle = "srifle_DMR_06_hunter_F"; +_DMriflemag = "10Rnd_Mk14_762x51_Mag"; +_DMriflemag_tr = "10Rnd_Mk14_762x51_Mag"; + +// Rifleman AT +_RAT = "launch_MRAWS_olive_rail_F"; +_RATmag1 = "MRAWS_HEAT_F"; +_RATmag2 = "MRAWS_HE_F"; + +// Medium AT +_MAT = "launch_MRAWS_olive_rail_F"; +_MATmag1 = "MRAWS_HEAT_F"; +_MATmag2 = "MRAWS_HE_F"; + +// Surface Air +_SAM = "launch_Titan_F"; +_SAMmag = "Titan_AA"; + +// Heavy AT +_HAT = "launch_Titan_short_F"; +_HATmag1 = "Titan_AT"; +_HATmag2 = "Titan_AP"; + +// Sniper +_SNrifle = "srifle_LRR_F"; +_SNrifleMag = "7Rnd_408_Mag"; + +// Engineer items +_ATmine = "ATMine_Range_Mag"; +_satchel = "SatchelCharge_Remote_Mag"; +_democharge = "DemoCharge_Remote_Mag"; +_APmine1 = "APERSBoundingMine_Range_Mag"; +_APmine2 = "APERSMine_Range_Mag"; + +// ==================================================================================== + +// CLOTHES AND UNIFORMS + +// Define classes. This defines which gear class gets which uniform +// "medium" vests are used for all classes if they are not assigned a specific uniform + +_diver = ["div"]; +_pilot = ["pp","pcc","pc"]; +_crew = ["vc","vg","vd"]; +_ghillie = ["sn","sp"]; +_specOp = []; +_jet = ["jp"]; + +// Basic clothing +// The outfit-piece is randomly selected from the array for each unit + +_baseUniform = ["U_O_R_Gorka_01_camo_F","U_O_R_Gorka_01_black_F","U_I_L_Uniform_01_camo_F","U_I_L_Uniform_01_deserter_F","U_BG_Guerilla2_3","U_BG_Guerilla3_1","U_BG_Guerilla3_2","U_BG_Guerrilla_6_1","U_C_E_LooterJacket_01_F","U_I_L_Uniform_01_tshirt_black_F","U_I_L_Uniform_01_tshirt_olive_F","U_I_L_Uniform_01_tshirt_skull_F"]; +_baseHelmet = ["H_Shemag_olive","H_Bandanna_khk","H_Cap_oli","H_Cap_blk","H_Watchcap_blk","H_Watchcap_camo","H_Bandanna_camo"]; +_baseGlasses = ["G_Bandanna_blk","G_Bandanna_oli"]; +//_baseHelmet = [""]; +//_baseGlasses = ["G_Balaclava_oli","G_Balaclava_oli","G_Balaclava_blk"]; + +// Vests +_lightRig = ["V_TacVest_camo","V_I_G_resistanceLeader_F","V_TacVest_oli"]; +_standardRig = ["V_TacVest_camo","V_I_G_resistanceLeader_F","V_TacVest_oli"]; + +// Diver +_diverUniform = ["U_B_Wetsuit"]; +_diverHelmet = []; +_diverRig = ["V_RebreatherB"]; +_diverGlasses = ["G_Diving"]; + +// Pilot +_pilotUniform = ["U_C_WorkerCoveralls"]; +_pilotHelmet = _baseHelmet; +_pilotRig = ["V_BandollierB_cbr"]; +_pilotGlasses = []; + +// Jet Pilot +_jetUniform = ["U_B_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_B"]; +_jetRig = []; +_jetGlasses = []; + +// Crewman +_crewUniform = _baseUniform; +_crewHelmet = _baseHelmet; +_crewRig = ["V_BandollierB_cbr"]; +_crewGlasses = []; + +// Ghillie +_ghillieUniform = ["U_B_GhillieSuit"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; +_ghillieHelmet = []; +_ghillieRig = ["V_Chestrig_rgr"]; +_ghillieGlasses = []; + +// Spec Op (CTRG) +_sfuniform = ["U_B_CTRG_1","U_B_CTRG_2","U_B_CTRG_3"]; +_sfhelmet = _baseHelmet; +_sfRig = ["V_PlateCarrierL_CTRG","V_PlateCarrierH_CTRG"]; +_sfGlasses = []; + +// ==================================================================================== + +// This block needs only to be run on an infantry unit +if (_isMan) then { + + // PREPARE UNIT FOR GEAR ADDITION + // The following code removes all existing weapons, items, magazines and backpacks + + removeBackpack _unit; + removeAllWeapons _unit; + removeAllItemsWithMagazines _unit; + removeAllAssignedItems _unit; + + // ==================================================================================== + + // HANDLE CLOTHES + // Handle clothes and helmets and such using the include file called next. + + #include "f_assignGear_clothes.sqf"; + + // ==================================================================================== + + // ADD UNIVERSAL ITEMS + // Add items universal to all units of this faction + + _unit linkItem _nvg; // Add and equip the faction's nvg + _unit addItem _firstaid; // Add a single first aid kit (FAK) + _unit linkItem "ItemMap"; // Add and equip the map + _unit linkItem "ItemCompass"; // Add and equip a compass + _unit linkItem "ItemRadio"; // Add and equip A3's default radio + _unit linkItem "ItemWatch"; // Add and equip a watch + _unit linkItem "ItemGPS"; // Add and equip a GPS + +}; + +// ==================================================================================== + +// SELECT LOADOUT +// Pick the appropriate loadout depending on the parameter + +_loadout = f_param_loadouts; + +// Light Loadout +if (_loadout == 0) then { + #include "f_assignGear_npr_light.sqf" +}; + +// Standard Loadout +if (_loadout == 1) then { + #include "f_assignGear_npr_standard.sqf" +}; + +// ==================================================================================== diff --git a/f/assignGear/f_assignGear_npr_light.sqf b/f/assignGear/f_assignGear_npr_light.sqf new file mode 100644 index 000000000..56a7cdb2c --- /dev/null +++ b/f/assignGear/f_assignGear_npr_light.sqf @@ -0,0 +1,585 @@ +// F3 - Folk ARPS Assign Gear Script - NPR - Light Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_npr_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf new file mode 100644 index 000000000..52bbdbe62 --- /dev/null +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -0,0 +1,591 @@ +// F3 - Folk ARPS Assign Gear Script - NPR - Standard Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_shotgunmag1, 1]; + _unit addweapon _shotgun; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_shotgunmag1, 10]; + _unit addmagazines [_shotgunmag2, 6]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_RATmag1, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addBackpack _bagRadio; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_shotgunmag1, 1]; + _unit addweapon _shotgun; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_shotgunmag1, 10]; + _unit addmagazines [_shotgunmag2, 6]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_npr_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_npr_v.sqf b/f/assignGear/f_assignGear_npr_v.sqf new file mode 100644 index 000000000..39a125bd6 --- /dev/null +++ b/f/assignGear/f_assignGear_npr_v.sqf @@ -0,0 +1,247 @@ +// Vehicle & Box LOADOUTS - NPR + +// CARGO: CAR - room for 10 weapons and 50 cargo items + case "v_car": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 8]; + _unit addMagazineCargoGlobal [_glriflemag, 8]; + _unit addMagazineCargoGlobal [_carbinemag, 10]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; + _unit addMagazineCargoGlobal [_grenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 4]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addItemCargoGlobal [_firstaid,4]; + }; + +// CARGO: TRUCK - room for 50 weapons and 200 cargo items + case "v_tr": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade, 12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; + _unit addMagazineCargoGlobal [_glmag, 12]; + _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; + _unit addItemCargoGlobal [_firstaid,8]; + }; + +// CARGO: IFV - room for 10 weapons and 100 cargo items + case "v_ifv": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; + _unit addMagazineCargoGlobal [_armag, 8]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addmagazineCargoGlobal [_mgrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 8]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,6]; + }; + +//CARGO: TANK + case "v_tank": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Light + case "v_helo_l": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 2]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Medium + case "v_helo_m": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponCargoGlobal [_rat,1]; + _unit addMagazineCargoGlobal [_riflemag,10]; + _unit addMagazineCargoGlobal [_glriflemag,10]; + _unit addMagazineCargoGlobal [_carbinemag,10]; + _unit addMagazineCargoGlobal [_armag,6]; + _unit addMagazineCargoGlobal [_RATmag1,1]; + _unit addMagazineCargoGlobal [_grenade,4]; + _unit addmagazineCargoGlobal [_mgrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,4]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Heavy + case "v_helo_h": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 8]; + _unit addWeaponCargoGlobal [_rat,2]; + _unit addMagazineCargoGlobal [_riflemag,20]; + _unit addMagazineCargoGlobal [_glriflemag,20]; + _unit addMagazineCargoGlobal [_carbinemag,20]; + _unit addMagazineCargoGlobal [_armag,12]; + _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_grenade,12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_glsmokewhite,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,4]; + _unit addItemCargoGlobal [_firstaid,6]; + _unit addBackpackCargoGlobal ["B_Parachute",4]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Attack + case "v_helo_a": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + }; + +//CARGO: Jet + case "v_jet": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,2]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,1]; + _unit addMagazineCargoGlobal [_chemgreen,2]; + _unit addItemCargoGlobal [_firstaid,1]; + _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +// CRATE: Small, ammo for 1 fireteam + case "crate_small": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_glmag, 5]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addMagazineCargoGlobal [_mgrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addItemCargoGlobal [_firstaid, 6]; + }; + +// CRATE: Medium, ammo for 1 squad + case "crate_med": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 15]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_armag, 15]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_glmag, 20]; + _unit addMagazineCargoGlobal [_glsmokewhite,16]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 25]; + _unit addMagazineCargoGlobal [_mgrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 6]; + _unit addItemCargoGlobal [_firstaid, 25]; + }; + +// CRATE: Large, ammo for 1 platoon + case "crate_large": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 45]; + _unit addMagazineCargoGlobal [_glriflemag, 60]; + _unit addMagazineCargoGlobal [_armag, 45]; + _unit addMagazineCargoGlobal [_carbinemag, 60]; + _unit addMagazineCargoGlobal [_glmag, 60]; + _unit addMagazineCargoGlobal [_glsmokewhite,50]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; + _unit addMagazineCargoGlobal [_grenade, 75]; + _unit addMagazineCargoGlobal [_mgrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; + _unit addItemCargoGlobal [_firstaid, 75]; + }; diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf new file mode 100644 index 000000000..0c2665f44 --- /dev/null +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -0,0 +1,373 @@ +// F3 - Folk ARPS Assign Gear Script - Spetsnaz +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE EQUIPMENT TABLES +// The blocks of code below identifies equipment for this faction +// +// Defined loadouts: +// co - commander +// dc - deputy commander / squad leader +// m - medic +// ftl - fire team leader +// ar - automatic rifleman +// aar - assistant automatic rifleman +// rat - rifleman (AT) +// dm - designated marksman +// mmgl - medium mg team leader +// mmgg - medium mg gunner +// mmgag - medium mg assistant +// matl - medium AT team leader +// matg - medium AT gunner +// matag - medium AT assistant +// hmgg - heavy mg gunner (deployable) +// hmgag - heavy mg assistant (deployable) +// hatl - heavy AT team leader +// hatg - heavy AT gunner +// hatag - heavy AT assistant +// mtrg - mortar gunner (deployable) +// mtrag - mortar assistant (deployable) +// msaml - medium SAM team leader +// msamg - medium SAM gunner +// msamag - medium SAM assistant gunner +// hsamg - heavy SAM gunner (deployable) +// hsamag - heavy SAM assistant gunner (deployable) +// sn - sniper +// sp - spotter (for sniper) +// vc - vehicle commander +// vg - vehicle gunner +// vd - vehicle driver (repair) +// pc - air vehicle crew +// jp - jet pilot +// eng - engineer (demo) +// engm - engineer (mines) +// uav - UAV operator +// div - divers +// +// r - rifleman +// car - carabineer +// smg - submachinegunner +// gren - grenadier +// +// v_car - car/4x4 +// v_tr - truck +// v_ifv - ifv +// v_tank - tank +// v_helo_l - Rotary Transport Light +// v_helo_m - Rotary Transport Medium +// v_helo_h - Rotary Transport Heavy +// v_helo_a - Rotary Attack +// v_jet - Jet +// +// crate_small - small ammocrate +// crate_med - medium ammocrate +// crate_large - large ammocrate +// +// ==================================================================================== + +// GENERAL EQUIPMENT USED BY MULTIPLE CLASSES + +// ATTACHMENTS - PRIMARY +_attach1 = "acc_pointer_IR"; // IR Laser +_attach2 = "acc_flashlight"; // Flashlight + +_silencer1 = "muzzle_snds_M"; // 5.56 suppressor +_silencer2 = "muzzle_snds_H"; // 6.5 suppressor +_silencer2 = "muzzle_snds_B"; // 7.62 suppressor + +_scope1 = "optic_Holosight_blk_F"; // Holo alts: "optic_Holosight_lush_F"; "optic_Holosight_arid_F"; +_scope2 = "optic_ARCO_AK_Blk_F"; // ARCO Scope alts: "optic_ARCO_AK_lush_F"; "optic_ARCO_AK_arid_F"; +_scope3 = "optic_SOS"; // SOS Scope - 18x - 75x + +_bipod1 = "bipod_02_F_blk"; // Default bipod +_bipod2 = "bipod_02_F_lush"; // Lush bipod +_bipod2 = "bipod_02_F_arid"; // Arid bipod + +// Default setup +_attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType + +// [] = remove all +// [_attach1,_scope1,_silencer] = remove all, add items assigned in _attach1, _scope1 and _silencer1 +// [_scope2] = add _scope2, remove rest +// false = keep attachments as they are + +// ==================================================================================== + +// ATTACHMENTS - HANDGUN +_hg_silencer1 = "muzzle_snds_L"; // 9mm suppressor + +_hg_scope1 = "optic_MRD"; // MRD + +// Default setup +_hg_attachments= []; // The default attachment set for handguns, overwritten in the individual unitType + +// ==================================================================================== + +// ATTACHMENTS - LAUNCHER +_lau_attach1 = ""; // Empty by default, could be a scope in GM or a laser pointer for Titans + +_lau_attachments = []; // The default attachment set for launchers, overwritten in the individual unitType + +// ==================================================================================== + +// WEAPON SELECTION + +// Standard Riflemen ( MMG Assistant Gunner, Assistant Automatic Rifleman, MAT Assistant Gunner, MTR Assistant Gunner, Rifleman) +_rifle = selectRandom ["arifle_AK12_lush_F","arifle_AK12_F"]; +//_rifle = selectRandom ["arifle_AK12_arid_F","arifle_AK12_F"];// Arid alternative +_riflemag = "30Rnd_762x39_AK12_Mag_F"; +_riflemag_tr = "30Rnd_762x39_AK12_Mag_Tracer_F"; + +// Standard Carabineer (Medic, Rifleman (AT), MAT Gunner, MTR Gunner, Carabineer) +_carbine = selectRandom ["arifle_AK12U_lush_F","arifle_AK12U_F"]; +//_carbine = selectRandom ["arifle_AK12U_arid_F","arifle_AK12U_F"];// Arid alternative +_carbinemag = "30Rnd_762x39_AK12_Mag_F"; +_carbinemag_tr = "30Rnd_762x39_AK12_Mag_Tracer_F"; + +// Standard Submachine Gun/Personal Defence Weapon (Aircraft Pilot, Submachinegunner) +_smg = "SMG_02_F"; +_smgmag = "30Rnd_9x21_Mag"; + +// Diver +_diverWep = "arifle_SDAR_F"; +_diverMag1 = "30Rnd_556x45_Stanag"; +_diverMag2 = "30Rnd_556x45_Stanag_Tracer_Green"; +_diverMag3 = "20Rnd_556x45_UW_mag"; + +// Rifle with GL and HE grenades (CO, DC, FTLs) +_glrifle = selectRandom ["arifle_AK12_GL_lush_F","arifle_AK12_GL_F"]; +//_glrifle = selectRandom ["arifle_AK12_GL_arid_F","arifle_AK12_GL_F"];// Arid alternative +_glriflemag = "30Rnd_762x39_AK12_Mag_F"; +_glriflemag_tr = "30Rnd_762x39_AK12_Mag_Tracer_F"; +_glmag = "1Rnd_HE_Grenade_shell"; + +// Smoke for FTLs, Squad Leaders, etc +_glsmokewhite = "1Rnd_Smoke_Grenade_shell"; +_glsmokegreen = "1Rnd_SmokeGreen_Grenade_shell"; +_glsmokered = "1Rnd_SmokeRed_Grenade_shell"; + +// Flares for FTLs, Squad Leaders, etc +_glflarewhite = "UGL_FlareWhite_F"; +_glflarered = "UGL_FlareRed_F"; +_glflareyellow = "UGL_FlareYellow_F"; +_glflaregreen = "UGL_FlareGreen_F"; + +// Pistols (CO, DC, Automatic Rifleman, Medium MG Gunner) +_pistol = "hgun_Rook40_F"; +_pistolmag = "16Rnd_9x21_Mag"; + +// Grenades +_grenade = "HandGrenade"; +_Mgrenade = "MiniGrenade"; +_smokegrenade = "SmokeShell"; +_smokegrenadegreen = "SmokeShellGreen"; +_smokegrenadeblue = "SmokeShellBlue"; +_smokegrenadepurple = "SmokeShellPurple"; + +// misc medical items. +_firstaid = "FirstAidKit"; +_medkit = "Medikit"; + +// Night Vision Goggles +_nvg = "O_NVGoggles_grn_F"; + +// Laserdesignator +_laserdesignator = "Laserdesignator_02"; + +// UAV Terminal +_uavterminal = "O_UavTerminal"; + +// Chemlights +_chemgreen = "Chemlight_green"; +_chemred = "Chemlight_red"; +_chemyellow = "Chemlight_yellow"; +_chemblue = "Chemlight_blue"; + +// Backpacks +_bag = "B_FieldPack_green_F"; // carries 120, weighs 20 +_bagLarge = "B_Carryall_green_f"; // carries 320, weighs 40 +_bagdiver = "B_AssaultPack_rgr"; // used by divers +_baguav = "I_UAV_01_backpack_F"; // used by UAV operator +_baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghatg = "I_AT_01_weapon_F"; // used by Heavy AT gunner +_baghatag = "I_HMG_01_support_F"; // used by Heavy AT assistant gunner +_bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner +_bagmtrag = "I_Mortar_01_support_F"; // used by Mortar assistant gunner +_baghsamg = "I_AA_01_weapon_F"; // used by Heavy SAM gunner +_baghsamag = "I_HMG_01_support_F"; // used by Heavy SAM assistant gunner + +// ==================================================================================== + +// UNIQUE, ROLE-SPECIFIC EQUIPMENT + +// Automatic Rifleman +//_AR = selectRandom ["arifle_RPK12_arid_F","arifle_RPK12_F"]; // Arid alternative +_AR = selectRandom ["arifle_RPK12_lush_F","arifle_RPK12_F"]; +_ARmag = "75rnd_762x39_AK12_Mag_F"; +_ARmag_tr = "75rnd_762x39_AK12_Mag_Tracer_F"; + +// Medium MG +_MMG = "LMG_Zafir_F"; +_MMGmag = "150Rnd_762x54_Box"; +_MMGmag_tr = "150Rnd_762x54_Box_Tracer"; + +// Marksman rifle +_DMrifle = "srifle_DMR_04_F"; +_DMriflemag = "10Rnd_127x54_Mag"; +_DMriflemag_tr = "10Rnd_127x54_Mag"; + +// Rifleman AT +_RAT = "launch_RPG32_green_F"; +_RATmag1 = "RPG32_F"; +_RATmag2 = "RPG32_HE_F"; + +// Medium AT +_MAT = "launch_RPG32_green_F"; +_MATmag1 = "RPG32_F"; +_MATmag2 = "RPG32_HE_F"; + +// Surface Air +_SAM = "launch_O_Titan_F"; +_SAMmag = "Titan_AA"; + +// Heavy AT +_HAT = "launch_O_Vorona_green_F"; +_HATmag1 = "Vorona_HEAT"; +_HATmag2 = "Vorona_HE"; + +// Sniper +_SNrifle = "srifle_GM6_camo_F"; +_SNrifleMag = "5Rnd_127x108_Mag"; + +// Engineer items +_ATmine = "ATMine_Range_Mag"; +_satchel = "SatchelCharge_Remote_Mag"; +_democharge = "DemoCharge_Remote_Mag"; +_APmine1 = "APERSBoundingMine_Range_Mag"; +_APmine2 = "APERSMine_Range_Mag"; + +// ==================================================================================== + +// CLOTHES AND UNIFORMS + +// Define classes. This defines which gear class gets which uniform +// "medium" vests are used for all classes if they are not assigned a specific uniform + +_diver = ["div"]; +_pilot = ["pp","pcc","pc"]; +_crew = ["vc","vg","vd"]; +_ghillie = ["sn","sp"]; +_specOp = []; +_jet = ["jp"]; + +// Basic clothing +// The outfit-piece is randomly selected from the array for each unit + +// Green +_baseUniform = ["U_O_R_Gorka_01_F","U_O_R_Gorka_01_camo_F"]; +_baseHelmet = ["H_HelmetAggressor_F","H_HelmetAggressor_cover_F","H_HelmetAggressor_cover_taiga_F"]; +_baseGlasses = ["G_Balaclava_blk","G_Balaclava_lowprofile","G_Balaclava_oli"]; + +// Tan +//_baseUniform = ["U_O_R_Gorka_01_brown_F"]; +//_baseHelmet = ["H_HelmetAggressor_F","H_HelmetAggressor_cover_F"]; + +// Vests +_lightRig = ["V_SmershVest_01_F"]; +_standardRig = ["V_SmershVest_01_F"]; +_radioRig = "V_SmershVest_01_radio_F"; + +// Urban Vests +// _lightRig = ["V_HarnessO_gry"]; +// _standardRig = ["V_HarnessO_gry"]; + +// Diver +_diverUniform = ["U_O_Wetsuit"]; +_diverHelmet = []; +_diverRig = ["V_RebreatherIR"]; +_diverGlasses = ["G_Diving"]; + +// Pilot +_pilotUniform = ["U_O_PilotCoveralls"]; +_pilotHelmet = ["H_PilotHelmetHeli_O"]; +_pilotRig = ["V_HarnessO_brn"]; +_pilotGlasses = []; + +// Jet Pilot +_jetUniform = ["U_O_PilotCoveralls"]; +_jetHelmet = ["H_PilotHelmetFighter_O"]; +_jetRig = []; +_jetGlasses = []; + +// Crewman +_crewUniform = ["U_O_R_Gorka_01_F"]; +_crewHelmet = ["H_Tank_black_F"]; +_crewRig = ["V_Chestrig_rgr"]; +_crewGlasses = []; + +// Ghillie +_ghillieUniform = ["U_O_GhillieSuit"]; //DLC alternatives: ["U_O_FullGhillie_lsh","U_O_FullGhillie_ard","U_O_FullGhillie_sard"]; +_ghillieHelmet = []; +_ghillieRig = ["V_Chestrig_rgr"]; +_ghillieGlasses = []; + +// Spec Op (Read: Spetsnaz) +//_sfuniform = _baseUniform; +//_sfhelmet = _baseHelmet; +//_sfRig = _standardRig; +//_sfGlasses = []; + +// ==================================================================================== + +// This block needs only to be run on an infantry unit +if (_isMan) then { + + // PREPARE UNIT FOR GEAR ADDITION + // The following code removes all existing weapons, items, magazines and backpacks + + removeBackpack _unit; + removeAllWeapons _unit; + removeAllItemsWithMagazines _unit; + removeAllAssignedItems _unit; + + // ==================================================================================== + + // HANDLE CLOTHES + // Handle clothes and helmets and such using the include file called next. + + #include "f_assignGear_clothes.sqf"; + + // ==================================================================================== + + // ADD UNIVERSAL ITEMS + // Add items universal to all units of this faction + + _unit linkItem _nvg; // Add and equip the faction's nvg + _unit addItem _firstaid; // Add a single first aid kit (FAK) + _unit linkItem "ItemMap"; // Add and equip the map + _unit linkItem "ItemCompass"; // Add and equip a compass + _unit linkItem "ItemRadio"; // Add and equip A3's default radio + _unit linkItem "ItemWatch"; // Add and equip a watch + _unit linkItem "ItemGPS"; // Add and equip a GPS + +}; + +// ==================================================================================== + +// SELECT LOADOUT +// Pick the appropriate loadout depending on the parameter + +_loadout = f_param_loadouts; + +// Light Loadout +if (_loadout == 0) then { + #include "f_assignGear_spetsnaz_light.sqf" +}; + +// Standard Loadout +if (_loadout == 1) then { + #include "f_assignGear_spetsnaz_standard.sqf" +}; + +// ==================================================================================== diff --git a/f/assignGear/f_assignGear_spetsnaz_light.sqf b/f/assignGear/f_assignGear_spetsnaz_light.sqf new file mode 100644 index 000000000..0a083b5c4 --- /dev/null +++ b/f/assignGear/f_assignGear_spetsnaz_light.sqf @@ -0,0 +1,582 @@ +// F3 - Folk ARPS Assign Gear Script - Spetsnaz - Light Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_spetsnaz_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf new file mode 100644 index 000000000..41e4a4a94 --- /dev/null +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -0,0 +1,592 @@ +// F3 - Folk ARPS Assign Gear Script - Spetsnaz - Standard Loadout +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +// DEFINE UNIT TYPE LOADOUTS +// The following blocks of code define loadouts for each type of unit (the unit type +// is passed to the script in the first variable) + +switch (_typeofUnit) do +{ + +// ==================================================================================== +// Automatic Rifleman Loadout: + case "ar": + { + _unit addBackpack _bag; + _unit addmagazines [_ARmag, 1]; + _unit addweapon _AR; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; + _unit addmagazines [_grenade, 1]; + }; +// Rifleman (AT) Loadout: + case "rat": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_RATmag1, 1]; + _unit addweapon _RAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_RATmag1, 1]; + _unit addmagazines [_RATmag2, 1]; + }; +// Assistant Autorifleman Loadout: + case "aar": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_ARmag, 2]; + _unit addmagazines [_RATmag1, 1]; + }; +// Fire Team Leader Loadout: + case "ftl": + { + _unit addVest _radioRig; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadegreen, 2]; + }; +// Squad Leader / DC Loadout: + case "dc": + { + _unit addVest _radioRig; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_pistolmag, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// Platoon CO Loadout: + case "co": + { + _unit addVest _radioRig; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokewhite, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 4]; + _unit addmagazines [_glsmokered, 2]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_smokegrenadepurple, 3]; + }; +// JTAC Loadout: + case "jtac": + { + _unit addVest _radioRig; + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glsmokered, 1]; + _unit addweapon _glrifle; + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glsmokewhite, 3]; + _unit addmagazines [_glsmokered, 3]; + _unit addmagazines [_glsmokegreen, 2]; + _unit addmagazines [_pistolmag, 4]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addmagazines ["Laserbatteries", 1]; + _unit addWeapon _laserdesignator; + }; +// Medic Loadout: + case "m": + { + _unit setUnitTrait ["medic",true]; // Can use medkit + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addItem _medkit; + _unit addItem _firstaid; + }; +// Designated Marksman Loadout: + case "dm": + { + _unit addmagazines [_DMriflemag, 1]; + _unit addweapon _DMrifle; + _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_DMriflemag, 4]; + _unit addmagazines [_DMriflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Medium MG Gunner Loadout: + case "mmgg": + { + _unit addBackpack _bag; + _unit addmagazines [_MMGmag, 1]; + _unit addweapon _MMG; + _attachments pushback (_bipod1); // Adds the bipod + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_MMGmag, 1]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Assistant Loadout: + case "mmgag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + }; +// Medium MG Team Leader Loadout: + case "mmgl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MMGmag, 2]; + _unit addmagazines [_MMGmag_tr, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy MG Gunner Loadout: + case "hmgg": + { + _unit addBackpack _baghmgg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy MG Team Leader Loadout: + case "hmgag": + { + _unit addBackpack _baghmgag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium AT Gunner Loadout: + case "matg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_MATmag1, 1]; + _unit addweapon _MAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Assistant Loadout: + case "matag": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + }; +// Medium AT Team Leader Loadout: + case "matl": + { + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_MATmag1, 2]; + _unit addmagazines [_MATmag2, 1]; + _unit addWeapon "Rangefinder"; + }; +// Heavy AT Gunner Loadout: + case "hatg": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_HATmag1, 1]; + _unit addweapon _HAT; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_HATmag1, 1]; + }; +// Heavy AT Assistant Loadout: + case "hatag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + }; +// Heavy AT Team Leader Loadout: + case "hatl": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_HATmag1, 2]; + _unit addWeapon "Rangefinder"; + }; +// Mortar Gunner Loadout: + case "mtrg": + { + _unit addBackpack _bagmtrg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 2]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Mortar Team Leader Loadout: + case "mtrag": + { + _unit addBackpack _bagmtrag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Medium SAM Gunner Loadout: + case "msamg": + { + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addmagazines [_SAMmag, 1]; + _unit addweapon _SAM; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Medium SAM Assistant Loadout: + case "msamag": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + }; +// Medium SAM Team Leader Loadout: + case "msaml": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addmagazines [_SAMmag, 2]; + _unit addWeapon "Rangefinder"; + }; +// Heavy SAM Gunner Loadout: + case "hsamg": + { + _unit addBackpack _baghsamg; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + }; +// Heavy SAM Team Leader Loadout: + case "hsamag": + { + _unit addBackpack _baghsamag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addWeapon "Rangefinder"; + }; +// Sniper Loadout: + case "sn": + { + _unit addmagazines [_SNrifleMag, 1]; + _unit addweapon _SNrifle; + _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 + _unit addmagazines [_pistolmag, 1]; + _unit addweapon _pistol; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_SNrifleMag, 6]; + _unit addmagazines [_pistolmag, 5]; + }; +// Spotter Loadout: + case "sp": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _attachments pushback (_attach1); // Adds laser pointer, keeps default scope + _unit addWeapon "Rangefinder"; + _unit addmagazines [_SNrifleMag, 3]; + }; +// Vehicle Commander Loadout: + case "vc": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addweapon "Rangefinder"; + }; +// Vehicle Gunner Loadout: + case "vg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + }; +// Vehicle Driver Loadout: + case "vd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Jet Pilot Loadout: + case "jp": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 3]; + }; +// Helicopter Crew Loadout: + case "pp"; + case "pcc"; + case "pc": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_smgmag, 4]; + _unit addItem "ToolKit"; + }; +// Engineer (Demo) Loadout: + case "eng": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_satchel, 2]; + }; +// Engineer (Mines) Loadout: + case "engm": + { + _unit addBackpack _bagLarge; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + _unit addItem "ToolKit"; + _unit addItem "MineDetector"; + _unit addmagazines [_APmine2, 4]; + _unit addmagazines [_ATmine, 1]; + }; +// UAV Operator Loadout: + case "uav": + { + _unit addBackpack _baguav; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit linkItem _uavterminal; + }; +// Diver Loadout: + case "div": + { + _unit addBackpack _bagdiver; + _unit addmagazines [_diverMag1, 1]; + _unit addweapon _diverWep; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_diverMag1, 4]; + _unit addmagazines [_diverMag2, 2]; + _unit addmagazines [_diverMag3, 3]; + _unit addmagazines [_grenade, 3]; + }; +// Rifleman Loadout: + case "r": + { + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Carbineer Loadout: + case "car": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addmagazines [_carbinemag_tr, 2]; + _unit addmagazines [_grenade, 2]; + }; +// Submachinegunner Loadout: + case "smg": + { + _unit addmagazines [_smgmag, 1]; + _unit addweapon _smg; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_smgmag, 6]; + _unit addmagazines [_grenade, 2]; + }; +// Grenadier Loadout: + case "gren": + { + _unit addmagazines [_glriflemag, 1]; + _unit addmagazines [_glmag, 1]; + _unit addweapon _glrifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_glriflemag, 4]; + _unit addmagazines [_glriflemag_tr, 2]; + _unit addmagazines [_glmag, 5]; + }; + +// Include the loadouts for vehicles and crates: +#include "f_assignGear_spetsnaz_v.sqf"; + +// Include the default case for error handling +#include "f_assignGear_default.sqf"; + +// ==================================================================================== + +// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS +}; diff --git a/f/assignGear/f_assignGear_spetsnaz_v.sqf b/f/assignGear/f_assignGear_spetsnaz_v.sqf new file mode 100644 index 000000000..ed9583090 --- /dev/null +++ b/f/assignGear/f_assignGear_spetsnaz_v.sqf @@ -0,0 +1,247 @@ +// Vehicle & Box LOADOUTS - Spetsnaz + +// CARGO: CAR - room for 10 weapons and 50 cargo items + case "v_car": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 8]; + _unit addMagazineCargoGlobal [_glriflemag, 8]; + _unit addMagazineCargoGlobal [_carbinemag, 10]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_RATmag1, 1]; + _unit addMagazineCargoGlobal [_grenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenade, 4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 4]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addItemCargoGlobal [_firstaid,4]; + }; + +// CARGO: TRUCK - room for 50 weapons and 200 cargo items + case "v_tr": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addMagazineCargoGlobal [_riflemag, 20]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_armag, 10]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade, 12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 4]; + _unit addMagazineCargoGlobal [_glmag, 12]; + _unit addMagazineCargoGlobal [_glsmokewhite, 12]; + _unit addBackpackCargoGlobal [_bag,4]; + _unit addItemCargoGlobal [_firstaid,8]; + }; + +// CARGO: IFV - room for 10 weapons and 100 cargo items + case "v_ifv": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addMagazineCargoGlobal [_riflemag, 10]; + _unit addMagazineCargoGlobal [_glriflemag, 10]; + _unit addMagazineCargoGlobal [_carbinemag, 12]; + _unit addMagazineCargoGlobal [_armag, 8]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addmagazineCargoGlobal [_mgrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addMagazineCargoGlobal [_glmag, 8]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,6]; + }; + +//CARGO: TANK + case "v_tank": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Light + case "v_helo_l": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 2]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Medium + case "v_helo_m": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine,2]; + _unit addWeaponCargoGlobal [_rat,1]; + _unit addMagazineCargoGlobal [_riflemag,10]; + _unit addMagazineCargoGlobal [_glriflemag,10]; + _unit addMagazineCargoGlobal [_carbinemag,10]; + _unit addMagazineCargoGlobal [_armag,6]; + _unit addMagazineCargoGlobal [_RATmag1,1]; + _unit addMagazineCargoGlobal [_grenade,4]; + _unit addmagazineCargoGlobal [_mgrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenade,8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,2]; + _unit addItemCargoGlobal [_firstaid,4]; + _unit addBackpackCargoGlobal ["B_Parachute",2]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Transport Heavy + case "v_helo_h": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addWeaponCargoGlobal [_carbine,8]; + _unit addWeaponCargoGlobal [_rat,2]; + _unit addMagazineCargoGlobal [_riflemag,20]; + _unit addMagazineCargoGlobal [_glriflemag,20]; + _unit addMagazineCargoGlobal [_carbinemag,20]; + _unit addMagazineCargoGlobal [_armag,12]; + _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_grenade,12]; + _unit addmagazineCargoGlobal [_mgrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenade,12]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,4]; + _unit addMagazineCargoGlobal [_glmag,12]; + _unit addMagazineCargoGlobal [_glsmokewhite,12]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addBackpackCargoGlobal [_bag,4]; + _unit addItemCargoGlobal [_firstaid,6]; + _unit addBackpackCargoGlobal ["B_Parachute",4]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +//CARGO: Rotary Attack + case "v_helo_a": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,4]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; + _unit addMagazineCargoGlobal [_chemgreen,4]; + _unit addItemCargoGlobal [_firstaid,2]; + }; + +//CARGO: Jet + case "v_jet": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_smokegrenade,2]; + _unit addMagazineCargoGlobal [_smokegrenadegreen,1]; + _unit addMagazineCargoGlobal [_chemgreen,2]; + _unit addItemCargoGlobal [_firstaid,1]; + _unit addBackpackCargoGlobal ["B_Parachute",1]; + _unit addBackpackCargoGlobal [_bag,1]; + _unit addItemCargoGlobal ["Toolkit",1]; + }; + +// CRATE: Small, ammo for 1 fireteam + case "crate_small": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 5]; + _unit addMagazineCargoGlobal [_glriflemag, 5]; + _unit addMagazineCargoGlobal [_armag, 5]; + _unit addMagazineCargoGlobal [_carbinemag, 5]; + _unit addMagazineCargoGlobal [_glmag, 5]; + _unit addMagazineCargoGlobal [_glsmokewhite, 4]; + _unit addMagazineCargoGlobal [_RATmag1, 2]; + _unit addMagazineCargoGlobal [_grenade, 8]; + _unit addMagazineCargoGlobal [_mgrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenade, 8]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 2]; + _unit addItemCargoGlobal [_firstaid, 6]; + }; + +// CRATE: Medium, ammo for 1 squad + case "crate_med": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 15]; + _unit addMagazineCargoGlobal [_glriflemag, 20]; + _unit addMagazineCargoGlobal [_armag, 15]; + _unit addMagazineCargoGlobal [_carbinemag, 20]; + _unit addMagazineCargoGlobal [_glmag, 20]; + _unit addMagazineCargoGlobal [_glsmokewhite,16]; + _unit addMagazineCargoGlobal [_RATmag1, 6]; + _unit addMagazineCargoGlobal [_grenade, 25]; + _unit addMagazineCargoGlobal [_mgrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenade, 25]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 6]; + _unit addItemCargoGlobal [_firstaid, 25]; + }; + +// CRATE: Large, ammo for 1 platoon + case "crate_large": + { + clearWeaponCargoGlobal _unit; + clearMagazineCargoGlobal _unit; + clearItemCargoGlobal _unit; + clearBackpackCargoGlobal _unit; + _unit addMagazineCargoGlobal [_riflemag, 45]; + _unit addMagazineCargoGlobal [_glriflemag, 60]; + _unit addMagazineCargoGlobal [_armag, 45]; + _unit addMagazineCargoGlobal [_carbinemag, 60]; + _unit addMagazineCargoGlobal [_glmag, 60]; + _unit addMagazineCargoGlobal [_glsmokewhite,50]; + _unit addMagazineCargoGlobal [_RATmag1, 20]; + _unit addMagazineCargoGlobal [_grenade, 75]; + _unit addMagazineCargoGlobal [_mgrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenade, 75]; + _unit addMagazineCargoGlobal [_smokegrenadegreen, 20]; + _unit addItemCargoGlobal [_firstaid, 75]; + }; diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 26687e2e4..0cf84b3bc 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -82,6 +82,7 @@ if (f_param_debugMode == 1) then if (_faction in ["blu_f","nato"]) then { #include "f_assignGear_nato.sqf" // #include "f_assignGear_natoPacific.sqf" // Use NATO Pacific loadouts on NATO non-Pacific units (e.g. Folk ARPS Platoons) + // #include "f_assignGear_natoWoodland.sqf" // Use NATO Woodland loadouts on NATO non-Woodland units (e.g. Folk ARPS Platoons) }; // ==================================================================================== @@ -96,6 +97,16 @@ if (_faction in ["blu_t_f","natopacific"]) then { // ==================================================================================== +// GEAR: BLUFOR > NATO (Woodland) +// The following block of code executes only if the unit belongs to the NATO (Woodland) faction; it +// automatically includes a file which contains the appropriate equipment data. + +if (_faction in ["blu_w_f","natowoodland"]) then { + #include "f_assignGear_natoWoodland.sqf" +}; + +// ==================================================================================== + // GEAR: BLUFOR > GENDARMERIE // The following block of code executes only if the unit belongs to the gendarmerie faction; it // automatically includes a file which contains the appropriate equipment data. @@ -127,7 +138,17 @@ if (_faction in ["opf_t_f","csatpacific"]) then { // ==================================================================================== -// GEAR: INDEPEDENT > AAF +// GEAR: OPFOR > Spetsnaz +// The following block of code executes only if the unit belongs to the Spetsnaz faction; it +// automatically includes a file which contains the appropriate equipment data. + +if (_faction in ["opf_r_f","spetsnaz"]) then { + #include "f_assignGear_spetsnaz.sqf" +}; + +// ==================================================================================== + +// GEAR: INDEPENDENT > AAF // The following block of code executes only if the unit belongs to the AAF faction; it // automatically includes a file which contains the appropriate equipment data. @@ -157,7 +178,7 @@ if (_faction in ["blu_ctrg_f","ctrg"]) then { // ==================================================================================== -// GEAR: INDEPEDENT > SYNDIKAT +// GEAR: INDEPENDENT > SYNDIKAT // The following block of code executes only if the unit is manually assigned the Syndikat faction; it // automatically includes a file which contains the appropriate equipment data. @@ -167,6 +188,26 @@ if (_faction in ["ind_c_f","syndikat"]) then { // ==================================================================================== +// GEAR: INDEPENDENT > LDF +// The following block of code executes only if the unit belongs to the LDF faction; it +// automatically includes a file which contains the appropriate equipment data. + +if (_faction in ["ind_e_f","ldf"]) then { + #include "f_assignGear_ldf.sqf" +}; + +// ==================================================================================== + +// GEAR: INDEPENDENT > NPR +// The following block of code executes only if the unit belongs to the NPR faction; it +// automatically includes a file which contains the appropriate equipment data. + +if (_faction in ["ind_l_f","npr"]) then { + #include "f_assignGear_npr.sqf" +}; + +// ==================================================================================== + // VIRTUAL FACTIONS // GEAR: 3IFB From 034cd26aabbb7d37f47efb8333d34cb50a4d5edf Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 4 Aug 2019 18:12:47 +0100 Subject: [PATCH 180/407] Add virtual faction aliases to other components (#259) * Update components to accept Virtual Faction aliases assignGear accepts some faction aliases for use with Virtual Faction such as "aaf" for "ind_f". This PR adds those aliases to other components to better accommodate new VF-only factions. * Update groupMarkers to reflect NPR side change Per host discussion, NPR will be an OPFOR faction. This updates their classification in groupMarkers to match. * Fix assignInsignia case handling Also takes care of a couple of formatting typos. * Split CTRG cases from FIA/NATO * Fix comments related to CTRG case changes --- f/assignGear/f_assignInsignia.sqf | 93 +++++++++++------------ f/briefing/fn_createBriefing.sqf | 18 ++--- f/groupMarkers/f_setLocalGroupMarkers.sqf | 39 +++++----- f/groupMarkers/fn_groupData.sqf | 67 +++++++++++++++- 4 files changed, 139 insertions(+), 78 deletions(-) diff --git a/f/assignGear/f_assignInsignia.sqf b/f/assignGear/f_assignInsignia.sqf index 5085f39eb..f81b0a2b2 100644 --- a/f/assignGear/f_assignInsignia.sqf +++ b/f/assignGear/f_assignInsignia.sqf @@ -31,9 +31,6 @@ switch (_insignia_style_CSAT) do case "Urban" : {_CSAT_Medic_Badge = "CSAT_Urban_Medic_Badge";}; }; -// Treat CTRG like BLUFOR -if (_faction == "blu_ctrg_f") then {_faction = "blu_f"}; - // =================================================================================== // Assign Insignia based on type of the unit. @@ -44,14 +41,15 @@ private _roleBadge = switch (_typeofUnit) do // INSIGNIA: MEDIC case "m": { - switch (_faction) do + switch (true) do { - case "blu_f" : {_NATO_Medic_Badge}; - case "opf_f" : {_CSAT_Medic_Badge}; - case "ind_f" : {"AAF_Medic_Badge"}; - case "ind_e_f" : {"AAF_Medic_Badge"}; - case "opf_r_f" : {"CSAT_Pacific_Medic_Badge"}; - case "blu_w_f" : {"NATO_Pacific_Medic_Bade"}; + case (_faction in ["blu_f","nato"]) : {_NATO_Medic_Badge}; + case (_faction in ["blu_t_f","blu_w_f","natopacific","natowoodland"]) : {"NATO_Pacific_Medic_Badge"}; + case (_faction in ["opf_f","csat"]) : {_CSAT_Medic_Badge}; + case (_faction in ["opf_t_f","csatpacific"]) : {"CSAT_Pacific_Medic_Badge"}; + case (_faction in ["ind_f","ind_e_f","aaf","ldf"]) : {"AAF_Medic_Badge"}; + case (_faction in ["opf_r_f","spetsnaz"]) : {"CSAT_Pacific_Medic_Badge"}; + case (_faction in ["blu_ctrg_f","ctrg"]) : {_NATO_Medic_Badge"}; default {"NATO_Medic_Badge"}; }; }; @@ -65,9 +63,9 @@ private _roleBadge = switch (_typeofUnit) do private _groupBadges = []; -switch (_faction) do +switch (true) do { - case "blu_f" : { + case (_faction in ["blu_f","nato"]) : { if (_insignia_style_NATO == "Tanoa") then { _groupBadges = [ ["GrpNATO_ASL","NATO_Pacific_ASL_Badge"], @@ -104,7 +102,7 @@ switch (_faction) do ]; }; }; - case "blu_t_f": { + case (_faction in ["blu_t_f","blu_w_f","natoPacific","natoWoodland"]): { _groupBadges = [ ["GrpNATO_ASL","NATO_Pacific_ASL_Badge"], ["GrpNATO_A1","NATO_Pacific_A1_Badge"], @@ -122,25 +120,8 @@ switch (_faction) do ["GrpNATO_DC","NATO_Pacific_DC_Badge"] ]; }; - case "blu_w_f": { - _groupBadges = [ - ["GrpNATO_ASL","NATO_Pacific_ASL_Badge"], - ["GrpNATO_A1","NATO_Pacific_A1_Badge"], - ["GrpNATO_A2","NATO_Pacific_A2_Badge"], - ["GrpNATO_A3","NATO_Pacific_A3_Badge"], - ["GrpNATO_BSL","NATO_Pacific_BSL_Badge"], - ["GrpNATO_B1","NATO_Pacific_B1_Badge"], - ["GrpNATO_B2","NATO_Pacific_B2_Badge"], - ["GrpNATO_B3","NATO_Pacific_B3_Badge"], - ["GrpNATO_CSL","NATO_Pacific_CSL_Badge"], - ["GrpNATO_C1","NATO_Pacific_C1_Badge"], - ["GrpNATO_C2","NATO_Pacific_C2_Badge"], - ["GrpNATO_C3","NATO_Pacific_C3_Badge"], - ["GrpNATO_CO","NATO_Pacific_CO_Badge"], - ["GrpNATO_DC","NATO_Pacific_DC_Badge"] - ]; - }; - case "opf_f": { + + case (_faction in ["opf_f","csat"]): { switch (_insignia_style_CSAT) do { case "Tanoa" : { @@ -199,7 +180,7 @@ switch (_faction) do }; }; }; - case "opf_t_f": { + case (_faction in ["opf_t_f","csatPacific"]): { _groupBadges = [ ["GrpCSAT_ASL","CSAT_Pacific_ASL_Badge"], ["GrpCSAT_A1","CSAT_Pacific_A1_Badge"], @@ -217,7 +198,7 @@ switch (_faction) do ["GrpCSAT_DC","CSAT_Pacific_DC_Badge"] ]; }; - case "opf_r_f": { + case (_faction in ["opf_r_f","spetsnaz"]): { _groupBadges = [ ["GrpSpetsnaz_ASL","CSAT_Pacific_ASL_Badge"], ["GrpSpetsnaz_A1","CSAT_Pacific_A1_Badge"], @@ -235,7 +216,7 @@ switch (_faction) do ["GrpSpetsnaz_DC","CSAT_Pacific_DC_Badge"] ]; }; - case "ind_f": { + case (_faction in ["ind_f","aaf"]): { _groupBadges = [ ["GrpAAF_ASL","AAF_ASL_Badge"], ["GrpAAF_A1","AAF_A1_Badge"], @@ -253,7 +234,7 @@ switch (_faction) do ["GrpAAF_DC","AAF_DC_Badge"] ]; }; - case "ind_e_f": { + case (_faction in ["ind_e_f","ldf"]): { _groupBadges = [ ["GrpLDF_ASL","AAF_ASL_Badge"], ["GrpLDF_A1","AAF_A1_Badge"], @@ -271,7 +252,25 @@ switch (_faction) do ["GrpLDF_DC","AAF_DC_Badge"] ]; }; - case "blu_g_f" : { + case (_faction in ["blu_ctrg_f","ctrg"]): { + _groupBadges = [ + ["GrpCTRG_ASL","NATO_ASL_Badge"], + ["GrpCTRG_A1","NATO_A1_Badge"], + ["GrpCTRG_A2","NATO_A2_Badge"], + ["GrpCTRG_A3","NATO_A3_Badge"], + ["GrpCTRG_BSL","NATO_BSL_Badge"], + ["GrpCTRG_B1","NATO_B1_Badge"], + ["GrpCTRG_B2","NATO_B2_Badge"], + ["GrpCTRG_B3","NATO_B3_Badge"], + ["GrpCTRG_CSL","NATO_CSL_Badge"], + ["GrpCTRG_C1","NATO_C1_Badge"], + ["GrpCTRG_C2","NATO_C2_Badge"], + ["GrpCTRG_C3","NATO_C3_Badge"], + ["GrpCTRG_CO","NATO_CO_Badge"], + ["GrpCTRG_DC","NATO_DC_Badge"] + ]; + }; + case (_faction in ["blu_g_f","opf_g_f","ind_g_f","fia"]) : { _groupBadges = [ ["GrpFIA_ASL","NATO_ASL_Badge"], ["GrpFIA_A1","NATO_A1_Badge"], @@ -286,11 +285,8 @@ switch (_faction) do ["GrpFIA_C2","NATO_C2_Badge"], ["GrpFIA_C3","NATO_C3_Badge"], ["GrpFIA_CO","NATO_CO_Badge"], - ["GrpFIA_DC","NATO_DC_Badge"] - ]; - }; - case "opf_g_f" :{ - _groupBadges = [ + ["GrpFIA_DC","NATO_DC_Badge"], + ["GrpOFIA_ASL","NATO_ASL_Badge"], ["GrpOFIA_A1","NATO_A1_Badge"], ["GrpOFIA_A2","NATO_A2_Badge"], @@ -304,11 +300,8 @@ switch (_faction) do ["GrpOFIA_C2","NATO_C2_Badge"], ["GrpOFIA_C3","NATO_C3_Badge"], ["GrpOFIA_CO","NATO_CO_Badge"], - ["GrpOFIA_DC","NATO_DC_Badge"] - ]; - }; - case "ind_g_f" :{ - _groupBadges = [ + ["GrpOFIA_DC","NATO_DC_Badge"], + ["GrpIFIA_ASL","NATO_ASL_Badge"], ["GrpIFIA_A1","NATO_A1_Badge"], ["GrpIFIA_A2","NATO_A2_Badge"], @@ -325,7 +318,7 @@ switch (_faction) do ["GrpIFIA_DC","NATO_DC_Badge"] ]; }; - case "ind_c_f" :{ + case (_faction in ["ind_c_f","syndikat"]) :{ _groupBadges = [ ["GrpSyndikat_ASL","NATO_ASL_Badge"], ["GrpSyndikat_A1","NATO_A1_Badge"], @@ -343,7 +336,7 @@ switch (_faction) do ["GrpSyndikat_DC","NATO_DC_Badge"] ]; }; - case "ind_l_f" :{ + case (_faction in ["ind_l_f","npr"]) :{ _groupBadges = [ ["GrpNPR_ASL","NATO_ASL_Badge"], ["GrpNPR_A1","NATO_A1_Badge"], @@ -361,7 +354,7 @@ switch (_faction) do ["GrpNPR_DC","NATO_DC_Badge"] ]; }; - case "3ifb" :{ + case (_faction in ["3ifb"]) :{ _groupBadges = [ ["Grp3IFB_ASL","NATO_ASL_Badge"], ["Grp3IFB_A1","NATO_A1_Badge"], diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index c4b41f6df..1c7197984 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -49,13 +49,13 @@ if (serverCommandAvailable "#kick" || !isMultiplayer) then { // The following code blocks include faction-specific briefing files. // BLUFOR > NATO -if (_unitfaction in ["blu_f","blu_t_f","blu_w_f"]) exitwith { +if (_unitfaction in ["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"]) exitwith { #include "f_briefing_nato.sqf" [_unitfaction] call _fnc_debug; }; // FIA -if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f"]) exitwith { +if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f","fia"]) exitwith { #include "f_briefing_fia.sqf" [_unitfaction] call _fnc_debug; }; @@ -67,44 +67,44 @@ if (_unitfaction in ["blu_gen_f"]) exitwith { }; // OPFOR > CSAT -if (_unitfaction in ["opf_f","opf_t_f"]) exitwith { +if (_unitfaction in ["opf_f","opf_t_f","csat","csatpacific"]) exitwith { #include "f_briefing_csat.sqf" [_unitfaction] call _fnc_debug; }; // OPFOR > Spetsnaz -if (_unitfaction in ["opf_r_f"]) exitwith { +if (_unitfaction in ["opf_r_f","spetsnaz"]) exitwith { #include "f_briefing_spetsnaz.sqf" [_unitfaction] call _fnc_debug; }; // INDEPENDENT > AAF -if (_unitfaction in ["ind_f"]) exitwith { +if (_unitfaction in ["ind_f","aaf"]) exitwith { #include "f_briefing_aaf.sqf" [_unitfaction] call _fnc_debug; }; // INDEPENDENT > LDF -if (_unitfaction in ["ind_e_f"]) exitwith { +if (_unitfaction in ["ind_e_f","ldf"]) exitwith { #include "f_briefing_ldf.sqf" [_unitfaction] call _fnc_debug; }; // INDEPENDENT > SYNDIKAT -if (_unitfaction in ["ind_c_f"]) exitwith { +if (_unitfaction in ["ind_c_f","syndikat"]) exitwith { #include "f_briefing_syndikat.sqf" [_unitfaction] call _fnc_debug; }; // INDEPENDENT > NPR (Looters) -if (_unitfaction in ["ind_l_f"]) exitwith { +if (_unitfaction in ["ind_l_f","npr"]) exitwith { #include "f_briefing_npr.sqf" [_unitfaction] call _fnc_debug; }; // BLUFOR > CTRG -if (_unitfaction in ["blu_ctrg_f"]) exitwith { +if (_unitfaction in ["blu_ctrg_f","ctrg"]) exitwith { #include "f_briefing_ctrg.sqf" [_unitfaction] call _fnc_debug; }; diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index cbf1ba3de..42c0e36ef 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -22,53 +22,63 @@ params [ private _groups = []; -// Markers seen by players in NATO, NATO (Pacific) & CTRG slots. -if (_unitfaction in ["blu_f","blu_t_f","blu_ctrg_f","blu_w_f"]) then { +// Markers seen by players in NATO, NATO (Pacific) & NATO (Woodland) slots. +if (_unitfaction in ["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"]) then { _groups = f_var_groupData_blufor_nato; }; -// Markers seen by players in FIA & CTRG slots. -if (_unitfaction in ["blu_g_f","blu_ctrg_f"]) then { +// Markers seen by players in FIA slots. Move "fia" to OPFOR FIA or INDFOR FIA if using them. +if (_unitfaction in ["blu_g_f","fia"]) then { _groups = f_var_groupData_blufor_fia; }; -// Markers seen by players in gendarmerie slots. +// Markers seen by players in Gendarmerie slots. if (_unitfaction in ["blu_gen_f"]) then { _groups = f_var_groupData_blufor_gen; }; +// Markers seen by players in CTRG slots. +if (_unitfaction in ["blu_ctrg_f","ctrg"]) then { + _groups = f_var_groupData_blufor_ctrg; +}; + // Markers seen by players in CSAT & CSAT (Pacific) slots. -if (_unitfaction in ["opf_f","opf_t_f"]) then { +if (_unitfaction in ["opf_f","opf_t_f","csat","csatpacific"]) then { _groups = f_var_groupData_opfor_csat; }; -// Markers seen by players in OPFOR-FIA slots. +// Markers seen by players in OPFOR-FIA slots. Add "fia" if using "fia" with Virtual Faction, and remove it from BLUFOR FIA. if (_unitfaction in ["opf_g_f"]) then { _groups = f_var_groupData_opfor_fia; }; // Markers seen by players in Spetsnaz slots. -if (_unitfaction in ["opf_r_f"]) then { +if (_unitfaction in ["opf_r_f","spetsnaz"]) then { _groups = f_var_groupData_opfor_spetsnaz; }; +// Markers seen by players in NPR (Looters) slots. +if (_unitfaction in ["ind_l_f","npr"]) then { + _groups = f_var_groupData_opfor_npr; +}; + // Markers seen by players in AAF slots. -if (_unitfaction in ["ind_f"]) then { +if (_unitfaction in ["ind_f","aaf"]) then { _groups = f_var_groupData_indfor_aaf; }; // Markers seen by players in LDF slots. -if (_unitfaction in ["ind_e_f"]) then { +if (_unitfaction in ["ind_e_f","ldf"]) then { _groups = f_var_groupData_indfor_ldf; }; -// Markers seen by players in INDEPENDENT-FIA slots. +// Markers seen by players in INDEPENDENT-FIA slots. Add "fia" if using "fia" with Virtual Faction, and remove it from BLUFOR FIA. if (_unitfaction in ["ind_g_f"]) then { _groups = f_var_groupData_indfor_fia; }; // Markers seen by players in SYNDIKAT slots. -if (_unitfaction in ["ind_c_f"]) then { +if (_unitfaction in ["ind_c_f","syndikat"]) then { _groups = f_var_groupData_indfor_syn; }; @@ -77,11 +87,6 @@ if (_unitfaction in ["3ifb"]) then { _groups = f_var_groupData_indfor_3ifb; }; -// Markers seen by players in NPR (Looters) slots. -if (_unitfaction in ["ind_l_f"]) then { - _groups = f_var_groupData_indfor_npr; -}; - // Markers seen by players in Civilian slots. if (_unitfaction in ["civ_f","civ_idap_f"]) then { _groups = f_var_groupData_civ; diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf index 7819a1ce5..248eae15f 100644 --- a/f/groupMarkers/fn_groupData.sqf +++ b/f/groupMarkers/fn_groupData.sqf @@ -165,6 +165,68 @@ f_var_groupData_blufor_gen = [ ["GrpGEN_TH1", _hel, "TH1", "ColorOrange", "Gendarmerie TH1 -"] ]; +f_var_groupData_blufor_ctrg = [ + ["GrpCTRG_CO", _hq, "CO", "ColorYellow", "CTRG CO -"], + ["GrpCTRG_DC", _hq, "DC", "ColorYellow", "CTRG DC -"], + ["GrpCTRG_COV", _ifv, "COV", "ColorYellow", "CTRG COV -"], + + ["GrpCTRG_ASL", _hq, "ASL", "ColorRed", "CTRG ASL -"], + ["GrpCTRG_A1", _ft, "A1", "ColorRed", "CTRG A1 -"], + ["GrpCTRG_A2", _ft, "A2", "ColorRed", "CTRG A2 -"], + ["GrpCTRG_AV", _ifv, "AV", "ColorRed", "CTRG AV -"], + + ["GrpCTRG_BSL", _hq, "BSL", "ColorBlue", "CTRG BSL -"], + ["GrpCTRG_B1", _ft, "B1", "ColorBlue", "CTRG B1 -"], + ["GrpCTRG_B2", _ft, "B2", "ColorBlue", "CTRG B2 -"], + ["GrpCTRG_BV", _ifv, "BV", "ColorBlue", "CTRG BV -"], + + ["GrpCTRG_CSL", _hq, "CSL", "ColorGreen", "CTRG CSL -"], + ["GrpCTRG_C1", _ft, "C1", "ColorGreen", "CTRG C1 -"], + ["GrpCTRG_C2", _ft, "C2", "ColorGreen", "CTRG C2 -"], + ["GrpCTRG_CV", _ifv, "CV", "ColorGreen", "CTRG CV -"], + + ["GrpCTRG_JSL", _hq, "JSL", "ColorPink", "CTRG JSL -"], + ["GrpCTRG_J1", _ft, "J1", "ColorPink", "CTRG J1 -"], + ["GrpCTRG_J2", _ft, "J2", "ColorPink", "CTRG J2 -"], + ["GrpCTRG_JV", _ifv, "JV", "ColorPink", "CTRG JV -"], + + ["GrpCTRG_MMG1", _sup, "MMG1", "ColorOrange", "CTRG MMG1 -"], + ["GrpCTRG_MMG2", _sup, "MMG2", "ColorOrange", "CTRG MMG2 -"], + ["GrpCTRG_HMG1", _sup, "HMG1", "ColorOrange", "CTRG HMG1 -"], + ["GrpCTRG_MAT1", _lau, "MAT1", "ColorOrange", "CTRG MAT1 -"], + ["GrpCTRG_MAT2", _lau, "MAT2", "ColorOrange", "CTRG MAT2 -"], + ["GrpCTRG_HAT1", _lau, "HAT1", "ColorOrange", "CTRG HAT1 -"], + ["GrpCTRG_MTR1", _mor, "MTR1", "ColorOrange", "CTRG MTR1 -"], + ["GrpCTRG_MSAM1", _lau, "MSAM1", "ColorOrange", "CTRG MSAM1 -"], + ["GrpCTRG_HSAM1", _lau, "HSAM1", "ColorOrange", "CTRG HSAM1 -"], + ["GrpCTRG_ST1", _rec, "ST1", "ColorOrange", "CTRG ST1 -"], + ["GrpCTRG_DT1", _rec, "DT1", "ColorOrange", "CTRG DT1 -"], + ["GrpCTRG_ENG1", _eng, "ENG1", "ColorOrange", "CTRG ENG1 -"], + + ["GrpCTRG_IFV1", _ifv, "IFV1", "ColorOrange", "CTRG IFV1 -"], + ["GrpCTRG_IFV2", _ifv, "IFV2", "ColorOrange", "CTRG IFV2 -"], + ["GrpCTRG_TNK1", _tnk, "TNK1", "ColorRed", "CTRG TNK1 -"], + + ["GrpCTRG_CAS1", _pla, "CAS1", "ColorOrange", "CTRG CAS1 -"], + + ["GrpCTRG_TH1", _hel, "TH1", "ColorRed", "CTRG TH1 -"], + ["GrpCTRG_TH2", _hel, "TH2", "ColorRed", "CTRG TH2 -"], + ["GrpCTRG_TH3", _hel, "TH3", "ColorBlue", "CTRG TH3 -"], + ["GrpCTRG_TH4", _hel, "TH4", "ColorBlue", "CTRG TH4 -"], + ["GrpCTRG_TH5", _hel, "TH5", "ColorGreen", "CTRG TH5 -"], + ["GrpCTRG_TH6", _hel, "TH6", "ColorGreen", "CTRG TH6 -"], + ["GrpCTRG_TH7", _hel, "TH7", "ColorOrange", "CTRG TH7 -"], + ["GrpCTRG_TH8", _hel, "TH8", "ColorOrange", "CTRG TH8 -"], + + ["GrpCTRG_AH1", _hel, "AH1", "ColorRed", "CTRG AH1 -"], + + ["UnitCTRG_CO_M", _med, "COM", "ColorBlack", ""], + ["UnitCTRG_DC_M", _med, "DCM", "ColorBlack", ""], + ["UnitCTRG_ASL_M", _med, "AM", "ColorBlack", ""], + ["UnitCTRG_BSL_M", _med, "BM", "ColorBlack", ""], + ["UnitCTRG_CSL_M", _med, "CM", "ColorBlack", ""] +]; + f_var_groupData_opfor_csat = [ ["GrpCSAT_CO", _hq, "CO", "ColorYellow", "CSAT CO -"], ["GrpCSAT_DC", _hq, "DC", "ColorYellow", "CSAT DC -"], @@ -657,7 +719,7 @@ f_var_groupData_indfor_LDF = [ ["UnitLDF_CSL_M", _med, "CM", "ColorBlack", ""] ]; -f_var_groupData_indfor_npr = [ +f_var_groupData_opfor_npr = [ ["GrpNPR_CO", _hq, "CO", "ColorYellow", "NPR CO -"], ["GrpNPR_DC", _hq, "DC", "ColorYellow", "NPR DC -"], ["GrpNPR_COV", _ifv, "COV", "ColorYellow", "NPR COV -"], @@ -730,15 +792,16 @@ f_var_groupData_all = []; f_var_groupData_all append f_var_groupData_blufor_nato; f_var_groupData_all append f_var_groupData_blufor_fia; f_var_groupData_all append f_var_groupData_blufor_gen; +f_var_groupData_all append f_var_groupData_blufor_ctrg; f_var_groupData_all append f_var_groupData_opfor_csat; f_var_groupData_all append f_var_groupData_opfor_fia; f_var_groupData_all append f_var_groupData_opfor_spetsnaz; +f_var_groupData_all append f_var_groupData_opfor_npr; f_var_groupData_all append f_var_groupData_indfor_aaf; f_var_groupData_all append f_var_groupData_indfor_fia; f_var_groupData_all append f_var_groupData_indfor_syn; f_var_groupData_all append f_var_groupData_indfor_3ifb; f_var_groupData_all append f_var_groupData_indfor_ldf; -f_var_groupData_all append f_var_groupData_indfor_npr; f_var_groupData_all append f_var_groupData_civ; // ==================================================================================== From 126abe75b128d5898b93e6ddcac78e4962d8cbd6 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 11 Aug 2019 01:36:38 +0100 Subject: [PATCH 181/407] Fix duplicate Spetsnaz attachment definitions --- f/assignGear/f_assignGear_spetsnaz.sqf | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 0c2665f44..297ab2f17 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -71,9 +71,8 @@ _attach1 = "acc_pointer_IR"; // IR Laser _attach2 = "acc_flashlight"; // Flashlight -_silencer1 = "muzzle_snds_M"; // 5.56 suppressor -_silencer2 = "muzzle_snds_H"; // 6.5 suppressor -_silencer2 = "muzzle_snds_B"; // 7.62 suppressor +_silencer1 = "muzzle_snds_B"; // 7.62 suppressor +_silencer2 = "muzzle_snds_B_khk_F"; // 7.62 green suppressor _scope1 = "optic_Holosight_blk_F"; // Holo alts: "optic_Holosight_lush_F"; "optic_Holosight_arid_F"; _scope2 = "optic_ARCO_AK_Blk_F"; // ARCO Scope alts: "optic_ARCO_AK_lush_F"; "optic_ARCO_AK_arid_F"; @@ -81,7 +80,7 @@ _scope3 = "optic_SOS"; // SOS Scope - 18x - 75x _bipod1 = "bipod_02_F_blk"; // Default bipod _bipod2 = "bipod_02_F_lush"; // Lush bipod -_bipod2 = "bipod_02_F_arid"; // Arid bipod +// _bipod2 = "bipod_02_F_arid"; // Arid bipod // Default setup _attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType From 6ebe5dae6e210f2551186ce10bceed232de2d24c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 11 Aug 2019 13:21:16 +0100 Subject: [PATCH 182/407] Fix formatting error in insignia --- f/assignGear/f_assignInsignia.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignInsignia.sqf b/f/assignGear/f_assignInsignia.sqf index f81b0a2b2..0b9c0f761 100644 --- a/f/assignGear/f_assignInsignia.sqf +++ b/f/assignGear/f_assignInsignia.sqf @@ -49,7 +49,7 @@ private _roleBadge = switch (_typeofUnit) do case (_faction in ["opf_t_f","csatpacific"]) : {"CSAT_Pacific_Medic_Badge"}; case (_faction in ["ind_f","ind_e_f","aaf","ldf"]) : {"AAF_Medic_Badge"}; case (_faction in ["opf_r_f","spetsnaz"]) : {"CSAT_Pacific_Medic_Badge"}; - case (_faction in ["blu_ctrg_f","ctrg"]) : {_NATO_Medic_Badge"}; + case (_faction in ["blu_ctrg_f","ctrg"]) : {_NATO_Medic_Badge}; default {"NATO_Medic_Badge"}; }; }; From 2332a9c79235d05f907a3ec87aa1c3995c583ef1 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 11 Aug 2019 16:43:02 +0200 Subject: [PATCH 183/407] orbatNotes: Add markers for specialists and cargo --- f/briefing/f_orbatNotes.sqf | 86 ++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 34 deletions(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 96480330e..3e55b3f6b 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -17,24 +17,48 @@ private _hiddenGroups = []; private _icon_arrow = ""; // Add groups to ORBAT if side matches, group isn't already listed, and group has players -private _groups = allGroups select {(side _x == side group player) && ({_x in playableUnits} count units _x) > 0}; +private _playableUnits = if (isMultiplayer) then {playableUnits} else {switchableUnits}; +private _groups = allGroups select {(side _x == side group player) && ({_x in _playableUnits} count units _x) > 0}; //Only allow unique groups: _groups = _groups arrayIntersect _groups; // Remove groups we don't want to show _groups = _groups - _hiddenGroups; +//Get all units from these groups, so that we can take their specialist marker from _groupData +private _units = []; {_units append units _x} forEach _groups; + // Use the groupData, // change the variable name (the first field) to the variable itself, // then filter out any non-groups, and groups we don't want to show. private _groupData = f_var_groupData_all apply { [ missionNamespace getVariable [_x select 0,grpNull], - _x select 1, - _x select 3 + getText (configfile >> "CfgMarkers" >> (_x select 1) >> "icon"), + getArray (configfile >> "CfgMarkerColors" >> (_x select 3) >> "color") call BIS_fnc_colorRGBAtoHTML ] -} select { ! isNull (_x select 0) && {(_x select 0) in _groups}}; +} select { ! isNull (_x select 0) && {(_x select 0) in (_groups + _units)}}; + +//Helper function to get marker from _groupData +private _fnc_getMarker = { + params [ + ["_unitOrGroup", objNull, [grpNull, objNull]], + ["_groupFallback", false, [false]] //fall back to group if the unit doesn't have a marker + ]; + private _unitData = _groupData select {_x select 0 isEqualTo _unitOrGroup}; + private _icon = if (count _unitData > 0) then { + _unitData select 0 params ["", "_mIcon", "_mColor"]; + format [" ", _mColor, _mIcon] + } else { + if (_groupFallback && _unitOrGroup isEqualType objNull) then { + [group _unitOrGroup] call _fnc_getMarker + } else { + "" + } + }; + _icon +}; -// Loop through the group, print out group ID, leader name and medics if present +// Loop through the group, print out group ID, leader name and special units if present { // Highlight the player's group with a different color (based on the player's side) private _color = "#FFFFFF"; @@ -47,36 +71,30 @@ private _groupData = f_var_groupData_all apply { }; }; - //group marker icon: - private _thisGroup = _x; - private _dataForThisGroup = _groupData select {_x select 0 == _thisGroup}; - if (count _dataForThisGroup > 0) then { - _dataForThisGroup select 0 params ["", "_mIcon", "_mColor"]; - _mIcon = getText (configfile >> "CfgMarkers" >> _mIcon >> "icon"); - _mColor = getArray (configfile >> "CfgMarkerColors" >> _mColor >> "color") call BIS_fnc_colorRGBAtoHTML; - _orbatText = _orbatText + format [" ", _mColor, _mIcon]; - }; - - _orbatText = _orbatText + format ["%1 %2", _x, name leader _x,_color] + "
"; + private _icon = [_x] call _fnc_getMarker; + _orbatText = _orbatText + format ["%1%2 %3", _icon, _x, name leader _x,_color] + "
"; { + private _unit = _x; + private _icon = [_unit] call _fnc_getMarker; //Note: FAC is a specialised JTAC. so additional differentiation is needed - _orbatText = _orbatText + (switch [_x getVariable ["f_var_assignGear",""], (roleDescription _x) find "FAC" != -1] do { - case ["m", false]: { format["%1 %2 [M]
", _icon_arrow, name _x] }; - case ["jtac", false]: { format["%1 %2 [JTAC]
", _icon_arrow, name _x] }; - case ["jtac", true ]: { format["%1 %2 [FAC]
", _icon_arrow, name _x] }; + private _type = switch [_unit getVariable ["f_var_assignGear",""], (roleDescription _unit) find "FAC" != -1] do { + case ["m", false]: { "[M]" }; + case ["jtac", false]: { "[JTAC]" }; + case ["jtac", true ]: { "[FAC]" }; default { "" }; - }); + }; + if (count _type > 0 || {count _icon > 0}) then { + _orbatText = _orbatText + format["%1%2 %3 %4
", _icon_arrow, _icon, name _unit, _type]; + }; } forEach (units _x - [leader _x]); } forEach _groups; // Get all player vehicles private _veharray = []; { - { - _veharray pushBackUnique (vehicle _x); - } forEach (units _x select {vehicle _x != _x}); -} forEach _groups; + _veharray pushBackUnique (vehicle _x); +} forEach (_units select {vehicle _x != _x}); if (count _veharray > 0) then { @@ -111,22 +129,22 @@ if (count _veharray > 0) then { default {" [C]"}; }; - _orbatText = _orbatText + format["%1 %2", _icon_arrow, name _x] + _crewrole + "
"; + private _icon = [_x, true] call _fnc_getMarker; + _orbatText = _orbatText + format["%1%2 %3", _icon_arrow, _icon, name _x] + _crewrole + "
"; }; } forEach crew _x; + // Print groups in cargo private _groupList = []; { - if (!(group _x in _groupList) && {(assignedVehicleRole _x select 0) == "CARGO"} count (units group _x) > 0) then { - _groupList pushBack (group _x); + if ({(assignedVehicleRole _x select 0) == "CARGO"} count (units group _x) > 0) then { + _groupList pushBackUnique (group _x); }; } forEach crew _x; - - if (count _groupList > 0) then { - { - _orbatText =_orbatText + format["%1 %2", _icon_arrow, _x] + " [CARGO]
"; - } forEach _groupList; - }; + { + private _icon = [_x] call _fnc_getMarker; + _orbatText =_orbatText + format["%1%2 %3", _icon_arrow, _icon, _x] + " [CARGO]
"; + } forEach _groupList; } forEach _veharray; From 2aba5703f76ab6a11e878005e5db62aeabed4d4f Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sun, 11 Aug 2019 17:16:28 +0200 Subject: [PATCH 184/407] Use lowercase faction names --- f/assignGear/f_assignInsignia.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignInsignia.sqf b/f/assignGear/f_assignInsignia.sqf index 0b9c0f761..2417dd4ec 100644 --- a/f/assignGear/f_assignInsignia.sqf +++ b/f/assignGear/f_assignInsignia.sqf @@ -102,7 +102,7 @@ switch (true) do ]; }; }; - case (_faction in ["blu_t_f","blu_w_f","natoPacific","natoWoodland"]): { + case (_faction in ["blu_t_f","blu_w_f","natopacific","natowoodland"]): { _groupBadges = [ ["GrpNATO_ASL","NATO_Pacific_ASL_Badge"], ["GrpNATO_A1","NATO_Pacific_A1_Badge"], From a465ab6482623f039060625d905b31185d6b0a12 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 19 Aug 2019 23:30:54 +0100 Subject: [PATCH 185/407] Revise NPR loadouts NPR loadouts have been tweaked to improve attire balancing, and to fix issues such as mismatched UAV/terminals and suppressors. Co-Authored-By: costno --- f/assignGear/f_assignGear_npr.sqf | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index 0c261e209..40da865c9 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -71,8 +71,8 @@ _attach1 = ""; // IR Laser _attach2 = "acc_flashlight"; // Flashlight -_silencer1 = "muzzle_snds_M"; // 5.56 suppressor -_silencer2 = "muzzle_snds_H"; // 6.5 suppressor +_silencer1 = "muzzle_snds_B"; // 7.62 suppressor +_silencer2 = "muzzle_snds_M"; // 5.56 suppressor _scope1 = "optic_ACO"; // ACO _scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x @@ -188,8 +188,8 @@ _nvg = "NVGoggles_OPFOR"; _laserdesignator = "Laserdesignator_03"; // UAV Terminal -_uavterminal = "B_UavTerminal"; // BLUFOR - FIA -//_uavterminal = "O_UavTerminal"; // OPFOR - FIA +//_uavterminal = "B_UavTerminal"; // BLUFOR - FIA + _uavterminal = "O_UavTerminal"; // OPFOR - FIA //_uavterminal = "I_UavTerminal"; // INDP - FIA // Chemlights @@ -202,7 +202,7 @@ _chemblue = "Chemlight_blue"; _bag = "B_FieldPack_green_F"; _bagLarge = "B_Carryall_oli"; _bagdiver = "B_AssaultPack_blk"; // used by divers -_baguav = "I_UAV_01_backpack_F"; // used by UAV operator +_baguav = "O_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner _baghmgag = "I_HMG_01_support_F"; // used by Heavy MG assistant gunner _baghatg = "I_AssaultPack_cbr"; // used by Heavy AT gunner @@ -242,14 +242,14 @@ _DMriflemag = "10Rnd_Mk14_762x51_Mag"; _DMriflemag_tr = "10Rnd_Mk14_762x51_Mag"; // Rifleman AT -_RAT = "launch_MRAWS_olive_rail_F"; -_RATmag1 = "MRAWS_HEAT_F"; -_RATmag2 = "MRAWS_HE_F"; +_RAT = "launch_RPG32_green_F"; +_RATmag1 = "RPG32_F"; +_RATmag2 = "RPG32_HE_F"; // Medium AT -_MAT = "launch_MRAWS_olive_rail_F"; -_MATmag1 = "MRAWS_HEAT_F"; -_MATmag2 = "MRAWS_HE_F"; +_MAT = "launch_RPG32_green_F"; +_MATmag1 = "RPG32_F"; +_MATmag2 = "RPG32_HE_F"; // Surface Air _SAM = "launch_Titan_F"; @@ -288,11 +288,11 @@ _jet = ["jp"]; // Basic clothing // The outfit-piece is randomly selected from the array for each unit -_baseUniform = ["U_O_R_Gorka_01_camo_F","U_O_R_Gorka_01_black_F","U_I_L_Uniform_01_camo_F","U_I_L_Uniform_01_deserter_F","U_BG_Guerilla2_3","U_BG_Guerilla3_1","U_BG_Guerilla3_2","U_BG_Guerrilla_6_1","U_C_E_LooterJacket_01_F","U_I_L_Uniform_01_tshirt_black_F","U_I_L_Uniform_01_tshirt_olive_F","U_I_L_Uniform_01_tshirt_skull_F"]; -_baseHelmet = ["H_Shemag_olive","H_Bandanna_khk","H_Cap_oli","H_Cap_blk","H_Watchcap_blk","H_Watchcap_camo","H_Bandanna_camo"]; -_baseGlasses = ["G_Bandanna_blk","G_Bandanna_oli"]; -//_baseHelmet = [""]; -//_baseGlasses = ["G_Balaclava_oli","G_Balaclava_oli","G_Balaclava_blk"]; +_baseUniform = ["U_O_R_Gorka_01_camo_F","U_O_R_Gorka_01_black_F","U_I_L_Uniform_01_camo_F","U_I_L_Uniform_01_deserter_F","U_BG_Guerilla2_3","U_BG_Guerilla3_1","U_BG_Guerilla3_2","U_BG_Guerrilla_6_1","U_C_E_LooterJacket_01_F"]; +//_baseHelmet = ["H_Shemag_olive","H_Bandanna_khk","H_Cap_oli","H_Cap_blk","H_Watchcap_blk","H_Watchcap_camo","H_Bandanna_camo"]; +//_baseGlasses = ["G_Bandanna_blk","G_Bandanna_oli"]; +_baseHelmet = [""]; +_baseGlasses = ["G_Balaclava_oli","G_Balaclava_blk"]; // Vests _lightRig = ["V_TacVest_camo","V_I_G_resistanceLeader_F","V_TacVest_oli"]; @@ -386,4 +386,4 @@ if (_loadout == 1) then { #include "f_assignGear_npr_standard.sqf" }; -// ==================================================================================== +// ==================================================================================== \ No newline at end of file From f7db7d716a9a98f42b565837c705906210359a7c Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sun, 25 Aug 2019 00:10:26 +0200 Subject: [PATCH 186/407] assignInsigia: Fix lowercase faction. Dont include, use function. Fix warnings/private variables. (#261) --- f/assignGear/fn_assignGear.sqf | 4 +-- ...signInsignia.sqf => fn_assignInsignia.sqf} | 27 ++++++++++--------- f/functions.hpp | 1 + 3 files changed, 16 insertions(+), 16 deletions(-) rename f/assignGear/{f_assignInsignia.sqf => fn_assignInsignia.sqf} (96%) diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 0cf84b3bc..b30989c5d 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -33,9 +33,7 @@ _insignia_style_NATO = "Altis"; // Options: "Altis" | "Tanoa" _insignia_style_CSAT = "Altis"; // Options: "Altis" | "Tanoa" | "Urban" _insignia_styles = [_insignia_style_NATO,_insignia_style_CSAT]; -[_unit,_typeofUnit,_insignia_styles] spawn { - #include "f_assignInsignia.sqf" -}; +[_unit,_typeofUnit,_insignia_styles] spawn f_fnc_assignInsignia; // ==================================================================================== diff --git a/f/assignGear/f_assignInsignia.sqf b/f/assignGear/fn_assignInsignia.sqf similarity index 96% rename from f/assignGear/f_assignInsignia.sqf rename to f/assignGear/fn_assignInsignia.sqf index 2417dd4ec..35bd30fc1 100644 --- a/f/assignGear/f_assignInsignia.sqf +++ b/f/assignGear/fn_assignInsignia.sqf @@ -16,20 +16,21 @@ private _faction = toLower ([_unit] call f_fnc_virtualFaction); // The following block of code determines which NATO and CSAT insignia variants will be used: -_insignia_style_NATO = _insignia_styles select 0; -_insignia_style_CSAT = _insignia_styles select 1; +_insignia_styles params [ + ["_insignia_style_NATO", "Altis", [""]], + ["_insignia_style_CSAT", "Altis", [""]] +]; -_NATO_Medic_Badge = "NATO_Medic_Badge"; -_CSAT_Medic_Badge = "CSAT_Medic_Badge"; - -if (_insignia_style_NATO == "Tanoa") then {_NATO_Medic_Badge = "NATO_Pacific_Medic_Badge"}; - -switch (_insignia_style_CSAT) do - { - case "Tanoa" : {_CSAT_Medic_Badge = "CSAT_Pacific_Medic_Badge";}; - case "Altis" : {_CSAT_Medic_Badge = "CSAT_Medic_Badge";}; - case "Urban" : {_CSAT_Medic_Badge = "CSAT_Urban_Medic_Badge";}; - }; +private _NATO_Medic_Badge = switch (_insignia_style_NATO) do { + case "Tanoa" : {"NATO_Pacific_Medic_Badge"}; + default {"NATO_Medic_Badge"}; +}; +private _CSAT_Medic_Badge = switch (_insignia_style_CSAT) do { + case "Tanoa" : {"CSAT_Pacific_Medic_Badge"}; + case "Altis" : {"CSAT_Medic_Badge"}; + case "Urban" : {"CSAT_Urban_Medic_Badge"}; + default {"CSAT_Medic_Badge"}; +}; // =================================================================================== diff --git a/f/functions.hpp b/f/functions.hpp index 616ffd9be..e79a8a766 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -25,6 +25,7 @@ class F // Defines the "owner" { file = "f\assignGear"; class assignGear{}; + class assignInsignia{}; }; class setGroupID { From 79f1ebf2ca52651a4ee250b875ea4c21addd382f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 24 Aug 2019 23:18:44 +0100 Subject: [PATCH 187/407] Mission.sqm changes for Contact (#263) * Mission.sqm changes for Contact Adds template units for Contact factions (NPR, LDF). Also increments the version counter in the mission title. * Fix inaccurate callsigns Missed a few things. * Juliett to Juliet * Correct Syndikat TECH ID GroupData was incorrectly giving Syndikat technicals the IFV callsign. --- f/groupMarkers/fn_groupData.sqf | 4 +- mission.sqm | 18151 ++++++++++++++++++++++++------ 2 files changed, 14985 insertions(+), 3170 deletions(-) diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf index 248eae15f..d94f643c7 100644 --- a/f/groupMarkers/fn_groupData.sqf +++ b/f/groupMarkers/fn_groupData.sqf @@ -571,8 +571,8 @@ f_var_groupData_indfor_syn = [ ["GrpSyn_DT1", _rec, "DT1", "ColorOrange", "Syndikat DT1 -"], ["GrpSyn_ENG1", _eng, "ENG1", "ColorOrange", "Syndikat ENG1 -"], - ["GrpSyn_IFV1", _ifv, "TECH1", "ColorRed", "Syndikat IFV1 -"], - ["GrpSyn_IFV2", _ifv, "TECH2", "ColorRed", "Syndikat IFV2 -"], + ["GrpSyn_IFV1", _ifv, "TECH1", "ColorRed", "Syndikat TECH1 -"], + ["GrpSyn_IFV2", _ifv, "TECH2", "ColorRed", "Syndikat TECH2 -"], ["GrpSyn_TNK1", _tnk, "TNK1", "ColorRed", "Syndikat TNK1 -"], ["GrpSyn_CAS1", _pla, "CAS1", "ColorOrange", "Syndikat CAS1 -"], diff --git a/mission.sqm b/mission.sqm index d861e744e..f801eda00 100644 --- a/mission.sqm +++ b/mission.sqm @@ -5,29 +5,44 @@ class EditorData angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=513; + toggles=517; class ItemIDProvider { - nextID=1656; + nextID=3706; }; class Camera { - pos[]={1465.2286,112.83681,885.57111}; - dir[]={-0.012939595,-0.69021803,0.72348863}; - up[]={-0.012342638,0.72360009,0.69011098}; - aside[]={0.99984413,-4.4892658e-009,0.017882211}; + pos[]={2521.6931,34.724888,919.46991}; + dir[]={-0.76816863,-0.33065769,0.54826856}; + up[]={-0.26914039,0.94374913,0.19209684}; + aside[]={0.58094877,1.6466947e-007,0.81395072}; }; }; binarizationWanted=0; addons[]= { + "A3_Soft_F_Enoch_Truck_02", + "A3_Soft_F_Enoch_Offroad_01", + "A3_Modules_F_Supports", + "A3_Characters_F_Enoch", + "A3_Air_F_Enoch_Heli_Light_03", + "A3_Modules_F", + "A3_Static_F_Enoch_Mortar_01", + "A3_Supplies_F_Enoch_Ammoboxes", + "A3_Armor_F_Enoch_APC_Tracked_03", + "A3_Weapons_F_Ammoboxes", + "A3_Characters_F", + "A3_Soft_F_Offroad_01", + "A3_Soft_F_Gamma_Van_01", + "A3_Air_F_Heli_Light_02", + "A3_Static_F_Mortar_01", + "A3_Air_F_Heli_Light_01", "A3_Air_F_Heli_Heli_Transport_03", "A3_Air_F_Heli_Heli_Transport_04", "A3_Air_F_Beta_Heli_Transport_02", "A3_Air_F_Beta_Heli_Transport_01", "A3_Armor_F_Beta_APC_Tracked_01", "A3_Air_F_Beta_Heli_Attack_01", - "A3_Air_F_Heli_Light_02", "A3_Armor_F_Beta_APC_Wheeled_02", "A3_Air_F_Beta_Heli_Attack_02", "A3_Armor_F_EPC_MBT_01", @@ -41,24 +56,16 @@ addons[]= "A3_Soft_F_Beta_Truck_01", "A3_Soft_F_Exp_Truck_01", "A3_Soft_F_MRAP_02", - "A3_Soft_F_Offroad_01", - "A3_Soft_F_Gamma_Van_01", - "A3_Weapons_F_Ammoboxes", - "A3_Air_F_Heli_Light_01", "A3_Armor_F_Beta_APC_Wheeled_01", "A3_Armor_F_Beta_APC_Tracked_02", "A3_Armor_F_EPB_APC_Tracked_03", "A3_Modules_F_Curator_Curator", - "A3_Modules_F_Supports", - "A3_Characters_F", - "A3_Static_F_Mortar_01", "A3_Data_F_Curator_Virtual", "A3_Characters_F_Exp", "A3_Soft_F_Exp_Offroad_02", "A3_Soft_F_Exp_Van_01", "A3_Soft_F_Exp_Offroad_01", "A3_Soft_F_Gamma_SUV_01", - "A3_Modules_F", "A3_Data_F_Exp_A_Virtual", "A3_Air_F_EPC_Plane_CAS_01", "A3_Characters_F_Jets", @@ -70,67 +77,67 @@ class AddonsMetaData { class List { - items=24; + items=30; class Item0 { - className="A3_Air_F_Heli"; - name="Arma 3 Helicopters - Aircraft"; + className="A3_Soft_F_Enoch"; + name="Arma 3 Enoch - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item1 { - className="A3_Air_F_Beta"; - name="Arma 3 Beta - Aircraft"; + className="A3_Modules_F"; + name="Arma 3 Alpha - Scripted Modules"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item2 { - className="A3_Armor_F_Beta"; - name="Arma 3 Beta - Armored Land Vehicles"; + className="A3_Characters_F_Enoch"; + name="Arma 3 Enoch - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item3 { - className="A3_Air_F"; - name="Arma 3 Alpha - Aircraft"; + className="A3_Air_F_Enoch"; + name="Arma 3 Enoch - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item4 { - className="A3_Armor_F_EPC"; - name="Arma 3 Win Episode - Armored Land Vehicles"; + className="A3_Static_F_Enoch"; + name="Arma 3 Enoch - Turrets"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item5 { - className="A3_Armor_F_Gamma"; - name="Arma 3 - Armored Land Vehicles"; + className="A3_Supplies_F_Enoch"; + name="Arma 3 Enoch - Ammoboxes and Supplies"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item6 { - className="A3_Armor_F_EPB"; - name="Arma 3 Adapt Episode - Armored Land Vehicles"; + className="A3_Armor_F_Enoch"; + name="CFGPATCHES_A3_Armor_F_Enoch"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item7 { - className="A3_Air_F_EPB"; - name="Arma 3 Adapt Episode - Aircraft"; + className="A3_Weapons_F"; + name="Arma 3 Alpha - Weapons and Accessories"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item8 { - className="A3_Soft_F_Beta"; - name="Arma 3 Beta - Unarmored Land Vehicles"; + className="A3_Characters_F"; + name="Arma 3 Alpha - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; @@ -143,174 +150,11254 @@ class AddonsMetaData }; class Item10 { - className="A3_Soft_F_Exp"; - name="Arma 3 Apex - Unarmored Land Vehicles"; + className="A3_Soft_F_Gamma"; + name="Arma 3 - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item11 { - className="A3_Soft_F_Gamma"; - name="Arma 3 - Unarmored Land Vehicles"; + className="A3_Air_F"; + name="Arma 3 Alpha - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item12 { - className="A3_Weapons_F"; - name="Arma 3 Alpha - Weapons and Accessories"; + className="A3_Static_F"; + name="Arma 3 Alpha - Turrets"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item13 { - className="A3_Modules_F_Curator"; - name="Arma 3 Zeus Update - Scripted Modules"; + className="A3_Air_F_Heli"; + name="Arma 3 Helicopters - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item14 { - className="A3_Modules_F"; - name="Arma 3 Alpha - Scripted Modules"; + className="A3_Air_F_Beta"; + name="Arma 3 Beta - Aircraft"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item15 { - className="A3_Characters_F"; - name="Arma 3 Alpha - Characters and Clothing"; + className="A3_Armor_F_Beta"; + name="Arma 3 Beta - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item16 { - className="A3_Static_F"; - name="Arma 3 Alpha - Turrets"; + className="A3_Armor_F_EPC"; + name="Arma 3 Win Episode - Armored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; class Item17 + { + className="A3_Armor_F_Gamma"; + name="Arma 3 - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item18 + { + className="A3_Armor_F_EPB"; + name="Arma 3 Adapt Episode - Armored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item19 + { + className="A3_Air_F_EPB"; + name="Arma 3 Adapt Episode - Aircraft"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item20 + { + className="A3_Soft_F_Beta"; + name="Arma 3 Beta - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item21 + { + className="A3_Soft_F_Exp"; + name="Arma 3 Apex - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item22 + { + className="A3_Modules_F_Curator"; + name="Arma 3 Zeus Update - Scripted Modules"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item23 { className="A3_Data_F_Curator"; name="Arma 3 Zeus Update - Main Configuration"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item18 + class Item24 { className="A3_Characters_F_Exp"; name="Arma 3 Apex - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; - class Item19 + class Item25 + { + className="A3_Data_F_Exp_A"; + name="Arma 3 Nexus Update - Main Configuration"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item26 + { + className="A3_Air_F_EPC"; + name="Arma 3 Win Episode - Aircraft"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item27 + { + className="A3_Characters_F_Jets"; + name="Arma 3 Jets - Characters and Clothing"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item28 + { + className="A3_Air_F_Gamma"; + name="Arma 3 - Aircraft"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + class Item29 + { + className="A3_Soft_F_Bootcamp"; + name="Arma 3 Bootcamp Update - Unarmored Land Vehicles"; + author="Bohemia Interactive"; + url="https://www.arma3.com"; + }; + }; +}; +randomSeed=1116085; +class ScenarioData +{ + author="*** Insert mission author name here. ***"; + overViewPicture="overviewLogo.jpg"; + onLoadMission="Made with the F3 Mission Development Framework."; + loadScreen="loadLogo.jpg"; +}; +class CustomAttributes +{ + class Category0 + { + name="Scenario"; + class Attribute0 + { + property="EnableDebugConsole"; + expression="true"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; +}; +class Mission +{ + class Intel + { + briefingName="fa3-5-4"; + resistanceWest=0; + timeOfChanges=28800; + startWeather=0.50001526; + startWind=0.25; + startGust=0.25; + forecastWeather=0.50277799; + forecastWind=0.25; + forecastWaves=0; + forecastGust=0.25; + rainForced=1; + lightningsForced=1; + wavesForced=1; + windForced=1; + year=2035; + month=7; + day=6; + hour=8; + minute=15; + startFogDecay=0; + forecastFogDecay=0; + }; + class Entities + { + items=593; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1414.5186,7.3817577,571.53052}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehLDF_TR1"; + }; + id=2053; + type="I_E_Truck_02_transport_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1459.9346,7.3817577,571.48462}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehLDF_TR2"; + }; + id=2054; + type="I_E_Truck_02_transport_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1502.0322,7.3817577,571.65845}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_tr"",this] call f_fnc_assignGear"; + name="VehLDF_TR3"; + }; + id=2055; + type="I_E_Truck_02_transport_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1364.127,6.8319178,557.20605}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehLDF_CAR1"; + reportRemoteTargets=1; + }; + id=2056; + type="I_E_Offroad_01_comms_F"; + atlOffset=0.11480904; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1364.3169,6.8319178,527.73975}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehLDF_CAR2"; + reportRemoteTargets=1; + }; + id=2057; + type="I_E_Offroad_01_comms_F"; + atlOffset=0.11480904; + }; + class Item5 + { + dataType="Logic"; + class PositionInfo + { + position[]={1347.4922,5,555.66821}; + }; + id=2073; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item6 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1349.4941,5.0014391,549.57861}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=2075; + type="I_E_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1349.4941,5.0014391,549.57861}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=2076; + type="I_E_Helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2075; + item1=2077; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2076; + item1=2077; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2074; + }; + class Item7 + { + dataType="Object"; + class PositionInfo + { + position[]={1349.4941,6.5310755,549.52856}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + receiveRemoteTargets=1; + }; + id=2077; + type="I_E_Heli_light_03_dynamicLoadout_F"; + }; + class Item8 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1345.3809,5.0014391,549.59961}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=2367; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=2367; + item1=2366; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2078; + }; + class Item9 + { + dataType="Logic"; + class PositionInfo + { + position[]={1347.9287,5,525.74048}; + }; + id=2081; + type="SupportRequester"; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item10 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.0137,5.0014391,519.70459}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=2083; + type="I_E_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.0137,5.0014391,519.70459}; + }; + side="Independent"; + flags=4; + class Attributes + { + }; + id=2084; + type="I_E_Helipilot_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2083; + item1=2085; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2084; + item1=2085; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2082; + }; + class Item11 + { + dataType="Object"; + class PositionInfo + { + position[]={1350.0137,6.5310755,519.65454}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + receiveRemoteTargets=1; + }; + id=2085; + type="I_E_Heli_light_03_dynamicLoadout_F"; + }; + class Item12 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1345.855,5.0014391,519.698}; + }; + side="Independent"; + flags=6; + class Attributes + { + }; + id=2369; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=2369; + item1=2368; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2086; + }; + class Item13 + { + dataType="Logic"; + class PositionInfo + { + position[]={1349.6787,5,553.24731}; + }; + id=2196; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item14 + { + dataType="Logic"; + class PositionInfo + { + position[]={1350.1152,5,523.32056}; + }; + id=2197; + type="SupportProvider_Virtual_CAS_Heli"; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item15 + { + dataType="Logic"; + class PositionInfo + { + position[]={1345.834,5,523.41724}; + }; + id=2198; + type="SupportProvider_Artillery"; + }; + class Item16 + { + dataType="Logic"; + class PositionInfo + { + position[]={1345.3975,5,553.34399}; + }; + id=2199; + type="SupportProvider_Artillery"; + }; + class Item17 + { + dataType="Logic"; + class PositionInfo + { + position[]={1404.6733,5,580.39526}; + }; + name="F3_preMount_LDF"; + init="[synchronizedObjects this, [""GrpLDF_ASL"",""GrpLDF_A1"",""GrpLDF_A2""], true, false] call f_fnc_mountGroups;"; + id=2200; + type="Logic"; + }; + class Item18 + { + dataType="Logic"; + class PositionInfo + { + position[]={1448.5806,5,582.0376}; + }; + name="F3_preMount_LDF_1"; + init="[synchronizedObjects this, [""GrpLDF_BSL"",""GrpLDF_B1"",""GrpLDF_B2""], true, false] call f_fnc_mountGroups;;"; + id=2201; + type="Logic"; + }; + class Item19 + { + dataType="Logic"; + class PositionInfo + { + position[]={1491.5488,5,581.80518}; + }; + name="F3_preMount_LDF_2"; + init="[synchronizedObjects this, [""GrpLDF_CSL"",""GrpLDF_C1"",""GrpLDF_C2""], true, false] call f_fnc_mountGroups;"; + id=2202; + type="Logic"; + }; + class Item20 + { + dataType="Logic"; + class PositionInfo + { + position[]={1361.9395,5,574.99536}; + }; + name="F3_preMount_LDF_3"; + init="[synchronizedObjects this, [""GrpLDF_CO""], true, false] call f_fnc_mountGroups;"; + id=2203; + type="Logic"; + }; + class Item21 + { + dataType="Logic"; + class PositionInfo + { + position[]={1360.7656,5,546.81909}; + }; + name="F3_preMount_LDF_4"; + init="[synchronizedObjects this, [""GrpLDF_DC""], true, false] call f_fnc_mountGroups;"; + id=2204; + type="Logic"; + }; + class Item22 + { + dataType="Object"; + class PositionInfo + { + position[]={1575.2297,6.8321085,546.9436}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehLDF_CAR3"; + reportRemoteTargets=1; + }; + id=2362; + type="I_E_Offroad_01_covered_F"; + atlOffset=0.11499977; + }; + class Item23 + { + dataType="Object"; + class PositionInfo + { + position[]={1576.6787,6.8321085,519.27856}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""v_car"",this] call f_fnc_assignGear"; + name="VehLDF_CAR4"; + reportRemoteTargets=1; + }; + id=2363; + type="I_E_Offroad_01_covered_F"; + atlOffset=0.11499977; + }; + class Item24 + { + dataType="Object"; + class PositionInfo + { + position[]={1345.3809,5.7216258,549.54932}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=2366; + type="I_E_Mortar_01_F"; + }; + class Item25 + { + dataType="Object"; + class PositionInfo + { + position[]={1345.855,5.7216258,519.64764}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + }; + id=2368; + type="I_E_Mortar_01_F"; + }; + class Item26 + { + dataType="Object"; + class PositionInfo + { + position[]={1419.1116,5.8924227,562.052}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_e_f""] call f_fnc_assignGear"; + name="CrateLDF_A"; + }; + id=2371; + type="I_EAF_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item27 + { + dataType="Object"; + class PositionInfo + { + position[]={1463.3728,5.8924227,563.448}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_e_f""] call f_fnc_assignGear"; + name="CrateLDF_B"; + }; + id=2372; + type="I_EAF_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item28 + { + dataType="Object"; + class PositionInfo + { + position[]={1505.8157,5.8924227,563.55298}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""crate_med"",this,""ind_e_f""] call f_fnc_assignGear"; + name="CrateLDF_C"; + }; + id=2373; + type="I_EAF_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item29 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.5498,5.0014391,558.7395}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="COLONEL"; + init="[""co"",this] call f_fnc_assignGear;"; + name="UnitLDF_CO"; + description="LDF Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2090; + type="I_E_Officer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1377.5498,5.0014391,557.08911}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitLDF_CO_JTAC"; + description="LDF Forward Observer"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2091; + type="I_E_Officer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1367.5498,5.0014391,557.08911}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitLDF_CO_UAV"; + description="LDF UAV Operator"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2092; + type="I_E_Soldier_UAV_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1382.5498,5.0014391,554.34985}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitLDF_CO_M"; + description="LDF Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2093; + type="I_E_Medic_F"; + }; + }; + class Attributes + { + name="GrpLDF_CO"; + }; + id=2089; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item30 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.8486,5.0014391,529.15942}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="MAJOR"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitLDF_DC"; + description="LDF Deputy Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2095; + type="I_E_Officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1377.8486,5.0014391,527.50903}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""jtac"",this] call f_fnc_assignGear;"; + name="UnitLDF_DC_JTAC"; + description="LDF Forward Observer"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2096; + type="I_E_Officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1367.8486,5.0014391,527.50903}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""uav"",this] call f_fnc_assignGear;"; + name="UnitLDF_DC_UAV"; + description="LDF UAV Operator"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2097; + type="I_E_Soldier_UAV_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1382.8486,5.0014391,524.76978}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitLDF_DC_M"; + description="LDF Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2098; + type="I_E_Medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpLDF_DC"; + init="DC"; + }; + id=2094; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item31 + { + dataType="Object"; + class PositionInfo + { + position[]={1371.785,7.6137953,468.95001}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear;"; + name="VehLDF_COV"; + }; + id=2028; + type="I_E_APC_tracked_03_cannon_F"; + atlOffset=0.10300016; + }; + class Item32 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1371.785,5.1044393,469}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitLDF_COV_C"; + description="LDF Command Vehicle Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2025; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1371.785,5.1044393,469}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitLDF_COV_G"; + description="LDF Command Vehicle Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2026; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1371.785,5.1044393,469}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitLDF_COV_D"; + description="LDF Command Vehicle Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2027; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + }; + class Attributes + { + name="GrpLDF_COV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=2025; + item1=2028; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=2026; + item1=2028; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=2027; + item1=2028; + class CustomData + { + role=1; + }; + }; + }; + }; + id=2024; + atlOffset=0.10300016; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF COV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item33 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1413.4414,5.0014391,557.36743}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitLDF_ASL_SL"; + description="LDF Alpha Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2100; + type="I_E_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1418.4414,5.0014391,555.71704}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitLDF_ASL_M"; + description="LDF Alpha Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2101; + type="I_E_Medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpLDF_ASL"; + }; + id=2099; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item34 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1414.377,5.0014391,530.0813}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitLDF_A1_FTL"; + description="LDF Alpha 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2103; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1419.377,5.0014391,528.43091}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A1_AR1"; + description="LDF Alpha 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2104; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.377,5.0014391,528.43091}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A1_AR2"; + description="LDF Alpha 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2105; + type="I_E_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1424.377,5.0014391,525.69263}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitLDF_A1_AT"; + description="LDF Alpha 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2106; + type="I_E_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1404.377,5.0014391,525.69263}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A1_R1"; + description="LDF Alpha 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2107; + type="I_E_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1429.377,5.0014391,521.14478}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A1_R2"; + description="LDF Alpha 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2108; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + name="GrpLDF_A1"; + }; + id=2102; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item35 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1414.1133,5.0014391,504.26099}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitLDF_A2_FTL"; + description="LDF Alpha 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2110; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1419.1133,5.0014391,502.6106}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A2_AR1"; + description="LDF Alpha 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2111; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1409.1133,5.0014391,502.6106}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A2_AR2"; + description="LDF Alpha 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2112; + type="I_E_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1424.1133,5.0014391,499.87134}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitLDF_A2_AT"; + description="LDF Alpha 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2113; + type="I_E_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1404.1133,5.0014391,499.87134}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A2_R1"; + description="LDF Alpha 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2114; + type="I_E_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1429.1133,5.0014391,495.32544}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_A2_R2"; + description="LDF Alpha 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2115; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + name="GrpLDF_A2"; + }; + id=2109; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item36 + { + dataType="Object"; + class PositionInfo + { + position[]={1416.485,7.6137953,467.81}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear;"; + name="VehLDF_AV"; + }; + id=2033; + type="I_E_APC_tracked_03_cannon_F"; + atlOffset=0.10300016; + }; + class Item37 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1416.485,5.1044393,467.85999}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitLDF_AV_C"; + description="LDF Alpha Vehicle Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2030; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1416.485,5.1044393,467.85999}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitLDF_AV_G"; + description="LDF Alpha Vehicle Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2031; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1416.485,5.1044393,467.85999}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitLDF_AV_D"; + description="LDF Alpha Vehicle Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2032; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + }; + class Attributes + { + name="GrpLDF_AV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=2030; + item1=2033; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=2031; + item1=2033; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=2032; + item1=2033; + class CustomData + { + role=1; + }; + }; + }; + }; + id=2029; + atlOffset=0.10300016; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF AV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item38 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1456.542,5.0014391,557.46509}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitLDF_BSL_SL"; + description="LDF Bravo Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2117; + type="I_E_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1461.542,5.0014391,555.8147}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitLDF_BSL_M"; + description="LDF Bravo Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2118; + type="I_E_Medic_F"; + }; + }; + class Attributes + { + name="GrpLDF_BSL"; + }; + id=2116; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item39 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1456.7939,5.0014391,530.02954}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitLDF_B1_FTL"; + description="LDF Bravo 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2120; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1461.7939,5.0014391,528.37915}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B1_AR1"; + description="LDF Bravo 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2121; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.7939,5.0014391,528.37915}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B1_AR2"; + description="LDF Bravo 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2122; + type="I_E_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1466.7939,5.0014391,525.63989}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitLDF_B1_AT"; + description="LDF Bravo 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2123; + type="I_E_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1446.7939,5.0014391,525.63989}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B1_R1"; + description="LDF Bravo 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2124; + type="I_E_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1471.7939,5.0014391,521.09302}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B1_R2"; + description="LDF Bravo 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2125; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + name="GrpLDF_B1"; + }; + id=2119; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item40 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1456.4775,5.0014391,503.73657}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitLDF_B2_FTL"; + description="LDF Bravo 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2127; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1461.4775,5.0014391,502.08716}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B2_AR1"; + description="LDF Bravo 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2128; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1451.4775,5.0014391,502.08716}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B2_AR2"; + description="LDF Bravo 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2129; + type="I_E_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1466.4775,5.0014391,499.34692}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitLDF_B2_AT"; + description="LDF Bravo 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2130; + type="I_E_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1446.4775,5.0014391,499.34692}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B2_R1"; + description="LDF Bravo 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2131; + type="I_E_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1471.4775,5.0014391,494.80005}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_B2_R2"; + description="LDF Bravo 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2132; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + name="GrpLDF_B2"; + }; + id=2126; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item41 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.302,7.6137953,467.875}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear;"; + name="VehLDF_BV"; + }; + id=2038; + type="I_E_APC_tracked_03_cannon_F"; + atlOffset=0.10300016; + }; + class Item42 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.302,5.1044393,467.92499}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitLDF_BV_C"; + description="LDF Bravo Vehicle Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2035; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.302,5.1044393,467.92499}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitLDF_BV_G"; + description="LDF Bravo Vehicle Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2036; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.302,5.1044393,467.92499}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitLDF_BV_D"; + description="LDF Bravo Vehicle Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2037; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + }; + class Attributes + { + name="GrpLDF_BV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=2035; + item1=2038; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=2036; + item1=2038; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=2037; + item1=2038; + class CustomData + { + role=1; + }; + }; + }; + }; + id=2034; + atlOffset=0.10300016; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF BV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item43 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1499.3818,5.0014391,556.94556}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[""dc"",this] call f_fnc_assignGear;"; + name="UnitLDF_CSL_SL"; + description="LDF Charlie Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2134; + type="I_E_Soldier_SL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1504.3818,5.0014391,555.29517}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""m"",this] call f_fnc_assignGear;"; + name="UnitLDF_CSL_M"; + description="LDF Charlie Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2135; + type="I_E_Medic_F"; + }; + }; + class Attributes + { + name="GrpLDF_CSL"; + }; + id=2133; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item44 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1500.0381,5.0014391,528.6272}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitLDF_C1_FTL"; + description="LDF Charlie 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2137; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1505.0381,5.0014391,526.97681}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C1_AR1"; + description="LDF Charlie 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2138; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1495.0381,5.0014391,526.97681}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C1_AR2"; + description="LDF Charlie 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2139; + type="I_E_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1510.0381,5.0014391,524.23755}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitLDF_C1_AT"; + description="LDF Charlie 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2140; + type="I_E_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1490.0381,5.0014391,524.23755}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C1_R1"; + description="LDF Charlie 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2141; + type="I_E_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1515.0381,5.0014391,519.69067}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C1_R2"; + description="LDF Charlie 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2142; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + name="GrpLDF_C1"; + }; + id=2136; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item45 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1499.7188,5.0014391,503.6897}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""FTL"",this] call f_fnc_assignGear;"; + name="UnitLDF_C2_FTL"; + description="LDF Charlie 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2144; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1504.7188,5.0014391,502.03833}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C2_AR1"; + description="LDF Charlie 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2145; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1494.7188,5.0014391,502.03833}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""ar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C2_AR2"; + description="LDF Charlie 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2146; + type="I_E_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1509.7188,5.0014391,499.30005}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""rat"",this] call f_fnc_assignGear;"; + name="UnitLDF_C2_AT"; + description="LDF Charlie 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2147; + type="I_E_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={1489.7188,5.0014391,499.30005}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C2_R1"; + description="LDF Charlie 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2148; + type="I_E_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={1514.7188,5.0014391,494.75317}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""aar"",this] call f_fnc_assignGear;"; + name="UnitLDF_C2_R2"; + description="LDF Charlie 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2149; + type="I_E_Soldier_F"; + }; + }; + class Attributes + { + name="GrpLDF_C2"; + }; + id=2143; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item46 + { + dataType="Object"; + class PositionInfo + { + position[]={1498.854,7.6137953,468.159}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear;"; + name="VehLDF_CV"; + }; + id=2043; + type="I_E_APC_tracked_03_cannon_F"; + atlOffset=0.10300016; + }; + class Item47 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1498.854,5.1044393,468.20898}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitLDF_CV_C"; + description="LDF Charlie Vehicle Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2040; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1498.854,5.1044393,468.20898}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitLDF_CV_G"; + description="LDF Charlie Vehicle Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2041; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1498.854,5.1044393,468.20898}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitLDF_CV_D"; + description="LDF Charlie Vehicle Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2042; + type="I_E_Crew_F"; + atlOffset=0.10300016; + }; + }; + class Attributes + { + name="GrpLDF_CV"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=2040; + item1=2043; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=2041; + item1=2043; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=2042; + item1=2043; + class CustomData + { + role=1; + }; + }; + }; + }; + id=2039; + atlOffset=0.10300016; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF CV -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item48 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1557.7844,5.0014391,555.58716}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitLDF_MMG1_TL"; + description="LDF Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2151; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1562.7842,5.0014391,553.93677}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitLDF_MMG1_G"; + description="LDF Medium MG Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2152; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1553.6216,5.0014391,553.96533}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitLDF_MMG1_AG"; + description="LDF Medium MG Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2153; + type="I_E_Soldier_AAR_F"; + }; + }; + class Attributes + { + name="GrpLDF_MMG1"; + }; + id=2150; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item49 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1557.8096,5.0014391,540.84521}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgl"",this] call f_fnc_assignGear;"; + name="UnitLDF_MMG2_TL"; + description="LDF Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2155; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1562.8096,5.0014391,539.19458}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mmgg"",this] call f_fnc_assignGear;"; + name="UnitLDF_MMG2_G"; + description="LDF Medium MG Team 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2156; + type="I_E_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1553.6475,5.0014391,539.22339}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mmgag"",this] call f_fnc_assignGear;"; + name="UnitLDF_MMG2_AG"; + description="LDF Medium MG Team 2 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2157; + type="I_E_Soldier_AAR_F"; + }; + }; + class Attributes + { + name="GrpLDF_MMG2"; + }; + id=2154; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item50 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1557.9155,5.0014391,527.56909}; + angles[]={0,0.030927233,0}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitLDF_MAT1_TL"; + description="LDF Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2159; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1562.915,5.0014391,525.91919}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitLDF_MAT1_G"; + description="LDF Medium AT Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2160; + type="I_E_Soldier_AT_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1553.7524,5.0014391,525.94824}; + angles[]={0,0.030927233,0}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitLDF_MAT1_AG"; + description="LDF Medium AT Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2161; + type="I_E_Soldier_AAT_F"; + }; + }; + class Attributes + { + name="GrpLDF_MAT1"; + }; + id=2158; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item51 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.3345,5.0014391,516.03418}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matl"",this] call f_fnc_assignGear; "; + name="UnitLDF_MAT2_TL"; + description="LDF Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2163; + type="I_E_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.334,5.0014391,514.38403}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""matg"",this] call f_fnc_assignGear; "; + name="UnitLDF_MAT2_G"; + description="LDF Medium AT Team 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2164; + type="I_E_Soldier_AT_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.1714,5.0014391,514.41333}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""matag"",this] call f_fnc_assignGear; "; + name="UnitLDF_MAT2_AG"; + description="LDF Medium AT Team 2 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2165; + type="I_E_Soldier_AAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="GrpLDF_MAT2"; + }; + id=2162; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item52 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.2803,5.0014391,502.91431}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hmgag"",this] call f_fnc_assignGear; "; + name="UnitLDF_HMG1_TL"; + description="LDF Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2167; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.2803,5.0014391,501.26392}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hmgg"",this] call f_fnc_assignGear; "; + name="UnitLDF_HMG1_G"; + description="LDF Heavy MG Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2168; + type="I_E_Support_MG_F"; + }; + }; + class Attributes + { + name="GrpLDF_HMG1"; + }; + id=2166; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item53 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.2666,5.0014391,491.53516}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatl"",this] call f_fnc_assignGear; "; + name="UnitLDF_HAT1_TL"; + description="LDF Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2170; + type="I_E_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.2666,5.0014391,489.88501}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hatg"",this] call f_fnc_assignGear; "; + name="UnitLDF_HAT1_G"; + description="LDF Heavy AT Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2171; + type="I_E_Soldier_AT_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554.1045,5.0014391,489.91431}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hatag"",this] call f_fnc_assignGear; "; + name="UnitLDF_HAT1_AG"; + description="LDF Heavy AT Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2172; + type="I_E_Soldier_AAT_F"; + }; + }; + class Attributes + { + name="GrpLDF_HAT1"; + }; + id=2169; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item54 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.2676,5.0014391,479.41626}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""mtrag"",this] call f_fnc_assignGear; "; + name="UnitLDF_MTR1_TL"; + description="LDF Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2174; + type="I_E_Support_AMort_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.2676,5.0014391,477.76587}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""mtrg"",this] call f_fnc_assignGear; "; + name="UnitLDF_MTR1_G"; + description="LDF Mortar Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2175; + type="I_E_Support_Mort_F"; + }; + }; + class Attributes + { + name="GrpLDF_MTR1"; + }; + id=2173; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item55 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.0566,5.0014391,467.41821}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msaml"",this] call f_fnc_assignGear; "; + name="UnitLDF_MSAM1_TL"; + description="LDF Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2177; + type="I_E_Soldier_AAA_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.0566,5.0014391,465.76782}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""msamg"",this] call f_fnc_assignGear; "; + name="UnitLDF_MSAM1_G"; + description="LDF Medium SAM Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2178; + type="I_E_Soldier_AA_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1553.8945,5.0014391,465.79614}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""msamag"",this] call f_fnc_assignGear; "; + name="UnitLDF_MSAM1_AG"; + description="LDF Medium SAM Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2179; + type="I_E_Soldier_AAA_F"; + }; + }; + class Attributes + { + name="GrpLDF_MSAM1"; + }; + id=2176; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item56 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1558.2324,5.0014391,454.23657}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""hsamag"",this] call f_fnc_assignGear; "; + name="UnitLDF_HSAM1_TL"; + description="LDF Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2181; + type="I_E_Soldier_AAA_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1563.2324,5.0014391,452.58618}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""hsamg"",this] call f_fnc_assignGear; "; + name="UnitLDF_HSAM1_G"; + description="LDF Heavy SAM Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2182; + type="I_E_Soldier_AA_F"; + }; + }; + class Attributes + { + name="GrpLDF_HSAM1"; + }; + id=2180; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item57 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1557.9316,5.0014391,443.3999}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""sp"",this] call f_fnc_assignGear; "; + name="UnitLDF_ST1_SP"; + description="LDF Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2383; + type="I_E_Soldier_Pathfinder_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male03POL"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1562.9316,5.0014391,441.75}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""sn"",this] call f_fnc_assignGear; "; + name="UnitLDF_ST1_G"; + description="LDF Sniper Team 1 Sniper"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2384; + type="I_E_soldier_M_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02POL"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=2; + }; + }; + }; + class Attributes + { + name="GrpLDF_ST1"; + }; + id=2380; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item58 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1559,5.0014391,430.05005}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""eng"",this] call f_fnc_assignGear; "; + name="UnitLDF_ENG1_FTL"; + description="LDF Engineer Team 1 Leader (Demo)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2187; + type="I_E_Engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1564,5.0014391,428.40063}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""eng"",this] call f_fnc_assignGear; "; + name="UnitLDF_ENG1_A1"; + description="LDF Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2188; + type="I_E_Engineer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1554,5.0014391,428.40063}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear; "; + name="UnitLDF_ENG1_A2"; + description="LDF Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2189; + type="I_E_Engineer_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={1569,5.0014391,425.6604}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""engm"",this] call f_fnc_assignGear; "; + name="UnitLDF_ENG1_A3"; + description="LDF Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2190; + type="I_E_Engineer_F"; + }; + }; + class Attributes + { + name="GrpLDF_ENG1"; + }; + id=2186; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item59 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.501,7.6857953,445.76001}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear;"; + name="VehLDF_IFV1"; + textures="EAF_01"; + }; + id=2065; + type="I_E_APC_tracked_03_cannon_F"; + atlOffset=0.17500019; + class CustomAttributes + { + class Attribute0 + { + property="VehicleCustomization"; + expression="if (local _this) then {if (isSimpleObject _this) then {_this setVariable ['bis_fnc_initVehicle_customization',_value]} else {([_this] + _value + [true]) call (uinamespace getvariable 'bis_fnc_initVehicle');};};"; + class Value + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + class value + { + items=2; + class Item0 + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + }; + }; + class Item1 + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + class value + { + items=14; + class Item0 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showBags"; + }; + }; + class Item1 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item2 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showBags2"; + }; + }; + class Item3 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item4 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showCamonetHull"; + }; + }; + class Item5 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item6 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showCamonetTurret"; + }; + }; + class Item7 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item8 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showTools"; + }; + }; + class Item9 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item10 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showSLATHull"; + }; + }; + class Item11 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + class Item12 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showSLATTurret"; + }; + }; + class Item13 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + }; + }; + }; + }; + }; + }; + nAttributes=1; + }; + }; + class Item60 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.501,5.1764393,445.81}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitLDF_IFV1_C"; + description="LDF IFV 1 Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2062; + type="I_E_Crew_F"; + atlOffset=0.17500019; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.501,5.1764393,445.81}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitLDF_IFV1_G"; + description="LDF IFV 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2063; + type="I_E_Crew_F"; + atlOffset=0.17500019; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.501,5.1764393,445.81}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitLDF_IFV1_D"; + description="LDF IFV 1 Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2064; + type="I_E_Crew_F"; + atlOffset=0.17500019; + }; + }; + class Attributes + { + name="GrpLDF_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=2062; + item1=2065; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=2063; + item1=2065; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=2064; + item1=2065; + class CustomData + { + role=1; + }; + }; + }; + }; + id=2061; + atlOffset=0.17500019; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF IFV1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item61 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.702,7.5107951,443.41299}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_ifv"",this] call f_fnc_assignGear;"; + name="VehLDF_IFV2"; + textures="EAF_01"; + }; + id=2070; + type="I_E_APC_tracked_03_cannon_F"; + class CustomAttributes + { + class Attribute0 + { + property="VehicleCustomization"; + expression="if (local _this) then {if (isSimpleObject _this) then {_this setVariable ['bis_fnc_initVehicle_customization',_value]} else {([_this] + _value + [true]) call (uinamespace getvariable 'bis_fnc_initVehicle');};};"; + class Value + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + class value + { + items=2; + class Item0 + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + }; + }; + class Item1 + { + class data + { + class type + { + type[]= + { + "ARRAY" + }; + }; + class value + { + items=14; + class Item0 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showBags"; + }; + }; + class Item1 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item2 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showBags2"; + }; + }; + class Item3 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item4 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showCamonetHull"; + }; + }; + class Item5 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item6 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showCamonetTurret"; + }; + }; + class Item7 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item8 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showTools"; + }; + }; + class Item9 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + class Item10 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showSLATHull"; + }; + }; + class Item11 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + class Item12 + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="showSLATTurret"; + }; + }; + class Item13 + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + }; + }; + }; + }; + }; + }; + nAttributes=1; + }; + }; + class Item62 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.702,5.0014391,443.46298}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""vc"",this] call f_fnc_assignGear;"; + name="UnitLDF_IFV2_C"; + description="LDF IFV 2 Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2067; + type="I_E_Crew_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.702,5.0014391,443.46298}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[""vg"",this] call f_fnc_assignGear;"; + name="UnitLDF_IFV2_G"; + description="LDF IFV 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2068; + type="I_E_Crew_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.702,5.0014391,443.46298}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[""vd"",this] call f_fnc_assignGear;"; + name="UnitLDF_IFV2_D"; + description="LDF IFV 2 Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2069; + type="I_E_Crew_F"; + }; + }; + class Attributes + { + name="GrpLDF_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=3; + }; + class Links + { + items=3; + class Item0 + { + linkID=0; + item0=2067; + item1=2070; + class CustomData + { + role=2; + turretPath[]={0,0}; + }; + }; + class Item1 + { + linkID=1; + item0=2068; + item1=2070; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item2 + { + linkID=2; + item0=2069; + item1=2070; + class CustomData + { + role=1; + }; + }; + }; + }; + id=2066; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF IFV2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item63 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.386,6.8630314,411.42014}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehLDF_TH1"; + }; + id=2011; + type="I_E_Heli_light_03_unarmed_F"; + }; + class Item64 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.386,5.0014391,411.46899}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH1_P"; + description="LDF Transport Helo 1 Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2009; + type="I_E_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.386,5.0014391,411.46899}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH1_CP"; + description="LDF Transport Helo 1 Co-Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2010; + type="I_E_Helipilot_F"; + }; + }; + class Attributes + { + name="GrpLDF_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2009; + item1=2011; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2010; + item1=2011; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2008; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF TH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item65 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.469,6.8630314,412.25912}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehLDF_TH2"; + }; + id=2015; + type="I_E_Heli_light_03_unarmed_F"; + }; + class Item66 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.469,5.0014391,412.30798}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH2_P"; + description="LDF Transport Helo 2 Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2013; + type="I_E_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1415.469,5.0014391,412.30798}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH2_CP"; + description="LDF Transport Helo 2 Co-Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2014; + type="I_E_Helipilot_F"; + }; + }; + class Attributes + { + name="GrpLDF_TH2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2013; + item1=2015; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2014; + item1=2015; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2012; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF TH2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item67 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.7159,6.8630314,413.10013}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehLDF_TH3"; + }; + id=2019; + type="I_E_Heli_light_03_unarmed_F"; + }; + class Item68 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.7159,5.0014391,413.14899}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH3_P"; + description="LDF Transport Helo 3 Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2017; + type="I_E_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1457.7159,5.0014391,413.14899}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH3_CP"; + description="LDF Transport Helo 3 Co-Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2018; + type="I_E_Helipilot_F"; + }; + }; + class Attributes + { + name="GrpLDF_TH3"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2017; + item1=2019; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2018; + item1=2019; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2016; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF TH3 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item69 + { + dataType="Object"; + class PositionInfo + { + position[]={1499.0341,6.8630314,413.75613}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + fuel=0.29590145; + init="[""v_helo_h"",this] call f_fnc_assignGear"; + name="VehLDF_TH4"; + }; + id=2023; + type="I_E_Heli_light_03_unarmed_F"; + }; + class Item70 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1499.0341,5.0014391,413.80499}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH4_P"; + description="LDF Transport Helo 4 Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2021; + type="I_E_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1499.0341,5.0014391,413.80499}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_TH4_CP"; + description="LDF Transport Helo 4 Co-Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2022; + type="I_E_Helipilot_F"; + }; + }; + class Attributes + { + name="GrpLDF_TH4"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2021; + item1=2023; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2022; + item1=2023; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2020; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF TH4 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item71 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.203,6.5310755,380.211}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[""v_helo_a"",this] call f_fnc_assignGear"; + name="VehLDF_AH1"; + receiveRemoteTargets=1; + }; + id=2052; + type="I_E_Heli_light_03_dynamicLoadout_F"; + }; + class Item72 + { + dataType="Group"; + side="Independent"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.203,5.0014391,380.26099}; + }; + side="Independent"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_AH1_P"; + description="LDF Attack Helo 1 Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2050; + type="I_E_Helipilot_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={1372.203,5.0014391,380.26099}; + }; + side="Independent"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[""pc"",this] call f_fnc_assignGear;"; + name="UnitLDF_AH1_CP"; + description="LDF Attack Helo 1 Co-Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2051; + type="I_E_Helipilot_F"; + }; + }; + class Attributes + { + name="GrpLDF_AH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2050; + item1=2052; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2051; + item1=2052; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2049; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="LDF AH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item73 + { + dataType="Object"; + class PositionInfo + { + position[]={2472.3262,5.8924227,969.11792}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; + name="CrateNPR_A"; + }; + id=2385; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item74 + { + dataType="Object"; + class PositionInfo + { + position[]={2514.335,5.8924227,970.24878}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; + name="CrateNPR_B"; + }; + id=2386; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item75 + { + dataType="Object"; + class PositionInfo + { + position[]={2554.291,5.8924227,969.04077}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; + name="CrateNPR_C"; + }; + id=2387; + type="IG_supplyCrate_F"; + class CustomAttributes + { + class Attribute0 + { + property="ammoBox"; + expression="[_this,_value] call bis_fnc_initAmmoBox;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[[[[""launch_RPG32_F"",""arifle_TRG20_F"",""arifle_TRG21_F"",""arifle_TRG21_GL_F"",""srifle_DMR_06_camo_F"",""srifle_DMR_06_olive_F"",""LMG_Mk200_F""],[1,1,4,1,1,1,2]],[[""30Rnd_556x45_Stanag"",""200Rnd_65x39_cased_Box"",""20Rnd_762x51_Mag"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""Chemlight_blue"",""RPG32_F"",""RPG32_HE_F"",""HandGrenade"",""MiniGrenade"",""SmokeShell"",""SmokeShellGreen"",""UGL_FlareWhite_F"",""UGL_FlareGreen_F""],[24,6,12,6,2,2,6,3,1,6,6,2,2,2,2]],[[""Binocular"",""Rangefinder"",""FirstAidKit"",""acc_flashlight"",""bipod_03_F_oli"",""V_Chestrig_oli"",""V_TacVest_blk""],[1,1,10,2,2,4,4]],[[""B_TacticalPack_blk""],[2]]],false]"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item76 + { + dataType="Logic"; + class PositionInfo + { + position[]={2416.0752,5,956.7937}; + }; + id=2388; + type="SupportProvider_Artillery"; + }; + class Item77 + { + dataType="Logic"; + class PositionInfo + { + position[]={2418.1699,5.4784107,959.11792}; + }; + id=2393; + type="SupportRequester"; + atlOffset=0.47841072; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item78 + { + dataType="Group"; + side="East"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2416.0908,5.3587284,953.92017}; + }; + side="East"; + flags=2; + class Attributes + { + }; + id=2546; + type="O_G_Soldier_F"; + atlOffset=0.35728931; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=2546; + item1=2545; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2394; + atlOffset=0.35728931; + }; + class Item79 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2420.438,5.0114393,952.69604}; + }; + side="East"; + flags=6; + class Attributes + { + }; + id=2538; + type="O_helipilot_F"; + atlOffset=0.010000229; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2420.438,5.0114393,952.69604}; + }; + side="East"; + flags=4; + class Attributes + { + }; + id=2539; + type="O_helipilot_F"; + atlOffset=0.010000229; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2538; + item1=2537; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2539; + item1=2537; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2397; + atlOffset=0.010000229; + }; + class Item80 + { + dataType="Logic"; + class PositionInfo + { + position[]={2419.0068,5.8319387,935.28882}; + }; + id=2401; + type="SupportRequester"; + atlOffset=0.83193874; + class CustomAttributes + { + class Attribute0 + { + property="SupportRequester_BIS_SUPP_limit_UAV"; + expression="_this setVariable ['BIS_SUPP_limit_UAV',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute1 + { + property="SupportRequester_BIS_SUPP_custom_HQ"; + expression="_this setVariable ['BIS_SUPP_custom_HQ',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportRequester_BIS_SUPP_limit_Transport"; + expression="_this setVariable ['BIS_SUPP_limit_Transport',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute3 + { + property="SupportRequester_BIS_SUPP_limit_Drop"; + expression="_this setVariable ['BIS_SUPP_limit_Drop',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute4 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Heli"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Heli',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute5 + { + property="SupportRequester_BIS_SUPP_limit_Artillery"; + expression="_this setVariable ['BIS_SUPP_limit_Artillery',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + class Attribute6 + { + property="SupportRequester_BIS_SUPP_limit_CAS_Bombing"; + expression="_this setVariable ['BIS_SUPP_limit_CAS_Bombing',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="-1"; + }; + }; + }; + nAttributes=7; + }; + }; + class Item81 + { + dataType="Group"; + side="East"; + class Entities + { + items=1; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2416.9512,5.7404861,930.1438}; + }; + side="East"; + flags=2; + class Attributes + { + }; + id=2544; + type="O_G_Soldier_F"; + atlOffset=0.73904705; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=1; + }; + class Links + { + items=1; + class Item0 + { + linkID=0; + item0=2544; + item1=2543; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2402; + atlOffset=0.73904705; + }; + class Item82 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2421.3159,5.2114391,928.89996}; + }; + side="East"; + flags=6; + class Attributes + { + }; + id=2541; + type="O_helipilot_F"; + atlOffset=0.21000004; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2421.3159,5.2114391,928.89996}; + }; + side="East"; + flags=4; + class Attributes + { + }; + id=2542; + type="O_helipilot_F"; + atlOffset=0.21000004; + }; + }; + class Attributes + { + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2541; + item1=2540; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2542; + item1=2540; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2405; + atlOffset=0.21000004; + }; + class Item83 + { + dataType="Group"; + side="East"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2434.7751,5.0014391,961.54614}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="COLONEL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""co"",this,""spetsnaz""] call f_fnc_assignGear;"; + name="UnitNPR_CO"; + description="Spetsnaz Commander"; + isPlayer=1; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2547; + type="O_G_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2439.7749,5.0014391,959.89478}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""jtac"",this] call f_fnc_assignGear;"; + name="UnitNPR_CO_JTAC"; + description="NPR JTAC"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2410; + type="O_G_officer_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=2; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2430.3057,5.0014391,958.53394}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""uav"",this] call f_fnc_assignGear;"; + name="UnitNPR_CO_UAV"; + description="NPR UAV Operator"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2411; + type="O_G_Soldier_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2444.7754,5.0014391,957.15503}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="UnitNPR_CO_M"; + description="NPR Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2412; + type="O_G_medic_F"; + }; + }; + class Attributes + { + name="grpNPR_CO"; + }; + id=2409; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR CO -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item84 + { + dataType="Group"; + side="East"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2434.2373,5.2133446,937.1814}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="MAJOR"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""dc"",this] call f_fnc_assignGear;"; + name="UnitNPR_DC"; + description="NPR Deputy Commander"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2415; + type="O_G_officer_F"; + atlOffset=0.21190548; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2439.2373,5.2344303,935.53101}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""jtac"",this] call f_fnc_assignGear;"; + name="UnitNPR_DC_JTAC"; + description="NPR Forward Observer"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2416; + type="O_G_officer_F"; + atlOffset=0.23299122; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2429.2373,5.1082706,935.53101}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""uav"",this] call f_fnc_assignGear;"; + name="UnitNPR_DC_UAV"; + description="NPR UAV Operator"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2417; + type="O_G_Soldier_F"; + atlOffset=0.10683155; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2444.2373,5.1013861,932.79175}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="UnitNPR_DC_M"; + description="NPR Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2418; + type="O_G_medic_F"; + atlOffset=0.099946976; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.94999999; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="grpNPR_DC"; + }; + id=2414; + atlOffset=0.21190548; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR DC -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item85 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2470.9287,5.0014391,960.93652}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""dc"",this,""spetsnaz""] call f_fnc_assignGear;"; + name="UnitNPR_ASL_SL"; + description="Spetsnaz Alpha Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2420; + type="O_G_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.05; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2475.9287,5.0014391,959.28589}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="UnitNPR_ASL_M"; + description="NPR Alpha Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2421; + type="O_G_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="grpNPR_ASL"; + }; + id=2419; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR ASL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item86 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2471.4883,5.0014391,939.4314}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="UnitNPR_A1_FTL"; + description="NPR Alpha 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2423; + type="O_G_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2476.4883,5.0913763,937.78101}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A1_AR1"; + description="NPR Alpha 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2424; + type="O_G_Soldier_AR_F"; + atlOffset=0.08993721; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2466.4883,5.0014391,937.78101}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A1_AR2"; + description="NPR Alpha 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2425; + type="O_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2481.4883,5.248991,935.04175}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="UnitNPR_A1_AT"; + description="NPR Alpha 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2426; + type="O_G_Soldier_LAT_F"; + atlOffset=0.24755192; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2461.4883,5.0014391,935.04175}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A1_R1"; + description="NPR Alpha 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2427; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2486.4883,5.0014391,930.49487}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A1_R2"; + description="NPR Alpha 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2428; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="grpNPR_A1"; + }; + id=2422; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR A1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item87 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2471.252,5.0014391,915.55249}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="UnitNPR_A2_FTL"; + description="NPR Alpha 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2430; + type="O_G_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.04; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2476.252,5.0014391,913.9021}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A2_AR1"; + description="NPR Alpha 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2431; + type="O_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2466.252,5.0014391,913.9021}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A2_AR2"; + description="NPR Alpha 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2432; + type="O_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2481.252,5.0014391,911.16284}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="UnitNPR_A2_AT"; + description="NPR Alpha 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2433; + type="O_G_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2461.252,5.0014391,911.16284}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A2_R1"; + description="NPR Alpha 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2434; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.03; + }; + }; + }; + nAttributes=1; + }; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2486.252,5.0014391,906.61597}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_A2_R2"; + description="NPR Alpha 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2435; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.97000003; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="grpNPR_A2"; + }; + id=2429; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR A2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item88 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2511.6108,5.0014391,960.8894}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""dc"",this,""spetsnaz""] call f_fnc_assignGear;"; + name="UnitNPR_BSL_SL"; + description="Spetsnaz Bravo Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2437; + type="O_G_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2516.6104,5.0014391,959.23901}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="UnitNPR_BSL_M"; + description="NPR Bravo Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2438; + type="O_G_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.02; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="grpNPR_BSL"; + }; + id=2436; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR BSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item89 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2512.377,5.0014391,939.19409}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="UnitNPR_B1_FTL"; + description="NPR Bravo 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2440; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2517.377,5.0014391,937.54468}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B1_AR1"; + description="NPR Bravo 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2441; + type="O_G_Soldier_AR_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1.01; + }; + }; + }; + nAttributes=1; + }; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2507.377,5.0014391,937.54468}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B1_AR2"; + description="NPR Bravo 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2442; + type="O_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2522.377,5.0014391,934.80444}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="UnitNPR_B1_AT"; + description="NPR Bravo 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2443; + type="O_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2502.377,5.0014391,934.80444}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B1_R1"; + description="NPR Bravo 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2444; + type="O_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2527.377,5.0014391,930.25854}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B1_R2"; + description="NPR Bravo 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2445; + type="O_G_Soldier_F"; + }; + }; + class Attributes + { + name="grpNPR_B1"; + }; + id=2439; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR B1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item90 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2511.8174,5.0014391,915.96655}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="UnitNPR_B2_FTL"; + description="NPR Bravo 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2447; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2516.8174,5.0014391,914.31519}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B2_AR1"; + description="NPR Bravo 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2448; + type="O_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2506.8174,5.0014391,914.31519}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B2_AR2"; + description="NPR Bravo 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2449; + type="O_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2521.8174,5.0014391,911.57593}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="UnitNPR_B2_AT"; + description="NPR Bravo 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2450; + type="O_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2501.8174,5.0014391,911.57593}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B2_R1"; + description="NPR Bravo 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2451; + type="O_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2526.8174,5.0014391,907.02905}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_B2_R2"; + description="NPR Bravo 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2452; + type="O_G_Soldier_F"; + }; + }; + class Attributes + { + name="grpNPR_B2"; + }; + id=2446; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR B2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item91 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2554.7935,5.3024392,960.29248}; + }; + side="East"; + flags=2; + class Attributes + { + skill=0.60000002; + rank="CAPTAIN"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""dc"",this,""spetsnaz""] call f_fnc_assignGear;"; + name="UnitNPR_CSL_SL"; + description="Spetsnaz Charlie Squad Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2454; + type="O_G_Soldier_SL_F"; + atlOffset=0.30100012; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male05GRE"; + }; + }; + }; + class Attribute1 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.95999998; + }; + }; + }; + nAttributes=2; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2559.7939,5.6464462,958.64233}; + }; + side="East"; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""m"",this] call f_fnc_assignGear;"; + name="UnitNPR_CSL_M"; + description="NPR Charlie Medic"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2455; + type="O_G_medic_F"; + atlOffset=0.64500713; + }; + }; + class Attributes + { + name="grpNPR_CSL"; + }; + id=2453; + atlOffset=0.30100012; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR CSL -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item92 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2555.1953,5.0014391,938.53296}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="UnitNPR_C1_FTL"; + description="NPR Charlie 1 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2457; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2560.1953,5.0014391,936.88354}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C1_AR1"; + description="NPR Charlie 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2458; + type="O_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2550.1953,5.0014391,936.88354}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C1_AR2"; + description="NPR Charlie 1 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2459; + type="O_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2565.1953,5.0014391,934.14331}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="UnitNPR_C1_AT"; + description="NPR Charlie 1 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2460; + type="O_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2545.1953,5.0014391,934.14331}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C1_R1"; + description="NPR Charlie 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2461; + type="O_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2570.1953,5.0014391,929.59644}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C1_R2"; + description="NPR Charlie 1 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2462; + type="O_G_Soldier_F"; + }; + }; + class Attributes + { + name="grpNPR_C1"; + }; + id=2456; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR C1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item93 + { + dataType="Group"; + side="East"; + class Entities + { + items=6; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2555.5,5.0014391,915.42944}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""FTL"",this] call f_fnc_assignGear;"; + name="UnitNPR_C2_FTL"; + description="NPR Charlie 2 Fire Team Leader"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2464; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2560.5,5.0014391,913.77905}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C2_AR1"; + description="NPR Charlie 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2465; + type="O_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2550.5,5.0014391,913.77905}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""ar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C2_AR2"; + description="NPR Charlie 2 Automatic Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2466; + type="O_G_Soldier_AR_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2565.5,5.0014391,911.03979}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""rat"",this] call f_fnc_assignGear;"; + name="UnitNPR_C2_AT"; + description="NPR Charlie 2 Assaultman (AT)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2467; + type="O_G_Soldier_LAT_F"; + }; + class Item4 + { + dataType="Object"; + class PositionInfo + { + position[]={2545.5,5.0014391,911.03979}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C2_R1"; + description="NPR Charlie 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2468; + type="O_G_Soldier_F"; + }; + class Item5 + { + dataType="Object"; + class PositionInfo + { + position[]={2570.5,5.0014391,906.49194}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""aar"",this] call f_fnc_assignGear;"; + name="UnitNPR_C2_R2"; + description="NPR Charlie 2 Rifleman"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2469; + type="O_G_Soldier_F"; + }; + }; + class Attributes + { + name="grpNPR_C2"; + }; + id=2463; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR C2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item94 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.4854,5.153439,960.51416}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mmgl"",this] call f_fnc_assignGear;"; + name="UnitNPR_MMG1_TL"; + description="NPR Medium MG Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2471; + type="O_G_Soldier_TL_F"; + atlOffset=0.15199995; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.4854,5.2476587,958.86401}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mmgg"",this] call f_fnc_assignGear;"; + name="UnitNPR_MMG1_G"; + description="NPR Medium MG Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2472; + type="O_G_Soldier_AR_F"; + atlOffset=0.24621964; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.3232,5.153439,958.89331}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mmgag"",this] call f_fnc_assignGear;"; + name="UnitNPR_MMG1_AG"; + description="NPR Medium MG Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2473; + type="O_G_Soldier_lite_F"; + atlOffset=0.15199995; + }; + }; + class Attributes + { + name="grpNPR_MMG1"; + }; + id=2470; + atlOffset=0.15199995; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR MMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item95 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.3452,5.0014391,949.17505}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mmgl"",this] call f_fnc_assignGear;"; + name="UnitNPR_MMG2_TL"; + description="NPR Medium MG Team 2 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2475; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.3457,5.0014391,947.52515}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mmgg"",this] call f_fnc_assignGear;"; + name="UnitNPR_MMG2_G"; + description="NPR Medium MG Team 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2476; + type="O_G_Soldier_AR_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.1831,5.0014391,947.5542}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mmgag"",this] call f_fnc_assignGear;"; + name="UnitNPR_MMG2_AG"; + description="NPR Medium MG Team 2 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2477; + type="O_G_Soldier_lite_F"; + }; + }; + class Attributes + { + name="grpNPR_MMG2"; + }; + id=2474; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR MMG2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item96 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.6895,5.0014391,938.46704}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""matl"",this] call f_fnc_assignGear; "; + name="UnitNPR_MAT1_TL"; + description="NPR Medium AT Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2479; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.6895,5.0014391,936.81714}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""matg"",this] call f_fnc_assignGear; "; + name="UnitNPR_MAT1_G"; + description="NPR Medium AT Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2480; + type="O_G_Soldier_LAT_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.5273,5.0014391,936.84619}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""matag"",this] call f_fnc_assignGear; "; + name="UnitNPR_MAT1_AG"; + description="NPR Medium AT Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2481; + type="O_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="grpNPR_MAT1"; + }; + id=2478; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR MAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item97 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.6021,5.0014391,926.48511}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""matl"",this] call f_fnc_assignGear; "; + name="UnitNPR_MAT2_TL"; + description="NPR Medium AT Team 2 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2483; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.6025,5.0014391,924.83472}; + }; + side="East"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""matg"",this] call f_fnc_assignGear; "; + name="UnitNPR_MAT2_G"; + description="NPR Medium AT Team 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2484; + type="O_G_Soldier_LAT_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.4404,5.0014391,924.86304}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""matag"",this] call f_fnc_assignGear; "; + name="UnitNPR_MAT2_AG"; + description="NPR Medium AT Team 2 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2485; + type="O_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="grpNPR_MAT2"; + }; + id=2482; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR MAT2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item98 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2592.0908,5.0014391,915.58667}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""hmgag"",this] call f_fnc_assignGear; "; + name="UnitNPR_HMG1_TL"; + description="NPR Heavy MG Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2487; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2597.0908,5.0014391,913.93628}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""hmgg"",this] call f_fnc_assignGear; "; + name="UnitNPR_HMG1_G"; + description="NPR Heavy MG Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2488; + type="O_G_Soldier_AR_F"; + }; + }; + class Attributes + { + name="grpNPR_HMG1"; + }; + id=2486; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR HMG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item99 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.915,5.0014391,903.18335}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""hatl"",this] call f_fnc_assignGear; "; + name="UnitNPR_HAT1_TL"; + description="NPR Heavy AT Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2490; + type="O_G_Soldier_TL_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.915,5.2301273,901.53296}; + }; + side="East"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""hatg"",this] call f_fnc_assignGear; "; + name="UnitNPR_HAT1_G"; + description="NPR Heavy AT Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2491; + type="O_G_Soldier_LAT_F"; + atlOffset=0.22868824; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.752,5.0014391,901.56128}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""hatag"",this] call f_fnc_assignGear; "; + name="UnitNPR_HAT1_AG"; + description="NPR Heavy AT Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2492; + type="O_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="grpNPR_HAT1"; + }; + id=2489; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR HAT1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item100 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.917,5.0014391,891.41479}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mtrag"",this] call f_fnc_assignGear; "; + name="UnitNPR_MTR1_TL"; + description="NPR Mortar Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2494; + type="O_G_Soldier_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.917,5.3897858,889.7644}; + }; + side="East"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""mtrg"",this] call f_fnc_assignGear; "; + name="UnitNPR_MTR1_G"; + description="NPR Mortar Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2495; + type="O_G_Soldier_A_F"; + atlOffset=0.38834667; + }; + }; + class Attributes + { + name="grpNPR_MTR1"; + }; + id=2493; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR MTR1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item101 + { + dataType="Group"; + side="East"; + class Entities + { + items=3; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.916,5.0014391,878.89722}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""msaml"",this] call f_fnc_assignGear; "; + name="UnitNPR_MSAM1_TL"; + description="NPR Medium SAM Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2497; + type="O_G_Soldier_LAT_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.916,5.5413675,877.24683}; + }; + side="East"; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""msamg"",this] call f_fnc_assignGear; "; + name="UnitNPR_MSAM1_G"; + description="NPR Medium SAM Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2498; + type="O_G_Soldier_LAT_F"; + atlOffset=0.53992844; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.7529,5.0014391,877.27515}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""msamag"",this] call f_fnc_assignGear; "; + name="UnitNPR_MSAM1_AG"; + description="NPR Medium SAM Team 1 Assistant"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2499; + type="O_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="grpNPR_MSAM1"; + }; + id=2496; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR MSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item102 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.8154,5.0014391,866.1228}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""hsamag"",this] call f_fnc_assignGear; "; + name="UnitNPR_HSAM1_TL"; + description="NPR Heavy SAM Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2501; + type="O_G_Soldier_LAT_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.8154,5.0014391,864.47241}; + }; + side="East"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""hsamg"",this] call f_fnc_assignGear; "; + name="UnitNPR_HSAM1_G"; + description="NPR Heavy SAM Team 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2502; + type="O_G_Soldier_LAT_F"; + }; + }; + class Attributes + { + name="grpNPR_HSAM1"; + }; + id=2500; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR HSAM1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item103 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2591.6885,5.0014391,855.21753}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""sp"",this] call f_fnc_assignGear; "; + name="UnitNPR_ST1_SP"; + description="NPR Sniper Team 1 Spotter (Leader)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2504; + type="O_G_Soldier_M_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2596.6885,5.0014391,853.56714}; + }; + side="East"; + flags=4; + class Attributes + { + health=0.99000001; + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""sn"",this] call f_fnc_assignGear; "; + name="UnitNPR_ST1_G"; + description="NPR Sniper Team 1 Sniper"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2505; + type="O_G_Soldier_M_F"; + }; + }; + class Attributes + { + name="grpNPR_ST1"; + }; + id=2503; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR ST1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item104 + { + dataType="Group"; + side="East"; + class Entities + { + items=4; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2592.46,5.0014391,842.87085}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""eng"",this] call f_fnc_assignGear;"; + name="UnitNPR_ENG1_FTL"; + description="NPR Engineer Team 1 Leader (Demo)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2507; + type="O_G_engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2597.46,5.0014391,841.22046}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""eng"",this] call f_fnc_assignGear;"; + name="UnitNPR_ENG1_A1"; + description="NPR Engineer Team 1 Assistant (Demo)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2508; + type="O_G_engineer_F"; + }; + class Item2 + { + dataType="Object"; + class PositionInfo + { + position[]={2587.46,5.0014391,841.22046}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""engm"",this] call f_fnc_assignGear;"; + name="UnitNPR_ENG1_A2"; + description="NPR Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2509; + type="O_G_engineer_F"; + }; + class Item3 + { + dataType="Object"; + class PositionInfo + { + position[]={2602.46,5.0014391,838.4812}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""engm"",this] call f_fnc_assignGear;"; + name="UnitNPR_ENG1_A3"; + description="NPR Engineer Team 1 Assistant (Mines)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2510; + type="O_G_engineer_F"; + }; + }; + class Attributes + { + name="grpNPR_ENG1"; + }; + id=2506; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR ENG1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item105 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2438.377,5.0014391,877.57196}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + name="UnitNPR_IFV1_D"; + description="NPR Technical 1 Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2512; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2438.377,5.0014391,877.57196}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + name="UnitNPR_IFV1_G"; + description="NPR Technical 1 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2513; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="grpNPR_IFV1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2512; + item1=2514; + class CustomData + { + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2513; + item1=2514; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2511; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR TECH1 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item106 + { + dataType="Object"; + class PositionInfo + { + position[]={2438.377,7.1644082,877.56329}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_ifv"",this] call f_fnc_assignGear"; + name="VehNPR_IFV1"; + textures="Guerilla_07"; + }; + id=2514; + type="O_G_Offroad_01_armed_F"; + }; + class Item107 + { + dataType="Group"; + side="East"; + class Entities + { + items=2; + class Item0 + { + dataType="Object"; + class PositionInfo + { + position[]={2473.1011,5.0014391,877.48901}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + name="UnitNPR_IFV2_G"; + description="NPR Technical 2 Gunner"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2516; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0.99833667; + }; + }; + }; + nAttributes=1; + }; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2473.1011,5.0014391,877.48901}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + name="UnitNPR_IFV2_D"; + description="NPR Technical 2 Driver (Repair)"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2517; + type="O_G_Soldier_F"; + class CustomAttributes + { + class Attribute0 + { + property="pitch"; + expression="_this setpitch _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=1; + }; + }; + }; + nAttributes=1; + }; + }; + }; + class Attributes + { + name="grpNPR_IFV2"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2516; + item1=2518; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + class Item1 + { + linkID=1; + item0=2517; + item1=2518; + class CustomData + { + role=1; + }; + }; + }; + }; + id=2515; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR TECH2 -"; + }; + }; + }; + nAttributes=1; + }; + }; + class Item108 + { + dataType="Object"; + class PositionInfo + { + position[]={2473.1011,7.1644082,877.48035}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_ifv"",this] call f_fnc_assignGear"; + name="VehNPR_IFV2"; + textures="Guerilla_07"; + }; + id=2518; + type="O_G_Offroad_01_armed_F"; + }; + class Item109 + { + dataType="Logic"; + class PositionInfo + { + position[]={2416.9121,5.8610754,932.96362}; + }; + id=2519; + type="SupportProvider_Artillery"; + atlOffset=0.8610754; + }; + class Item110 + { + dataType="Logic"; + class PositionInfo + { + position[]={2462.1133,5,980.48608}; + }; + name="F3_preMount_NPR_5"; + init="[synchronizedObjects this, [""grpNPR_ASL"",""grpNPR_A1"",""grpNPR_A2""], true, false] call f_fnc_mountGroups;"; + id=2520; + type="Logic"; + }; + class Item111 + { + dataType="Logic"; + class PositionInfo + { + position[]={2505.7476,5,982.57349}; + }; + name="F3_preMount_NPR_6"; + init="[synchronizedObjects this, [""grpNPR_BSL"",""grpNPR_B1"",""grpNPR_B2""], true, false] call f_fnc_mountGroups;"; + id=2521; + type="Logic"; + }; + class Item112 + { + dataType="Logic"; + class PositionInfo + { + position[]={2547.1201,5,984.74316}; + }; + name="F3_preMount_NPR_7"; + init="[synchronizedObjects this, [""grpNPR_CSL"",""grpNPR_C1"",""grpNPR_C2""], true, false] call f_fnc_mountGroups;"; + id=2522; + type="Logic"; + }; + class Item113 + { + dataType="Logic"; + class PositionInfo + { + position[]={2424.0928,5,974.83545}; + }; + name="F3_preMount_NPR_8"; + init="[synchronizedObjects this, [""grpNPR_CO""], true, false] call f_fnc_mountGroups;"; + id=2523; + type="Logic"; + }; + class Item114 + { + dataType="Logic"; + class PositionInfo + { + position[]={2425.5508,5,949.01196}; + }; + name="F3_preMount_NPR_9"; + init="[synchronizedObjects this, [""grpNPR_DC""], true, false] call f_fnc_mountGroups;"; + id=2524; + type="Logic"; + }; + class Item115 + { + dataType="Object"; + class PositionInfo + { + position[]={2604.9854,6.6115026,930.93628}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="VehNPR_CAR4"; + textures="Guerilla_07"; + }; + id=2525; + type="O_G_Offroad_01_F"; + }; + class Item116 + { + dataType="Object"; + class PositionInfo + { + position[]={2429.0674,6.6115026,962.24976}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="VehNPR_CAR1"; + textures="Guerilla_07"; + }; + id=2526; + type="O_G_Offroad_01_F"; + }; + class Item117 + { + dataType="Object"; + class PositionInfo + { + position[]={2429.1465,6.7971687,939.72729}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="VehNPR_CAR2"; + textures="Guerilla_07"; + }; + id=2527; + type="O_G_Offroad_01_F"; + atlOffset=0.18566608; + }; + class Item118 + { + dataType="Object"; + class PositionInfo + { + position[]={2604.2197,6.6115026,953.50366}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_car"",this] call f_fnc_assignGear"; + name="VehNPR_CAR3"; + textures="Guerilla_07"; + }; + id=2528; + type="O_G_Offroad_01_F"; + }; + class Item119 + { + dataType="Object"; + class PositionInfo + { + position[]={2470.4519,6.8715067,976.32617}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="VehNPR_TR1"; + textures="Guerilla_04"; + }; + id=2529; + type="O_G_Van_01_transport_F"; + }; + class Item120 + { + dataType="Object"; + class PositionInfo + { + position[]={2478.3496,6.8716264,971.83276}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="VehNPR_TR2"; + textures="Guerilla_04"; + }; + id=2530; + type="O_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item121 + { + dataType="Object"; + class PositionInfo + { + position[]={2514.3623,6.8716264,977.11401}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="VehNPR_TR3"; + textures="Guerilla_04"; + }; + id=2531; + type="O_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item122 + { + dataType="Object"; + class PositionInfo + { + position[]={2524.4727,6.8716264,971.95776}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="VehNPR_TR4"; + textures="Guerilla_04"; + }; + id=2532; + type="O_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item123 + { + dataType="Object"; + class PositionInfo + { + position[]={2554.8184,6.8716264,976.95972}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="VehNPR_TR5"; + textures="Guerilla_04"; + }; + id=2533; + type="O_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item124 + { + dataType="Object"; + class PositionInfo + { + position[]={2563.6807,6.8716264,971.45093}; + }; + side="Empty"; + flags=4; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_tr"",this] call f_fnc_assignGear"; + name="VehNPR_TR6"; + textures="Guerilla_04"; + }; + id=2534; + type="O_G_Van_01_transport_F"; + atlOffset=0.00011968613; + }; + class Item125 + { + dataType="Logic"; + class PositionInfo + { + position[]={2421.502,5.7177486,933.42065}; + }; + id=2535; + type="SupportProvider_Virtual_CAS_Heli"; + atlOffset=0.71774864; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item126 + { + dataType="Logic"; + class PositionInfo + { + position[]={2420.3564,5.4597912,956.698}; + }; + id=2536; + type="SupportProvider_Virtual_CAS_Heli"; + atlOffset=0.45979118; + class CustomAttributes + { + class Attribute0 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_cooldown"; + expression="_this setVariable ['BIS_SUPP_cooldown',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "SCALAR" + }; + }; + value=0; + }; + }; + }; + class Attribute1 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicleInit"; + expression="_this setVariable ['BIS_SUPP_vehicleInit',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value=""; + }; + }; + }; + class Attribute2 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_vehicles"; + expression="_this setVariable ['BIS_SUPP_vehicles',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="[]"; + }; + }; + }; + class Attribute3 + { + property="SupportProvider_Virtual_CAS_Heli_BIS_SUPP_filter"; + expression="_this setVariable ['BIS_SUPP_filter',_value,true];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Side"; + }; + }; + }; + nAttributes=4; + }; + }; + class Item127 { - className="A3_Data_F_Exp_A"; - name="Arma 3 Nexus Update - Main Configuration"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + dataType="Object"; + class PositionInfo + { + position[]={2420.438,7.1796465,952.5354}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; "; + textures="Black"; + receiveRemoteTargets=1; + }; + id=2537; + type="O_Heli_Light_02_dynamicLoadout_F"; + atlOffset=0.010000229; }; - class Item20 + class Item128 { - className="A3_Air_F_EPC"; - name="Arma 3 Win Episode - Aircraft"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + dataType="Object"; + class PositionInfo + { + position[]={2421.3159,7.3796463,928.73932}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; "; + textures="Black"; + receiveRemoteTargets=1; + }; + id=2540; + type="O_Heli_Light_02_dynamicLoadout_F"; + atlOffset=0.21000004; }; - class Item21 + class Item129 { - className="A3_Characters_F_Jets"; - name="Arma 3 Jets - Characters and Clothing"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + dataType="Object"; + class PositionInfo + { + position[]={2416.9512,6.4606729,930.09351}; + }; + side="East"; + flags=2; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; "; + }; + id=2543; + type="O_G_Mortar_01_F"; + atlOffset=0.73904705; }; - class Item22 + class Item130 { - className="A3_Air_F_Gamma"; - name="Arma 3 - Aircraft"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + dataType="Object"; + class PositionInfo + { + position[]={2416.0908,6.0789151,953.86987}; + }; + side="East"; + flags=2; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; "; + }; + id=2545; + type="O_G_Mortar_01_F"; + atlOffset=0.35728931; }; - class Item23 + class Item131 { - className="A3_Soft_F_Bootcamp"; - name="Arma 3 Bootcamp Update - Unarmored Land Vehicles"; - author="Bohemia Interactive"; - url="https://www.arma3.com"; + dataType="Object"; + class PositionInfo + { + position[]={2593,5.6047058,830.01996}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""v_helo_l"",this] call f_fnc_assignGear"; + name="VehNPR_TH1"; + textures="Elliptical"; + }; + id=2392; + type="C_Heli_Light_01_civil_F"; }; - }; -}; -randomSeed=1116085; -class ScenarioData -{ - author="*** Insert mission author name here. ***"; - overViewPicture="overviewLogo.jpg"; - onLoadMission="Made with the F3 Mission Development Framework."; - loadScreen="loadLogo.jpg"; -}; -class CustomAttributes -{ - class Category0 - { - name="Scenario"; - class Attribute0 + class Item132 { - property="EnableDebugConsole"; - expression="true"; - class Value + dataType="Group"; + side="East"; + class Entities { - class data + items=2; + class Item0 { - class type + dataType="Object"; + class PositionInfo { - type[]= + position[]={2593,5.0014391,831.04999}; + }; + side="East"; + flags=6; + class Attributes + { + skill=0.60000002; + rank="LIEUTENANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""pc"",this] call f_fnc_assignGear;"; + name="UnitNPR_TH1_P"; + description="NPR Transport Helo 1 Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2390; + type="O_G_engineer_F"; + }; + class Item1 + { + dataType="Object"; + class PositionInfo + { + position[]={2593,5.0014391,831.04999}; + }; + side="East"; + flags=4; + class Attributes + { + skill=0.60000002; + rank="SERGEANT"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""pc"",this] call f_fnc_assignGear;"; + name="UnitNPR_TH1_CP"; + description="NPR Transport Helo 1 Co-Pilot"; + isPlayable=1; + reportRemoteTargets=1; + }; + id=2391; + type="O_G_engineer_F"; + }; + }; + class Attributes + { + name="grpNPR_TH1"; + }; + class CrewLinks + { + class LinkIDProvider + { + nextID=2; + }; + class Links + { + items=2; + class Item0 + { + linkID=0; + item0=2390; + item1=2392; + class CustomData { - "SCALAR" + role=1; + }; + }; + class Item1 + { + linkID=1; + item0=2391; + item1=2392; + class CustomData + { + role=2; + turretPath[]={0}; + }; + }; + }; + }; + id=2389; + class CustomAttributes + { + class Attribute0 + { + property="groupID"; + expression="_this setGroupID [_value];"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="NPR TH1 -"; }; }; - value=1; }; + nAttributes=1; }; }; - nAttributes=1; - }; -}; -class Mission -{ - class Intel - { - briefingName="fa3-5-3"; - resistanceWest=0; - timeOfChanges=28800; - startWeather=0.50001526; - startWind=0.25; - startGust=0.25; - forecastWeather=0.50277799; - forecastWind=0.25; - forecastWaves=0; - forecastGust=0.25; - rainForced=1; - lightningsForced=1; - wavesForced=1; - windForced=1; - year=2035; - month=7; - day=6; - hour=8; - minute=15; - startFogDecay=0; - forecastFogDecay=0; - }; - class Entities - { - items=460; - class Item0 + class Item133 { dataType="Object"; class PositionInfo { - position[]={432.07535,8.3443718,1248.3243}; + position[]={432.07501,8.3443718,1248.3247}; }; side="West"; flags=6; @@ -320,15 +11407,15 @@ class Mission init="[""v_helo_h"",this] call f_fnc_assignGear"; name="VehNATO_TH1"; }; - id=0; + id=2551; type="B_Heli_Transport_03_F"; }; - class Item1 + class Item134 { dataType="Object"; class PositionInfo { - position[]={2379.1594,7.5924172,1254.5444}; + position[]={2379.1589,7.5924172,1254.5443}; }; side="East"; flags=6; @@ -339,15 +11426,15 @@ class Mission name="VehCSAT_TH1"; textures="Opfor"; }; - id=1; + id=2552; type="O_Heli_Transport_04_covered_F"; }; - class Item2 + class Item135 { dataType="Object"; class PositionInfo { - position[]={1409.0298,8.5861206,617.8595}; + position[]={1381.799,8.610199,1218.4109}; }; side="Independent"; flags=6; @@ -357,16 +11444,15 @@ class Mission init="[""v_helo_h"",this] call f_fnc_assignGear"; name="VehAAF_TH1"; }; - id=2; + id=2553; type="I_Heli_Transport_02_F"; - atlOffset=-0.024078369; }; - class Item3 + class Item136 { dataType="Object"; class PositionInfo { - position[]={432.47964,8.3443718,1220.5431}; + position[]={432.48001,8.3443718,1220.5427}; }; side="West"; flags=6; @@ -377,15 +11463,15 @@ class Mission name="VehNATO_TH2"; textures="Green"; }; - id=3; + id=2554; type="B_Heli_Transport_03_F"; }; - class Item4 + class Item137 { dataType="Object"; class PositionInfo { - position[]={467.55972,7.1392474,1249.049}; + position[]={467.56,7.1392598,1249.0493}; }; side="West"; flags=6; @@ -396,16 +11482,15 @@ class Mission name="VehNATO_TH3"; textures="Green"; }; - id=4; + id=2555; type="B_Heli_Transport_01_F"; - atlOffset=-1.2397766e-005; }; - class Item5 + class Item138 { dataType="Object"; class PositionInfo { - position[]={468.41714,7.1392474,1221.5109}; + position[]={468.41699,7.1392598,1221.5104}; }; side="West"; flags=6; @@ -416,16 +11501,15 @@ class Mission name="VehNATO_TH4"; textures="Green"; }; - id=5; + id=2556; type="B_Heli_Transport_01_F"; - atlOffset=-1.2397766e-005; }; - class Item6 + class Item139 { dataType="Object"; class PositionInfo { - position[]={516.71497,7.1392474,1249.255}; + position[]={516.71503,7.1392598,1249.2554}; }; side="West"; flags=6; @@ -436,16 +11520,15 @@ class Mission name="VehNATO_TH5"; textures="Green"; }; - id=6; + id=2557; type="B_Heli_Transport_01_F"; - atlOffset=-1.2397766e-005; }; - class Item7 + class Item140 { dataType="Object"; class PositionInfo { - position[]={516.78723,7.1392474,1221.2482}; + position[]={516.78699,7.1392598,1221.2484}; }; side="West"; flags=6; @@ -456,16 +11539,15 @@ class Mission name="VehNATO_TH6"; textures="Green"; }; - id=7; + id=2558; type="B_Heli_Transport_01_F"; - atlOffset=-1.2397766e-005; }; - class Item8 + class Item141 { dataType="Object"; class PositionInfo { - position[]={562.33704,7.1392474,1249.8331}; + position[]={562.33698,7.1392598,1249.8334}; }; side="West"; flags=6; @@ -475,16 +11557,15 @@ class Mission init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehNATO_TH7"; }; - id=8; + id=2559; type="B_Heli_Transport_01_F"; - atlOffset=-1.2397766e-005; }; - class Item9 + class Item142 { dataType="Object"; class PositionInfo { - position[]={563.22864,7.1392474,1222.3273}; + position[]={563.229,7.1392598,1222.3274}; }; side="West"; flags=6; @@ -494,16 +11575,15 @@ class Mission init="[""v_helo_m"",this] call f_fnc_assignGear"; name="VehNATO_TH8"; }; - id=9; + id=2560; type="B_Heli_Transport_01_F"; - atlOffset=-1.2397766e-005; }; - class Item10 + class Item143 { dataType="Object"; class PositionInfo { - position[]={470.42007,7.4527192,1304.1699}; + position[]={470.42001,7.4527192,1304.17}; }; side="West"; flags=6; @@ -513,16 +11593,16 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_AV"; }; - id=10; + id=2561; type="B_APC_Tracked_01_rcws_F"; atlOffset=-0.17999983; }; - class Item11 + class Item144 { dataType="Object"; class PositionInfo { - position[]={517.84583,7.4527192,1301.2305}; + position[]={517.84601,7.4527192,1301.23}; }; side="West"; flags=6; @@ -532,16 +11612,16 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_BV"; }; - id=11; + id=2562; type="B_APC_Tracked_01_rcws_F"; atlOffset=-0.17999983; }; - class Item12 + class Item145 { dataType="Object"; class PositionInfo { - position[]={560.05579,7.4527192,1302.459}; + position[]={560.05603,7.4527192,1302.459}; }; side="West"; flags=6; @@ -551,16 +11631,16 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_CV"; }; - id=12; + id=2563; type="B_APC_Tracked_01_rcws_F"; atlOffset=-0.17999983; }; - class Item13 + class Item146 { dataType="Object"; class PositionInfo { - position[]={431.17886,7.4527192,1304.5967}; + position[]={431.17899,7.4527192,1304.597}; }; side="West"; flags=6; @@ -570,16 +11650,16 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_COV"; }; - id=13; + id=2564; type="B_APC_Tracked_01_rcws_F"; atlOffset=-0.17999983; }; - class Item14 + class Item147 { dataType="Object"; class PositionInfo { - position[]={431.90445,6.9319248,1193.7062}; + position[]={431.90399,6.9319367,1193.7064}; }; side="West"; flags=6; @@ -591,16 +11671,16 @@ class Mission reportRemoteTargets=1; receiveRemoteTargets=1; }; - id=14; + id=2565; type="B_Heli_Attack_01_dynamicLoadout_F"; - atlOffset=0.009988308; + atlOffset=0.010000229; }; - class Item15 + class Item148 { dataType="Object"; class PositionInfo { - position[]={1452.1128,8.5861206,618.69836}; + position[]={1424.882,8.610199,1219.2489}; }; side="Independent"; flags=6; @@ -610,16 +11690,15 @@ class Mission init="[""v_helo_h"",this] call f_fnc_assignGear"; name="VehAAF_TH2"; }; - id=15; + id=2566; type="I_Heli_Transport_02_F"; - atlOffset=-0.024078369; }; - class Item16 + class Item149 { dataType="Object"; class PositionInfo { - position[]={1494.3599,8.5861206,619.53918}; + position[]={1467.129,8.610199,1220.0898}; }; side="Independent"; flags=6; @@ -629,16 +11708,15 @@ class Mission init="[""v_helo_h"",this] call f_fnc_assignGear"; name="VehAAF_TH3"; }; - id=16; + id=2567; type="I_Heli_Transport_02_F"; - atlOffset=-0.024078369; }; - class Item17 + class Item150 { dataType="Object"; class PositionInfo { - position[]={1535.6772,8.5861206,620.19543}; + position[]={1508.446,8.610199,1220.7458}; }; side="Independent"; flags=6; @@ -649,16 +11727,15 @@ class Mission init="[""v_helo_h"",this] call f_fnc_assignGear"; name="VehAAF_TH4"; }; - id=17; + id=2568; type="I_Heli_Transport_02_F"; - atlOffset=-0.024078369; }; - class Item18 + class Item151 { dataType="Object"; class PositionInfo { - position[]={2380.8411,7.5924172,1224.6206}; + position[]={2380.8411,7.5924172,1224.6202}; }; side="East"; flags=6; @@ -669,15 +11746,15 @@ class Mission name="VehCSAT_TH2"; textures="Opfor"; }; - id=18; + id=2569; type="O_Heli_Transport_04_covered_F"; }; - class Item19 + class Item152 { dataType="Object"; class PositionInfo { - position[]={2429.5403,7.1696463,1253.569}; + position[]={2429.54,7.1696463,1253.5693}; }; side="East"; flags=6; @@ -689,15 +11766,15 @@ class Mission receiveRemoteTargets=1; pylons=";;"; }; - id=19; + id=2570; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item20 + class Item153 { dataType="Object"; class PositionInfo { - position[]={2426.9114,7.1696463,1223.8492}; + position[]={2426.9109,7.1696463,1223.8492}; }; side="East"; flags=6; @@ -709,15 +11786,15 @@ class Mission receiveRemoteTargets=1; pylons=";;"; }; - id=20; + id=2571; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item21 + class Item154 { dataType="Object"; class PositionInfo { - position[]={2480.3333,7.1696463,1253.2291}; + position[]={2480.333,7.1696463,1253.2292}; }; side="East"; flags=6; @@ -729,15 +11806,15 @@ class Mission receiveRemoteTargets=1; pylons=";;"; }; - id=21; + id=2572; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item22 + class Item155 { dataType="Object"; class PositionInfo { - position[]={2477.6995,7.1696463,1223.5045}; + position[]={2477.699,7.1696463,1223.5043}; }; side="East"; flags=6; @@ -749,15 +11826,15 @@ class Mission receiveRemoteTargets=1; pylons=";;"; }; - id=22; + id=2573; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item23 + class Item156 { dataType="Object"; class PositionInfo { - position[]={2534.553,7.1696463,1253.6246}; + position[]={2534.553,7.1696463,1253.6243}; }; side="East"; flags=6; @@ -769,15 +11846,15 @@ class Mission receiveRemoteTargets=1; pylons=";;"; }; - id=23; + id=2574; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item24 + class Item157 { dataType="Object"; class PositionInfo { - position[]={2531.9211,7.1696463,1223.9039}; + position[]={2531.9209,7.1696463,1223.9043}; }; side="East"; flags=6; @@ -789,15 +11866,15 @@ class Mission receiveRemoteTargets=1; pylons=";;"; }; - id=24; + id=2575; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item25 + class Item158 { dataType="Object"; class PositionInfo { - position[]={2381.1594,7.5568428,1301.3188}; + position[]={2381.1589,7.5568428,1301.319}; }; side="East"; flags=4; @@ -808,15 +11885,15 @@ class Mission name="VehCSAT_COV"; textures="Hex"; }; - id=25; + id=2576; type="O_APC_Wheeled_02_rcws_v2_F"; }; - class Item26 + class Item159 { dataType="Object"; class PositionInfo { - position[]={2423.8577,7.5568428,1301.0942}; + position[]={2423.8579,7.5568428,1301.094}; }; side="East"; flags=4; @@ -827,15 +11904,15 @@ class Mission name="VehCSAT_AV"; textures="Hex"; }; - id=26; + id=2577; type="O_APC_Wheeled_02_rcws_v2_F"; }; - class Item27 + class Item160 { dataType="Object"; class PositionInfo { - position[]={2475.9973,7.5568428,1300.3062}; + position[]={2475.9971,7.5568428,1300.306}; }; side="East"; flags=4; @@ -846,15 +11923,15 @@ class Mission name="VehCSAT_BV"; textures="Hex"; }; - id=27; + id=2578; type="O_APC_Wheeled_02_rcws_v2_F"; }; - class Item28 + class Item161 { dataType="Object"; class PositionInfo { - position[]={2529.1165,7.5568428,1300.1157}; + position[]={2529.116,7.5568428,1300.116}; }; side="East"; flags=4; @@ -865,15 +11942,15 @@ class Mission name="VehCSAT_CV"; textures="Hex"; }; - id=28; + id=2579; type="O_APC_Wheeled_02_rcws_v2_F"; }; - class Item29 + class Item162 { dataType="Object"; class PositionInfo { - position[]={2382.634,8.0559025,1193.7076}; + position[]={2382.634,8.0559025,1193.7081}; }; side="East"; flags=6; @@ -886,15 +11963,15 @@ class Mission reportRemoteTargets=1; receiveRemoteTargets=1; }; - id=29; + id=2580; type="O_Heli_Attack_02_dynamicLoadout_F"; }; - class Item30 + class Item163 { dataType="Object"; class PositionInfo { - position[]={516.48157,7.5372982,1279.7227}; + position[]={516.48199,7.5374756,1279.723}; }; side="West"; flags=6; @@ -904,16 +11981,16 @@ class Mission init="[""v_tank"",this] call f_fnc_assignGear;"; name="VehNATO_TNK1"; }; - id=30; + id=2581; type="B_MBT_01_TUSK_F"; - atlOffset=-0.18917751; + atlOffset=-0.18900013; }; - class Item31 + class Item164 { dataType="Object"; class PositionInfo { - position[]={1408.4087,7.6142888,675.24231}; + position[]={1381.178,7.6142888,1275.793}; }; side="Independent"; flags=6; @@ -923,15 +12000,15 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_COV"; }; - id=31; + id=2582; type="I_APC_Wheeled_03_cannon_F"; }; - class Item32 + class Item165 { dataType="Object"; class PositionInfo { - position[]={1453.1089,7.6142888,674.10168}; + position[]={1425.8781,7.6142888,1274.653}; }; side="Independent"; flags=6; @@ -941,15 +12018,15 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_AV"; }; - id=32; + id=2583; type="I_APC_Wheeled_03_cannon_F"; }; - class Item33 + class Item166 { dataType="Object"; class PositionInfo { - position[]={1493.9253,7.6142888,674.16711}; + position[]={1466.694,7.6142888,1274.718}; }; side="Independent"; flags=6; @@ -959,15 +12036,15 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_BV"; }; - id=33; + id=2584; type="I_APC_Wheeled_03_cannon_F"; }; - class Item34 + class Item167 { dataType="Object"; class PositionInfo { - position[]={1535.4771,7.6142888,674.45129}; + position[]={1508.246,7.6142888,1275.002}; }; side="Independent"; flags=6; @@ -977,15 +12054,15 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_CV"; }; - id=34; + id=2585; type="I_APC_Wheeled_03_cannon_F"; }; - class Item35 + class Item168 { dataType="Object"; class PositionInfo { - position[]={2477.0383,7.1897745,1274.8247}; + position[]={2477.0381,7.1894407,1274.825}; }; side="East"; flags=6; @@ -996,16 +12073,16 @@ class Mission name="VehCSAT_TNK1"; textures="Hex"; }; - id=35; + id=2586; type="O_MBT_02_cannon_F"; - atlOffset=-0.18066597; + atlOffset=-0.18099976; }; - class Item36 + class Item169 { dataType="Object"; class PositionInfo { - position[]={1493.9966,7.5486078,650.39954}; + position[]={1466.766,7.7286081,1250.95}; }; side="Independent"; flags=6; @@ -1015,16 +12092,15 @@ class Mission init="[""v_tank"",this] call f_fnc_assignGear;"; name="VehAAF_TNK1"; }; - id=36; + id=2587; type="I_MBT_03_cannon_F"; - atlOffset=-0.18000031; }; - class Item37 + class Item170 { dataType="Object"; class PositionInfo { - position[]={1408.8267,6.5310755,586.50305}; + position[]={1381.5959,6.5310755,1187.054}; }; side="Independent"; flags=6; @@ -1035,15 +12111,15 @@ class Mission name="VehAAF_AH1"; receiveRemoteTargets=1; }; - id=37; + id=2588; type="I_Heli_light_03_dynamicLoadout_F"; }; - class Item38 + class Item171 { dataType="Object"; class PositionInfo { - position[]={1451.1421,7.3817043,777.82239}; + position[]={1423.9111,7.3817577,1378.3733}; }; side="Empty"; flags=4; @@ -1053,16 +12129,15 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehAAF_TR1"; }; - id=38; + id=2589; type="I_Truck_02_transport_F"; - atlOffset=-5.3405762e-005; }; - class Item39 + class Item172 { dataType="Object"; class PositionInfo { - position[]={1496.5581,7.3817043,777.77649}; + position[]={1469.3271,7.3817577,1378.3274}; }; side="Empty"; flags=4; @@ -1072,16 +12147,15 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehAAF_TR2"; }; - id=39; + id=2590; type="I_Truck_02_transport_F"; - atlOffset=-5.3405762e-005; }; - class Item40 + class Item173 { dataType="Object"; class PositionInfo { - position[]={1538.6558,7.3817043,777.95032}; + position[]={1511.4248,7.3817577,1378.5012}; }; side="Empty"; flags=4; @@ -1091,16 +12165,15 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehAAF_TR3"; }; - id=40; + id=2591; type="I_Truck_02_transport_F"; - atlOffset=-5.3405762e-005; }; - class Item41 + class Item174 { dataType="Object"; class PositionInfo { - position[]={1400.7506,6.8319178,763.49799}; + position[]={1373.5197,6.8319178,1364.0488}; }; side="Empty"; flags=4; @@ -1111,10 +12184,10 @@ class Mission name="VehAAF_CAR1"; reportRemoteTargets=1; }; - id=41; + id=2592; type="I_MRAP_03_F"; }; - class Item42 + class Item175 { dataType="Object"; class PositionInfo @@ -1129,10 +12202,10 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehNato_CAR1"; }; - id=42; + id=2593; type="B_MRAP_01_F"; }; - class Item43 + class Item176 { dataType="Object"; class PositionInfo @@ -1147,10 +12220,10 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehNato_TR1"; }; - id=43; + id=2594; type="B_Truck_01_transport_F"; }; - class Item44 + class Item177 { dataType="Object"; class PositionInfo @@ -1165,10 +12238,10 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehNato_TR2"; }; - id=44; + id=2595; type="B_Truck_01_transport_F"; }; - class Item45 + class Item178 { dataType="Object"; class PositionInfo @@ -1183,10 +12256,10 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehNato_TR3"; }; - id=45; + id=2596; type="B_Truck_01_transport_F"; }; - class Item46 + class Item179 { dataType="Object"; class PositionInfo @@ -1202,10 +12275,10 @@ class Mission name="VehCSAT_CAR1"; textures="Hex"; }; - id=46; + id=2597; type="O_MRAP_02_F"; }; - class Item47 + class Item180 { dataType="Object"; class PositionInfo @@ -1220,11 +12293,11 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehCSAT_TR1"; }; - id=47; + id=2598; type="O_Truck_02_transport_F"; atlOffset=-5.3405762e-005; }; - class Item48 + class Item181 { dataType="Object"; class PositionInfo @@ -1239,11 +12312,11 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehCSAT_TR2"; }; - id=48; + id=2599; type="O_Truck_02_transport_F"; atlOffset=-5.3405762e-005; }; - class Item49 + class Item182 { dataType="Object"; class PositionInfo @@ -1258,16 +12331,16 @@ class Mission init="[""v_tr"",this] call f_fnc_assignGear"; name="VehCSAT_TR3"; }; - id=49; + id=2600; type="O_Truck_02_transport_F"; atlOffset=-5.3405762e-005; }; - class Item50 + class Item183 { dataType="Object"; class PositionInfo { - position[]={616.46912,6.6115026,726.53906}; + position[]={609.92908,6.6115026,918.35986}; }; side="Empty"; flags=4; @@ -1278,15 +12351,15 @@ class Mission name="VehFIA_CAR4"; textures="Guerilla_07"; }; - id=50; + id=2601; type="B_G_Offroad_01_F"; }; - class Item51 + class Item184 { dataType="Object"; class PositionInfo { - position[]={440.55112,6.6115026,757.85254}; + position[]={434.01099,6.6115026,949.67334}; }; side="Empty"; flags=4; @@ -1297,15 +12370,15 @@ class Mission name="VehFIA_CAR1"; textures="Guerilla_07"; }; - id=51; + id=2602; type="B_G_Offroad_01_F"; }; - class Item52 + class Item185 { dataType="Object"; class PositionInfo { - position[]={440.63022,6.7971687,735.33008}; + position[]={434.09009,6.7971687,927.15088}; }; side="Empty"; flags=4; @@ -1316,16 +12389,16 @@ class Mission name="VehFIA_CAR2"; textures="Guerilla_07"; }; - id=52; + id=2603; type="B_G_Offroad_01_F"; atlOffset=0.18566608; }; - class Item53 + class Item186 { dataType="Object"; class PositionInfo { - position[]={615.70349,6.6115026,749.10645}; + position[]={609.16345,6.6115026,940.92725}; }; side="Empty"; flags=4; @@ -1336,15 +12409,15 @@ class Mission name="VehFIA_CAR3"; textures="Guerilla_07"; }; - id=53; + id=2604; type="B_G_Offroad_01_F"; }; - class Item54 + class Item187 { dataType="Object"; class PositionInfo { - position[]={481.93588,6.8716264,771.92865}; + position[]={475.39575,6.8716264,963.74945}; }; side="Empty"; flags=4; @@ -1355,16 +12428,16 @@ class Mission name="VehFIA_TR1"; textures="Guerilla_04"; }; - id=54; + id=2605; type="B_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item55 + class Item188 { dataType="Object"; class PositionInfo { - position[]={489.83334,6.8716264,767.43549}; + position[]={483.29321,6.8716264,959.25629}; }; side="Empty"; flags=4; @@ -1375,16 +12448,16 @@ class Mission name="VehFIA_TR2"; textures="Guerilla_04"; }; - id=55; + id=2606; type="B_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item56 + class Item189 { dataType="Object"; class PositionInfo { - position[]={525.84607,6.8716264,772.71674}; + position[]={519.30615,6.8716264,964.53754}; }; side="Empty"; flags=4; @@ -1395,16 +12468,16 @@ class Mission name="VehFIA_TR3"; textures="Guerilla_04"; }; - id=56; + id=2607; type="B_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item57 + class Item190 { dataType="Object"; class PositionInfo { - position[]={1400.9404,6.8319178,734.03149}; + position[]={1373.7095,6.8319178,1334.5823}; }; side="Empty"; flags=4; @@ -1415,10 +12488,10 @@ class Mission name="VehAAF_CAR2"; reportRemoteTargets=1; }; - id=57; + id=2608; type="I_MRAP_03_F"; }; - class Item58 + class Item191 { dataType="Object"; class PositionInfo @@ -1434,10 +12507,10 @@ class Mission name="VehCSAT_CAR2"; textures="Hex"; }; - id=58; + id=2609; type="O_MRAP_02_F"; }; - class Item59 + class Item192 { dataType="Object"; class PositionInfo @@ -1452,15 +12525,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehNato_CAR2"; }; - id=59; + id=2610; type="B_MRAP_01_F"; }; - class Item60 + class Item193 { dataType="Object"; class PositionInfo { - position[]={1451.3696,5.8924227,765.56165}; + position[]={1424.1387,5.8924227,1366.1125}; }; side="Empty"; flags=4; @@ -1470,7 +12543,7 @@ class Mission init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; name="CrateAAF_A"; }; - id=60; + id=2611; type="I_supplyCrate_F"; class CustomAttributes { @@ -1496,12 +12569,12 @@ class Mission nAttributes=1; }; }; - class Item61 + class Item194 { dataType="Object"; class PositionInfo { - position[]={1494.562,5.8924227,766.11731}; + position[]={1467.3311,5.8924227,1366.6682}; }; side="Empty"; flags=4; @@ -1511,7 +12584,7 @@ class Mission init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; name="CrateAAF_B"; }; - id=61; + id=2612; type="I_supplyCrate_F"; class CustomAttributes { @@ -1537,12 +12610,12 @@ class Mission nAttributes=1; }; }; - class Item62 + class Item195 { dataType="Object"; class PositionInfo { - position[]={1539.1606,5.8924227,766.32043}; + position[]={1511.9297,5.8924227,1366.8713}; }; side="Empty"; flags=4; @@ -1552,7 +12625,7 @@ class Mission init="[""crate_med"",this,""ind_f""] call f_fnc_assignGear"; name="CrateAAF_C"; }; - id=62; + id=2613; type="I_supplyCrate_F"; class CustomAttributes { @@ -1578,7 +12651,7 @@ class Mission nAttributes=1; }; }; - class Item63 + class Item196 { dataType="Object"; class PositionInfo @@ -1593,7 +12666,7 @@ class Mission init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; name="CrateNATO_A"; }; - id=63; + id=2614; type="B_supplyCrate_F"; class CustomAttributes { @@ -1619,7 +12692,7 @@ class Mission nAttributes=1; }; }; - class Item64 + class Item197 { dataType="Object"; class PositionInfo @@ -1634,7 +12707,7 @@ class Mission init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; name="CrateNATO_B"; }; - id=64; + id=2615; type="B_supplyCrate_F"; class CustomAttributes { @@ -1660,7 +12733,7 @@ class Mission nAttributes=1; }; }; - class Item65 + class Item198 { dataType="Object"; class PositionInfo @@ -1675,7 +12748,7 @@ class Mission init="[""crate_med"",this,""blu_f""] call f_fnc_assignGear"; name="CrateNATO_C"; }; - id=65; + id=2616; type="B_supplyCrate_F"; class CustomAttributes { @@ -1701,7 +12774,7 @@ class Mission nAttributes=1; }; }; - class Item66 + class Item199 { dataType="Object"; class PositionInfo @@ -1716,7 +12789,7 @@ class Mission init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; name="CrateCSAT_A"; }; - id=66; + id=2617; type="O_supplyCrate_F"; class CustomAttributes { @@ -1742,7 +12815,7 @@ class Mission nAttributes=1; }; }; - class Item67 + class Item200 { dataType="Object"; class PositionInfo @@ -1757,7 +12830,7 @@ class Mission init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; name="CrateCSAT_B"; }; - id=67; + id=2618; type="O_supplyCrate_F"; class CustomAttributes { @@ -1783,7 +12856,7 @@ class Mission nAttributes=1; }; }; - class Item68 + class Item201 { dataType="Object"; class PositionInfo @@ -1798,7 +12871,7 @@ class Mission init="[""crate_med"",this,""opf_f""] call f_fnc_assignGear"; name="CrateCSAT_C"; }; - id=68; + id=2619; type="O_supplyCrate_F"; class CustomAttributes { @@ -1824,12 +12897,12 @@ class Mission nAttributes=1; }; }; - class Item69 + class Item202 { dataType="Object"; class PositionInfo { - position[]={483.80991,5.8924227,764.7207}; + position[]={477.26978,5.8924227,956.5415}; }; side="Empty"; flags=4; @@ -1839,7 +12912,7 @@ class Mission init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; name="CrateFIA_A"; }; - id=69; + id=2620; type="IG_supplyCrate_F"; class CustomAttributes { @@ -1865,12 +12938,12 @@ class Mission nAttributes=1; }; }; - class Item70 + class Item203 { dataType="Object"; class PositionInfo { - position[]={525.81873,5.8924227,765.85156}; + position[]={519.27881,5.8924227,957.67236}; }; side="Empty"; flags=4; @@ -1880,7 +12953,7 @@ class Mission init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; name="CrateFIA_B"; }; - id=70; + id=2621; type="IG_supplyCrate_F"; class CustomAttributes { @@ -1906,12 +12979,12 @@ class Mission nAttributes=1; }; }; - class Item71 + class Item204 { dataType="Object"; class PositionInfo { - position[]={565.77478,5.8924227,764.64355}; + position[]={559.23474,5.8924227,956.46436}; }; side="Empty"; flags=4; @@ -1921,7 +12994,7 @@ class Mission init="[""crate_med"",this,""blu_g_f""] call f_fnc_assignGear"; name="CrateFIA_C"; }; - id=71; + id=2622; type="IG_supplyCrate_F"; class CustomAttributes { @@ -1947,12 +13020,12 @@ class Mission nAttributes=1; }; }; - class Item72 + class Item205 { dataType="Object"; class PositionInfo { - position[]={604.48376,5.6047058,625.62299}; + position[]={597.94403,5.6047058,817.44397}; }; side="West"; flags=6; @@ -1963,15 +13036,15 @@ class Mission name="VehFIA_TH1"; textures="Elliptical"; }; - id=72; + id=2623; type="C_Heli_Light_01_civil_F"; }; - class Item73 + class Item206 { dataType="Object"; class PositionInfo { - position[]={430.91617,7.4626956,1278.9102}; + position[]={430.91599,7.4623775,1278.91}; }; side="West"; flags=6; @@ -1981,16 +13054,16 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_IFV1"; }; - id=73; + id=2624; type="B_APC_Wheeled_01_cannon_F"; - atlOffset=-0.076682091; + atlOffset=-0.077000141; }; - class Item74 + class Item207 { dataType="Object"; class PositionInfo { - position[]={470.5939,7.4626956,1279.0977}; + position[]={470.59399,7.4623775,1279.098}; }; side="West"; flags=6; @@ -2000,11 +13073,11 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehNATO_IFV2"; }; - id=74; + id=2625; type="B_APC_Wheeled_01_cannon_F"; - atlOffset=-0.076682091; + atlOffset=-0.077000141; }; - class Item75 + class Item208 { dataType="Object"; class PositionInfo @@ -2019,10 +13092,10 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehNato_CAR3"; }; - id=75; + id=2626; type="B_MRAP_01_F"; }; - class Item76 + class Item209 { dataType="Object"; class PositionInfo @@ -2037,15 +13110,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehNato_CAR4"; }; - id=76; + id=2627; type="B_MRAP_01_F"; }; - class Item77 + class Item210 { dataType="Object"; class PositionInfo { - position[]={2381.4866,7.392787,1275.9663}; + position[]={2381.4871,7.3928018,1275.9659}; }; side="East"; flags=6; @@ -2056,16 +13129,16 @@ class Mission name="VehCSAT_IFV1"; textures="Hex"; }; - id=77; + id=2628; type="O_APC_Tracked_02_cannon_F"; - atlOffset=-0.18001461; + atlOffset=-0.17999983; }; - class Item78 + class Item211 { dataType="Object"; class PositionInfo { - position[]={2426.5959,7.392787,1276.311}; + position[]={2426.5959,7.3928018,1276.311}; }; side="East"; flags=6; @@ -2076,11 +13149,11 @@ class Mission name="VehCSAT_IFV2"; textures="Hex"; }; - id=78; + id=2629; type="O_APC_Tracked_02_cannon_F"; - atlOffset=-0.18001461; + atlOffset=-0.17999983; }; - class Item79 + class Item212 { dataType="Object"; class PositionInfo @@ -2096,10 +13169,10 @@ class Mission name="VehCSAT_CAR3"; textures="Hex"; }; - id=79; + id=2630; type="O_MRAP_02_F"; }; - class Item80 + class Item213 { dataType="Object"; class PositionInfo @@ -2115,15 +13188,15 @@ class Mission name="VehCSAT_CAR4"; textures="Hex"; }; - id=80; + id=2631; type="O_MRAP_02_F"; }; - class Item81 + class Item214 { dataType="Object"; class PositionInfo { - position[]={1409.1245,7.6859746,652.05188}; + position[]={1381.894,7.6857953,1252.603}; }; side="Independent"; flags=6; @@ -2133,16 +13206,16 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_IFV1"; }; - id=81; + id=2632; type="I_APC_tracked_03_cannon_F"; - atlOffset=0.17517948; + atlOffset=0.17500019; }; - class Item82 + class Item215 { dataType="Object"; class PositionInfo { - position[]={1452.3257,7.4890223,649.7052}; + position[]={1425.095,7.5107951,1250.256}; }; side="Independent"; flags=6; @@ -2152,16 +13225,15 @@ class Mission init="[""v_ifv"",this] call f_fnc_assignGear;"; name="VehAAF_IFV2"; }; - id=82; + id=2633; type="I_APC_tracked_03_cannon_F"; - atlOffset=-0.021772861; }; - class Item83 + class Item216 { dataType="Object"; class PositionInfo { - position[]={1611.853,6.8319178,753.23547}; + position[]={1584.6221,6.8319178,1353.7864}; }; side="Empty"; flags=4; @@ -2172,15 +13244,15 @@ class Mission name="VehAAF_CAR3"; reportRemoteTargets=1; }; - id=83; + id=2634; type="I_MRAP_03_F"; }; - class Item84 + class Item217 { dataType="Object"; class PositionInfo { - position[]={1613.3022,6.8319178,725.57043}; + position[]={1586.0713,6.8319178,1326.1213}; }; side="Empty"; flags=4; @@ -2191,15 +13263,15 @@ class Mission name="VehAAF_CAR4"; reportRemoteTargets=1; }; - id=84; + id=2635; type="I_MRAP_03_F"; }; - class Item85 + class Item218 { dataType="Object"; class PositionInfo { - position[]={448.18198,7.1644082,686.50494}; + position[]={441.642,7.1644082,878.32532}; }; side="West"; flags=6; @@ -2210,15 +13282,15 @@ class Mission name="VehFIA_IFV1"; textures="Guerilla_07"; }; - id=85; + id=2636; type="B_G_Offroad_01_armed_F"; }; - class Item86 + class Item219 { dataType="Object"; class PositionInfo { - position[]={482.90561,7.1644082,686.42194}; + position[]={476.36499,7.1644082,878.24231}; }; side="West"; flags=6; @@ -2229,15 +13301,15 @@ class Mission name="VehFIA_IFV2"; textures="Guerilla_07"; }; - id=86; + id=2637; type="B_G_Offroad_01_armed_F"; }; - class Item87 + class Item220 { dataType="Object"; class PositionInfo { - position[]={535.95642,6.8716264,767.56049}; + position[]={529.4165,6.8716264,959.38129}; }; side="Empty"; flags=4; @@ -2248,16 +13320,16 @@ class Mission name="VehFIA_TR4"; textures="Guerilla_04"; }; - id=87; + id=2638; type="B_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item88 + class Item221 { dataType="Object"; class PositionInfo { - position[]={566.30212,6.8716264,772.56244}; + position[]={559.76208,6.8716264,964.38324}; }; side="Empty"; flags=4; @@ -2268,16 +13340,16 @@ class Mission name="VehFIA_TR5"; textures="Guerilla_04"; }; - id=88; + id=2639; type="B_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item89 + class Item222 { dataType="Object"; class PositionInfo { - position[]={575.16443,6.8716264,767.05365}; + position[]={568.62439,6.8716264,958.87445}; }; side="Empty"; flags=4; @@ -2288,19 +13360,19 @@ class Mission name="VehFIA_TR6"; textures="Guerilla_04"; }; - id=89; + id=2640; type="B_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item90 + class Item223 { dataType="Logic"; class PositionInfo { - position[]={2281.6389,5.3882694,729.50195}; + position[]={2332.5256,5.3882694,527.68066}; }; init="[this, true, allUnits] call f_fnc_zeusInit;"; - id=106; + id=2641; type="ModuleCurator_F"; atlOffset=0.38826942; class CustomAttributes @@ -2403,15 +13475,15 @@ class Mission nAttributes=5; }; }; - class Item91 + class Item224 { dataType="Logic"; class PositionInfo { - position[]={2282.2229,5.3580265,718.42773}; + position[]={2333.1096,5.3580265,516.60645}; }; init="[this, true, allUnits] call f_fnc_zeusInit;"; - id=107; + id=2642; type="ModuleCurator_F"; atlOffset=0.3580265; class CustomAttributes @@ -2514,15 +13586,15 @@ class Mission nAttributes=5; }; }; - class Item92 + class Item225 { dataType="Logic"; class PositionInfo { - position[]={2282.3342,5.6426582,707.78223}; + position[]={2333.2209,5.6426582,505.96094}; }; init="[this, true, allUnits] call f_fnc_zeusInit;"; - id=108; + id=2643; type="ModuleCurator_F"; atlOffset=0.64265823; class CustomAttributes @@ -2625,15 +13697,15 @@ class Mission nAttributes=5; }; }; - class Item93 + class Item226 { dataType="Logic"; class PositionInfo { - position[]={2284.1614,6.0756798,697.16992}; + position[]={2335.0481,6.0756798,495.34863}; }; init="[this, true, allUnits] call f_fnc_zeusInit;"; - id=109; + id=2644; type="ModuleCurator_F"; atlOffset=1.0756798; class CustomAttributes @@ -2736,14 +13808,14 @@ class Mission nAttributes=5; }; }; - class Item94 + class Item227 { dataType="Logic"; class PositionInfo { position[]={411.01968,5,1370.0654}; }; - id=110; + id=2645; type="SupportRequester"; class CustomAttributes { @@ -2883,7 +13955,7 @@ class Mission nAttributes=7; }; }; - class Item95 + class Item228 { dataType="Group"; side="West"; @@ -2902,7 +13974,7 @@ class Mission class Attributes { }; - id=115; + id=2647; type="B_Soldier_F"; }; }; @@ -2921,8 +13993,8 @@ class Mission class Item0 { linkID=0; - item0=115; - item1=114; + item0=2647; + item1=2648; class CustomData { role=2; @@ -2931,9 +14003,9 @@ class Mission }; }; }; - id=113; + id=2646; }; - class Item96 + class Item229 { dataType="Object"; class PositionInfo @@ -2946,10 +14018,10 @@ class Mission { skill=0.60000002; }; - id=114; + id=2648; type="B_Mortar_01_F"; }; - class Item97 + class Item230 { dataType="Group"; side="West"; @@ -2968,7 +14040,7 @@ class Mission class Attributes { }; - id=118; + id=2650; type="B_Helipilot_F"; }; class Item1 @@ -2983,7 +14055,7 @@ class Mission class Attributes { }; - id=119; + id=2651; type="B_Helipilot_F"; }; }; @@ -3002,8 +14074,8 @@ class Mission class Item0 { linkID=0; - item0=118; - item1=117; + item0=2650; + item1=2652; class CustomData { role=1; @@ -3012,8 +14084,8 @@ class Mission class Item1 { linkID=1; - item0=119; - item1=117; + item0=2651; + item1=2652; class CustomData { role=2; @@ -3022,10 +14094,10 @@ class Mission }; }; }; - id=116; + id=2649; atlOffset=-0.37890196; }; - class Item98 + class Item231 { dataType="Object"; class PositionInfo @@ -3039,18 +14111,18 @@ class Mission skill=0.60000002; receiveRemoteTargets=1; }; - id=117; + id=2652; type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=-0.37890196; }; - class Item99 + class Item232 { dataType="Logic"; class PositionInfo { - position[]={429.65366,5.4784107,754.7207}; + position[]={423.11353,5.4784107,946.5415}; }; - id=120; + id=2653; type="SupportRequester"; atlOffset=0.47841072; class CustomAttributes @@ -3191,7 +14263,7 @@ class Mission nAttributes=7; }; }; - class Item100 + class Item233 { dataType="Group"; side="West"; @@ -3203,14 +14275,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={427.57455,5.3587284,749.52301}; + position[]={421.03442,5.3587284,941.34381}; }; side="West"; flags=2; class Attributes { }; - id=125; + id=2655; type="B_Soldier_F"; atlOffset=0.35728931; }; @@ -3230,8 +14302,8 @@ class Mission class Item0 { linkID=0; - item0=125; - item1=124; + item0=2655; + item1=2656; class CustomData { role=2; @@ -3240,15 +14312,15 @@ class Mission }; }; }; - id=123; + id=2654; atlOffset=0.35728931; }; - class Item101 + class Item234 { dataType="Object"; class PositionInfo { - position[]={427.57455,6.0789151,749.47266}; + position[]={421.03442,6.0789151,941.29346}; }; side="West"; flags=2; @@ -3256,11 +14328,11 @@ class Mission { skill=0.60000002; }; - id=124; + id=2656; type="B_Mortar_01_F"; atlOffset=0.35728931; }; - class Item102 + class Item235 { dataType="Group"; side="West"; @@ -3272,31 +14344,32 @@ class Mission dataType="Object"; class PositionInfo { - position[]={431.92221,5.3898754,748.29926}; + position[]={425.38208,5.0109735,940.11981}; }; side="West"; - flags=2; + flags=6; class Attributes { }; - id=128; + id=2658; type="B_Helipilot_F"; - atlOffset=0.38843632; + atlOffset=0.009534359; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={431.92221,5.3898754,748.29926}; + position[]={425.38208,5.0109735,940.11981}; }; side="West"; + flags=4; class Attributes { }; - id=129; + id=2659; type="B_Helipilot_F"; - atlOffset=0.38843632; + atlOffset=0.009534359; }; }; class Attributes @@ -3314,8 +14387,8 @@ class Mission class Item0 { linkID=0; - item0=128; - item1=127; + item0=2658; + item1=2660; class CustomData { role=1; @@ -3324,8 +14397,8 @@ class Mission class Item1 { linkID=1; - item0=129; - item1=127; + item0=2659; + item1=2660; class CustomData { role=2; @@ -3334,15 +14407,15 @@ class Mission }; }; }; - id=126; + id=2657; atlOffset=0.009534359; }; - class Item103 + class Item236 { dataType="Object"; class PositionInfo { - position[]={431.92221,6.7886786,748.25006}; + position[]={425.38208,6.7886786,940.07086}; }; side="West"; flags=6; @@ -3351,18 +14424,18 @@ class Mission skill=0.60000002; receiveRemoteTargets=1; }; - id=127; + id=2660; type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=0.009534359; }; - class Item104 + class Item237 { dataType="Logic"; class PositionInfo { - position[]={430.49057,5.8319387,730.8916}; + position[]={423.95044,5.8319387,922.7124}; }; - id=130; + id=2661; type="SupportRequester"; atlOffset=0.83193874; class CustomAttributes @@ -3503,7 +14576,7 @@ class Mission nAttributes=7; }; }; - class Item105 + class Item238 { dataType="Group"; side="West"; @@ -3515,14 +14588,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={428.43491,5.7404861,725.74664}; + position[]={421.89478,5.7404861,917.56744}; }; side="West"; flags=2; class Attributes { }; - id=135; + id=2663; type="B_Soldier_F"; atlOffset=0.73904705; }; @@ -3542,8 +14615,8 @@ class Mission class Item0 { linkID=0; - item0=135; - item1=134; + item0=2663; + item1=2664; class CustomData { role=2; @@ -3552,15 +14625,15 @@ class Mission }; }; }; - id=133; + id=2662; atlOffset=0.73904705; }; - class Item106 + class Item239 { dataType="Object"; class PositionInfo { - position[]={428.43491,6.4606729,725.69629}; + position[]={421.89478,6.4606729,917.51709}; }; side="West"; flags=2; @@ -3568,11 +14641,11 @@ class Mission { skill=0.60000002; }; - id=134; + id=2664; type="B_Mortar_01_F"; atlOffset=0.73904705; }; - class Item107 + class Item240 { dataType="Group"; side="West"; @@ -3584,31 +14657,32 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.80014,5.5899277,724.50336}; + position[]={426.26001,5.2110257,916.32391}; }; side="West"; - flags=2; + flags=6; class Attributes { }; - id=138; + id=2666; type="B_Helipilot_F"; - atlOffset=0.58848858; + atlOffset=0.20958662; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={432.80014,5.5899277,724.50336}; + position[]={426.26001,5.2110257,916.32391}; }; side="West"; + flags=4; class Attributes { }; - id=139; + id=2667; type="B_Helipilot_F"; - atlOffset=0.58848858; + atlOffset=0.20958662; }; }; class Attributes @@ -3626,8 +14700,8 @@ class Mission class Item0 { linkID=0; - item0=138; - item1=137; + item0=2666; + item1=2668; class CustomData { role=1; @@ -3636,8 +14710,8 @@ class Mission class Item1 { linkID=1; - item0=139; - item1=137; + item0=2667; + item1=2668; class CustomData { role=2; @@ -3646,15 +14720,15 @@ class Mission }; }; }; - id=136; + id=2665; atlOffset=0.20958662; }; - class Item108 + class Item241 { dataType="Object"; class PositionInfo { - position[]={432.80014,6.9887309,724.45416}; + position[]={426.26001,6.9887309,916.27496}; }; side="West"; flags=6; @@ -3663,18 +14737,18 @@ class Mission skill=0.60000002; receiveRemoteTargets=1; }; - id=137; + id=2668; type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=0.20958662; }; - class Item109 + class Item242 { dataType="Logic"; class PositionInfo { position[]={2352.8674,5,1375.1069}; }; - id=140; + id=2669; type="SupportRequester"; class CustomAttributes { @@ -3814,7 +14888,7 @@ class Mission nAttributes=7; }; }; - class Item110 + class Item243 { dataType="Group"; side="East"; @@ -3833,7 +14907,7 @@ class Mission class Attributes { }; - id=145; + id=2671; type="O_helipilot_F"; }; class Item1 @@ -3848,7 +14922,7 @@ class Mission class Attributes { }; - id=146; + id=2672; type="O_helipilot_F"; }; }; @@ -3867,8 +14941,8 @@ class Mission class Item0 { linkID=0; - item0=145; - item1=144; + item0=2671; + item1=2673; class CustomData { role=1; @@ -3877,8 +14951,8 @@ class Mission class Item1 { linkID=1; - item0=146; - item1=144; + item0=2672; + item1=2673; class CustomData { role=2; @@ -3887,9 +14961,9 @@ class Mission }; }; }; - id=143; + id=2670; }; - class Item111 + class Item244 { dataType="Object"; class PositionInfo @@ -3904,10 +14978,10 @@ class Mission receiveRemoteTargets=1; pylons="PylonWeapon_2000Rnd_65x39_belt;PylonRack_12Rnd_missiles;"; }; - id=144; + id=2673; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item112 + class Item245 { dataType="Group"; side="East"; @@ -3919,14 +14993,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2350.7874,5.0014391,1368.7529}; + position[]={2350.7871,5.0014391,1368.7531}; }; side="East"; flags=6; class Attributes { }; - id=149; + id=2675; type="O_Soldier_F"; }; }; @@ -3945,8 +15019,8 @@ class Mission class Item0 { linkID=0; - item0=149; - item1=148; + item0=2675; + item1=2676; class CustomData { role=2; @@ -3955,14 +15029,14 @@ class Mission }; }; }; - id=147; + id=2674; }; - class Item113 + class Item246 { dataType="Object"; class PositionInfo { - position[]={2350.7874,5.7216258,1368.7026}; + position[]={2350.7871,5.7216258,1368.7026}; }; side="East"; flags=6; @@ -3970,17 +15044,17 @@ class Mission { skill=0.60000002; }; - id=148; + id=2676; type="O_Mortar_01_F"; }; - class Item114 + class Item247 { dataType="Logic"; class PositionInfo { position[]={2353.8879,5,1349.772}; }; - id=150; + id=2677; type="SupportRequester"; class CustomAttributes { @@ -4120,7 +15194,7 @@ class Mission nAttributes=7; }; }; - class Item115 + class Item248 { dataType="Group"; side="East"; @@ -4139,7 +15213,7 @@ class Mission class Attributes { }; - id=155; + id=2679; type="O_helipilot_F"; }; class Item1 @@ -4154,7 +15228,7 @@ class Mission class Attributes { }; - id=156; + id=2680; type="O_helipilot_F"; }; }; @@ -4173,8 +15247,8 @@ class Mission class Item0 { linkID=0; - item0=155; - item1=154; + item0=2679; + item1=2681; class CustomData { role=1; @@ -4183,8 +15257,8 @@ class Mission class Item1 { linkID=1; - item0=156; - item1=154; + item0=2680; + item1=2681; class CustomData { role=2; @@ -4193,9 +15267,9 @@ class Mission }; }; }; - id=153; + id=2678; }; - class Item116 + class Item249 { dataType="Object"; class PositionInfo @@ -4210,10 +15284,10 @@ class Mission receiveRemoteTargets=1; pylons="PylonWeapon_2000Rnd_65x39_belt;PylonRack_12Rnd_missiles;"; }; - id=154; + id=2681; type="O_Heli_Light_02_dynamicLoadout_F"; }; - class Item117 + class Item250 { dataType="Group"; side="East"; @@ -4232,7 +15306,7 @@ class Mission class Attributes { }; - id=159; + id=2683; type="O_Soldier_F"; }; }; @@ -4251,8 +15325,8 @@ class Mission class Item0 { linkID=0; - item0=159; - item1=158; + item0=2683; + item1=2684; class CustomData { role=2; @@ -4261,9 +15335,9 @@ class Mission }; }; }; - id=157; + id=2682; }; - class Item118 + class Item251 { dataType="Object"; class PositionInfo @@ -4276,17 +15350,17 @@ class Mission { skill=0.60000002; }; - id=158; + id=2684; type="O_Mortar_01_F"; }; - class Item119 + class Item252 { dataType="Logic"; class PositionInfo { - position[]={1384.1157,5,761.96008}; + position[]={1356.8848,5,1362.511}; }; - id=160; + id=2685; type="SupportRequester"; class CustomAttributes { @@ -4426,7 +15500,7 @@ class Mission nAttributes=7; }; }; - class Item120 + class Item253 { dataType="Group"; side="Independent"; @@ -4438,14 +15512,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1386.1177,5.0014391,755.87048}; + position[]={1358.887,5.0014391,1356.421}; }; side="Independent"; flags=6; class Attributes { }; - id=165; + id=2687; type="I_helipilot_F"; }; class Item1 @@ -4453,14 +15527,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1386.1177,5.0014391,755.87048}; + position[]={1358.887,5.0014391,1356.421}; }; side="Independent"; flags=4; class Attributes { }; - id=166; + id=2688; type="I_helipilot_F"; }; }; @@ -4479,8 +15553,8 @@ class Mission class Item0 { linkID=0; - item0=165; - item1=164; + item0=2687; + item1=2689; class CustomData { role=1; @@ -4489,8 +15563,8 @@ class Mission class Item1 { linkID=1; - item0=166; - item1=164; + item0=2688; + item1=2689; class CustomData { role=2; @@ -4499,14 +15573,14 @@ class Mission }; }; }; - id=163; + id=2686; }; - class Item121 + class Item254 { dataType="Object"; class PositionInfo { - position[]={1386.1177,6.5310755,755.82043}; + position[]={1358.887,6.5310755,1356.371}; }; side="Independent"; flags=6; @@ -4515,10 +15589,10 @@ class Mission skill=0.60000002; receiveRemoteTargets=1; }; - id=164; + id=2689; type="I_Heli_light_03_dynamicLoadout_F"; }; - class Item122 + class Item255 { dataType="Group"; side="Independent"; @@ -4530,14 +15604,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1382.0044,5.0014391,755.89136}; + position[]={1354.7734,5.0014391,1356.4421}; }; side="Independent"; flags=6; class Attributes { }; - id=169; + id=2691; type="I_soldier_F"; }; }; @@ -4556,8 +15630,8 @@ class Mission class Item0 { linkID=0; - item0=169; - item1=168; + item0=2691; + item1=2692; class CustomData { role=2; @@ -4566,14 +15640,14 @@ class Mission }; }; }; - id=167; + id=2690; }; - class Item123 + class Item256 { dataType="Object"; class PositionInfo { - position[]={1382.0044,5.7216258,755.84094}; + position[]={1354.7734,5.7216258,1356.3917}; }; side="Independent"; flags=6; @@ -4581,17 +15655,17 @@ class Mission { skill=0.60000002; }; - id=168; + id=2692; type="I_Mortar_01_F"; }; - class Item124 + class Item257 { dataType="Logic"; class PositionInfo { - position[]={1384.5522,5,732.03235}; + position[]={1357.3213,5,1332.5833}; }; - id=170; + id=2693; type="SupportRequester"; class CustomAttributes { @@ -4731,7 +15805,7 @@ class Mission nAttributes=7; }; }; - class Item125 + class Item258 { dataType="Group"; side="Independent"; @@ -4743,14 +15817,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1386.6372,5.0014391,725.99646}; + position[]={1359.406,5.0014391,1326.547}; }; side="Independent"; flags=6; class Attributes { }; - id=175; + id=2695; type="I_helipilot_F"; }; class Item1 @@ -4758,14 +15832,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1386.6372,5.0014391,725.99646}; + position[]={1359.406,5.0014391,1326.547}; }; side="Independent"; flags=4; class Attributes { }; - id=176; + id=2696; type="I_helipilot_F"; }; }; @@ -4784,8 +15858,8 @@ class Mission class Item0 { linkID=0; - item0=175; - item1=174; + item0=2695; + item1=2697; class CustomData { role=1; @@ -4794,8 +15868,8 @@ class Mission class Item1 { linkID=1; - item0=176; - item1=174; + item0=2696; + item1=2697; class CustomData { role=2; @@ -4804,14 +15878,14 @@ class Mission }; }; }; - id=173; + id=2694; }; - class Item126 + class Item259 { dataType="Object"; class PositionInfo { - position[]={1386.6372,6.5310755,725.94641}; + position[]={1359.406,6.5310755,1326.4969}; }; side="Independent"; flags=6; @@ -4820,10 +15894,10 @@ class Mission skill=0.60000002; receiveRemoteTargets=1; }; - id=174; + id=2697; type="I_Heli_light_03_dynamicLoadout_F"; }; - class Item127 + class Item260 { dataType="Group"; side="Independent"; @@ -4835,14 +15909,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1382.479,5.0014391,725.98999}; + position[]={1355.248,5.0014391,1326.541}; }; side="Independent"; flags=6; class Attributes { }; - id=179; + id=2699; type="I_soldier_F"; }; }; @@ -4861,8 +15935,8 @@ class Mission class Item0 { linkID=0; - item0=179; - item1=178; + item0=2699; + item1=2700; class CustomData { role=2; @@ -4871,14 +15945,14 @@ class Mission }; }; }; - id=177; + id=2698; }; - class Item128 + class Item261 { dataType="Object"; class PositionInfo { - position[]={1382.479,5.7216258,725.93958}; + position[]={1355.248,5.7216258,1326.4906}; }; side="Independent"; flags=6; @@ -4886,17 +15960,17 @@ class Mission { skill=0.60000002; }; - id=178; + id=2700; type="I_Mortar_01_F"; }; - class Item129 + class Item262 { dataType="Logic"; class PositionInfo { position[]={411.24136,5,1347.6611}; }; - id=180; + id=2701; type="SupportRequester"; class CustomAttributes { @@ -5036,7 +16110,7 @@ class Mission nAttributes=7; }; }; - class Item130 + class Item263 { dataType="Group"; side="West"; @@ -5055,7 +16129,7 @@ class Mission class Attributes { }; - id=185; + id=2703; type="B_Soldier_F"; }; }; @@ -5074,8 +16148,8 @@ class Mission class Item0 { linkID=0; - item0=185; - item1=184; + item0=2703; + item1=2704; class CustomData { role=2; @@ -5084,9 +16158,9 @@ class Mission }; }; }; - id=183; + id=2702; }; - class Item131 + class Item264 { dataType="Object"; class PositionInfo @@ -5099,10 +16173,10 @@ class Mission { skill=0.60000002; }; - id=184; + id=2704; type="B_Mortar_01_F"; }; - class Item132 + class Item265 { dataType="Group"; side="West"; @@ -5121,7 +16195,7 @@ class Mission class Attributes { }; - id=188; + id=2706; type="B_Helipilot_F"; }; class Item1 @@ -5136,7 +16210,7 @@ class Mission class Attributes { }; - id=189; + id=2707; type="B_Helipilot_F"; }; }; @@ -5155,8 +16229,8 @@ class Mission class Item0 { linkID=0; - item0=188; - item1=187; + item0=2706; + item1=2708; class CustomData { role=1; @@ -5165,8 +16239,8 @@ class Mission class Item1 { linkID=1; - item0=189; - item1=187; + item0=2707; + item1=2708; class CustomData { role=2; @@ -5175,10 +16249,10 @@ class Mission }; }; }; - id=186; + id=2705; atlOffset=-0.37890196; }; - class Item133 + class Item266 { dataType="Object"; class PositionInfo @@ -5192,11 +16266,11 @@ class Mission skill=0.60000002; receiveRemoteTargets=1; }; - id=187; + id=2708; type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=-0.37890196; }; - class Item134 + class Item267 { dataType="Group"; side="West"; @@ -5222,7 +16296,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=191; + id=2710; type="B_officer_F"; class CustomAttributes { @@ -5267,7 +16341,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=192; + id=2711; type="B_officer_F"; class CustomAttributes { @@ -5311,7 +16385,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=193; + id=2712; type="B_soldier_UAV_F"; class CustomAttributes { @@ -5355,7 +16429,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=194; + id=2713; type="B_medic_F"; class CustomAttributes { @@ -5386,7 +16460,7 @@ class Mission { name="GrpNATO_CO"; }; - id=190; + id=2709; class CustomAttributes { class Attribute0 @@ -5411,7 +16485,7 @@ class Mission nAttributes=1; }; }; - class Item135 + class Item268 { dataType="Group"; side="West"; @@ -5437,7 +16511,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=196; + id=2715; type="B_officer_F"; class CustomAttributes { @@ -5482,7 +16556,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=197; + id=2716; type="B_officer_F"; class CustomAttributes { @@ -5526,7 +16600,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=198; + id=2717; type="B_soldier_UAV_F"; class CustomAttributes { @@ -5570,7 +16644,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=199; + id=2718; type="B_medic_F"; class CustomAttributes { @@ -5601,7 +16675,7 @@ class Mission { name="GrpNATO_DC"; }; - id=195; + id=2714; class CustomAttributes { class Attribute0 @@ -5626,7 +16700,7 @@ class Mission nAttributes=1; }; }; - class Item136 + class Item269 { dataType="Group"; side="West"; @@ -5638,7 +16712,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={431.17886,5.0014391,1304.6467}; + position[]={431.17899,4.8214393,1304.6471}; }; side="West"; flags=6; @@ -5652,15 +16726,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=201; + id=2720; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={431.17886,5.0014391,1304.6467}; + position[]={431.17899,4.8214393,1304.6471}; }; side="West"; flags=4; @@ -5674,15 +16749,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=202; + id=2721; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={431.17886,5.0014391,1304.6467}; + position[]={431.17899,4.8214393,1304.6471}; }; side="West"; flags=4; @@ -5695,8 +16771,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=203; + id=2722; type="B_crew_F"; + atlOffset=-0.17999983; }; }; class Attributes @@ -5715,8 +16792,8 @@ class Mission class Item0 { linkID=0; - item0=201; - item1=13; + item0=2720; + item1=2564; class CustomData { role=2; @@ -5726,8 +16803,8 @@ class Mission class Item1 { linkID=1; - item0=202; - item1=13; + item0=2721; + item1=2564; class CustomData { role=2; @@ -5737,8 +16814,8 @@ class Mission class Item2 { linkID=2; - item0=203; - item1=13; + item0=2722; + item1=2564; class CustomData { role=1; @@ -5746,7 +16823,7 @@ class Mission }; }; }; - id=200; + id=2719; atlOffset=-0.17999983; class CustomAttributes { @@ -5772,7 +16849,7 @@ class Mission nAttributes=1; }; }; - class Item137 + class Item270 { dataType="Group"; side="West"; @@ -5798,8 +16875,31 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=205; + id=2724; type="B_Soldier_SL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male09ENG"; + }; + }; + }; + nAttributes=1; + }; }; class Item1 { @@ -5819,15 +16919,38 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=206; + id=2725; type="B_medic_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male09ENG"; + }; + }; + }; + nAttributes=1; + }; }; }; class Attributes { name="GrpNATO_ASL"; }; - id=204; + id=2723; class CustomAttributes { class Attribute0 @@ -5852,7 +16975,7 @@ class Mission nAttributes=1; }; }; - class Item138 + class Item271 { dataType="Group"; side="West"; @@ -5878,7 +17001,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=208; + id=2727; type="B_Soldier_TL_F"; }; class Item1 @@ -5900,7 +17023,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=209; + id=2728; type="B_soldier_AR_F"; }; class Item2 @@ -5922,7 +17045,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=210; + id=2729; type="B_soldier_AR_F"; }; class Item3 @@ -5944,7 +17067,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=211; + id=2730; type="B_soldier_LAT_F"; }; class Item4 @@ -5965,7 +17088,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=212; + id=2731; type="B_Soldier_F"; }; class Item5 @@ -5986,7 +17109,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=213; + id=2732; type="B_Soldier_F"; }; }; @@ -5994,7 +17117,7 @@ class Mission { name="GrpNATO_A1"; }; - id=207; + id=2726; class CustomAttributes { class Attribute0 @@ -6019,7 +17142,7 @@ class Mission nAttributes=1; }; }; - class Item139 + class Item272 { dataType="Group"; side="West"; @@ -6045,7 +17168,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=215; + id=2734; type="B_Soldier_TL_F"; }; class Item1 @@ -6067,7 +17190,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=216; + id=2735; type="B_soldier_AR_F"; }; class Item2 @@ -6089,7 +17212,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=217; + id=2736; type="B_soldier_AR_F"; }; class Item3 @@ -6111,7 +17234,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=218; + id=2737; type="B_soldier_LAT_F"; }; class Item4 @@ -6132,7 +17255,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=219; + id=2738; type="B_Soldier_F"; }; class Item5 @@ -6153,7 +17276,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=220; + id=2739; type="B_Soldier_F"; }; }; @@ -6161,7 +17284,7 @@ class Mission { name="GrpNATO_A2"; }; - id=214; + id=2733; class CustomAttributes { class Attribute0 @@ -6186,7 +17309,7 @@ class Mission nAttributes=1; }; }; - class Item140 + class Item273 { dataType="Group"; side="West"; @@ -6198,7 +17321,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={470.42007,5.0014391,1304.22}; + position[]={470.42001,4.8214393,1304.2201}; }; side="West"; flags=6; @@ -6212,15 +17335,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=222; + id=2741; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={470.42007,5.0014391,1304.22}; + position[]={470.42001,4.8214393,1304.2201}; }; side="West"; flags=4; @@ -6234,15 +17358,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=223; + id=2742; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={470.42007,5.0014391,1304.22}; + position[]={470.42001,4.8214393,1304.2201}; }; side="West"; flags=4; @@ -6255,8 +17380,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=224; + id=2743; type="B_crew_F"; + atlOffset=-0.17999983; }; }; class Attributes @@ -6275,8 +17401,8 @@ class Mission class Item0 { linkID=0; - item0=222; - item1=10; + item0=2741; + item1=2561; class CustomData { role=2; @@ -6286,8 +17412,8 @@ class Mission class Item1 { linkID=1; - item0=223; - item1=10; + item0=2742; + item1=2561; class CustomData { role=2; @@ -6297,8 +17423,8 @@ class Mission class Item2 { linkID=2; - item0=224; - item1=10; + item0=2743; + item1=2561; class CustomData { role=1; @@ -6306,7 +17432,7 @@ class Mission }; }; }; - id=221; + id=2740; atlOffset=-0.17999983; class CustomAttributes { @@ -6332,7 +17458,7 @@ class Mission nAttributes=1; }; }; - class Item141 + class Item274 { dataType="Group"; side="West"; @@ -6358,7 +17484,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=226; + id=2745; type="B_Soldier_SL_F"; }; class Item1 @@ -6379,7 +17505,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=227; + id=2746; type="B_medic_F"; }; }; @@ -6387,7 +17513,7 @@ class Mission { name="GrpNATO_BSL"; }; - id=225; + id=2744; class CustomAttributes { class Attribute0 @@ -6412,7 +17538,7 @@ class Mission nAttributes=1; }; }; - class Item142 + class Item275 { dataType="Group"; side="West"; @@ -6438,7 +17564,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=229; + id=2748; type="B_Soldier_TL_F"; }; class Item1 @@ -6460,7 +17586,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=230; + id=2749; type="B_soldier_AR_F"; }; class Item2 @@ -6482,7 +17608,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=231; + id=2750; type="B_soldier_AR_F"; }; class Item3 @@ -6504,7 +17630,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=232; + id=2751; type="B_soldier_LAT_F"; }; class Item4 @@ -6525,7 +17651,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=233; + id=2752; type="B_Soldier_F"; }; class Item5 @@ -6546,7 +17672,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=234; + id=2753; type="B_Soldier_F"; }; }; @@ -6554,7 +17680,7 @@ class Mission { name="GrpNATO_B1"; }; - id=228; + id=2747; class CustomAttributes { class Attribute0 @@ -6579,7 +17705,7 @@ class Mission nAttributes=1; }; }; - class Item143 + class Item276 { dataType="Group"; side="West"; @@ -6605,7 +17731,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=236; + id=2755; type="B_Soldier_TL_F"; }; class Item1 @@ -6627,7 +17753,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=237; + id=2756; type="B_soldier_AR_F"; }; class Item2 @@ -6649,7 +17775,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=238; + id=2757; type="B_soldier_AR_F"; }; class Item3 @@ -6671,7 +17797,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=239; + id=2758; type="B_soldier_LAT_F"; }; class Item4 @@ -6692,7 +17818,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=240; + id=2759; type="B_Soldier_F"; }; class Item5 @@ -6713,7 +17839,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=241; + id=2760; type="B_Soldier_F"; }; }; @@ -6721,7 +17847,7 @@ class Mission { name="GrpNATO_B2"; }; - id=235; + id=2754; class CustomAttributes { class Attribute0 @@ -6746,7 +17872,7 @@ class Mission nAttributes=1; }; }; - class Item144 + class Item277 { dataType="Group"; side="West"; @@ -6758,7 +17884,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={517.84583,5.0014391,1301.2805}; + position[]={517.84601,4.8214393,1301.28}; }; side="West"; flags=6; @@ -6772,15 +17898,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=243; + id=2762; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={517.84583,5.0014391,1301.2805}; + position[]={517.84601,4.8214393,1301.28}; }; side="West"; flags=4; @@ -6794,15 +17921,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=244; + id=2763; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={517.84583,5.0014391,1301.2805}; + position[]={517.84601,4.8214393,1301.28}; }; side="West"; flags=4; @@ -6815,8 +17943,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=245; + id=2764; type="B_crew_F"; + atlOffset=-0.17999983; }; }; class Attributes @@ -6835,8 +17964,8 @@ class Mission class Item0 { linkID=0; - item0=243; - item1=11; + item0=2762; + item1=2562; class CustomData { role=2; @@ -6846,8 +17975,8 @@ class Mission class Item1 { linkID=1; - item0=244; - item1=11; + item0=2763; + item1=2562; class CustomData { role=2; @@ -6857,8 +17986,8 @@ class Mission class Item2 { linkID=2; - item0=245; - item1=11; + item0=2764; + item1=2562; class CustomData { role=1; @@ -6866,7 +17995,7 @@ class Mission }; }; }; - id=242; + id=2761; atlOffset=-0.17999983; class CustomAttributes { @@ -6892,7 +18021,7 @@ class Mission nAttributes=1; }; }; - class Item145 + class Item278 { dataType="Group"; side="West"; @@ -6918,7 +18047,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=247; + id=2766; type="B_Soldier_SL_F"; class CustomAttributes { @@ -6962,7 +18091,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=248; + id=2767; type="B_medic_F"; }; }; @@ -6970,7 +18099,7 @@ class Mission { name="GrpNATO_CSL"; }; - id=246; + id=2765; class CustomAttributes { class Attribute0 @@ -6995,7 +18124,7 @@ class Mission nAttributes=1; }; }; - class Item146 + class Item279 { dataType="Group"; side="West"; @@ -7021,7 +18150,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=250; + id=2769; type="B_Soldier_TL_F"; }; class Item1 @@ -7043,7 +18172,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=251; + id=2770; type="B_soldier_AR_F"; }; class Item2 @@ -7065,7 +18194,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=252; + id=2771; type="B_soldier_AR_F"; }; class Item3 @@ -7087,7 +18216,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=253; + id=2772; type="B_soldier_LAT_F"; }; class Item4 @@ -7108,7 +18237,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=254; + id=2773; type="B_Soldier_F"; }; class Item5 @@ -7129,7 +18258,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=255; + id=2774; type="B_Soldier_F"; }; }; @@ -7137,7 +18266,7 @@ class Mission { name="GrpNATO_C1"; }; - id=249; + id=2768; class CustomAttributes { class Attribute0 @@ -7162,7 +18291,7 @@ class Mission nAttributes=1; }; }; - class Item147 + class Item280 { dataType="Group"; side="West"; @@ -7188,7 +18317,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=257; + id=2776; type="B_Soldier_TL_F"; }; class Item1 @@ -7210,7 +18339,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=258; + id=2777; type="B_soldier_AR_F"; }; class Item2 @@ -7232,7 +18361,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=259; + id=2778; type="B_soldier_AR_F"; }; class Item3 @@ -7254,7 +18383,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=260; + id=2779; type="B_soldier_LAT_F"; }; class Item4 @@ -7275,7 +18404,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=261; + id=2780; type="B_Soldier_F"; }; class Item5 @@ -7296,7 +18425,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=262; + id=2781; type="B_Soldier_F"; }; }; @@ -7304,7 +18433,7 @@ class Mission { name="GrpNATO_C2"; }; - id=256; + id=2775; class CustomAttributes { class Attribute0 @@ -7329,7 +18458,7 @@ class Mission nAttributes=1; }; }; - class Item148 + class Item281 { dataType="Group"; side="West"; @@ -7341,7 +18470,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={560.05579,5.0014391,1302.509}; + position[]={560.05603,4.8214393,1302.509}; }; side="West"; flags=6; @@ -7355,15 +18484,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=264; + id=2783; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={560.05579,5.0014391,1302.509}; + position[]={560.05603,4.8214393,1302.509}; }; side="West"; flags=4; @@ -7377,15 +18507,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=265; + id=2784; type="B_crew_F"; + atlOffset=-0.17999983; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={560.05579,5.0014391,1302.509}; + position[]={560.05603,4.8214393,1302.509}; }; side="West"; flags=4; @@ -7398,8 +18529,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=266; + id=2785; type="B_crew_F"; + atlOffset=-0.17999983; }; }; class Attributes @@ -7418,8 +18550,8 @@ class Mission class Item0 { linkID=0; - item0=264; - item1=12; + item0=2783; + item1=2563; class CustomData { role=2; @@ -7429,8 +18561,8 @@ class Mission class Item1 { linkID=1; - item0=265; - item1=12; + item0=2784; + item1=2563; class CustomData { role=2; @@ -7440,8 +18572,8 @@ class Mission class Item2 { linkID=2; - item0=266; - item1=12; + item0=2785; + item1=2563; class CustomData { role=1; @@ -7449,7 +18581,7 @@ class Mission }; }; }; - id=263; + id=2782; atlOffset=-0.17999983; class CustomAttributes { @@ -7475,7 +18607,7 @@ class Mission nAttributes=1; }; }; - class Item149 + class Item282 { dataType="Group"; side="West"; @@ -7501,7 +18633,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=268; + id=2787; type="B_Soldier_TL_F"; }; class Item1 @@ -7522,7 +18654,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=269; + id=2788; type="B_soldier_AR_F"; }; class Item2 @@ -7544,7 +18676,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1209; + id=2789; type="B_soldier_AAR_F"; }; }; @@ -7552,7 +18684,7 @@ class Mission { name="GrpNATO_MMG1"; }; - id=267; + id=2786; class CustomAttributes { class Attribute0 @@ -7577,7 +18709,7 @@ class Mission nAttributes=1; }; }; - class Item150 + class Item283 { dataType="Group"; side="West"; @@ -7603,7 +18735,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=271; + id=2791; type="B_Soldier_TL_F"; }; class Item1 @@ -7624,7 +18756,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=272; + id=2792; type="B_soldier_AR_F"; }; class Item2 @@ -7646,7 +18778,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1210; + id=2793; type="B_soldier_AAR_F"; }; }; @@ -7654,7 +18786,7 @@ class Mission { name="GrpNATO_MMG2"; }; - id=270; + id=2790; class CustomAttributes { class Attribute0 @@ -7679,7 +18811,7 @@ class Mission nAttributes=1; }; }; - class Item151 + class Item284 { dataType="Group"; side="West"; @@ -7705,7 +18837,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=274; + id=2795; type="B_Soldier_TL_F"; }; class Item1 @@ -7726,7 +18858,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=275; + id=2796; type="B_soldier_AT_F"; atlOffset=0.035766125; }; @@ -7749,7 +18881,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1211; + id=2797; type="B_soldier_AAT_F"; }; }; @@ -7757,7 +18889,7 @@ class Mission { name="GrpNATO_MAT1"; }; - id=273; + id=2794; class CustomAttributes { class Attribute0 @@ -7782,7 +18914,7 @@ class Mission nAttributes=1; }; }; - class Item152 + class Item285 { dataType="Group"; side="West"; @@ -7808,7 +18940,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=277; + id=2799; type="B_Soldier_TL_F"; }; class Item1 @@ -7830,7 +18962,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=278; + id=2800; type="B_soldier_AT_F"; }; class Item2 @@ -7852,7 +18984,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1212; + id=2801; type="B_soldier_AAT_F"; }; }; @@ -7860,7 +18992,7 @@ class Mission { name="GrpNATO_MAT2"; }; - id=276; + id=2798; class CustomAttributes { class Attribute0 @@ -7885,7 +19017,7 @@ class Mission nAttributes=1; }; }; - class Item153 + class Item286 { dataType="Group"; side="West"; @@ -7911,7 +19043,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=280; + id=2803; type="B_Soldier_TL_F"; }; class Item1 @@ -7932,7 +19064,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=281; + id=2804; type="B_support_MG_F"; }; }; @@ -7940,7 +19072,7 @@ class Mission { name="GrpNATO_HMG1"; }; - id=279; + id=2802; class CustomAttributes { class Attribute0 @@ -7965,7 +19097,7 @@ class Mission nAttributes=1; }; }; - class Item154 + class Item287 { dataType="Group"; side="West"; @@ -7991,7 +19123,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=283; + id=2806; type="B_Soldier_TL_F"; }; class Item1 @@ -8013,7 +19145,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=284; + id=2807; type="B_soldier_AT_F"; }; class Item2 @@ -8035,7 +19167,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1213; + id=2808; type="B_soldier_AAT_F"; }; }; @@ -8043,7 +19175,7 @@ class Mission { name="GrpNATO_HAT1"; }; - id=282; + id=2805; class CustomAttributes { class Attribute0 @@ -8068,7 +19200,7 @@ class Mission nAttributes=1; }; }; - class Item155 + class Item288 { dataType="Group"; side="West"; @@ -8094,7 +19226,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=286; + id=2810; type="B_support_AMort_F"; atlOffset=0.59719753; }; @@ -8116,7 +19248,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=287; + id=2811; type="B_support_Mort_F"; atlOffset=0.6367197; }; @@ -8125,7 +19257,7 @@ class Mission { name="GrpNATO_MTR1"; }; - id=285; + id=2809; atlOffset=0.59719753; class CustomAttributes { @@ -8151,7 +19283,7 @@ class Mission nAttributes=1; }; }; - class Item156 + class Item289 { dataType="Group"; side="West"; @@ -8177,7 +19309,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=289; + id=2813; type="B_soldier_AAA_F"; atlOffset=0.71500015; }; @@ -8199,7 +19331,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=290; + id=2814; type="B_soldier_AA_F"; atlOffset=0.79047394; }; @@ -8221,7 +19353,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1160; + id=2815; type="B_soldier_AAA_F"; atlOffset=0.71500015; }; @@ -8230,7 +19362,7 @@ class Mission { name="GrpNATO_MSAM1"; }; - id=288; + id=2812; atlOffset=0.71500015; class CustomAttributes { @@ -8256,7 +19388,7 @@ class Mission nAttributes=1; }; }; - class Item157 + class Item290 { dataType="Group"; side="West"; @@ -8282,7 +19414,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=292; + id=2817; type="B_soldier_AAA_F"; atlOffset=0.72082043; }; @@ -8304,7 +19436,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=293; + id=2818; type="B_soldier_AA_F"; atlOffset=0.71391106; }; @@ -8313,7 +19445,7 @@ class Mission { name="GrpNATO_HSAM1"; }; - id=291; + id=2816; atlOffset=0.72082043; class CustomAttributes { @@ -8339,7 +19471,7 @@ class Mission nAttributes=1; }; }; - class Item158 + class Item291 { dataType="Group"; side="West"; @@ -8365,7 +19497,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=295; + id=2820; type="B_spotter_F"; atlOffset=0.65095043; }; @@ -8387,7 +19519,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=296; + id=2821; type="B_sniper_F"; atlOffset=0.65321445; }; @@ -8396,7 +19528,7 @@ class Mission { name="GrpNATO_ST1"; }; - id=294; + id=2819; atlOffset=0.65095043; class CustomAttributes { @@ -8422,7 +19554,7 @@ class Mission nAttributes=1; }; }; - class Item159 + class Item292 { dataType="Group"; side="West"; @@ -8448,7 +19580,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=298; + id=2823; type="B_engineer_F"; atlOffset=0.2694006; }; @@ -8470,7 +19602,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=299; + id=2824; type="B_engineer_F"; atlOffset=0.10848618; }; @@ -8491,7 +19623,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=300; + id=2825; type="B_engineer_F"; atlOffset=0.30563259; }; @@ -8513,7 +19645,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=301; + id=2826; type="B_engineer_F"; atlOffset=0.093743324; }; @@ -8522,7 +19654,7 @@ class Mission { name="GrpNATO_ENG1"; }; - id=297; + id=2822; atlOffset=0.2694006; class CustomAttributes { @@ -8548,7 +19680,7 @@ class Mission nAttributes=1; }; }; - class Item160 + class Item293 { dataType="Group"; side="West"; @@ -8574,7 +19706,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=303; + id=2828; type="B_diver_TL_F"; }; class Item1 @@ -8596,7 +19728,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=304; + id=2829; type="B_diver_F"; }; class Item2 @@ -8618,7 +19750,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=305; + id=2830; type="B_diver_F"; }; class Item3 @@ -8640,7 +19772,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=306; + id=2831; type="B_diver_F"; }; }; @@ -8648,7 +19780,7 @@ class Mission { name="GrpNATO_DT1"; }; - id=302; + id=2827; class CustomAttributes { class Attribute0 @@ -8673,7 +19805,7 @@ class Mission nAttributes=1; }; }; - class Item161 + class Item294 { dataType="Group"; side="West"; @@ -8685,7 +19817,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={430.91617,5.0014391,1278.9602}; + position[]={430.91599,4.924439,1278.9601}; }; side="West"; flags=6; @@ -8699,15 +19831,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=308; + id=2833; type="B_crew_F"; + atlOffset=-0.077000141; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={430.91617,5.0014391,1278.9602}; + position[]={430.91599,4.924439,1278.9601}; }; side="West"; flags=4; @@ -8721,15 +19854,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=309; + id=2834; type="B_crew_F"; + atlOffset=-0.077000141; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={430.91617,5.0014391,1278.9602}; + position[]={430.91599,4.924439,1278.9601}; }; side="West"; flags=4; @@ -8742,8 +19876,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=310; + id=2835; type="B_crew_F"; + atlOffset=-0.077000141; }; }; class Attributes @@ -8762,8 +19897,8 @@ class Mission class Item0 { linkID=0; - item0=308; - item1=73; + item0=2833; + item1=2624; class CustomData { role=2; @@ -8773,8 +19908,8 @@ class Mission class Item1 { linkID=1; - item0=309; - item1=73; + item0=2834; + item1=2624; class CustomData { role=2; @@ -8784,8 +19919,8 @@ class Mission class Item2 { linkID=2; - item0=310; - item1=73; + item0=2835; + item1=2624; class CustomData { role=1; @@ -8793,8 +19928,8 @@ class Mission }; }; }; - id=307; - atlOffset=-0.076682091; + id=2832; + atlOffset=-0.077000141; class CustomAttributes { class Attribute0 @@ -8819,7 +19954,7 @@ class Mission nAttributes=1; }; }; - class Item162 + class Item295 { dataType="Group"; side="West"; @@ -8831,7 +19966,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={470.5939,5.0014391,1279.1477}; + position[]={470.59399,4.924439,1279.1481}; }; side="West"; flags=6; @@ -8845,15 +19980,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=312; + id=2837; type="B_crew_F"; + atlOffset=-0.077000141; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={470.5939,5.0014391,1279.1477}; + position[]={470.59399,4.924439,1279.1481}; }; side="West"; flags=4; @@ -8867,15 +20003,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=313; + id=2838; type="B_crew_F"; + atlOffset=-0.077000141; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={470.5939,5.0014391,1279.1477}; + position[]={470.59399,4.924439,1279.1481}; }; side="West"; flags=4; @@ -8888,8 +20025,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=314; + id=2839; type="B_crew_F"; + atlOffset=-0.077000141; }; }; class Attributes @@ -8908,8 +20046,8 @@ class Mission class Item0 { linkID=0; - item0=312; - item1=74; + item0=2837; + item1=2625; class CustomData { role=2; @@ -8919,8 +20057,8 @@ class Mission class Item1 { linkID=1; - item0=313; - item1=74; + item0=2838; + item1=2625; class CustomData { role=2; @@ -8930,8 +20068,8 @@ class Mission class Item2 { linkID=2; - item0=314; - item1=74; + item0=2839; + item1=2625; class CustomData { role=1; @@ -8939,8 +20077,8 @@ class Mission }; }; }; - id=311; - atlOffset=-0.076682091; + id=2836; + atlOffset=-0.077000141; class CustomAttributes { class Attribute0 @@ -8965,7 +20103,7 @@ class Mission nAttributes=1; }; }; - class Item163 + class Item296 { dataType="Group"; side="West"; @@ -8977,7 +20115,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.48157,5.0014391,1279.7727}; + position[]={516.48199,4.812439,1279.7731}; }; side="West"; flags=6; @@ -8991,15 +20129,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=316; + id=2841; type="B_crew_F"; + atlOffset=-0.18900013; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={516.48157,5.0014391,1279.7727}; + position[]={516.48199,4.812439,1279.7731}; }; side="West"; flags=4; @@ -9013,15 +20152,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=317; + id=2842; type="B_crew_F"; + atlOffset=-0.18900013; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={516.48157,5.0014391,1279.7727}; + position[]={516.48199,4.812439,1279.7731}; }; side="West"; flags=4; @@ -9034,8 +20174,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=318; + id=2843; type="B_crew_F"; + atlOffset=-0.18900013; }; }; class Attributes @@ -9054,8 +20195,8 @@ class Mission class Item0 { linkID=0; - item0=316; - item1=30; + item0=2841; + item1=2581; class CustomData { role=2; @@ -9065,8 +20206,8 @@ class Mission class Item1 { linkID=1; - item0=317; - item1=30; + item0=2842; + item1=2581; class CustomData { role=2; @@ -9076,8 +20217,8 @@ class Mission class Item2 { linkID=2; - item0=318; - item1=30; + item0=2843; + item1=2581; class CustomData { role=1; @@ -9085,8 +20226,8 @@ class Mission }; }; }; - id=315; - atlOffset=-0.18917751; + id=2840; + atlOffset=-0.18900013; class CustomAttributes { class Attribute0 @@ -9111,7 +20252,7 @@ class Mission nAttributes=1; }; }; - class Item164 + class Item297 { dataType="Group"; side="West"; @@ -9123,7 +20264,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.07535,5.0014391,1248.4297}; + position[]={432.07501,5.0014391,1248.4301}; }; side="West"; flags=6; @@ -9137,7 +20278,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=320; + id=2845; type="B_Helipilot_F"; }; class Item1 @@ -9145,7 +20286,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.07535,5.0014391,1248.4297}; + position[]={432.07501,5.0014391,1248.4301}; }; side="West"; flags=4; @@ -9159,7 +20300,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=321; + id=2846; type="B_Helipilot_F"; }; class Item2 @@ -9167,7 +20308,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.07535,5.0014391,1248.4297}; + position[]={432.07501,5.0014391,1248.4301}; }; side="West"; flags=4; @@ -9181,7 +20322,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=322; + id=2847; type="B_helicrew_F"; }; class Item3 @@ -9189,7 +20330,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.07535,5.0014391,1248.4297}; + position[]={432.07501,5.0014391,1248.4301}; }; side="West"; flags=4; @@ -9202,7 +20343,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=323; + id=2848; type="B_helicrew_F"; }; }; @@ -9222,8 +20363,8 @@ class Mission class Item0 { linkID=0; - item0=320; - item1=0; + item0=2845; + item1=2551; class CustomData { role=1; @@ -9232,8 +20373,8 @@ class Mission class Item1 { linkID=1; - item0=321; - item1=0; + item0=2846; + item1=2551; class CustomData { role=2; @@ -9243,8 +20384,8 @@ class Mission class Item2 { linkID=2; - item0=322; - item1=0; + item0=2847; + item1=2551; class CustomData { role=2; @@ -9254,8 +20395,8 @@ class Mission class Item3 { linkID=3; - item0=323; - item1=0; + item0=2848; + item1=2551; class CustomData { role=2; @@ -9264,7 +20405,7 @@ class Mission }; }; }; - id=319; + id=2844; class CustomAttributes { class Attribute0 @@ -9289,7 +20430,7 @@ class Mission nAttributes=1; }; }; - class Item165 + class Item298 { dataType="Group"; side="West"; @@ -9301,7 +20442,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.47964,5.0014391,1220.6484}; + position[]={432.48001,5.0014391,1220.6481}; }; side="West"; flags=6; @@ -9315,7 +20456,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=325; + id=2850; type="B_Helipilot_F"; }; class Item1 @@ -9323,7 +20464,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.47964,5.0014391,1220.6484}; + position[]={432.48001,5.0014391,1220.6481}; }; side="West"; flags=4; @@ -9337,7 +20478,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=326; + id=2851; type="B_Helipilot_F"; }; class Item2 @@ -9345,7 +20486,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.47964,5.0014391,1220.6484}; + position[]={432.48001,5.0014391,1220.6481}; }; side="West"; flags=4; @@ -9359,7 +20500,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=327; + id=2852; type="B_helicrew_F"; }; class Item3 @@ -9367,7 +20508,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={432.47964,5.0014391,1220.6484}; + position[]={432.48001,5.0014391,1220.6481}; }; side="West"; flags=4; @@ -9380,7 +20521,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=328; + id=2853; type="B_helicrew_F"; }; }; @@ -9400,8 +20541,8 @@ class Mission class Item0 { linkID=0; - item0=325; - item1=3; + item0=2850; + item1=2554; class CustomData { role=1; @@ -9410,8 +20551,8 @@ class Mission class Item1 { linkID=1; - item0=326; - item1=3; + item0=2851; + item1=2554; class CustomData { role=2; @@ -9421,8 +20562,8 @@ class Mission class Item2 { linkID=2; - item0=327; - item1=3; + item0=2852; + item1=2554; class CustomData { role=2; @@ -9432,8 +20573,8 @@ class Mission class Item3 { linkID=3; - item0=328; - item1=3; + item0=2853; + item1=2554; class CustomData { role=2; @@ -9442,7 +20583,7 @@ class Mission }; }; }; - id=324; + id=2849; class CustomAttributes { class Attribute0 @@ -9467,7 +20608,7 @@ class Mission nAttributes=1; }; }; - class Item166 + class Item299 { dataType="Group"; side="West"; @@ -9479,7 +20620,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={467.55972,5.0014391,1249.0986}; + position[]={467.56,5.0014391,1249.099}; }; side="West"; flags=6; @@ -9493,7 +20634,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=330; + id=2855; type="B_Helipilot_F"; }; class Item1 @@ -9501,7 +20642,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={467.55972,5.0014391,1249.0986}; + position[]={467.56,5.0014391,1249.099}; }; side="West"; flags=4; @@ -9515,7 +20656,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=331; + id=2856; type="B_Helipilot_F"; }; class Item2 @@ -9523,7 +20664,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={467.55972,5.0014391,1249.0986}; + position[]={467.56,5.0014391,1249.099}; }; side="West"; flags=4; @@ -9537,7 +20678,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=332; + id=2857; type="B_helicrew_F"; }; class Item3 @@ -9545,7 +20686,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={467.55972,5.0014391,1249.0986}; + position[]={467.56,5.0014391,1249.099}; }; side="West"; flags=4; @@ -9558,7 +20699,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=333; + id=2858; type="B_helicrew_F"; }; }; @@ -9578,8 +20719,8 @@ class Mission class Item0 { linkID=0; - item0=330; - item1=4; + item0=2855; + item1=2555; class CustomData { role=1; @@ -9588,8 +20729,8 @@ class Mission class Item1 { linkID=1; - item0=331; - item1=4; + item0=2856; + item1=2555; class CustomData { role=2; @@ -9599,8 +20740,8 @@ class Mission class Item2 { linkID=2; - item0=332; - item1=4; + item0=2857; + item1=2555; class CustomData { role=2; @@ -9610,8 +20751,8 @@ class Mission class Item3 { linkID=3; - item0=333; - item1=4; + item0=2858; + item1=2555; class CustomData { role=2; @@ -9620,8 +20761,7 @@ class Mission }; }; }; - id=329; - atlOffset=-1.2397766e-005; + id=2854; class CustomAttributes { class Attribute0 @@ -9646,7 +20786,7 @@ class Mission nAttributes=1; }; }; - class Item167 + class Item300 { dataType="Group"; side="West"; @@ -9658,7 +20798,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={468.41714,5.0014391,1221.5605}; + position[]={468.41699,5.0014391,1221.5601}; }; side="West"; flags=6; @@ -9672,7 +20812,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=335; + id=2860; type="B_Helipilot_F"; }; class Item1 @@ -9680,7 +20820,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={468.41714,5.0014391,1221.5605}; + position[]={468.41699,5.0014391,1221.5601}; }; side="West"; flags=4; @@ -9694,7 +20834,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=336; + id=2861; type="B_Helipilot_F"; }; class Item2 @@ -9702,7 +20842,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={468.41714,5.0014391,1221.5605}; + position[]={468.41699,5.0014391,1221.5601}; }; side="West"; flags=4; @@ -9716,7 +20856,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=337; + id=2862; type="B_helicrew_F"; }; class Item3 @@ -9724,7 +20864,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={468.41714,5.0014391,1221.5605}; + position[]={468.41699,5.0014391,1221.5601}; }; side="West"; flags=4; @@ -9737,7 +20877,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=338; + id=2863; type="B_helicrew_F"; }; }; @@ -9757,8 +20897,8 @@ class Mission class Item0 { linkID=0; - item0=335; - item1=5; + item0=2860; + item1=2556; class CustomData { role=1; @@ -9767,8 +20907,8 @@ class Mission class Item1 { linkID=1; - item0=336; - item1=5; + item0=2861; + item1=2556; class CustomData { role=2; @@ -9778,8 +20918,8 @@ class Mission class Item2 { linkID=2; - item0=337; - item1=5; + item0=2862; + item1=2556; class CustomData { role=2; @@ -9789,8 +20929,8 @@ class Mission class Item3 { linkID=3; - item0=338; - item1=5; + item0=2863; + item1=2556; class CustomData { role=2; @@ -9799,8 +20939,7 @@ class Mission }; }; }; - id=334; - atlOffset=-1.2397766e-005; + id=2859; class CustomAttributes { class Attribute0 @@ -9825,7 +20964,7 @@ class Mission nAttributes=1; }; }; - class Item168 + class Item301 { dataType="Group"; side="West"; @@ -9837,7 +20976,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.71497,5.0014391,1249.3047}; + position[]={516.71503,5.0014391,1249.3051}; }; side="West"; flags=6; @@ -9851,7 +20990,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=340; + id=2865; type="B_Helipilot_F"; }; class Item1 @@ -9859,7 +20998,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.71497,5.0014391,1249.3047}; + position[]={516.71503,5.0014391,1249.3051}; }; side="West"; flags=4; @@ -9873,7 +21012,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=341; + id=2866; type="B_Helipilot_F"; }; class Item2 @@ -9881,7 +21020,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.71497,5.0014391,1249.3047}; + position[]={516.71503,5.0014391,1249.3051}; }; side="West"; flags=4; @@ -9895,7 +21034,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=342; + id=2867; type="B_helicrew_F"; }; class Item3 @@ -9903,7 +21042,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.71497,5.0014391,1249.3047}; + position[]={516.71503,5.0014391,1249.3051}; }; side="West"; flags=4; @@ -9916,7 +21055,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=343; + id=2868; type="B_helicrew_F"; }; }; @@ -9936,8 +21075,8 @@ class Mission class Item0 { linkID=0; - item0=340; - item1=6; + item0=2865; + item1=2557; class CustomData { role=1; @@ -9946,8 +21085,8 @@ class Mission class Item1 { linkID=1; - item0=341; - item1=6; + item0=2866; + item1=2557; class CustomData { role=2; @@ -9957,8 +21096,8 @@ class Mission class Item2 { linkID=2; - item0=342; - item1=6; + item0=2867; + item1=2557; class CustomData { role=2; @@ -9968,8 +21107,8 @@ class Mission class Item3 { linkID=3; - item0=343; - item1=6; + item0=2868; + item1=2557; class CustomData { role=2; @@ -9978,8 +21117,7 @@ class Mission }; }; }; - id=339; - atlOffset=-1.2397766e-005; + id=2864; class CustomAttributes { class Attribute0 @@ -10004,7 +21142,7 @@ class Mission nAttributes=1; }; }; - class Item169 + class Item302 { dataType="Group"; side="West"; @@ -10016,7 +21154,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.78723,5.0014391,1221.2979}; + position[]={516.78699,5.0014391,1221.2981}; }; side="West"; flags=6; @@ -10030,7 +21168,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=345; + id=2870; type="B_Helipilot_F"; }; class Item1 @@ -10038,7 +21176,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.78723,5.0014391,1221.2979}; + position[]={516.78699,5.0014391,1221.2981}; }; side="West"; flags=4; @@ -10052,7 +21190,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=346; + id=2871; type="B_Helipilot_F"; }; class Item2 @@ -10060,7 +21198,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.78723,5.0014391,1221.2979}; + position[]={516.78699,5.0014391,1221.2981}; }; side="West"; flags=4; @@ -10074,7 +21212,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=347; + id=2872; type="B_helicrew_F"; }; class Item3 @@ -10082,7 +21220,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={516.78723,5.0014391,1221.2979}; + position[]={516.78699,5.0014391,1221.2981}; }; side="West"; flags=4; @@ -10095,7 +21233,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=348; + id=2873; type="B_helicrew_F"; }; }; @@ -10115,8 +21253,8 @@ class Mission class Item0 { linkID=0; - item0=345; - item1=7; + item0=2870; + item1=2558; class CustomData { role=1; @@ -10125,8 +21263,8 @@ class Mission class Item1 { linkID=1; - item0=346; - item1=7; + item0=2871; + item1=2558; class CustomData { role=2; @@ -10136,8 +21274,8 @@ class Mission class Item2 { linkID=2; - item0=347; - item1=7; + item0=2872; + item1=2558; class CustomData { role=2; @@ -10147,8 +21285,8 @@ class Mission class Item3 { linkID=3; - item0=348; - item1=7; + item0=2873; + item1=2558; class CustomData { role=2; @@ -10157,8 +21295,7 @@ class Mission }; }; }; - id=344; - atlOffset=-1.2397766e-005; + id=2869; class CustomAttributes { class Attribute0 @@ -10183,7 +21320,7 @@ class Mission nAttributes=1; }; }; - class Item170 + class Item303 { dataType="Group"; side="West"; @@ -10195,7 +21332,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={562.33704,5.0014391,1249.8828}; + position[]={562.33698,5.0014391,1249.8831}; }; side="West"; flags=6; @@ -10209,7 +21346,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=350; + id=2875; type="B_Helipilot_F"; }; class Item1 @@ -10217,7 +21354,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={562.33704,5.0014391,1249.8828}; + position[]={562.33698,5.0014391,1249.8831}; }; side="West"; flags=4; @@ -10231,7 +21368,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=351; + id=2876; type="B_Helipilot_F"; }; class Item2 @@ -10239,7 +21376,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={562.33704,5.0014391,1249.8828}; + position[]={562.33698,5.0014391,1249.8831}; }; side="West"; flags=4; @@ -10253,7 +21390,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=352; + id=2877; type="B_helicrew_F"; }; class Item3 @@ -10261,7 +21398,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={562.33704,5.0014391,1249.8828}; + position[]={562.33698,5.0014391,1249.8831}; }; side="West"; flags=4; @@ -10274,7 +21411,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=353; + id=2878; type="B_helicrew_F"; }; }; @@ -10294,8 +21431,8 @@ class Mission class Item0 { linkID=0; - item0=350; - item1=8; + item0=2875; + item1=2559; class CustomData { role=1; @@ -10304,8 +21441,8 @@ class Mission class Item1 { linkID=1; - item0=351; - item1=8; + item0=2876; + item1=2559; class CustomData { role=2; @@ -10315,8 +21452,8 @@ class Mission class Item2 { linkID=2; - item0=352; - item1=8; + item0=2877; + item1=2559; class CustomData { role=2; @@ -10326,8 +21463,8 @@ class Mission class Item3 { linkID=3; - item0=353; - item1=8; + item0=2878; + item1=2559; class CustomData { role=2; @@ -10336,8 +21473,7 @@ class Mission }; }; }; - id=349; - atlOffset=-1.2397766e-005; + id=2874; class CustomAttributes { class Attribute0 @@ -10362,7 +21498,7 @@ class Mission nAttributes=1; }; }; - class Item171 + class Item304 { dataType="Group"; side="West"; @@ -10374,7 +21510,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={563.22864,5.0014391,1222.377}; + position[]={563.229,5.0014391,1222.3771}; }; side="West"; flags=6; @@ -10388,7 +21524,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=355; + id=2880; type="B_Helipilot_F"; }; class Item1 @@ -10396,7 +21532,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={563.22864,5.0014391,1222.377}; + position[]={563.229,5.0014391,1222.3771}; }; side="West"; flags=4; @@ -10410,7 +21546,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=356; + id=2881; type="B_Helipilot_F"; }; class Item2 @@ -10418,7 +21554,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={563.22864,5.0014391,1222.377}; + position[]={563.229,5.0014391,1222.3771}; }; side="West"; flags=4; @@ -10432,7 +21568,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=357; + id=2882; type="B_helicrew_F"; }; class Item3 @@ -10440,7 +21576,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={563.22864,5.0014391,1222.377}; + position[]={563.229,5.0014391,1222.3771}; }; side="West"; flags=4; @@ -10453,7 +21589,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=358; + id=2883; type="B_helicrew_F"; }; }; @@ -10473,8 +21609,8 @@ class Mission class Item0 { linkID=0; - item0=355; - item1=9; + item0=2880; + item1=2560; class CustomData { role=1; @@ -10483,8 +21619,8 @@ class Mission class Item1 { linkID=1; - item0=356; - item1=9; + item0=2881; + item1=2560; class CustomData { role=2; @@ -10494,8 +21630,8 @@ class Mission class Item2 { linkID=2; - item0=357; - item1=9; + item0=2882; + item1=2560; class CustomData { role=2; @@ -10505,8 +21641,8 @@ class Mission class Item3 { linkID=3; - item0=358; - item1=9; + item0=2883; + item1=2560; class CustomData { role=2; @@ -10515,8 +21651,7 @@ class Mission }; }; }; - id=354; - atlOffset=-1.2397766e-005; + id=2879; class CustomAttributes { class Attribute0 @@ -10541,7 +21676,7 @@ class Mission nAttributes=1; }; }; - class Item172 + class Item305 { dataType="Group"; side="West"; @@ -10553,7 +21688,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={431.90445,5.0014391,1193.7559}; + position[]={431.90399,5.0114393,1193.7561}; }; side="West"; flags=6; @@ -10567,15 +21702,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=360; + id=2885; type="B_Helipilot_F"; + atlOffset=0.010000229; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={431.90445,5.0014391,1193.7559}; + position[]={431.90399,5.0114393,1193.7561}; }; side="West"; flags=4; @@ -10589,8 +21725,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=361; + id=2886; type="B_Helipilot_F"; + atlOffset=0.010000229; }; }; class Attributes @@ -10609,8 +21746,8 @@ class Mission class Item0 { linkID=0; - item0=360; - item1=14; + item0=2885; + item1=2565; class CustomData { role=1; @@ -10619,8 +21756,8 @@ class Mission class Item1 { linkID=1; - item0=361; - item1=14; + item0=2886; + item1=2565; class CustomData { role=2; @@ -10629,8 +21766,8 @@ class Mission }; }; }; - id=359; - atlOffset=0.009988308; + id=2884; + atlOffset=0.010000229; class CustomAttributes { class Attribute0 @@ -10655,7 +21792,7 @@ class Mission nAttributes=1; }; }; - class Item173 + class Item306 { dataType="Group"; side="East"; @@ -10682,7 +21819,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=368; + id=2888; type="O_officer_F"; class CustomAttributes { @@ -10727,7 +21864,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=369; + id=2889; type="O_officer_F"; class CustomAttributes { @@ -10771,7 +21908,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=370; + id=2890; type="O_soldier_UAV_F"; class CustomAttributes { @@ -10815,7 +21952,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=371; + id=2891; type="O_medic_F"; class CustomAttributes { @@ -10846,7 +21983,7 @@ class Mission { name="GrpCSAT_CO"; }; - id=367; + id=2887; class CustomAttributes { class Attribute0 @@ -10871,7 +22008,7 @@ class Mission nAttributes=1; }; }; - class Item174 + class Item307 { dataType="Group"; side="East"; @@ -10898,7 +22035,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=373; + id=2893; type="O_officer_F"; }; class Item1 @@ -10921,7 +22058,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=374; + id=2894; type="O_officer_F"; }; class Item2 @@ -10942,7 +22079,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=375; + id=2895; type="O_soldier_UAV_F"; class CustomAttributes { @@ -10986,7 +22123,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=376; + id=2896; type="O_medic_F"; }; }; @@ -10994,7 +22131,7 @@ class Mission { name="GrpCSAT_DC"; }; - id=372; + id=2892; class CustomAttributes { class Attribute0 @@ -11019,7 +22156,7 @@ class Mission nAttributes=1; }; }; - class Item175 + class Item308 { dataType="Group"; side="East"; @@ -11031,7 +22168,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2381.1594,5.0014391,1301.3689}; + position[]={2381.1589,5.0014391,1301.369}; }; side="East"; flags=4; @@ -11045,7 +22182,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=379; + id=2898; type="O_crew_F"; }; class Item1 @@ -11053,7 +22190,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2381.1594,5.0014391,1301.3689}; + position[]={2381.1589,5.0014391,1301.369}; }; side="East"; flags=6; @@ -11066,7 +22203,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=380; + id=2899; type="O_crew_F"; }; }; @@ -11086,8 +22223,8 @@ class Mission class Item0 { linkID=0; - item0=379; - item1=25; + item0=2898; + item1=2576; class CustomData { role=2; @@ -11097,8 +22234,8 @@ class Mission class Item1 { linkID=1; - item0=380; - item1=25; + item0=2899; + item1=2576; class CustomData { role=1; @@ -11106,7 +22243,7 @@ class Mission }; }; }; - id=377; + id=2897; class CustomAttributes { class Attribute0 @@ -11131,7 +22268,7 @@ class Mission nAttributes=1; }; }; - class Item176 + class Item309 { dataType="Group"; side="East"; @@ -11158,7 +22295,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=382; + id=2901; type="O_Soldier_SL_F"; class CustomAttributes { @@ -11203,7 +22340,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=383; + id=2902; type="O_medic_F"; class CustomAttributes { @@ -11234,7 +22371,7 @@ class Mission { name="GrpCSAT_ASL"; }; - id=381; + id=2900; class CustomAttributes { class Attribute0 @@ -11259,7 +22396,7 @@ class Mission nAttributes=1; }; }; - class Item177 + class Item310 { dataType="Group"; side="East"; @@ -11286,7 +22423,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=385; + id=2904; type="O_Soldier_TL_F"; class CustomAttributes { @@ -11332,7 +22469,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=386; + id=2905; type="O_Soldier_AR_F"; class CustomAttributes { @@ -11378,7 +22515,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=387; + id=2906; type="O_Soldier_AR_F"; class CustomAttributes { @@ -11424,7 +22561,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=388; + id=2907; type="O_Soldier_LAT_F"; class CustomAttributes { @@ -11469,7 +22606,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=389; + id=2908; type="O_Soldier_F"; class CustomAttributes { @@ -11514,7 +22651,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=390; + id=2909; type="O_Soldier_F"; class CustomAttributes { @@ -11545,7 +22682,7 @@ class Mission { name="GrpCSAT_A1"; }; - id=384; + id=2903; class CustomAttributes { class Attribute0 @@ -11570,7 +22707,7 @@ class Mission nAttributes=1; }; }; - class Item178 + class Item311 { dataType="Group"; side="East"; @@ -11597,7 +22734,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=392; + id=2911; type="O_Soldier_TL_F"; class CustomAttributes { @@ -11643,7 +22780,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=393; + id=2912; type="O_Soldier_AR_F"; class CustomAttributes { @@ -11689,7 +22826,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=394; + id=2913; type="O_Soldier_AR_F"; class CustomAttributes { @@ -11735,7 +22872,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=395; + id=2914; type="O_Soldier_LAT_F"; class CustomAttributes { @@ -11780,7 +22917,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=396; + id=2915; type="O_Soldier_F"; class CustomAttributes { @@ -11825,7 +22962,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=397; + id=2916; type="O_Soldier_F"; class CustomAttributes { @@ -11856,7 +22993,7 @@ class Mission { name="GrpCSAT_A2"; }; - id=391; + id=2910; class CustomAttributes { class Attribute0 @@ -11881,7 +23018,7 @@ class Mission nAttributes=1; }; }; - class Item179 + class Item312 { dataType="Group"; side="East"; @@ -11893,7 +23030,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2423.8577,5.0014391,1301.1443}; + position[]={2423.8579,5.0014391,1301.144}; }; side="East"; flags=4; @@ -11907,7 +23044,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=400; + id=2918; type="O_crew_F"; }; class Item1 @@ -11915,7 +23052,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2423.8577,5.0014391,1301.1443}; + position[]={2423.8579,5.0014391,1301.144}; }; side="East"; flags=6; @@ -11928,7 +23065,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=401; + id=2919; type="O_crew_F"; }; }; @@ -11948,8 +23085,8 @@ class Mission class Item0 { linkID=0; - item0=400; - item1=26; + item0=2918; + item1=2577; class CustomData { role=2; @@ -11959,8 +23096,8 @@ class Mission class Item1 { linkID=1; - item0=401; - item1=26; + item0=2919; + item1=2577; class CustomData { role=1; @@ -11968,7 +23105,7 @@ class Mission }; }; }; - id=398; + id=2917; class CustomAttributes { class Attribute0 @@ -11993,7 +23130,7 @@ class Mission nAttributes=1; }; }; - class Item180 + class Item313 { dataType="Group"; side="East"; @@ -12020,11 +23157,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=403; + id=2921; type="O_Soldier_SL_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01PER"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -12043,7 +23199,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; class Item1 @@ -12065,11 +23221,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=404; + id=2922; type="O_medic_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01PER"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -12088,7 +23263,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; }; @@ -12096,7 +23271,7 @@ class Mission { name="GrpCSAT_BSL"; }; - id=402; + id=2920; class CustomAttributes { class Attribute0 @@ -12121,7 +23296,7 @@ class Mission nAttributes=1; }; }; - class Item181 + class Item314 { dataType="Group"; side="East"; @@ -12148,7 +23323,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=406; + id=2924; type="O_Soldier_TL_F"; class CustomAttributes { @@ -12194,7 +23369,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=407; + id=2925; type="O_Soldier_AR_F"; class CustomAttributes { @@ -12240,7 +23415,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=408; + id=2926; type="O_Soldier_AR_F"; class CustomAttributes { @@ -12286,7 +23461,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=409; + id=2927; type="O_Soldier_LAT_F"; class CustomAttributes { @@ -12331,7 +23506,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=410; + id=2928; type="O_Soldier_F"; class CustomAttributes { @@ -12376,7 +23551,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=411; + id=2929; type="O_Soldier_F"; class CustomAttributes { @@ -12407,7 +23582,7 @@ class Mission { name="GrpCSAT_B1"; }; - id=405; + id=2923; class CustomAttributes { class Attribute0 @@ -12432,7 +23607,7 @@ class Mission nAttributes=1; }; }; - class Item182 + class Item315 { dataType="Group"; side="East"; @@ -12459,7 +23634,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=413; + id=2931; type="O_Soldier_TL_F"; class CustomAttributes { @@ -12505,7 +23680,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=414; + id=2932; type="O_Soldier_AR_F"; class CustomAttributes { @@ -12551,7 +23726,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=415; + id=2933; type="O_Soldier_AR_F"; class CustomAttributes { @@ -12597,7 +23772,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=416; + id=2934; type="O_Soldier_LAT_F"; class CustomAttributes { @@ -12642,7 +23817,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=417; + id=2935; type="O_Soldier_F"; class CustomAttributes { @@ -12687,7 +23862,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=418; + id=2936; type="O_Soldier_F"; class CustomAttributes { @@ -12718,7 +23893,7 @@ class Mission { name="GrpCSAT_B2"; }; - id=412; + id=2930; class CustomAttributes { class Attribute0 @@ -12743,7 +23918,7 @@ class Mission nAttributes=1; }; }; - class Item183 + class Item316 { dataType="Group"; side="East"; @@ -12755,7 +23930,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2475.9973,5.0014391,1300.3562}; + position[]={2475.9971,5.0014391,1300.3561}; }; side="East"; flags=4; @@ -12769,7 +23944,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=421; + id=2938; type="O_crew_F"; class CustomAttributes { @@ -12800,7 +23975,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2475.9973,5.0014391,1300.3562}; + position[]={2475.9971,5.0014391,1300.3561}; }; side="East"; flags=6; @@ -12813,7 +23988,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=422; + id=2939; type="O_crew_F"; }; }; @@ -12833,8 +24008,8 @@ class Mission class Item0 { linkID=0; - item0=421; - item1=27; + item0=2938; + item1=2578; class CustomData { role=2; @@ -12844,8 +24019,8 @@ class Mission class Item1 { linkID=1; - item0=422; - item1=27; + item0=2939; + item1=2578; class CustomData { role=1; @@ -12853,7 +24028,7 @@ class Mission }; }; }; - id=419; + id=2937; class CustomAttributes { class Attribute0 @@ -12878,7 +24053,7 @@ class Mission nAttributes=1; }; }; - class Item184 + class Item317 { dataType="Group"; side="East"; @@ -12905,11 +24080,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=424; + id=2941; type="O_Soldier_SL_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01PER"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -12928,7 +24122,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; class Item1 @@ -12950,11 +24144,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=425; + id=2942; type="O_medic_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01PER"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -12973,7 +24186,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; }; @@ -12981,7 +24194,7 @@ class Mission { name="GrpCSAT_CSL"; }; - id=423; + id=2940; class CustomAttributes { class Attribute0 @@ -13006,7 +24219,7 @@ class Mission nAttributes=1; }; }; - class Item185 + class Item318 { dataType="Group"; side="East"; @@ -13033,7 +24246,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=427; + id=2944; type="O_Soldier_TL_F"; class CustomAttributes { @@ -13079,7 +24292,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=428; + id=2945; type="O_Soldier_AR_F"; class CustomAttributes { @@ -13125,7 +24338,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=429; + id=2946; type="O_Soldier_AR_F"; class CustomAttributes { @@ -13171,7 +24384,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=430; + id=2947; type="O_Soldier_LAT_F"; class CustomAttributes { @@ -13216,7 +24429,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=431; + id=2948; type="O_Soldier_F"; class CustomAttributes { @@ -13261,7 +24474,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=432; + id=2949; type="O_Soldier_F"; class CustomAttributes { @@ -13292,7 +24505,7 @@ class Mission { name="GrpCSAT_C1"; }; - id=426; + id=2943; class CustomAttributes { class Attribute0 @@ -13317,7 +24530,7 @@ class Mission nAttributes=1; }; }; - class Item186 + class Item319 { dataType="Group"; side="East"; @@ -13344,7 +24557,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=434; + id=2951; type="O_Soldier_TL_F"; class CustomAttributes { @@ -13390,7 +24603,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=435; + id=2952; type="O_Soldier_AR_F"; class CustomAttributes { @@ -13436,7 +24649,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=436; + id=2953; type="O_Soldier_AR_F"; class CustomAttributes { @@ -13482,7 +24695,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=437; + id=2954; type="O_Soldier_LAT_F"; class CustomAttributes { @@ -13527,7 +24740,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=438; + id=2955; type="O_Soldier_F"; class CustomAttributes { @@ -13572,7 +24785,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=439; + id=2956; type="O_Soldier_F"; class CustomAttributes { @@ -13603,7 +24816,7 @@ class Mission { name="GrpCSAT_C2"; }; - id=433; + id=2950; class CustomAttributes { class Attribute0 @@ -13628,7 +24841,7 @@ class Mission nAttributes=1; }; }; - class Item187 + class Item320 { dataType="Group"; side="East"; @@ -13640,7 +24853,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2529.1165,5.0014391,1300.1658}; + position[]={2529.116,5.0014391,1300.166}; }; side="East"; flags=4; @@ -13654,7 +24867,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=442; + id=2958; type="O_crew_F"; }; class Item1 @@ -13662,7 +24875,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2529.1165,5.0014391,1300.1658}; + position[]={2529.116,5.0014391,1300.166}; }; side="East"; flags=6; @@ -13675,7 +24888,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=443; + id=2959; type="O_crew_F"; }; }; @@ -13695,8 +24908,8 @@ class Mission class Item0 { linkID=0; - item0=442; - item1=28; + item0=2958; + item1=2579; class CustomData { role=2; @@ -13706,8 +24919,8 @@ class Mission class Item1 { linkID=1; - item0=443; - item1=28; + item0=2959; + item1=2579; class CustomData { role=1; @@ -13715,7 +24928,7 @@ class Mission }; }; }; - id=440; + id=2957; class CustomAttributes { class Attribute0 @@ -13740,7 +24953,7 @@ class Mission nAttributes=1; }; }; - class Item188 + class Item321 { dataType="Group"; side="East"; @@ -13767,7 +24980,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=445; + id=2961; type="O_Soldier_TL_F"; class CustomAttributes { @@ -13812,7 +25025,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=446; + id=2962; type="O_Soldier_AR_F"; class CustomAttributes { @@ -13858,7 +25071,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1229; + id=2963; type="O_Soldier_AAR_F"; }; }; @@ -13866,7 +25079,7 @@ class Mission { name="GrpCSAT_MMG1"; }; - id=444; + id=2960; class CustomAttributes { class Attribute0 @@ -13891,7 +25104,7 @@ class Mission nAttributes=1; }; }; - class Item189 + class Item322 { dataType="Group"; side="East"; @@ -13918,7 +25131,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=448; + id=2965; type="O_Soldier_TL_F"; class CustomAttributes { @@ -13963,7 +25176,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=449; + id=2966; type="O_Soldier_AR_F"; class CustomAttributes { @@ -14009,7 +25222,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1230; + id=2967; type="O_Soldier_AAR_F"; }; }; @@ -14017,7 +25230,7 @@ class Mission { name="GrpCSAT_MMG2"; }; - id=447; + id=2964; class CustomAttributes { class Attribute0 @@ -14042,7 +25255,7 @@ class Mission nAttributes=1; }; }; - class Item190 + class Item323 { dataType="Group"; side="East"; @@ -14068,7 +25281,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=451; + id=2969; type="O_Soldier_TL_F"; class CustomAttributes { @@ -14112,7 +25325,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=452; + id=2970; type="O_Soldier_AT_F"; class CustomAttributes { @@ -14157,7 +25370,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1231; + id=2971; type="O_Soldier_AAT_F"; }; }; @@ -14165,7 +25378,7 @@ class Mission { name="GrpCSAT_MAT1"; }; - id=450; + id=2968; class CustomAttributes { class Attribute0 @@ -14190,7 +25403,7 @@ class Mission nAttributes=1; }; }; - class Item191 + class Item324 { dataType="Group"; side="East"; @@ -14216,7 +25429,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=454; + id=2973; type="O_Soldier_TL_F"; class CustomAttributes { @@ -14260,7 +25473,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=455; + id=2974; type="O_Soldier_AT_F"; class CustomAttributes { @@ -14305,7 +25518,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1232; + id=2975; type="O_Soldier_AAT_F"; }; }; @@ -14313,7 +25526,7 @@ class Mission { name="GrpCSAT_MAT2"; }; - id=453; + id=2972; class CustomAttributes { class Attribute0 @@ -14338,7 +25551,7 @@ class Mission nAttributes=1; }; }; - class Item192 + class Item325 { dataType="Group"; side="East"; @@ -14364,7 +25577,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=457; + id=2977; type="O_Soldier_TL_F"; class CustomAttributes { @@ -14408,7 +25621,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=458; + id=2978; type="O_Soldier_AR_F"; class CustomAttributes { @@ -14439,7 +25652,7 @@ class Mission { name="GrpCSAT_HMG1"; }; - id=456; + id=2976; class CustomAttributes { class Attribute0 @@ -14464,7 +25677,7 @@ class Mission nAttributes=1; }; }; - class Item193 + class Item326 { dataType="Group"; side="East"; @@ -14490,7 +25703,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=460; + id=2980; type="O_Soldier_TL_F"; class CustomAttributes { @@ -14534,7 +25747,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=461; + id=2981; type="O_Soldier_AT_F"; class CustomAttributes { @@ -14579,7 +25792,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1233; + id=2982; type="O_Soldier_AAT_F"; }; }; @@ -14587,7 +25800,7 @@ class Mission { name="GrpCSAT_HAT1"; }; - id=459; + id=2979; class CustomAttributes { class Attribute0 @@ -14612,7 +25825,7 @@ class Mission nAttributes=1; }; }; - class Item194 + class Item327 { dataType="Group"; side="East"; @@ -14638,7 +25851,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=463; + id=2984; type="O_support_AMort_F"; class CustomAttributes { @@ -14682,7 +25895,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=464; + id=2985; type="O_support_Mort_F"; class CustomAttributes { @@ -14713,7 +25926,7 @@ class Mission { name="GrpCSAT_MTR1"; }; - id=462; + id=2983; class CustomAttributes { class Attribute0 @@ -14738,7 +25951,7 @@ class Mission nAttributes=1; }; }; - class Item195 + class Item328 { dataType="Group"; side="East"; @@ -14764,7 +25977,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=466; + id=2987; type="O_Soldier_AAA_F"; class CustomAttributes { @@ -14808,7 +26021,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=467; + id=2988; type="O_Soldier_AA_F"; class CustomAttributes { @@ -14853,7 +26066,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1208; + id=2989; type="O_Soldier_AAA_F"; }; }; @@ -14861,7 +26074,7 @@ class Mission { name="GrpCSAT_MSAM1"; }; - id=465; + id=2986; class CustomAttributes { class Attribute0 @@ -14886,7 +26099,7 @@ class Mission nAttributes=1; }; }; - class Item196 + class Item329 { dataType="Group"; side="East"; @@ -14912,7 +26125,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=469; + id=2991; type="O_Soldier_AAA_F"; class CustomAttributes { @@ -14956,7 +26169,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=470; + id=2992; type="O_Soldier_AA_F"; class CustomAttributes { @@ -14987,7 +26200,7 @@ class Mission { name="GrpCSAT_HSAM1"; }; - id=468; + id=2990; class CustomAttributes { class Attribute0 @@ -15012,7 +26225,7 @@ class Mission nAttributes=1; }; }; - class Item197 + class Item330 { dataType="Group"; side="East"; @@ -15038,11 +26251,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=472; + id=2994; type="O_spotter_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02PER"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -15061,7 +26293,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; class Item1 @@ -15082,11 +26314,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=473; + id=2995; type="O_sniper_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02PER"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -15105,7 +26356,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; }; @@ -15113,7 +26364,7 @@ class Mission { name="GrpCSAT_ST1"; }; - id=471; + id=2993; class CustomAttributes { class Attribute0 @@ -15138,7 +26389,7 @@ class Mission nAttributes=1; }; }; - class Item198 + class Item331 { dataType="Group"; side="East"; @@ -15164,7 +26415,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=475; + id=2997; type="O_engineer_F"; class CustomAttributes { @@ -15208,7 +26459,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=476; + id=2998; type="O_engineer_F"; class CustomAttributes { @@ -15252,7 +26503,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=477; + id=2999; type="O_engineer_F"; class CustomAttributes { @@ -15296,7 +26547,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=478; + id=3000; type="O_engineer_F"; class CustomAttributes { @@ -15327,7 +26578,7 @@ class Mission { name="GrpCSAT_ENG1"; }; - id=474; + id=2996; class CustomAttributes { class Attribute0 @@ -15352,7 +26603,7 @@ class Mission nAttributes=1; }; }; - class Item199 + class Item332 { dataType="Group"; side="East"; @@ -15378,7 +26629,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=480; + id=3002; type="O_diver_TL_F"; class CustomAttributes { @@ -15423,7 +26674,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=481; + id=3003; type="O_diver_F"; class CustomAttributes { @@ -15468,7 +26719,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=482; + id=3004; type="O_diver_F"; class CustomAttributes { @@ -15513,7 +26764,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=483; + id=3005; type="O_diver_F"; class CustomAttributes { @@ -15544,7 +26795,7 @@ class Mission { name="GrpCSAT_DT1"; }; - id=479; + id=3001; class CustomAttributes { class Attribute0 @@ -15569,7 +26820,7 @@ class Mission nAttributes=1; }; }; - class Item200 + class Item333 { dataType="Group"; side="East"; @@ -15581,7 +26832,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2381.4866,5.0014391,1276.0164}; + position[]={2381.4871,4.8214393,1276.016}; }; side="East"; flags=6; @@ -15595,8 +26846,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=485; + id=3007; type="O_crew_F"; + atlOffset=-0.17999983; class CustomAttributes { class Attribute0 @@ -15626,7 +26878,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2381.4866,5.0014391,1276.0164}; + position[]={2381.4871,4.8214393,1276.016}; }; side="East"; flags=4; @@ -15640,15 +26892,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=486; + id=3008; type="O_crew_F"; + atlOffset=-0.17999983; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={2381.4866,5.0014391,1276.0164}; + position[]={2381.4871,4.8214393,1276.016}; }; side="East"; flags=4; @@ -15661,8 +26914,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=487; + id=3009; type="O_crew_F"; + atlOffset=-0.17999983; }; }; class Attributes @@ -15681,8 +26935,8 @@ class Mission class Item0 { linkID=0; - item0=485; - item1=77; + item0=3007; + item1=2628; class CustomData { role=2; @@ -15692,8 +26946,8 @@ class Mission class Item1 { linkID=1; - item0=486; - item1=77; + item0=3008; + item1=2628; class CustomData { role=2; @@ -15703,8 +26957,8 @@ class Mission class Item2 { linkID=2; - item0=487; - item1=77; + item0=3009; + item1=2628; class CustomData { role=1; @@ -15712,8 +26966,8 @@ class Mission }; }; }; - id=484; - atlOffset=-0.18001461; + id=3006; + atlOffset=-0.17999983; class CustomAttributes { class Attribute0 @@ -15738,7 +26992,7 @@ class Mission nAttributes=1; }; }; - class Item201 + class Item334 { dataType="Group"; side="East"; @@ -15750,7 +27004,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2426.5959,5.0014391,1276.3611}; + position[]={2426.5959,4.8214393,1276.3611}; }; side="East"; flags=6; @@ -15764,15 +27018,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=489; + id=3011; type="O_crew_F"; + atlOffset=-0.17999983; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={2426.5959,5.0014391,1276.3611}; + position[]={2426.5959,4.8214393,1276.3611}; }; side="East"; flags=4; @@ -15786,15 +27041,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=490; + id=3012; type="O_crew_F"; + atlOffset=-0.17999983; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={2426.5959,5.0014391,1276.3611}; + position[]={2426.5959,4.8214393,1276.3611}; }; side="East"; flags=4; @@ -15807,8 +27063,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=491; + id=3013; type="O_crew_F"; + atlOffset=-0.17999983; }; }; class Attributes @@ -15827,8 +27084,8 @@ class Mission class Item0 { linkID=0; - item0=489; - item1=78; + item0=3011; + item1=2629; class CustomData { role=2; @@ -15838,8 +27095,8 @@ class Mission class Item1 { linkID=1; - item0=490; - item1=78; + item0=3012; + item1=2629; class CustomData { role=2; @@ -15849,8 +27106,8 @@ class Mission class Item2 { linkID=2; - item0=491; - item1=78; + item0=3013; + item1=2629; class CustomData { role=1; @@ -15858,8 +27115,8 @@ class Mission }; }; }; - id=488; - atlOffset=-0.18001461; + id=3010; + atlOffset=-0.17999983; class CustomAttributes { class Attribute0 @@ -15884,7 +27141,7 @@ class Mission nAttributes=1; }; }; - class Item202 + class Item335 { dataType="Group"; side="East"; @@ -15896,7 +27153,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2477.0383,5.0014391,1274.8718}; + position[]={2477.0381,4.8204393,1274.875}; }; side="East"; flags=6; @@ -15910,15 +27167,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=493; + id=3015; type="O_crew_F"; + atlOffset=-0.18099976; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={2477.0383,5.0014391,1274.8718}; + position[]={2477.0381,4.8204393,1274.875}; }; side="East"; flags=4; @@ -15932,15 +27190,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=494; + id=3016; type="O_crew_F"; + atlOffset=-0.18099976; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={2477.0383,5.0014391,1274.8718}; + position[]={2477.0381,4.8204393,1274.875}; }; side="East"; flags=4; @@ -15953,8 +27212,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=495; + id=3017; type="O_crew_F"; + atlOffset=-0.18099976; }; }; class Attributes @@ -15973,8 +27233,8 @@ class Mission class Item0 { linkID=0; - item0=493; - item1=35; + item0=3015; + item1=2586; class CustomData { role=2; @@ -15984,8 +27244,8 @@ class Mission class Item1 { linkID=1; - item0=494; - item1=35; + item0=3016; + item1=2586; class CustomData { role=2; @@ -15995,8 +27255,8 @@ class Mission class Item2 { linkID=2; - item0=495; - item1=35; + item0=3017; + item1=2586; class CustomData { role=1; @@ -16004,8 +27264,8 @@ class Mission }; }; }; - id=492; - atlOffset=-0.18066597; + id=3014; + atlOffset=-0.18099976; class CustomAttributes { class Attribute0 @@ -16030,7 +27290,7 @@ class Mission nAttributes=1; }; }; - class Item203 + class Item336 { dataType="Group"; side="East"; @@ -16042,7 +27302,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2379.1594,5.0014391,1254.6062}; + position[]={2379.1589,5.0014391,1254.6061}; }; side="East"; flags=6; @@ -16056,7 +27316,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=497; + id=3019; type="O_helipilot_F"; }; class Item1 @@ -16064,7 +27324,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2379.1594,5.0014391,1254.6062}; + position[]={2379.1589,5.0014391,1254.6061}; }; side="East"; flags=4; @@ -16078,7 +27338,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=498; + id=3020; type="O_helipilot_F"; }; class Item2 @@ -16086,7 +27346,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2379.1594,5.0014391,1254.6062}; + position[]={2379.1589,5.0014391,1254.6061}; }; side="East"; flags=4; @@ -16100,7 +27360,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=499; + id=3021; type="O_helicrew_F"; class CustomAttributes { @@ -16143,8 +27403,8 @@ class Mission class Item0 { linkID=0; - item0=497; - item1=1; + item0=3019; + item1=2552; class CustomData { role=1; @@ -16153,8 +27413,8 @@ class Mission class Item1 { linkID=1; - item0=498; - item1=1; + item0=3020; + item1=2552; class CustomData { role=2; @@ -16164,8 +27424,8 @@ class Mission class Item2 { linkID=2; - item0=499; - item1=1; + item0=3021; + item1=2552; class CustomData { role=2; @@ -16174,7 +27434,7 @@ class Mission }; }; }; - id=496; + id=3018; class CustomAttributes { class Attribute0 @@ -16199,7 +27459,7 @@ class Mission nAttributes=1; }; }; - class Item204 + class Item337 { dataType="Group"; side="East"; @@ -16211,7 +27471,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2380.8411,5.0014391,1224.6824}; + position[]={2380.8411,5.0014391,1224.682}; }; side="East"; flags=6; @@ -16225,7 +27485,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=501; + id=3023; type="O_helipilot_F"; }; class Item1 @@ -16233,7 +27493,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2380.8411,5.0014391,1224.6824}; + position[]={2380.8411,5.0014391,1224.682}; }; side="East"; flags=4; @@ -16247,7 +27507,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=502; + id=3024; type="O_helipilot_F"; }; class Item2 @@ -16255,7 +27515,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2380.8411,5.0014391,1224.6824}; + position[]={2380.8411,5.0014391,1224.682}; }; side="East"; flags=4; @@ -16269,7 +27529,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=503; + id=3025; type="O_helicrew_F"; class CustomAttributes { @@ -16312,8 +27572,8 @@ class Mission class Item0 { linkID=0; - item0=501; - item1=18; + item0=3023; + item1=2569; class CustomData { role=1; @@ -16322,8 +27582,8 @@ class Mission class Item1 { linkID=1; - item0=502; - item1=18; + item0=3024; + item1=2569; class CustomData { role=2; @@ -16333,8 +27593,8 @@ class Mission class Item2 { linkID=2; - item0=503; - item1=18; + item0=3025; + item1=2569; class CustomData { role=2; @@ -16343,7 +27603,7 @@ class Mission }; }; }; - id=500; + id=3022; class CustomAttributes { class Attribute0 @@ -16368,7 +27628,7 @@ class Mission nAttributes=1; }; }; - class Item205 + class Item338 { dataType="Group"; side="East"; @@ -16380,7 +27640,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2429.5403,5.0014391,1253.7297}; + position[]={2429.54,5.0014391,1253.7301}; }; side="East"; flags=6; @@ -16394,7 +27654,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=505; + id=3027; type="O_helipilot_F"; }; class Item1 @@ -16402,7 +27662,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2429.5403,5.0014391,1253.7297}; + position[]={2429.54,5.0014391,1253.7301}; }; side="East"; flags=4; @@ -16416,7 +27676,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=506; + id=3028; type="O_helipilot_F"; }; }; @@ -16436,8 +27696,8 @@ class Mission class Item0 { linkID=0; - item0=505; - item1=19; + item0=3027; + item1=2570; class CustomData { role=1; @@ -16446,8 +27706,8 @@ class Mission class Item1 { linkID=1; - item0=506; - item1=19; + item0=3028; + item1=2570; class CustomData { role=2; @@ -16456,7 +27716,7 @@ class Mission }; }; }; - id=504; + id=3026; class CustomAttributes { class Attribute0 @@ -16481,7 +27741,7 @@ class Mission nAttributes=1; }; }; - class Item206 + class Item339 { dataType="Group"; side="East"; @@ -16493,7 +27753,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2426.9114,5.0014391,1224.01}; + position[]={2426.9109,5.0014391,1224.01}; }; side="East"; flags=6; @@ -16507,7 +27767,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=508; + id=3030; type="O_helipilot_F"; }; class Item1 @@ -16515,7 +27775,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2426.9114,5.0014391,1224.01}; + position[]={2426.9109,5.0014391,1224.01}; }; side="East"; flags=4; @@ -16529,7 +27789,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=509; + id=3031; type="O_helipilot_F"; }; }; @@ -16549,8 +27809,8 @@ class Mission class Item0 { linkID=0; - item0=508; - item1=20; + item0=3030; + item1=2571; class CustomData { role=1; @@ -16559,8 +27819,8 @@ class Mission class Item1 { linkID=1; - item0=509; - item1=20; + item0=3031; + item1=2571; class CustomData { role=2; @@ -16569,7 +27829,7 @@ class Mission }; }; }; - id=507; + id=3029; class CustomAttributes { class Attribute0 @@ -16594,7 +27854,7 @@ class Mission nAttributes=1; }; }; - class Item207 + class Item340 { dataType="Group"; side="East"; @@ -16606,7 +27866,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2480.3333,5.0014391,1253.3899}; + position[]={2480.333,5.0014391,1253.39}; }; side="East"; flags=6; @@ -16620,7 +27880,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=511; + id=3033; type="O_helipilot_F"; }; class Item1 @@ -16628,7 +27888,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2480.3333,5.0014391,1253.3899}; + position[]={2480.333,5.0014391,1253.39}; }; side="East"; flags=4; @@ -16642,7 +27902,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=512; + id=3034; type="O_helipilot_F"; }; }; @@ -16662,8 +27922,8 @@ class Mission class Item0 { linkID=0; - item0=511; - item1=21; + item0=3033; + item1=2572; class CustomData { role=1; @@ -16672,8 +27932,8 @@ class Mission class Item1 { linkID=1; - item0=512; - item1=21; + item0=3034; + item1=2572; class CustomData { role=2; @@ -16682,7 +27942,7 @@ class Mission }; }; }; - id=510; + id=3032; class CustomAttributes { class Attribute0 @@ -16707,7 +27967,7 @@ class Mission nAttributes=1; }; }; - class Item208 + class Item341 { dataType="Group"; side="East"; @@ -16719,7 +27979,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2477.6995,5.0014391,1223.6653}; + position[]={2477.699,5.0014391,1223.665}; }; side="East"; flags=6; @@ -16733,7 +27993,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=514; + id=3036; type="O_helipilot_F"; }; class Item1 @@ -16741,7 +28001,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2477.6995,5.0014391,1223.6653}; + position[]={2477.699,5.0014391,1223.665}; }; side="East"; flags=4; @@ -16755,7 +28015,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=515; + id=3037; type="O_helipilot_F"; }; }; @@ -16775,8 +28035,8 @@ class Mission class Item0 { linkID=0; - item0=514; - item1=22; + item0=3036; + item1=2573; class CustomData { role=1; @@ -16785,8 +28045,8 @@ class Mission class Item1 { linkID=1; - item0=515; - item1=22; + item0=3037; + item1=2573; class CustomData { role=2; @@ -16795,7 +28055,7 @@ class Mission }; }; }; - id=513; + id=3035; class CustomAttributes { class Attribute0 @@ -16820,7 +28080,7 @@ class Mission nAttributes=1; }; }; - class Item209 + class Item342 { dataType="Group"; side="East"; @@ -16832,7 +28092,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2534.553,5.0014391,1253.7854}; + position[]={2534.553,5.0014391,1253.785}; }; side="East"; flags=6; @@ -16846,7 +28106,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=517; + id=3039; type="O_helipilot_F"; }; class Item1 @@ -16854,7 +28114,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2534.553,5.0014391,1253.7854}; + position[]={2534.553,5.0014391,1253.785}; }; side="East"; flags=4; @@ -16868,7 +28128,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=518; + id=3040; type="O_helipilot_F"; }; }; @@ -16888,8 +28148,8 @@ class Mission class Item0 { linkID=0; - item0=517; - item1=23; + item0=3039; + item1=2574; class CustomData { role=1; @@ -16898,8 +28158,8 @@ class Mission class Item1 { linkID=1; - item0=518; - item1=23; + item0=3040; + item1=2574; class CustomData { role=2; @@ -16908,7 +28168,7 @@ class Mission }; }; }; - id=516; + id=3038; class CustomAttributes { class Attribute0 @@ -16933,7 +28193,7 @@ class Mission nAttributes=1; }; }; - class Item210 + class Item343 { dataType="Group"; side="East"; @@ -16945,7 +28205,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2531.9211,5.0014391,1224.0647}; + position[]={2531.9209,5.0014391,1224.0651}; }; side="East"; flags=6; @@ -16959,7 +28219,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=520; + id=3042; type="O_helipilot_F"; }; class Item1 @@ -16967,7 +28227,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2531.9211,5.0014391,1224.0647}; + position[]={2531.9209,5.0014391,1224.0651}; }; side="East"; flags=4; @@ -16981,7 +28241,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=521; + id=3043; type="O_helipilot_F"; }; }; @@ -17001,8 +28261,8 @@ class Mission class Item0 { linkID=0; - item0=520; - item1=24; + item0=3042; + item1=2575; class CustomData { role=1; @@ -17011,8 +28271,8 @@ class Mission class Item1 { linkID=1; - item0=521; - item1=24; + item0=3043; + item1=2575; class CustomData { role=2; @@ -17021,7 +28281,7 @@ class Mission }; }; }; - id=519; + id=3041; class CustomAttributes { class Attribute0 @@ -17046,7 +28306,7 @@ class Mission nAttributes=1; }; }; - class Item211 + class Item344 { dataType="Group"; side="East"; @@ -17058,7 +28318,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2382.634,5.0014391,1193.7566}; + position[]={2382.634,5.0014391,1193.7571}; }; side="East"; flags=6; @@ -17072,7 +28332,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=523; + id=3045; type="O_helipilot_F"; class CustomAttributes { @@ -17103,7 +28363,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2382.634,5.0014391,1193.7566}; + position[]={2382.634,5.0014391,1193.7571}; }; side="East"; flags=4; @@ -17117,7 +28377,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=524; + id=3046; type="O_helipilot_F"; }; }; @@ -17137,8 +28397,8 @@ class Mission class Item0 { linkID=0; - item0=523; - item1=29; + item0=3045; + item1=2580; class CustomData { role=1; @@ -17147,8 +28407,8 @@ class Mission class Item1 { linkID=1; - item0=524; - item1=29; + item0=3046; + item1=2580; class CustomData { role=2; @@ -17157,7 +28417,7 @@ class Mission }; }; }; - id=522; + id=3044; class CustomAttributes { class Attribute0 @@ -17182,7 +28442,7 @@ class Mission nAttributes=1; }; }; - class Item212 + class Item345 { dataType="Group"; side="Independent"; @@ -17194,7 +28454,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1409.1733,5.0014391,765.03137}; + position[]={1381.9424,5.0014391,1365.5823}; }; side="Independent"; flags=6; @@ -17208,7 +28468,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=531; + id=3048; type="I_officer_F"; }; class Item1 @@ -17216,7 +28476,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1414.1733,5.0014391,763.38098}; + position[]={1386.9424,5.0014391,1363.9319}; }; side="Independent"; flags=4; @@ -17230,7 +28490,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=532; + id=3049; type="I_officer_F"; }; class Item2 @@ -17238,7 +28498,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1404.1733,5.0014391,763.38098}; + position[]={1376.9424,5.0014391,1363.9319}; }; side="Independent"; flags=4; @@ -17251,7 +28511,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=533; + id=3050; type="I_soldier_UAV_F"; }; class Item3 @@ -17259,7 +28519,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1419.1733,5.0014391,760.64172}; + position[]={1391.9424,5.0014391,1361.1926}; }; side="Independent"; flags=4; @@ -17272,7 +28532,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=534; + id=3051; type="I_medic_F"; }; }; @@ -17280,7 +28540,7 @@ class Mission { name="GrpAAF_CO"; }; - id=530; + id=3047; class CustomAttributes { class Attribute0 @@ -17305,7 +28565,7 @@ class Mission nAttributes=1; }; }; - class Item213 + class Item346 { dataType="Group"; side="Independent"; @@ -17317,7 +28577,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1409.4722,5.0014391,735.45129}; + position[]={1382.2412,5.0014391,1336.0022}; }; side="Independent"; flags=6; @@ -17331,7 +28591,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=536; + id=3053; type="I_officer_F"; }; class Item1 @@ -17339,7 +28599,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1414.4722,5.0014391,733.8009}; + position[]={1387.2412,5.0014391,1334.3518}; }; side="Independent"; flags=4; @@ -17353,7 +28613,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=537; + id=3054; type="I_officer_F"; }; class Item2 @@ -17361,7 +28621,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1404.4722,5.0014391,733.8009}; + position[]={1377.2412,5.0014391,1334.3518}; }; side="Independent"; flags=4; @@ -17374,7 +28634,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=538; + id=3055; type="I_soldier_UAV_F"; }; class Item3 @@ -17382,7 +28642,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1419.4722,5.0014391,731.06165}; + position[]={1392.2412,5.0014391,1331.6125}; }; side="Independent"; flags=4; @@ -17395,7 +28655,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=539; + id=3056; type="I_medic_F"; }; }; @@ -17404,7 +28664,7 @@ class Mission name="GrpAAF_DC"; init="DC"; }; - id=535; + id=3052; class CustomAttributes { class Attribute0 @@ -17429,7 +28689,7 @@ class Mission nAttributes=1; }; }; - class Item214 + class Item347 { dataType="Group"; side="Independent"; @@ -17441,7 +28701,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1408.4087,5.0014391,675.29236}; + position[]={1381.178,5.0014391,1275.843}; }; side="Independent"; flags=6; @@ -17455,7 +28715,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=541; + id=3058; type="I_crew_F"; }; class Item1 @@ -17463,7 +28723,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1408.4087,5.0014391,675.29236}; + position[]={1381.178,5.0014391,1275.843}; }; side="Independent"; flags=4; @@ -17477,7 +28737,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=542; + id=3059; type="I_crew_F"; }; class Item2 @@ -17485,7 +28745,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1408.4087,5.0014391,675.29236}; + position[]={1381.178,5.0014391,1275.843}; }; side="Independent"; flags=4; @@ -17498,7 +28758,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=543; + id=3060; type="I_crew_F"; }; }; @@ -17518,8 +28778,8 @@ class Mission class Item0 { linkID=0; - item0=541; - item1=31; + item0=3058; + item1=2582; class CustomData { role=2; @@ -17529,8 +28789,8 @@ class Mission class Item1 { linkID=1; - item0=542; - item1=31; + item0=3059; + item1=2582; class CustomData { role=2; @@ -17540,8 +28800,8 @@ class Mission class Item2 { linkID=2; - item0=543; - item1=31; + item0=3060; + item1=2582; class CustomData { role=1; @@ -17549,7 +28809,7 @@ class Mission }; }; }; - id=540; + id=3057; class CustomAttributes { class Attribute0 @@ -17574,7 +28834,7 @@ class Mission nAttributes=1; }; }; - class Item215 + class Item348 { dataType="Group"; side="Independent"; @@ -17586,7 +28846,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1450.0649,5.0014391,763.6593}; + position[]={1422.834,5.0014391,1364.2102}; }; side="Independent"; flags=6; @@ -17600,7 +28860,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=545; + id=3062; type="I_Soldier_SL_F"; }; class Item1 @@ -17608,7 +28868,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1455.0649,5.0014391,762.00891}; + position[]={1427.834,5.0014391,1362.5598}; }; side="Independent"; flags=4; @@ -17621,7 +28881,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=546; + id=3063; type="I_medic_F"; }; }; @@ -17629,7 +28889,7 @@ class Mission { name="GrpAAF_ASL"; }; - id=544; + id=3061; class CustomAttributes { class Attribute0 @@ -17654,7 +28914,7 @@ class Mission nAttributes=1; }; }; - class Item216 + class Item349 { dataType="Group"; side="Independent"; @@ -17666,7 +28926,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1451.0005,5.0014391,736.37317}; + position[]={1423.7695,5.0014391,1336.9241}; }; side="Independent"; flags=6; @@ -17680,7 +28940,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=548; + id=3065; type="I_Soldier_TL_F"; }; class Item1 @@ -17688,7 +28948,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1456.0005,5.0014391,734.72278}; + position[]={1428.7695,5.0014391,1335.2737}; }; side="Independent"; flags=4; @@ -17702,7 +28962,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=549; + id=3066; type="I_Soldier_AR_F"; }; class Item2 @@ -17710,7 +28970,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1446.0005,5.0014391,734.72278}; + position[]={1418.7695,5.0014391,1335.2737}; }; side="Independent"; flags=4; @@ -17724,7 +28984,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=550; + id=3067; type="I_Soldier_AR_F"; }; class Item3 @@ -17732,7 +28992,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1461.0005,5.0014391,731.9845}; + position[]={1433.7695,5.0014391,1332.5354}; }; side="Independent"; flags=4; @@ -17746,7 +29006,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=551; + id=3068; type="I_Soldier_LAT_F"; }; class Item4 @@ -17754,7 +29014,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1441.0005,5.0014391,731.9845}; + position[]={1413.7695,5.0014391,1332.5354}; }; side="Independent"; flags=4; @@ -17767,7 +29027,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=552; + id=3069; type="I_soldier_F"; }; class Item5 @@ -17775,7 +29035,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1466.0005,5.0014391,727.43665}; + position[]={1438.7695,5.0014391,1327.9875}; }; side="Independent"; flags=4; @@ -17788,7 +29048,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=553; + id=3070; type="I_soldier_F"; }; }; @@ -17796,7 +29056,7 @@ class Mission { name="GrpAAF_A1"; }; - id=547; + id=3064; class CustomAttributes { class Attribute0 @@ -17821,7 +29081,7 @@ class Mission nAttributes=1; }; }; - class Item217 + class Item350 { dataType="Group"; side="Independent"; @@ -17833,7 +29093,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1450.7368,5.0014391,710.55286}; + position[]={1423.5059,5.0014391,1311.1038}; }; side="Independent"; flags=6; @@ -17847,7 +29107,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=555; + id=3072; type="I_Soldier_TL_F"; }; class Item1 @@ -17855,7 +29115,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1455.7368,5.0014391,708.90247}; + position[]={1428.5059,5.0014391,1309.4534}; }; side="Independent"; flags=4; @@ -17869,7 +29129,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=556; + id=3073; type="I_Soldier_AR_F"; }; class Item2 @@ -17877,7 +29137,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1445.7368,5.0014391,708.90247}; + position[]={1418.5059,5.0014391,1309.4534}; }; side="Independent"; flags=4; @@ -17891,7 +29151,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=557; + id=3074; type="I_Soldier_AR_F"; }; class Item3 @@ -17899,7 +29159,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1460.7368,5.0014391,706.16321}; + position[]={1433.5059,5.0014391,1306.7141}; }; side="Independent"; flags=4; @@ -17913,7 +29173,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=558; + id=3075; type="I_Soldier_LAT_F"; }; class Item4 @@ -17921,7 +29181,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1440.7368,5.0014391,706.16321}; + position[]={1413.5059,5.0014391,1306.7141}; }; side="Independent"; flags=4; @@ -17934,7 +29194,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=559; + id=3076; type="I_soldier_F"; }; class Item5 @@ -17942,7 +29202,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1465.7368,5.0014391,701.61731}; + position[]={1438.5059,5.0014391,1302.1682}; }; side="Independent"; flags=4; @@ -17955,7 +29215,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=560; + id=3077; type="I_soldier_F"; }; }; @@ -17963,7 +29223,7 @@ class Mission { name="GrpAAF_A2"; }; - id=554; + id=3071; class CustomAttributes { class Attribute0 @@ -17988,7 +29248,7 @@ class Mission nAttributes=1; }; }; - class Item218 + class Item351 { dataType="Group"; side="Independent"; @@ -18000,7 +29260,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1453.1089,5.0014391,674.15173}; + position[]={1425.8781,5.0014391,1274.703}; }; side="Independent"; flags=6; @@ -18014,7 +29274,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=562; + id=3079; type="I_crew_F"; }; class Item1 @@ -18022,7 +29282,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1453.1089,5.0014391,674.15173}; + position[]={1425.8781,5.0014391,1274.703}; }; side="Independent"; flags=4; @@ -18036,7 +29296,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=563; + id=3080; type="I_crew_F"; }; class Item2 @@ -18044,7 +29304,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1453.1089,5.0014391,674.15173}; + position[]={1425.8781,5.0014391,1274.703}; }; side="Independent"; flags=4; @@ -18057,7 +29317,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=564; + id=3081; type="I_crew_F"; }; }; @@ -18077,8 +29337,8 @@ class Mission class Item0 { linkID=0; - item0=562; - item1=32; + item0=3079; + item1=2583; class CustomData { role=2; @@ -18088,8 +29348,8 @@ class Mission class Item1 { linkID=1; - item0=563; - item1=32; + item0=3080; + item1=2583; class CustomData { role=2; @@ -18099,8 +29359,8 @@ class Mission class Item2 { linkID=2; - item0=564; - item1=32; + item0=3081; + item1=2583; class CustomData { role=1; @@ -18108,7 +29368,7 @@ class Mission }; }; }; - id=561; + id=3078; class CustomAttributes { class Attribute0 @@ -18133,7 +29393,7 @@ class Mission nAttributes=1; }; }; - class Item219 + class Item352 { dataType="Group"; side="Independent"; @@ -18145,7 +29405,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.1655,5.0014391,763.75696}; + position[]={1465.9346,5.0014391,1364.3079}; }; side="Independent"; flags=6; @@ -18159,7 +29419,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=566; + id=3083; type="I_Soldier_SL_F"; }; class Item1 @@ -18167,7 +29427,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1498.1655,5.0014391,762.10657}; + position[]={1470.9346,5.0014391,1362.6575}; }; side="Independent"; flags=4; @@ -18180,7 +29440,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=567; + id=3084; type="I_medic_F"; }; }; @@ -18188,7 +29448,7 @@ class Mission { name="GrpAAF_BSL"; }; - id=565; + id=3082; class CustomAttributes { class Attribute0 @@ -18213,7 +29473,7 @@ class Mission nAttributes=1; }; }; - class Item220 + class Item353 { dataType="Group"; side="Independent"; @@ -18225,7 +29485,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.4175,5.0014391,736.32141}; + position[]={1466.1865,5.0014391,1336.8723}; }; side="Independent"; flags=6; @@ -18239,7 +29499,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=569; + id=3086; type="I_Soldier_TL_F"; }; class Item1 @@ -18247,7 +29507,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1498.4175,5.0014391,734.67102}; + position[]={1471.1865,5.0014391,1335.2219}; }; side="Independent"; flags=4; @@ -18261,7 +29521,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=570; + id=3087; type="I_Soldier_AR_F"; }; class Item2 @@ -18269,7 +29529,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1488.4175,5.0014391,734.67102}; + position[]={1461.1865,5.0014391,1335.2219}; }; side="Independent"; flags=4; @@ -18283,7 +29543,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=571; + id=3088; type="I_Soldier_AR_F"; }; class Item3 @@ -18291,7 +29551,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1503.4175,5.0014391,731.93176}; + position[]={1476.1865,5.0014391,1332.4827}; }; side="Independent"; flags=4; @@ -18305,7 +29565,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=572; + id=3089; type="I_Soldier_LAT_F"; }; class Item4 @@ -18313,7 +29573,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1483.4175,5.0014391,731.93176}; + position[]={1456.1865,5.0014391,1332.4827}; }; side="Independent"; flags=4; @@ -18326,7 +29586,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=573; + id=3090; type="I_soldier_F"; }; class Item5 @@ -18334,7 +29594,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1508.4175,5.0014391,727.38489}; + position[]={1481.1865,5.0014391,1327.9358}; }; side="Independent"; flags=4; @@ -18347,7 +29607,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=574; + id=3091; type="I_soldier_F"; }; }; @@ -18355,7 +29615,7 @@ class Mission { name="GrpAAF_B1"; }; - id=568; + id=3085; class CustomAttributes { class Attribute0 @@ -18380,7 +29640,7 @@ class Mission nAttributes=1; }; }; - class Item221 + class Item354 { dataType="Group"; side="Independent"; @@ -18392,7 +29652,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.1011,5.0014391,710.02844}; + position[]={1465.8701,5.0014391,1310.5793}; }; side="Independent"; flags=6; @@ -18406,7 +29666,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=576; + id=3093; type="I_Soldier_TL_F"; }; class Item1 @@ -18414,7 +29674,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1498.1011,5.0014391,708.37903}; + position[]={1470.8701,5.0014391,1308.9299}; }; side="Independent"; flags=4; @@ -18428,7 +29688,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=577; + id=3094; type="I_Soldier_AR_F"; }; class Item2 @@ -18436,7 +29696,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1488.1011,5.0014391,708.37903}; + position[]={1460.8701,5.0014391,1308.9299}; }; side="Independent"; flags=4; @@ -18450,7 +29710,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=578; + id=3095; type="I_Soldier_AR_F"; }; class Item3 @@ -18458,7 +29718,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1503.1011,5.0014391,705.63879}; + position[]={1475.8701,5.0014391,1306.1897}; }; side="Independent"; flags=4; @@ -18472,7 +29732,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=579; + id=3096; type="I_Soldier_LAT_F"; }; class Item4 @@ -18480,7 +29740,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1483.1011,5.0014391,705.63879}; + position[]={1455.8701,5.0014391,1306.1897}; }; side="Independent"; flags=4; @@ -18493,7 +29753,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=580; + id=3097; type="I_soldier_F"; }; class Item5 @@ -18501,7 +29761,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1508.1011,5.0014391,701.09192}; + position[]={1480.8701,5.0014391,1301.6428}; }; side="Independent"; flags=4; @@ -18514,7 +29774,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=581; + id=3098; type="I_soldier_F"; }; }; @@ -18522,7 +29782,7 @@ class Mission { name="GrpAAF_B2"; }; - id=575; + id=3092; class CustomAttributes { class Attribute0 @@ -18547,7 +29807,7 @@ class Mission nAttributes=1; }; }; - class Item222 + class Item355 { dataType="Group"; side="Independent"; @@ -18559,7 +29819,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.9253,5.0014391,674.21716}; + position[]={1466.694,5.0014391,1274.7681}; }; side="Independent"; flags=6; @@ -18573,7 +29833,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=583; + id=3100; type="I_crew_F"; }; class Item1 @@ -18581,7 +29841,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.9253,5.0014391,674.21716}; + position[]={1466.694,5.0014391,1274.7681}; }; side="Independent"; flags=4; @@ -18595,7 +29855,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=584; + id=3101; type="I_crew_F"; }; class Item2 @@ -18603,7 +29863,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.9253,5.0014391,674.21716}; + position[]={1466.694,5.0014391,1274.7681}; }; side="Independent"; flags=4; @@ -18616,7 +29876,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=585; + id=3102; type="I_crew_F"; }; }; @@ -18636,8 +29896,8 @@ class Mission class Item0 { linkID=0; - item0=583; - item1=33; + item0=3100; + item1=2584; class CustomData { role=2; @@ -18647,8 +29907,8 @@ class Mission class Item1 { linkID=1; - item0=584; - item1=33; + item0=3101; + item1=2584; class CustomData { role=2; @@ -18658,8 +29918,8 @@ class Mission class Item2 { linkID=2; - item0=585; - item1=33; + item0=3102; + item1=2584; class CustomData { role=1; @@ -18667,7 +29927,7 @@ class Mission }; }; }; - id=582; + id=3099; class CustomAttributes { class Attribute0 @@ -18692,7 +29952,7 @@ class Mission nAttributes=1; }; }; - class Item223 + class Item356 { dataType="Group"; side="Independent"; @@ -18704,7 +29964,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.0054,5.0014391,763.23743}; + position[]={1508.7744,5.0014391,1363.7883}; }; side="Independent"; flags=6; @@ -18718,7 +29978,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=587; + id=3104; type="I_Soldier_SL_F"; }; class Item1 @@ -18726,7 +29986,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1541.0054,5.0014391,761.58704}; + position[]={1513.7744,5.0014391,1362.1379}; }; side="Independent"; flags=4; @@ -18739,7 +29999,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=588; + id=3105; type="I_medic_F"; }; }; @@ -18747,7 +30007,7 @@ class Mission { name="GrpAAF_CSL"; }; - id=586; + id=3103; class CustomAttributes { class Attribute0 @@ -18772,7 +30032,7 @@ class Mission nAttributes=1; }; }; - class Item224 + class Item357 { dataType="Group"; side="Independent"; @@ -18784,7 +30044,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.6616,5.0014391,734.91907}; + position[]={1509.4307,5.0014391,1335.47}; }; side="Independent"; flags=6; @@ -18798,7 +30058,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=590; + id=3107; type="I_Soldier_TL_F"; }; class Item1 @@ -18806,7 +30066,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1541.6616,5.0014391,733.26868}; + position[]={1514.4307,5.0014391,1333.8196}; }; side="Independent"; flags=4; @@ -18820,7 +30080,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=591; + id=3108; type="I_Soldier_AR_F"; }; class Item2 @@ -18828,7 +30088,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.6616,5.0014391,733.26868}; + position[]={1504.4307,5.0014391,1333.8196}; }; side="Independent"; flags=4; @@ -18842,7 +30102,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=592; + id=3109; type="I_Soldier_AR_F"; }; class Item3 @@ -18850,7 +30110,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1546.6616,5.0014391,730.52942}; + position[]={1519.4307,5.0014391,1331.0803}; }; side="Independent"; flags=4; @@ -18864,7 +30124,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=593; + id=3110; type="I_Soldier_LAT_F"; }; class Item4 @@ -18872,7 +30132,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1526.6616,5.0014391,730.52942}; + position[]={1499.4307,5.0014391,1331.0803}; }; side="Independent"; flags=4; @@ -18885,7 +30145,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=594; + id=3111; type="I_soldier_F"; }; class Item5 @@ -18893,7 +30153,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1551.6616,5.0014391,725.98254}; + position[]={1524.4307,5.0014391,1326.5334}; }; side="Independent"; flags=4; @@ -18906,7 +30166,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=595; + id=3112; type="I_soldier_F"; }; }; @@ -18914,7 +30174,7 @@ class Mission { name="GrpAAF_C1"; }; - id=589; + id=3106; class CustomAttributes { class Attribute0 @@ -18939,7 +30199,7 @@ class Mission nAttributes=1; }; }; - class Item225 + class Item358 { dataType="Group"; side="Independent"; @@ -18951,7 +30211,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.3423,5.0014391,709.98157}; + position[]={1509.1113,5.0014391,1310.5325}; }; side="Independent"; flags=6; @@ -18965,7 +30225,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=597; + id=3114; type="I_Soldier_TL_F"; }; class Item1 @@ -18973,7 +30233,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1541.3423,5.0014391,708.3302}; + position[]={1514.1113,5.0014391,1308.8811}; }; side="Independent"; flags=4; @@ -18987,7 +30247,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=598; + id=3115; type="I_Soldier_AR_F"; }; class Item2 @@ -18995,7 +30255,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.3423,5.0014391,708.3302}; + position[]={1504.1113,5.0014391,1308.8811}; }; side="Independent"; flags=4; @@ -19009,7 +30269,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=599; + id=3116; type="I_Soldier_AR_F"; }; class Item3 @@ -19017,7 +30277,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1546.3423,5.0014391,705.59192}; + position[]={1519.1113,5.0014391,1306.1428}; }; side="Independent"; flags=4; @@ -19031,7 +30291,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=600; + id=3117; type="I_Soldier_LAT_F"; }; class Item4 @@ -19039,7 +30299,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1526.3423,5.0014391,705.59192}; + position[]={1499.1113,5.0014391,1306.1428}; }; side="Independent"; flags=4; @@ -19052,7 +30312,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=601; + id=3118; type="I_soldier_F"; }; class Item5 @@ -19060,7 +30320,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1551.3423,5.0014391,701.04504}; + position[]={1524.1113,5.0014391,1301.5959}; }; side="Independent"; flags=4; @@ -19073,7 +30333,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=602; + id=3119; type="I_soldier_F"; }; }; @@ -19081,7 +30341,7 @@ class Mission { name="GrpAAF_C2"; }; - id=596; + id=3113; class CustomAttributes { class Attribute0 @@ -19106,7 +30366,7 @@ class Mission nAttributes=1; }; }; - class Item226 + class Item359 { dataType="Group"; side="Independent"; @@ -19118,7 +30378,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1535.4771,5.0014391,674.50134}; + position[]={1508.246,5.0014391,1275.052}; }; side="Independent"; flags=6; @@ -19132,7 +30392,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=604; + id=3121; type="I_crew_F"; }; class Item1 @@ -19140,7 +30400,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1535.4771,5.0014391,674.50134}; + position[]={1508.246,5.0014391,1275.052}; }; side="Independent"; flags=4; @@ -19154,7 +30414,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=605; + id=3122; type="I_crew_F"; }; class Item2 @@ -19162,7 +30422,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1535.4771,5.0014391,674.50134}; + position[]={1508.246,5.0014391,1275.052}; }; side="Independent"; flags=4; @@ -19175,7 +30435,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=606; + id=3123; type="I_crew_F"; }; }; @@ -19195,8 +30455,8 @@ class Mission class Item0 { linkID=0; - item0=604; - item1=34; + item0=3121; + item1=2585; class CustomData { role=2; @@ -19206,8 +30466,8 @@ class Mission class Item1 { linkID=1; - item0=605; - item1=34; + item0=3122; + item1=2585; class CustomData { role=2; @@ -19217,8 +30477,8 @@ class Mission class Item2 { linkID=2; - item0=606; - item1=34; + item0=3123; + item1=2585; class CustomData { role=1; @@ -19226,7 +30486,7 @@ class Mission }; }; }; - id=603; + id=3120; class CustomAttributes { class Attribute0 @@ -19251,7 +30511,7 @@ class Mission nAttributes=1; }; }; - class Item227 + class Item360 { dataType="Group"; side="Independent"; @@ -19263,7 +30523,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.408,5.0014391,761.87897}; + position[]={1567.177,5.0014391,1362.4299}; }; side="Independent"; flags=6; @@ -19277,7 +30537,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=608; + id=3125; type="I_Soldier_TL_F"; }; class Item1 @@ -19285,7 +30545,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.4077,5.0014391,760.22864}; + position[]={1572.1768,5.0014391,1360.7795}; }; side="Independent"; flags=4; @@ -19298,7 +30558,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=609; + id=3126; type="I_Soldier_AR_F"; }; class Item2 @@ -19306,7 +30566,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1590.245,5.0014391,760.25702}; + position[]={1563.014,5.0014391,1360.8079}; }; side="Independent"; flags=4; @@ -19320,7 +30580,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1224; + id=3127; type="I_Soldier_AAR_F"; }; }; @@ -19328,7 +30588,7 @@ class Mission { name="GrpAAF_MMG1"; }; - id=607; + id=3124; class CustomAttributes { class Attribute0 @@ -19353,7 +30613,7 @@ class Mission nAttributes=1; }; }; - class Item228 + class Item361 { dataType="Group"; side="Independent"; @@ -19365,7 +30625,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.433,5.0014391,747.13696}; + position[]={1567.202,5.0014391,1347.6877}; }; side="Independent"; flags=6; @@ -19379,7 +30639,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=611; + id=3129; type="I_Soldier_TL_F"; }; class Item1 @@ -19387,7 +30647,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.4331,5.0014391,745.48645}; + position[]={1572.2021,5.0014391,1346.0374}; }; side="Independent"; flags=4; @@ -19400,7 +30660,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=612; + id=3130; type="I_Soldier_AR_F"; }; class Item2 @@ -19408,7 +30668,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1590.271,5.0014391,745.51501}; + position[]={1563.04,5.0014391,1346.0659}; }; side="Independent"; flags=4; @@ -19422,7 +30682,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1225; + id=3131; type="I_Soldier_AAR_F"; }; }; @@ -19430,7 +30690,7 @@ class Mission { name="GrpAAF_MMG2"; }; - id=610; + id=3128; class CustomAttributes { class Attribute0 @@ -19455,7 +30715,7 @@ class Mission nAttributes=1; }; }; - class Item229 + class Item362 { dataType="Group"; side="Independent"; @@ -19467,7 +30727,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.5389,5.0014391,733.86096}; + position[]={1567.308,5.0014391,1334.4119}; angles[]={0,0.030927233,0}; }; side="Independent"; @@ -19482,7 +30742,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=614; + id=3133; type="I_Soldier_TL_F"; }; class Item1 @@ -19490,7 +30750,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.5386,5.0014391,732.21106}; + position[]={1572.3076,5.0014391,1332.762}; }; side="Independent"; flags=4; @@ -19503,7 +30763,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=615; + id=3134; type="I_Soldier_AT_F"; }; class Item2 @@ -19511,7 +30771,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1590.376,5.0014391,732.23999}; + position[]={1563.145,5.0014391,1332.7908}; angles[]={0,0.030927233,0}; }; side="Independent"; @@ -19526,7 +30786,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1226; + id=3135; type="I_Soldier_AAT_F"; }; }; @@ -19534,7 +30794,7 @@ class Mission { name="GrpAAF_MAT1"; }; - id=613; + id=3132; class CustomAttributes { class Attribute0 @@ -19559,7 +30819,7 @@ class Mission nAttributes=1; }; }; - class Item230 + class Item363 { dataType="Group"; side="Independent"; @@ -19571,7 +30831,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.958,5.0014391,722.32599}; + position[]={1567.7271,5.0014391,1322.877}; }; side="Independent"; flags=6; @@ -19585,7 +30845,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=617; + id=3137; type="I_Soldier_TL_F"; }; class Item1 @@ -19593,7 +30853,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.9575,5.0014391,720.6759}; + position[]={1572.7266,5.0014391,1321.2268}; }; side="Independent"; flags=4; @@ -19606,7 +30866,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=618; + id=3138; type="I_Soldier_AT_F"; }; class Item2 @@ -19614,7 +30874,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1590.7949,5.0014391,720.70502}; + position[]={1563.564,5.0014391,1321.2559}; }; side="Independent"; flags=4; @@ -19628,7 +30888,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1227; + id=3139; type="I_Soldier_AAT_F"; }; }; @@ -19636,7 +30896,7 @@ class Mission { name="GrpAAF_MAT2"; }; - id=616; + id=3136; class CustomAttributes { class Attribute0 @@ -19661,7 +30921,7 @@ class Mission nAttributes=1; }; }; - class Item231 + class Item364 { dataType="Group"; side="Independent"; @@ -19673,7 +30933,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.9038,5.0014391,709.20618}; + position[]={1567.6729,5.0014391,1309.7571}; }; side="Independent"; flags=6; @@ -19687,7 +30947,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=620; + id=3141; type="I_Soldier_TL_F"; }; class Item1 @@ -19695,7 +30955,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.9038,5.0014391,707.55579}; + position[]={1572.6729,5.0014391,1308.1067}; }; side="Independent"; flags=4; @@ -19708,7 +30968,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=621; + id=3142; type="I_support_MG_F"; }; }; @@ -19716,7 +30976,7 @@ class Mission { name="GrpAAF_HMG1"; }; - id=619; + id=3140; class CustomAttributes { class Attribute0 @@ -19741,7 +31001,7 @@ class Mission nAttributes=1; }; }; - class Item232 + class Item365 { dataType="Group"; side="Independent"; @@ -19753,7 +31013,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.89,5.0014391,697.82697}; + position[]={1567.6591,5.0014391,1298.3779}; }; side="Independent"; flags=6; @@ -19767,7 +31027,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=623; + id=3144; type="I_Soldier_TL_F"; }; class Item1 @@ -19775,7 +31035,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.8901,5.0014391,696.17688}; + position[]={1572.6592,5.0014391,1296.7278}; }; side="Independent"; flags=4; @@ -19788,7 +31048,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=624; + id=3145; type="I_Soldier_AT_F"; }; class Item2 @@ -19796,7 +31056,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1590.7279,5.0014391,696.20599}; + position[]={1563.4969,5.0014391,1296.7568}; }; side="Independent"; flags=4; @@ -19810,7 +31070,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1228; + id=3146; type="I_Soldier_AAT_F"; }; }; @@ -19818,7 +31078,7 @@ class Mission { name="GrpAAF_HAT1"; }; - id=622; + id=3143; class CustomAttributes { class Attribute0 @@ -19843,7 +31103,7 @@ class Mission nAttributes=1; }; }; - class Item233 + class Item366 { dataType="Group"; side="Independent"; @@ -19855,7 +31115,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.8911,5.0014391,685.70813}; + position[]={1567.6602,5.0014391,1286.259}; }; side="Independent"; flags=6; @@ -19869,7 +31129,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=626; + id=3148; type="I_support_AMort_F"; }; class Item1 @@ -19877,7 +31137,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.8911,5.0014391,684.05774}; + position[]={1572.6602,5.0014391,1284.6086}; }; side="Independent"; flags=4; @@ -19890,7 +31150,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=627; + id=3149; type="I_support_Mort_F"; }; }; @@ -19898,7 +31158,7 @@ class Mission { name="GrpAAF_MTR1"; }; - id=625; + id=3147; class CustomAttributes { class Attribute0 @@ -19923,7 +31183,7 @@ class Mission nAttributes=1; }; }; - class Item234 + class Item367 { dataType="Group"; side="Independent"; @@ -19935,7 +31195,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.6801,5.0014391,673.70996}; + position[]={1567.4491,5.0014391,1274.2607}; }; side="Independent"; flags=6; @@ -19949,7 +31209,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=629; + id=3151; type="I_Soldier_AAA_F"; }; class Item1 @@ -19957,7 +31217,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.6802,5.0014391,672.05969}; + position[]={1572.4492,5.0014391,1272.6106}; }; side="Independent"; flags=4; @@ -19970,7 +31230,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=630; + id=3152; type="I_Soldier_AA_F"; }; class Item2 @@ -19978,7 +31238,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1590.5179,5.0014391,672.08801}; + position[]={1563.287,5.0014391,1272.6389}; }; side="Independent"; flags=4; @@ -19992,7 +31252,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1196; + id=3153; type="I_Soldier_AAA_F"; }; }; @@ -20000,7 +31260,7 @@ class Mission { name="GrpAAF_MSAM1"; }; - id=628; + id=3150; class CustomAttributes { class Attribute0 @@ -20025,7 +31285,7 @@ class Mission nAttributes=1; }; }; - class Item235 + class Item368 { dataType="Group"; side="Independent"; @@ -20037,7 +31297,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1594.856,5.0014391,660.52844}; + position[]={1567.625,5.0014391,1261.0793}; }; side="Independent"; flags=6; @@ -20051,7 +31311,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=632; + id=3155; type="I_Soldier_AAA_F"; }; class Item1 @@ -20059,7 +31319,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1599.856,5.0014391,658.87805}; + position[]={1572.625,5.0014391,1259.429}; }; side="Independent"; flags=4; @@ -20072,7 +31332,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=633; + id=3156; type="I_Soldier_AA_F"; }; }; @@ -20080,7 +31340,7 @@ class Mission { name="GrpAAF_HSAM1"; }; - id=631; + id=3154; class CustomAttributes { class Attribute0 @@ -20105,7 +31365,7 @@ class Mission nAttributes=1; }; }; - class Item236 + class Item369 { dataType="Group"; side="Independent"; @@ -20117,7 +31377,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1595.2114,5.0014391,649.46985}; + position[]={1567.9805,5.0014391,1250.0208}; }; side="Independent"; flags=6; @@ -20131,7 +31391,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=635; + id=3158; type="I_Spotter_F"; }; class Item1 @@ -20139,7 +31399,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1600.2114,5.0014391,647.81946}; + position[]={1572.9805,5.0014391,1248.3704}; }; side="Independent"; flags=4; @@ -20152,7 +31412,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=636; + id=3159; type="I_Sniper_F"; }; }; @@ -20160,7 +31420,7 @@ class Mission { name="GrpAAF_ST1"; }; - id=634; + id=3157; class CustomAttributes { class Attribute0 @@ -20185,7 +31445,7 @@ class Mission nAttributes=1; }; }; - class Item237 + class Item370 { dataType="Group"; side="Independent"; @@ -20197,7 +31457,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1595.6235,5.0014391,636.34192}; + position[]={1568.3926,5.0014391,1236.8928}; }; side="Independent"; flags=6; @@ -20210,7 +31470,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=638; + id=3161; type="I_engineer_F"; }; class Item1 @@ -20218,7 +31478,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1600.6235,5.0014391,634.6925}; + position[]={1573.3926,5.0014391,1235.2434}; }; side="Independent"; flags=4; @@ -20231,7 +31491,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=639; + id=3162; type="I_engineer_F"; }; class Item2 @@ -20239,7 +31499,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1590.6235,5.0014391,634.6925}; + position[]={1563.3926,5.0014391,1235.2434}; }; side="Independent"; flags=4; @@ -20252,7 +31512,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=640; + id=3163; type="I_engineer_F"; }; class Item3 @@ -20260,7 +31520,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1605.6235,5.0014391,631.95227}; + position[]={1578.3926,5.0014391,1232.5032}; }; side="Independent"; flags=4; @@ -20273,7 +31533,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=641; + id=3164; type="I_engineer_F"; }; }; @@ -20281,7 +31541,7 @@ class Mission { name="GrpAAF_ENG1"; }; - id=637; + id=3160; class CustomAttributes { class Attribute0 @@ -20306,7 +31566,7 @@ class Mission nAttributes=1; }; }; - class Item238 + class Item371 { dataType="Group"; side="Independent"; @@ -20318,7 +31578,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1596.231,5.0014391,623.49915}; + position[]={1569,5.0014391,1224.05}; }; side="Independent"; flags=6; @@ -20332,7 +31592,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=643; + id=3166; type="I_diver_F"; }; class Item1 @@ -20340,7 +31600,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1601.231,5.0014391,621.84875}; + position[]={1574,5.0014391,1222.3997}; }; side="Independent"; flags=4; @@ -20354,7 +31614,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=644; + id=3167; type="I_diver_F"; }; class Item2 @@ -20362,7 +31622,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1591.231,5.0014391,621.84875}; + position[]={1564,5.0014391,1222.3997}; }; side="Independent"; flags=4; @@ -20376,7 +31636,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=645; + id=3168; type="I_diver_F"; }; class Item3 @@ -20384,7 +31644,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1606.231,5.0014391,619.1095}; + position[]={1579,5.0014391,1219.6604}; }; side="Independent"; flags=4; @@ -20398,7 +31658,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=646; + id=3169; type="I_diver_F"; }; }; @@ -20406,7 +31666,7 @@ class Mission { name="GrpAAF_DT1"; }; - id=642; + id=3165; class CustomAttributes { class Attribute0 @@ -20431,7 +31691,7 @@ class Mission nAttributes=1; }; }; - class Item239 + class Item372 { dataType="Group"; side="Independent"; @@ -20443,7 +31703,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1409.1245,5.1983914,652.10193}; + position[]={1381.894,5.1764393,1252.6531}; }; side="Independent"; flags=6; @@ -20457,16 +31717,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=648; + id=3171; type="I_crew_F"; - atlOffset=0.19695234; + atlOffset=0.17500019; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={1409.1245,5.1983914,652.10193}; + position[]={1381.894,5.1764393,1252.6531}; }; side="Independent"; flags=4; @@ -20480,16 +31740,16 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=649; + id=3172; type="I_crew_F"; - atlOffset=0.19695234; + atlOffset=0.17500019; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={1409.1245,5.1983914,652.10193}; + position[]={1381.894,5.1764393,1252.6531}; }; side="Independent"; flags=4; @@ -20502,9 +31762,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=650; + id=3173; type="I_crew_F"; - atlOffset=0.19695234; + atlOffset=0.17500019; }; }; class Attributes @@ -20523,8 +31783,8 @@ class Mission class Item0 { linkID=0; - item0=648; - item1=81; + item0=3171; + item1=2632; class CustomData { role=2; @@ -20534,8 +31794,8 @@ class Mission class Item1 { linkID=1; - item0=649; - item1=81; + item0=3172; + item1=2632; class CustomData { role=2; @@ -20545,8 +31805,8 @@ class Mission class Item2 { linkID=2; - item0=650; - item1=81; + item0=3173; + item1=2632; class CustomData { role=1; @@ -20554,8 +31814,8 @@ class Mission }; }; }; - id=647; - atlOffset=0.17517948; + id=3170; + atlOffset=0.17500019; class CustomAttributes { class Attribute0 @@ -20580,7 +31840,7 @@ class Mission nAttributes=1; }; }; - class Item240 + class Item373 { dataType="Group"; side="Independent"; @@ -20592,7 +31852,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1452.3257,5.0014391,649.75525}; + position[]={1425.095,5.0014391,1250.306}; }; side="Independent"; flags=6; @@ -20606,7 +31866,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=652; + id=3175; type="I_crew_F"; }; class Item1 @@ -20614,7 +31874,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1452.3257,5.0014391,649.75525}; + position[]={1425.095,5.0014391,1250.306}; }; side="Independent"; flags=4; @@ -20628,7 +31888,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=653; + id=3176; type="I_crew_F"; }; class Item2 @@ -20636,7 +31896,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1452.3257,5.0014391,649.75525}; + position[]={1425.095,5.0014391,1250.306}; }; side="Independent"; flags=4; @@ -20649,7 +31909,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=654; + id=3177; type="I_crew_F"; }; }; @@ -20669,8 +31929,8 @@ class Mission class Item0 { linkID=0; - item0=652; - item1=82; + item0=3175; + item1=2633; class CustomData { role=2; @@ -20680,8 +31940,8 @@ class Mission class Item1 { linkID=1; - item0=653; - item1=82; + item0=3176; + item1=2633; class CustomData { role=2; @@ -20691,8 +31951,8 @@ class Mission class Item2 { linkID=2; - item0=654; - item1=82; + item0=3177; + item1=2633; class CustomData { role=1; @@ -20700,8 +31960,7 @@ class Mission }; }; }; - id=651; - atlOffset=-0.021772861; + id=3174; class CustomAttributes { class Attribute0 @@ -20726,7 +31985,7 @@ class Mission nAttributes=1; }; }; - class Item241 + class Item374 { dataType="Group"; side="Independent"; @@ -20738,7 +31997,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.9966,5.0014391,650.44958}; + position[]={1466.766,5.0014391,1251}; }; side="Independent"; flags=6; @@ -20752,7 +32011,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=656; + id=3179; type="I_crew_F"; }; class Item1 @@ -20760,7 +32019,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.9966,5.0014391,650.44958}; + position[]={1466.766,5.0014391,1251}; }; side="Independent"; flags=4; @@ -20774,7 +32033,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=657; + id=3180; type="I_crew_F"; }; class Item2 @@ -20782,7 +32041,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1493.9966,5.0014391,650.44958}; + position[]={1466.766,5.0014391,1251}; }; side="Independent"; flags=4; @@ -20795,7 +32054,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=658; + id=3181; type="I_crew_F"; }; }; @@ -20815,8 +32074,8 @@ class Mission class Item0 { linkID=0; - item0=656; - item1=36; + item0=3179; + item1=2587; class CustomData { role=2; @@ -20826,8 +32085,8 @@ class Mission class Item1 { linkID=1; - item0=657; - item1=36; + item0=3180; + item1=2587; class CustomData { role=2; @@ -20837,8 +32096,8 @@ class Mission class Item2 { linkID=2; - item0=658; - item1=36; + item0=3181; + item1=2587; class CustomData { role=1; @@ -20846,8 +32105,7 @@ class Mission }; }; }; - id=655; - atlOffset=-0.18000031; + id=3178; class CustomAttributes { class Attribute0 @@ -20872,7 +32130,7 @@ class Mission nAttributes=1; }; }; - class Item242 + class Item375 { dataType="Group"; side="Independent"; @@ -20884,7 +32142,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1409.0298,5.0014391,617.91455}; + position[]={1381.799,5.0014391,1218.4661}; }; side="Independent"; flags=6; @@ -20898,7 +32156,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=660; + id=3183; type="I_helipilot_F"; }; class Item1 @@ -20906,7 +32164,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1409.0298,5.0014391,617.91455}; + position[]={1381.799,5.0014391,1218.4661}; }; side="Independent"; flags=4; @@ -20920,7 +32178,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=661; + id=3184; type="I_helipilot_F"; }; }; @@ -20940,8 +32198,8 @@ class Mission class Item0 { linkID=0; - item0=660; - item1=2; + item0=3183; + item1=2553; class CustomData { role=1; @@ -20950,8 +32208,8 @@ class Mission class Item1 { linkID=1; - item0=661; - item1=2; + item0=3184; + item1=2553; class CustomData { role=2; @@ -20960,8 +32218,7 @@ class Mission }; }; }; - id=659; - atlOffset=-0.024078369; + id=3182; class CustomAttributes { class Attribute0 @@ -20986,7 +32243,7 @@ class Mission nAttributes=1; }; }; - class Item243 + class Item376 { dataType="Group"; side="Independent"; @@ -20998,7 +32255,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1452.1128,5.0014391,618.75342}; + position[]={1424.882,5.0014391,1219.3041}; }; side="Independent"; flags=6; @@ -21012,7 +32269,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=663; + id=3186; type="I_helipilot_F"; }; class Item1 @@ -21020,7 +32277,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1452.1128,5.0014391,618.75342}; + position[]={1424.882,5.0014391,1219.3041}; }; side="Independent"; flags=4; @@ -21034,7 +32291,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=664; + id=3187; type="I_helipilot_F"; }; }; @@ -21054,8 +32311,8 @@ class Mission class Item0 { linkID=0; - item0=663; - item1=15; + item0=3186; + item1=2566; class CustomData { role=1; @@ -21064,8 +32321,8 @@ class Mission class Item1 { linkID=1; - item0=664; - item1=15; + item0=3187; + item1=2566; class CustomData { role=2; @@ -21074,8 +32331,7 @@ class Mission }; }; }; - id=662; - atlOffset=-0.024078369; + id=3185; class CustomAttributes { class Attribute0 @@ -21100,7 +32356,7 @@ class Mission nAttributes=1; }; }; - class Item244 + class Item377 { dataType="Group"; side="Independent"; @@ -21112,7 +32368,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1494.3599,5.0014391,619.59424}; + position[]={1467.129,5.0014391,1220.145}; }; side="Independent"; flags=6; @@ -21126,7 +32382,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=666; + id=3189; type="I_helipilot_F"; }; class Item1 @@ -21134,7 +32390,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1494.3599,5.0014391,619.59424}; + position[]={1467.129,5.0014391,1220.145}; }; side="Independent"; flags=4; @@ -21148,7 +32404,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=667; + id=3190; type="I_helipilot_F"; }; }; @@ -21168,8 +32424,8 @@ class Mission class Item0 { linkID=0; - item0=666; - item1=16; + item0=3189; + item1=2567; class CustomData { role=1; @@ -21178,8 +32434,8 @@ class Mission class Item1 { linkID=1; - item0=667; - item1=16; + item0=3190; + item1=2567; class CustomData { role=2; @@ -21188,8 +32444,7 @@ class Mission }; }; }; - id=665; - atlOffset=-0.024078369; + id=3188; class CustomAttributes { class Attribute0 @@ -21214,7 +32469,7 @@ class Mission nAttributes=1; }; }; - class Item245 + class Item378 { dataType="Group"; side="Independent"; @@ -21226,7 +32481,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1535.6772,5.0014391,620.25049}; + position[]={1508.446,5.0014391,1220.801}; }; side="Independent"; flags=6; @@ -21240,7 +32495,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=669; + id=3192; type="I_helipilot_F"; }; class Item1 @@ -21248,7 +32503,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1535.6772,5.0014391,620.25049}; + position[]={1508.446,5.0014391,1220.801}; }; side="Independent"; flags=4; @@ -21262,7 +32517,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=670; + id=3193; type="I_helipilot_F"; }; }; @@ -21282,8 +32537,8 @@ class Mission class Item0 { linkID=0; - item0=669; - item1=17; + item0=3192; + item1=2568; class CustomData { role=1; @@ -21292,8 +32547,8 @@ class Mission class Item1 { linkID=1; - item0=670; - item1=17; + item0=3193; + item1=2568; class CustomData { role=2; @@ -21302,8 +32557,7 @@ class Mission }; }; }; - id=668; - atlOffset=-0.024078369; + id=3191; class CustomAttributes { class Attribute0 @@ -21328,7 +32582,7 @@ class Mission nAttributes=1; }; }; - class Item246 + class Item379 { dataType="Group"; side="Independent"; @@ -21340,7 +32594,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1408.8267,5.0014391,586.5531}; + position[]={1381.5959,5.0014391,1187.104}; }; side="Independent"; flags=6; @@ -21354,7 +32608,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=672; + id=3195; type="I_helipilot_F"; }; class Item1 @@ -21362,7 +32616,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1408.8267,5.0014391,586.5531}; + position[]={1381.5959,5.0014391,1187.104}; }; side="Independent"; flags=4; @@ -21376,7 +32630,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=673; + id=3196; type="I_helipilot_F"; }; }; @@ -21396,8 +32650,8 @@ class Mission class Item0 { linkID=0; - item0=672; - item1=37; + item0=3195; + item1=2588; class CustomData { role=1; @@ -21406,8 +32660,8 @@ class Mission class Item1 { linkID=1; - item0=673; - item1=37; + item0=3196; + item1=2588; class CustomData { role=2; @@ -21416,7 +32670,7 @@ class Mission }; }; }; - id=671; + id=3194; class CustomAttributes { class Attribute0 @@ -21441,7 +32695,7 @@ class Mission nAttributes=1; }; }; - class Item247 + class Item380 { dataType="Group"; side="West"; @@ -21453,7 +32707,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={446.25912,5.0014391,757.14838}; + position[]={439.71899,5.0014391,948.96918}; }; side="West"; flags=6; @@ -21467,7 +32721,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=680; + id=3198; type="B_G_officer_F"; }; class Item1 @@ -21475,7 +32729,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={451.25912,5.0014391,755.49799}; + position[]={444.71899,5.0014391,947.31879}; }; side="West"; flags=4; @@ -21489,7 +32743,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=681; + id=3199; type="B_G_officer_F"; }; class Item2 @@ -21497,7 +32751,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={441.7894,5.0014391,754.13666}; + position[]={435.24927,5.0014391,945.95746}; }; side="West"; flags=4; @@ -21510,7 +32764,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=682; + id=3200; type="B_G_Soldier_F"; }; class Item3 @@ -21518,7 +32772,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={456.25912,5.0014391,752.75775}; + position[]={449.71899,5.0014391,944.57855}; }; side="West"; flags=4; @@ -21531,7 +32785,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=683; + id=3201; type="B_G_medic_F"; }; }; @@ -21539,7 +32793,7 @@ class Mission { name="GrpFIA_CO"; }; - id=679; + id=3197; class CustomAttributes { class Attribute0 @@ -21564,7 +32818,7 @@ class Mission nAttributes=1; }; }; - class Item248 + class Item381 { dataType="Group"; side="West"; @@ -21576,7 +32830,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={445.72104,5.2133446,732.78412}; + position[]={439.18091,5.2133446,924.60492}; }; side="West"; flags=6; @@ -21590,7 +32844,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=685; + id=3203; type="B_G_officer_F"; atlOffset=0.21190548; class CustomAttributes @@ -21622,7 +32876,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={450.72104,5.2344303,731.13373}; + position[]={444.18091,5.2344303,922.95453}; }; side="West"; flags=4; @@ -21636,7 +32890,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=686; + id=3204; type="B_G_officer_F"; atlOffset=0.23299122; class CustomAttributes @@ -21668,7 +32922,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={440.72104,5.1082706,731.13373}; + position[]={434.18091,5.1082706,922.95453}; }; side="West"; flags=4; @@ -21681,7 +32935,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=687; + id=3205; type="B_G_Soldier_F"; atlOffset=0.10683155; class CustomAttributes @@ -21713,7 +32967,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={455.72104,5.1013861,728.39447}; + position[]={449.18091,5.1013861,920.21527}; }; side="West"; flags=4; @@ -21726,7 +32980,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=688; + id=3206; type="B_G_medic_F"; atlOffset=0.099946976; class CustomAttributes @@ -21758,7 +33012,7 @@ class Mission { name="GrpFIA_DC"; }; - id=684; + id=3202; atlOffset=0.21190548; class CustomAttributes { @@ -21784,7 +33038,7 @@ class Mission nAttributes=1; }; }; - class Item249 + class Item382 { dataType="Group"; side="West"; @@ -21796,7 +33050,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={482.41245,5.0014391,756.539}; + position[]={475.87231,5.0014391,948.3598}; }; side="West"; flags=6; @@ -21810,7 +33064,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=690; + id=3208; type="B_G_Soldier_SL_F"; class CustomAttributes { @@ -21841,7 +33095,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={487.41245,5.0014391,754.88861}; + position[]={480.87231,5.0014391,946.70941}; }; side="West"; flags=4; @@ -21854,7 +33108,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=691; + id=3209; type="B_G_medic_F"; class CustomAttributes { @@ -21885,7 +33139,7 @@ class Mission { name="GrpFIA_ASL"; }; - id=689; + id=3207; class CustomAttributes { class Attribute0 @@ -21910,7 +33164,7 @@ class Mission nAttributes=1; }; }; - class Item250 + class Item383 { dataType="Group"; side="West"; @@ -21922,7 +33176,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={482.97202,5.0014391,735.03412}; + position[]={476.43188,5.0014391,926.85492}; }; side="West"; flags=6; @@ -21936,7 +33190,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=693; + id=3211; type="B_G_Soldier_TL_F"; class CustomAttributes { @@ -21967,7 +33221,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={487.97202,5.0913763,733.38373}; + position[]={481.43188,5.0913763,925.20453}; }; side="West"; flags=4; @@ -21981,7 +33235,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=694; + id=3212; type="B_G_Soldier_AR_F"; atlOffset=0.08993721; class CustomAttributes @@ -22013,7 +33267,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={477.97202,5.0014391,733.38373}; + position[]={471.43188,5.0014391,925.20453}; }; side="West"; flags=4; @@ -22027,7 +33281,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=695; + id=3213; type="B_G_Soldier_AR_F"; class CustomAttributes { @@ -22058,7 +33312,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={492.97202,5.248991,730.64447}; + position[]={486.43188,5.248991,922.46527}; }; side="West"; flags=4; @@ -22072,7 +33326,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=696; + id=3214; type="B_G_Soldier_LAT_F"; atlOffset=0.24755192; class CustomAttributes @@ -22104,7 +33358,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={472.97202,5.0014391,730.64447}; + position[]={466.43188,5.0014391,922.46527}; }; side="West"; flags=4; @@ -22117,7 +33371,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=697; + id=3215; type="B_G_Soldier_F"; class CustomAttributes { @@ -22148,7 +33402,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={497.97202,5.0014391,726.0976}; + position[]={491.43188,5.0014391,917.9184}; }; side="West"; flags=4; @@ -22161,7 +33415,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=698; + id=3216; type="B_G_Soldier_F"; class CustomAttributes { @@ -22192,7 +33446,7 @@ class Mission { name="GrpFIA_A1"; }; - id=692; + id=3210; class CustomAttributes { class Attribute0 @@ -22217,7 +33471,7 @@ class Mission nAttributes=1; }; }; - class Item251 + class Item384 { dataType="Group"; side="West"; @@ -22229,7 +33483,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={482.73569,5.0014391,711.15521}; + position[]={476.19556,5.0014391,902.97601}; }; side="West"; flags=6; @@ -22243,7 +33497,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=700; + id=3218; type="B_G_Soldier_TL_F"; class CustomAttributes { @@ -22274,7 +33528,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={487.73569,5.0014391,709.50482}; + position[]={481.19556,5.0014391,901.32562}; }; side="West"; flags=4; @@ -22288,7 +33542,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=701; + id=3219; type="B_G_Soldier_AR_F"; class CustomAttributes { @@ -22319,7 +33573,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={477.73569,5.0014391,709.50482}; + position[]={471.19556,5.0014391,901.32562}; }; side="West"; flags=4; @@ -22333,7 +33587,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=702; + id=3220; type="B_G_Soldier_AR_F"; class CustomAttributes { @@ -22364,7 +33618,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={492.73569,5.0014391,706.76556}; + position[]={486.19556,5.0014391,898.58636}; }; side="West"; flags=4; @@ -22378,7 +33632,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=703; + id=3221; type="B_G_Soldier_LAT_F"; class CustomAttributes { @@ -22409,7 +33663,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={472.73569,5.0014391,706.76556}; + position[]={466.19556,5.0014391,898.58636}; }; side="West"; flags=4; @@ -22422,7 +33676,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=704; + id=3222; type="B_G_Soldier_F"; class CustomAttributes { @@ -22453,7 +33707,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={497.73569,5.0014391,702.21869}; + position[]={491.19556,5.0014391,894.03949}; }; side="West"; flags=4; @@ -22466,7 +33720,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=705; + id=3223; type="B_G_Soldier_F"; class CustomAttributes { @@ -22497,7 +33751,7 @@ class Mission { name="GrpFIA_A2"; }; - id=699; + id=3217; class CustomAttributes { class Attribute0 @@ -22522,7 +33776,7 @@ class Mission nAttributes=1; }; }; - class Item252 + class Item385 { dataType="Group"; side="West"; @@ -22534,7 +33788,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={523.09412,5.0014391,756.49213}; + position[]={516.5542,5.0014391,948.31293}; }; side="West"; flags=6; @@ -22548,7 +33802,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=707; + id=3225; type="B_G_Soldier_SL_F"; class CustomAttributes { @@ -22579,7 +33833,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={528.09412,5.0014391,754.84174}; + position[]={521.5542,5.0014391,946.66254}; }; side="West"; flags=4; @@ -22592,7 +33846,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=708; + id=3226; type="B_G_medic_F"; class CustomAttributes { @@ -22623,7 +33877,7 @@ class Mission { name="GrpFIA_BSL"; }; - id=706; + id=3224; class CustomAttributes { class Attribute0 @@ -22648,7 +33902,7 @@ class Mission nAttributes=1; }; }; - class Item253 + class Item386 { dataType="Group"; side="West"; @@ -22660,7 +33914,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={523.86072,5.0014391,734.79681}; + position[]={517.3208,5.0014391,926.61761}; }; side="West"; flags=6; @@ -22674,7 +33928,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=710; + id=3228; type="B_G_Soldier_TL_F"; }; class Item1 @@ -22682,7 +33936,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={528.86072,5.0014391,733.1474}; + position[]={522.3208,5.0014391,924.9682}; }; side="West"; flags=4; @@ -22696,7 +33950,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=711; + id=3229; type="B_G_Soldier_AR_F"; class CustomAttributes { @@ -22727,7 +33981,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={518.86072,5.0014391,733.1474}; + position[]={512.3208,5.0014391,924.9682}; }; side="West"; flags=4; @@ -22741,7 +33995,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=712; + id=3230; type="B_G_Soldier_AR_F"; }; class Item3 @@ -22749,7 +34003,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={533.86072,5.0014391,730.40717}; + position[]={527.3208,5.0014391,922.22797}; }; side="West"; flags=4; @@ -22763,7 +34017,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=713; + id=3231; type="B_G_Soldier_LAT_F"; }; class Item4 @@ -22771,7 +34025,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={513.86072,5.0014391,730.40717}; + position[]={507.3208,5.0014391,922.22797}; }; side="West"; flags=4; @@ -22784,7 +34038,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=714; + id=3232; type="B_G_Soldier_F"; }; class Item5 @@ -22792,7 +34046,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={538.86072,5.0014391,725.86127}; + position[]={532.3208,5.0014391,917.68207}; }; side="West"; flags=4; @@ -22805,7 +34059,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=715; + id=3233; type="B_G_Soldier_F"; }; }; @@ -22813,7 +34067,7 @@ class Mission { name="GrpFIA_B1"; }; - id=709; + id=3227; class CustomAttributes { class Attribute0 @@ -22838,7 +34092,7 @@ class Mission nAttributes=1; }; }; - class Item254 + class Item387 { dataType="Group"; side="West"; @@ -22850,7 +34104,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={523.30115,5.0014391,711.56927}; + position[]={516.76123,5.0014391,903.39008}; }; side="West"; flags=6; @@ -22864,7 +34118,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=717; + id=3235; type="B_G_Soldier_TL_F"; }; class Item1 @@ -22872,7 +34126,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={528.30115,5.0014391,709.91791}; + position[]={521.76123,5.0014391,901.73871}; }; side="West"; flags=4; @@ -22886,7 +34140,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=718; + id=3236; type="B_G_Soldier_AR_F"; }; class Item2 @@ -22894,7 +34148,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={518.30115,5.0014391,709.91791}; + position[]={511.76123,5.0014391,901.73871}; }; side="West"; flags=4; @@ -22908,7 +34162,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=719; + id=3237; type="B_G_Soldier_AR_F"; }; class Item3 @@ -22916,7 +34170,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={533.30115,5.0014391,707.17865}; + position[]={526.76123,5.0014391,898.99945}; }; side="West"; flags=4; @@ -22930,7 +34184,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=720; + id=3238; type="B_G_Soldier_LAT_F"; }; class Item4 @@ -22938,7 +34192,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={513.30115,5.0014391,707.17865}; + position[]={506.76123,5.0014391,898.99945}; }; side="West"; flags=4; @@ -22951,7 +34205,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=721; + id=3239; type="B_G_Soldier_F"; }; class Item5 @@ -22959,7 +34213,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={538.30115,5.0014391,702.63177}; + position[]={531.76123,5.0014391,894.45258}; }; side="West"; flags=4; @@ -22972,7 +34226,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=722; + id=3240; type="B_G_Soldier_F"; }; }; @@ -22980,7 +34234,7 @@ class Mission { name="GrpFIA_B2"; }; - id=716; + id=3234; class CustomAttributes { class Attribute0 @@ -23005,7 +34259,7 @@ class Mission nAttributes=1; }; }; - class Item255 + class Item388 { dataType="Group"; side="West"; @@ -23017,7 +34271,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={566.27771,5.3023081,755.89545}; + position[]={559.73767,5.3023081,947.71625}; }; side="West"; flags=2; @@ -23031,16 +34285,39 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=724; + id=3242; type="B_G_Soldier_SL_F"; atlOffset=0.30086899; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male06GRE"; + }; + }; + }; + nAttributes=1; + }; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={571.27771,5.6464462,754.24506}; + position[]={564.73767,5.6464462,946.06586}; }; side="West"; class Attributes @@ -23052,16 +34329,39 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=725; + id=3243; type="B_G_medic_F"; atlOffset=0.64500713; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male06GRE"; + }; + }; + }; + nAttributes=1; + }; }; }; class Attributes { name="GrpFIA_CSL"; }; - id=723; + id=3241; atlOffset=0.30086899; class CustomAttributes { @@ -23087,7 +34387,7 @@ class Mission nAttributes=1; }; }; - class Item256 + class Item389 { dataType="Group"; side="West"; @@ -23099,7 +34399,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={566.67908,5.0014391,734.13568}; + position[]={560.13904,5.0014391,925.95648}; }; side="West"; flags=6; @@ -23113,7 +34413,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=727; + id=3245; type="B_G_Soldier_TL_F"; }; class Item1 @@ -23121,7 +34421,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={571.67908,5.0014391,732.48627}; + position[]={565.13904,5.0014391,924.30707}; }; side="West"; flags=4; @@ -23135,7 +34435,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=728; + id=3246; type="B_G_Soldier_AR_F"; }; class Item2 @@ -23143,7 +34443,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={561.67908,5.0014391,732.48627}; + position[]={555.13904,5.0014391,924.30707}; }; side="West"; flags=4; @@ -23157,7 +34457,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=729; + id=3247; type="B_G_Soldier_AR_F"; }; class Item3 @@ -23165,7 +34465,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={576.67908,5.0014391,729.74603}; + position[]={570.13904,5.0014391,921.56683}; }; side="West"; flags=4; @@ -23179,7 +34479,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=730; + id=3248; type="B_G_Soldier_LAT_F"; }; class Item4 @@ -23187,7 +34487,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={556.67908,5.0014391,729.74603}; + position[]={550.13904,5.0014391,921.56683}; }; side="West"; flags=4; @@ -23200,7 +34500,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=731; + id=3249; type="B_G_Soldier_F"; }; class Item5 @@ -23208,7 +34508,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={581.67908,5.0014391,725.19916}; + position[]={575.13904,5.0014391,917.01996}; }; side="West"; flags=4; @@ -23221,7 +34521,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=732; + id=3250; type="B_G_Soldier_F"; }; }; @@ -23229,7 +34529,7 @@ class Mission { name="GrpFIA_C1"; }; - id=726; + id=3244; class CustomAttributes { class Attribute0 @@ -23254,7 +34554,7 @@ class Mission nAttributes=1; }; }; - class Item257 + class Item390 { dataType="Group"; side="West"; @@ -23266,7 +34566,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={566.98376,5.0014391,711.03217}; + position[]={560.44373,5.0014391,902.85297}; }; side="West"; flags=6; @@ -23280,7 +34580,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=734; + id=3252; type="B_G_Soldier_TL_F"; }; class Item1 @@ -23288,7 +34588,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={571.98376,5.0014391,709.38177}; + position[]={565.44373,5.0014391,901.20258}; }; side="West"; flags=4; @@ -23302,7 +34602,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=735; + id=3253; type="B_G_Soldier_AR_F"; }; class Item2 @@ -23310,7 +34610,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={561.98376,5.0014391,709.38177}; + position[]={555.44373,5.0014391,901.20258}; }; side="West"; flags=4; @@ -23324,7 +34624,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=736; + id=3254; type="B_G_Soldier_AR_F"; }; class Item3 @@ -23332,7 +34632,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={576.98376,5.0014391,706.64252}; + position[]={570.44373,5.0014391,898.46332}; }; side="West"; flags=4; @@ -23346,7 +34646,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=737; + id=3255; type="B_G_Soldier_LAT_F"; }; class Item4 @@ -23354,7 +34654,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={556.98376,5.0014391,706.64252}; + position[]={550.44373,5.0014391,898.46332}; }; side="West"; flags=4; @@ -23367,7 +34667,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=738; + id=3256; type="B_G_Soldier_F"; }; class Item5 @@ -23375,7 +34675,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={581.98376,5.0014391,702.09467}; + position[]={575.44373,5.0014391,893.91547}; }; side="West"; flags=4; @@ -23388,7 +34688,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=739; + id=3257; type="B_G_Soldier_F"; }; }; @@ -23396,7 +34696,7 @@ class Mission { name="GrpFIA_C2"; }; - id=733; + id=3251; class CustomAttributes { class Attribute0 @@ -23421,7 +34721,7 @@ class Mission nAttributes=1; }; }; - class Item258 + class Item391 { dataType="Group"; side="West"; @@ -23433,7 +34733,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={602.96899,5.153439,756.117}; + position[]={596.42896,5.153439,947.93781}; }; side="West"; flags=6; @@ -23447,7 +34747,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=741; + id=3259; type="B_G_Soldier_TL_F"; atlOffset=0.15199995; }; @@ -23456,7 +34756,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={607.96912,5.2476587,754.46674}; + position[]={601.42908,5.2476587,946.28754}; }; side="West"; flags=4; @@ -23469,7 +34769,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=742; + id=3260; type="B_G_Soldier_AR_F"; atlOffset=0.24621964; }; @@ -23478,7 +34778,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={598.80688,5.153439,754.49603}; + position[]={592.26685,5.153439,946.31683}; }; side="West"; flags=4; @@ -23492,7 +34792,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1214; + id=3261; type="B_G_Soldier_lite_F"; atlOffset=0.15199995; }; @@ -23501,7 +34801,7 @@ class Mission { name="GrpFIA_MMG1"; }; - id=740; + id=3258; atlOffset=0.15199995; class CustomAttributes { @@ -23527,7 +34827,7 @@ class Mission nAttributes=1; }; }; - class Item259 + class Item392 { dataType="Group"; side="West"; @@ -23539,7 +34839,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={602.82898,5.0014391,744.77802}; + position[]={596.28894,5.0014391,936.59882}; }; side="West"; flags=6; @@ -23553,7 +34853,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=744; + id=3263; type="B_G_Soldier_TL_F"; }; class Item1 @@ -23561,7 +34861,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={607.82947,5.0014391,743.12787}; + position[]={601.28943,5.0014391,934.94867}; }; side="West"; flags=4; @@ -23574,7 +34874,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=745; + id=3264; type="B_G_Soldier_AR_F"; }; class Item2 @@ -23582,7 +34882,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={598.66699,5.0014391,743.15698}; + position[]={592.12695,5.0014391,934.97772}; }; side="West"; flags=4; @@ -23596,7 +34896,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1215; + id=3265; type="B_G_Soldier_lite_F"; }; }; @@ -23604,7 +34904,7 @@ class Mission { name="GrpFIA_MMG2"; }; - id=743; + id=3262; class CustomAttributes { class Attribute0 @@ -23629,7 +34929,7 @@ class Mission nAttributes=1; }; }; - class Item260 + class Item393 { dataType="Group"; side="West"; @@ -23641,7 +34941,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.17297,5.0014391,734.07001}; + position[]={596.63293,5.0014391,925.89081}; }; side="West"; flags=6; @@ -23655,7 +34955,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=747; + id=3267; type="B_G_Soldier_TL_F"; }; class Item1 @@ -23663,7 +34963,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={608.17322,5.0014391,732.41986}; + position[]={601.63318,5.0014391,924.24066}; }; side="West"; flags=4; @@ -23676,7 +34976,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=748; + id=3268; type="B_G_Soldier_LAT_F"; }; class Item2 @@ -23684,7 +34984,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={599.01099,5.0014391,732.44897}; + position[]={592.47095,5.0014391,924.26971}; }; side="West"; flags=4; @@ -23698,7 +34998,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1216; + id=3269; type="B_G_Soldier_LAT_F"; }; }; @@ -23706,7 +35006,7 @@ class Mission { name="GrpFIA_MAT1"; }; - id=746; + id=3266; class CustomAttributes { class Attribute0 @@ -23731,7 +35031,7 @@ class Mission nAttributes=1; }; }; - class Item261 + class Item394 { dataType="Group"; side="West"; @@ -23743,7 +35043,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.086,5.0014391,722.08801}; + position[]={596.5459,5.0014391,913.90881}; }; side="West"; flags=6; @@ -23757,15 +35057,38 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=750; + id=3271; type="B_G_Soldier_TL_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male06GRE"; + }; + }; + }; + nAttributes=1; + }; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={608.0863,5.0014391,720.43744}; + position[]={601.54626,5.0014391,912.25824}; }; side="West"; flags=4; @@ -23779,15 +35102,38 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=751; + id=3272; type="B_G_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male06GRE"; + }; + }; + }; + nAttributes=1; + }; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={598.92395,5.0014391,720.466}; + position[]={592.38391,5.0014391,912.2868}; }; side="West"; flags=4; @@ -23801,15 +35147,38 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1217; + id=3273; type="B_G_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male06GRE"; + }; + }; + }; + nAttributes=1; + }; }; }; class Attributes { name="GrpFIA_MAT2"; }; - id=749; + id=3270; class CustomAttributes { class Attribute0 @@ -23834,7 +35203,7 @@ class Mission nAttributes=1; }; }; - class Item262 + class Item395 { dataType="Group"; side="West"; @@ -23846,7 +35215,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.57458,5.0014391,711.18939}; + position[]={597.03455,5.0014391,903.01019}; }; side="West"; flags=6; @@ -23860,7 +35229,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=753; + id=3275; type="B_G_Soldier_TL_F"; }; class Item1 @@ -23868,7 +35237,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={608.57458,5.0014391,709.539}; + position[]={602.03455,5.0014391,901.3598}; }; side="West"; flags=4; @@ -23881,7 +35250,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=754; + id=3276; type="B_G_Soldier_AR_F"; }; }; @@ -23889,7 +35258,7 @@ class Mission { name="GrpFIA_HMG1"; }; - id=752; + id=3274; class CustomAttributes { class Attribute0 @@ -23914,7 +35283,7 @@ class Mission nAttributes=1; }; }; - class Item263 + class Item396 { dataType="Group"; side="West"; @@ -23926,7 +35295,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.39899,5.0014391,698.78601}; + position[]={596.85889,5.0014391,890.60681}; }; side="West"; flags=6; @@ -23940,7 +35309,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=756; + id=3278; type="B_G_Soldier_TL_F"; }; class Item1 @@ -23948,7 +35317,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={608.3988,5.2301273,697.13568}; + position[]={601.85876,5.2301273,888.95648}; }; side="West"; flags=4; @@ -23962,7 +35331,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=757; + id=3279; type="B_G_Soldier_LAT_F"; atlOffset=0.22868824; }; @@ -23971,7 +35340,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={599.23596,5.0014391,697.164}; + position[]={592.69592,5.0014391,888.9848}; }; side="West"; flags=4; @@ -23985,7 +35354,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1218; + id=3280; type="B_G_Soldier_LAT_F"; }; }; @@ -23993,7 +35362,7 @@ class Mission { name="GrpFIA_HAT1"; }; - id=755; + id=3277; class CustomAttributes { class Attribute0 @@ -24018,7 +35387,7 @@ class Mission nAttributes=1; }; }; - class Item264 + class Item397 { dataType="Group"; side="West"; @@ -24030,7 +35399,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.40076,5.0014391,687.01752}; + position[]={596.86072,5.0014391,878.83832}; }; side="West"; flags=6; @@ -24044,7 +35413,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=759; + id=3282; type="B_G_Soldier_F"; }; class Item1 @@ -24052,7 +35421,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={608.40076,5.3897858,685.36713}; + position[]={601.86072,5.3897858,877.18793}; }; side="West"; class Attributes @@ -24065,7 +35434,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=760; + id=3283; type="B_G_Soldier_A_F"; atlOffset=0.38834667; }; @@ -24074,7 +35443,7 @@ class Mission { name="GrpFIA_MTR1"; }; - id=758; + id=3281; class CustomAttributes { class Attribute0 @@ -24099,7 +35468,7 @@ class Mission nAttributes=1; }; }; - class Item265 + class Item398 { dataType="Group"; side="West"; @@ -24111,7 +35480,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.40002,5.0014391,674.5}; + position[]={596.85999,5.0014391,866.3208}; }; side="West"; flags=6; @@ -24125,15 +35494,38 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=762; + id=3285; type="B_G_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + nAttributes=1; + }; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={608.39978,5.5413675,672.84955}; + position[]={601.85974,5.5413675,864.67035}; }; side="West"; class Attributes @@ -24146,16 +35538,39 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=763; + id=3286; type="B_G_Soldier_LAT_F"; atlOffset=0.53992844; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + nAttributes=1; + }; }; class Item2 { dataType="Object"; class PositionInfo { - position[]={599.23694,5.0014391,672.87799}; + position[]={592.6969,5.0014391,864.69879}; }; side="West"; flags=4; @@ -24169,15 +35584,38 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1172; + id=3287; type="B_G_Soldier_LAT_F"; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + nAttributes=1; + }; }; }; class Attributes { name="GrpFIA_MSAM1"; }; - id=761; + id=3284; class CustomAttributes { class Attribute0 @@ -24202,7 +35640,7 @@ class Mission nAttributes=1; }; }; - class Item266 + class Item399 { dataType="Group"; side="West"; @@ -24214,7 +35652,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.29919,5.0014391,661.72552}; + position[]={596.75916,5.0014391,853.54633}; }; side="West"; flags=6; @@ -24228,7 +35666,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=765; + id=3289; type="B_G_Soldier_LAT_F"; }; class Item1 @@ -24236,7 +35674,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={608.29919,5.0014391,660.07513}; + position[]={601.75916,5.0014391,851.89594}; }; side="West"; flags=4; @@ -24250,7 +35688,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=766; + id=3290; type="B_G_Soldier_LAT_F"; }; }; @@ -24258,7 +35696,7 @@ class Mission { name="GrpFIA_HSAM1"; }; - id=764; + id=3288; class CustomAttributes { class Attribute0 @@ -24283,7 +35721,7 @@ class Mission nAttributes=1; }; }; - class Item267 + class Item400 { dataType="Group"; side="West"; @@ -24295,7 +35733,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.17224,5.0014391,650.82025}; + position[]={596.6322,5.0014391,842.64105}; }; side="West"; flags=6; @@ -24309,7 +35747,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=768; + id=3292; type="B_G_Soldier_M_F"; }; class Item1 @@ -24317,7 +35755,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={608.17224,5.0014391,649.16986}; + position[]={601.6322,5.0014391,840.99066}; }; side="West"; flags=4; @@ -24331,7 +35769,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=769; + id=3293; type="B_G_Soldier_M_F"; }; }; @@ -24339,7 +35777,7 @@ class Mission { name="GrpFIA_ST1"; }; - id=767; + id=3291; class CustomAttributes { class Attribute0 @@ -24364,7 +35802,7 @@ class Mission nAttributes=1; }; }; - class Item268 + class Item401 { dataType="Group"; side="West"; @@ -24376,7 +35814,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={603.94373,5.0014391,638.47357}; + position[]={597.40369,5.0014391,830.29437}; }; side="West"; flags=6; @@ -24390,7 +35828,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=771; + id=3295; type="B_G_engineer_F"; }; class Item1 @@ -24398,7 +35836,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={608.94373,5.0014391,636.82318}; + position[]={602.40369,5.0014391,828.64398}; }; side="West"; flags=4; @@ -24411,7 +35849,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=772; + id=3296; type="B_G_engineer_F"; }; class Item2 @@ -24419,7 +35857,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={598.94373,5.0014391,636.82318}; + position[]={592.40369,5.0014391,828.64398}; }; side="West"; flags=4; @@ -24432,7 +35870,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=773; + id=3297; type="B_G_engineer_F"; }; class Item3 @@ -24440,7 +35878,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={613.94373,5.0014391,634.08392}; + position[]={607.40369,5.0014391,825.90472}; }; side="West"; flags=4; @@ -24453,7 +35891,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=774; + id=3298; type="B_G_engineer_F"; }; }; @@ -24461,7 +35899,7 @@ class Mission { name="GrpFIA_ENG1"; }; - id=770; + id=3294; class CustomAttributes { class Attribute0 @@ -24486,7 +35924,7 @@ class Mission nAttributes=1; }; }; - class Item269 + class Item402 { dataType="Group"; side="West"; @@ -24498,7 +35936,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={604.48364,5.0014391,626.65302}; + position[]={597.94397,5.0014391,818.474}; }; side="West"; flags=6; @@ -24512,7 +35950,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=776; + id=3300; type="B_G_engineer_F"; }; class Item1 @@ -24520,7 +35958,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={604.48364,5.0014391,626.65302}; + position[]={597.94397,5.0014391,818.474}; }; side="West"; flags=4; @@ -24534,7 +35972,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=777; + id=3301; type="B_G_engineer_F"; }; }; @@ -24554,8 +35992,8 @@ class Mission class Item0 { linkID=0; - item0=776; - item1=72; + item0=3300; + item1=2623; class CustomData { role=1; @@ -24564,8 +36002,8 @@ class Mission class Item1 { linkID=1; - item0=777; - item1=72; + item0=3301; + item1=2623; class CustomData { role=2; @@ -24574,7 +36012,7 @@ class Mission }; }; }; - id=775; + id=3299; class CustomAttributes { class Attribute0 @@ -24599,7 +36037,7 @@ class Mission nAttributes=1; }; }; - class Item270 + class Item403 { dataType="Group"; side="West"; @@ -24611,7 +36049,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={448.18201,5.0014391,686.51398}; + position[]={441.642,5.0014391,878.33398}; }; side="West"; flags=4; @@ -24624,7 +36062,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1032; + id=3303; type="B_G_Soldier_F"; class CustomAttributes { @@ -24655,7 +36093,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={448.18201,5.0014391,686.51398}; + position[]={441.642,5.0014391,878.33398}; }; side="West"; flags=6; @@ -24669,7 +36107,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1033; + id=3304; type="B_G_Soldier_F"; class CustomAttributes { @@ -24712,8 +36150,8 @@ class Mission class Item0 { linkID=0; - item0=1032; - item1=85; + item0=3303; + item1=2636; class CustomData { role=1; @@ -24722,8 +36160,8 @@ class Mission class Item1 { linkID=1; - item0=1033; - item1=85; + item0=3304; + item1=2636; class CustomData { role=2; @@ -24732,7 +36170,7 @@ class Mission }; }; }; - id=778; + id=3302; class CustomAttributes { class Attribute0 @@ -24750,14 +36188,14 @@ class Mission "STRING" }; }; - value="FIA IFV1 -"; + value="FIA TECH1 -"; }; }; }; nAttributes=1; }; }; - class Item271 + class Item404 { dataType="Group"; side="West"; @@ -24769,7 +36207,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={482.90601,5.0014391,686.43097}; + position[]={476.36499,5.0014391,878.25098}; }; side="West"; flags=6; @@ -24783,7 +36221,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1030; + id=3306; type="B_G_Soldier_F"; class CustomAttributes { @@ -24814,7 +36252,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={482.90601,5.0014391,686.43097}; + position[]={476.36499,5.0014391,878.25098}; }; side="West"; flags=4; @@ -24827,7 +36265,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1031; + id=3307; type="B_G_Soldier_F"; class CustomAttributes { @@ -24870,8 +36308,8 @@ class Mission class Item0 { linkID=0; - item0=1030; - item1=86; + item0=3306; + item1=2637; class CustomData { role=2; @@ -24881,8 +36319,8 @@ class Mission class Item1 { linkID=1; - item0=1031; - item1=86; + item0=3307; + item1=2637; class CustomData { role=1; @@ -24890,7 +36328,7 @@ class Mission }; }; }; - id=781; + id=3305; class CustomAttributes { class Attribute0 @@ -24908,14 +36346,14 @@ class Mission "STRING" }; }; - value="FIA IFV2 -"; + value="FIA TECH2 -"; }; }; }; nAttributes=1; }; }; - class Item272 + class Item405 { dataType="Group"; side="Civilian"; @@ -24927,7 +36365,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2589.6348,5.1613512,725.10815}; + position[]={2535,5.0014391,513.04999}; }; side="Civilian"; flags=6; @@ -24939,12 +36377,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=790; + id=3309; type="C_journalist_F"; - atlOffset=0.15991211; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01GRE"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -24963,18 +36419,17 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; }; class Attributes { - name="GrpCIV_R1"; + name="GrpCIV_R1"; }; - id=789; - atlOffset=0.15991211; + id=3308; }; - class Item273 + class Item406 { dataType="Group"; side="Civilian"; @@ -24986,7 +36441,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2642.2625,5.0014391,721.59937}; + position[]={2587.6277,5.0014391,509.5412}; }; side="Civilian"; flags=6; @@ -24998,7 +36453,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=792; + id=3311; type="C_journalist_F"; class CustomAttributes { @@ -25027,69 +36482,69 @@ class Mission }; class Attributes { - name="GrpCIV_R2"; + name="GrpCIV_R2"; }; - id=791; + id=3310; }; - class Item274 + class Item407 { dataType="Logic"; class PositionInfo { - position[]={2264.3303,5,729.32227}; + position[]={2315.217,5,527.50098}; }; name="F3_Zeus"; isPlayable=1; - id=793; + id=3312; type="VirtualCurator_F"; }; - class Item275 + class Item408 { dataType="Logic"; class PositionInfo { - position[]={2264.9143,5.2476444,718.24805}; + position[]={2315.801,5.2476444,516.42676}; }; name="F3_Zeus_1"; isPlayable=1; - id=794; + id=3313; type="VirtualCurator_F"; atlOffset=0.24764442; }; - class Item276 + class Item409 { dataType="Logic"; class PositionInfo { - position[]={2266.3958,5.3839951,707.53711}; + position[]={2317.2825,5.3839951,505.71582}; }; name="F3_Zeus_2"; isPlayable=1; - id=795; + id=3314; type="VirtualCurator_F"; atlOffset=0.38399506; }; - class Item277 + class Item410 { dataType="Logic"; class PositionInfo { - position[]={2266.8528,5.6081486,696.99023}; + position[]={2317.7395,5.6081486,495.16895}; }; name="F3_Zeus_3"; isPlayable=1; - id=796; + id=3315; type="VirtualCurator_F"; atlOffset=0.60814857; }; - class Item278 + class Item411 { dataType="Logic"; class PositionInfo { - position[]={1386.3022,5,759.53918}; + position[]={1359.0713,5,1360.0901}; }; - id=797; + id=3316; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -25172,14 +36627,14 @@ class Mission nAttributes=4; }; }; - class Item279 + class Item412 { dataType="Logic"; class PositionInfo { - position[]={1386.7388,5,729.61243}; + position[]={1359.5078,5,1330.1633}; }; - id=798; + id=3317; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -25262,14 +36717,14 @@ class Mission nAttributes=4; }; }; - class Item280 + class Item413 { dataType="Logic"; class PositionInfo { position[]={2355.054,5,1372.686}; }; - id=799; + id=3318; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -25352,14 +36807,14 @@ class Mission nAttributes=4; }; }; - class Item281 + class Item414 { dataType="Logic"; class PositionInfo { position[]={2355.7756,5,1347.9272}; }; - id=800; + id=3319; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -25442,14 +36897,14 @@ class Mission nAttributes=4; }; }; - class Item282 + class Item415 { dataType="Logic"; class PositionInfo { - position[]={432.98569,5.7177486,729.02344}; + position[]={426.44556,5.7177486,920.84424}; }; - id=801; + id=3320; type="SupportProvider_Virtual_CAS_Heli"; atlOffset=0.71774864; class CustomAttributes @@ -25533,14 +36988,14 @@ class Mission nAttributes=4; }; }; - class Item283 + class Item416 { dataType="Logic"; class PositionInfo { - position[]={431.84018,5.4597912,752.30078}; + position[]={425.30005,5.4597912,944.12158}; }; - id=802; + id=3321; type="SupportProvider_Virtual_CAS_Heli"; atlOffset=0.45979118; class CustomAttributes @@ -25624,14 +37079,14 @@ class Mission nAttributes=4; }; }; - class Item284 + class Item417 { dataType="Logic"; class PositionInfo { position[]={413.42789,5,1345.2402}; }; - id=803; + id=3322; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -25714,14 +37169,14 @@ class Mission nAttributes=4; }; }; - class Item285 + class Item418 { dataType="Logic"; class PositionInfo { position[]={413.20621,5,1367.6445}; }; - id=804; + id=3323; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -25804,88 +37259,88 @@ class Mission nAttributes=4; }; }; - class Item286 + class Item419 { dataType="Logic"; class PositionInfo { position[]={408.92496,5,1367.7412}; }; - id=813; + id=3324; type="SupportProvider_Artillery"; }; - class Item287 + class Item420 { dataType="Logic"; class PositionInfo { - position[]={428.39584,5.8610754,728.56641}; + position[]={421.85571,5.8610754,920.38721}; }; - id=814; + id=3325; type="SupportProvider_Artillery"; atlOffset=0.8610754; }; - class Item288 + class Item421 { dataType="Logic"; class PositionInfo { position[]={409.14664,5,1345.3369}; }; - id=815; + id=3326; type="SupportProvider_Artillery"; }; - class Item289 + class Item422 { dataType="Logic"; class PositionInfo { - position[]={1382.4575,5,729.70911}; + position[]={1355.2266,5,1330.26}; }; - id=816; + id=3327; type="SupportProvider_Artillery"; }; - class Item290 + class Item423 { dataType="Logic"; class PositionInfo { - position[]={1382.021,5,759.63586}; + position[]={1354.79,5,1360.1868}; }; - id=817; + id=3328; type="SupportProvider_Artillery"; }; - class Item291 + class Item424 { dataType="Logic"; class PositionInfo { position[]={2351.7932,5,1347.4478}; }; - id=818; + id=3329; type="SupportProvider_Artillery"; }; - class Item292 + class Item425 { dataType="Logic"; class PositionInfo { position[]={2350.7717,5,1372.7827}; }; - id=819; + id=3330; type="SupportProvider_Artillery"; }; - class Item293 + class Item426 { dataType="Logic"; class PositionInfo { - position[]={427.55893,5,752.39648}; + position[]={421.0188,5,944.21729}; }; - id=820; + id=3331; type="SupportProvider_Artillery"; }; - class Item294 + class Item427 { dataType="Group"; side="Independent"; @@ -25897,7 +37352,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1379.5668,5.0014391,1372.6985}; + position[]={1384.9258,5.0014391,960.14246}; }; side="Independent"; flags=6; @@ -25910,7 +37365,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=827; + id=3333; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -25941,7 +37396,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1385.2201,5.0014391,1369.9319}; + position[]={1390.5791,5.0014391,957.37585}; }; side="Independent"; flags=5; @@ -25954,7 +37409,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=824; + id=3334; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -25985,7 +37440,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1374.6039,5.0014391,1369.6145}; + position[]={1379.9629,5.0014391,957.05847}; }; side="Independent"; flags=5; @@ -25997,7 +37452,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=825; + id=3335; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -26028,7 +37483,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1390.0951,5.0014391,1367.7346}; + position[]={1395.4541,5.0014391,955.17859}; }; side="Independent"; flags=5; @@ -26040,7 +37495,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=826; + id=3336; type="I_C_Soldier_Para_3_F"; class CustomAttributes { @@ -26071,7 +37526,7 @@ class Mission { name="GrpSyn_CO"; }; - id=823; + id=3332; class CustomAttributes { class Attribute0 @@ -26096,7 +37551,7 @@ class Mission nAttributes=1; }; }; - class Item295 + class Item428 { dataType="Group"; side="Independent"; @@ -26108,7 +37563,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1379.5072,5.0014391,1344.0295}; + position[]={1384.8662,5.0014391,931.47351}; }; side="Independent"; flags=6; @@ -26121,7 +37576,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=842; + id=3338; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -26152,7 +37607,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1384.9408,5.0014391,1341.219}; + position[]={1390.2998,5.0014391,928.66296}; }; side="Independent"; flags=5; @@ -26165,7 +37620,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=839; + id=3339; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -26196,7 +37651,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1374.5209,5.0014391,1341.3157}; + position[]={1379.8799,5.0014391,928.75964}; }; side="Independent"; flags=5; @@ -26208,7 +37663,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=840; + id=3340; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -26239,7 +37694,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1389.8158,5.0014391,1339.0217}; + position[]={1395.1748,5.0014391,926.4657}; }; side="Independent"; flags=5; @@ -26251,7 +37706,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=841; + id=3341; type="I_C_Soldier_Para_3_F"; class CustomAttributes { @@ -26282,7 +37737,7 @@ class Mission { name="GrpSyn_DC"; }; - id=838; + id=3337; class CustomAttributes { class Attribute0 @@ -26307,7 +37762,7 @@ class Mission nAttributes=1; }; }; - class Item296 + class Item429 { dataType="Group"; side="Independent"; @@ -26319,7 +37774,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1420.1244,5.0014391,1372.6526}; + position[]={1425.4834,5.0014391,960.09656}; }; side="Independent"; flags=6; @@ -26332,7 +37787,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=855; + id=3343; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -26363,7 +37818,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1425.2299,5.0014391,1369.6653}; + position[]={1430.5889,5.0014391,957.10925}; }; side="Independent"; flags=5; @@ -26375,7 +37830,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=854; + id=3344; type="I_C_Soldier_Para_3_F"; class CustomAttributes { @@ -26406,7 +37861,7 @@ class Mission { name="GrpSyn_ASL"; }; - id=853; + id=3342; class CustomAttributes { class Attribute0 @@ -26431,7 +37886,7 @@ class Mission nAttributes=1; }; }; - class Item297 + class Item430 { dataType="Group"; side="Independent"; @@ -26443,7 +37898,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1419.9926,5.0014391,1346.175}; + position[]={1425.3516,5.0014391,933.61902}; }; side="Independent"; flags=6; @@ -26456,7 +37911,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=862; + id=3346; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -26487,7 +37942,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1425.097,5.0014391,1343.1877}; + position[]={1430.4561,5.0014391,930.63171}; }; side="Independent"; flags=4; @@ -26500,7 +37955,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=857; + id=3347; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -26531,7 +37986,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1414.8724,5.0014391,1343.262}; + position[]={1420.2314,5.0014391,930.70593}; }; side="Independent"; flags=4; @@ -26544,7 +37999,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=858; + id=3348; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -26575,7 +38030,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1429.933,5.0014391,1339.9065}; + position[]={1435.292,5.0014391,927.35046}; }; side="Independent"; flags=5; @@ -26588,7 +38043,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=859; + id=3349; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -26619,7 +38074,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1410.4662,5.0014391,1339.5042}; + position[]={1415.8252,5.0014391,926.94812}; }; side="Independent"; flags=5; @@ -26631,7 +38086,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=860; + id=3350; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -26662,7 +38117,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1435.9994,5.0014391,1336.0823}; + position[]={1441.3584,5.0014391,923.52625}; }; side="Independent"; flags=5; @@ -26674,7 +38129,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=861; + id=3351; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -26705,7 +38160,7 @@ class Mission { name="GrpSyn_A1"; }; - id=856; + id=3345; class CustomAttributes { class Attribute0 @@ -26730,7 +38185,7 @@ class Mission nAttributes=1; }; }; - class Item298 + class Item431 { dataType="Group"; side="Independent"; @@ -26742,7 +38197,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1420.4545,5.0014391,1316.8792}; + position[]={1425.8135,5.0014391,904.32312}; }; side="Independent"; flags=6; @@ -26755,7 +38210,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=869; + id=3353; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -26786,7 +38241,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1425.5599,5.0014391,1313.8918}; + position[]={1430.9189,5.0014391,901.33582}; }; side="Independent"; flags=4; @@ -26799,7 +38254,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=864; + id=3354; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -26830,7 +38285,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1415.3353,5.0014391,1313.967}; + position[]={1420.6943,5.0014391,901.41101}; }; side="Independent"; flags=4; @@ -26843,7 +38298,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=865; + id=3355; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -26874,7 +38329,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1430.3959,5.0014391,1310.6106}; + position[]={1435.7549,5.0014391,898.05457}; }; side="Independent"; flags=5; @@ -26887,7 +38342,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=866; + id=3356; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -26918,7 +38373,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1410.9291,5.0014391,1310.2092}; + position[]={1416.2881,5.0014391,897.6532}; }; side="Independent"; flags=5; @@ -26930,7 +38385,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=867; + id=3357; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -26961,7 +38416,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1436.4623,5.0014391,1306.7883}; + position[]={1441.8213,5.0014391,894.2323}; }; side="Independent"; flags=5; @@ -26973,7 +38428,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=868; + id=3358; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -27004,7 +38459,7 @@ class Mission { name="GrpSyn_A2"; }; - id=863; + id=3352; class CustomAttributes { class Attribute0 @@ -27029,7 +38484,7 @@ class Mission nAttributes=1; }; }; - class Item299 + class Item432 { dataType="Group"; side="Independent"; @@ -27041,7 +38496,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1460.2103,5.0014391,1371.6956}; + position[]={1465.5693,5.0014391,959.13953}; }; side="Independent"; flags=6; @@ -27054,7 +38509,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=872; + id=3360; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -27085,7 +38540,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1465.3158,5.0014391,1368.7073}; + position[]={1470.6748,5.0014391,956.15125}; }; side="Independent"; flags=5; @@ -27097,7 +38552,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=871; + id=3361; type="I_C_Soldier_Para_3_F"; class CustomAttributes { @@ -27128,7 +38583,7 @@ class Mission { name="GrpSyn_BSL"; }; - id=870; + id=3359; class CustomAttributes { class Attribute0 @@ -27153,7 +38608,7 @@ class Mission nAttributes=1; }; }; - class Item300 + class Item433 { dataType="Group"; side="Independent"; @@ -27165,7 +38620,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1460.1967,5.0014391,1346.0579}; + position[]={1465.5557,5.0014391,933.50183}; }; side="Independent"; flags=6; @@ -27178,7 +38633,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=879; + id=3363; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -27209,7 +38664,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1465.3021,5.0014391,1343.0706}; + position[]={1470.6611,5.0014391,930.51453}; }; side="Independent"; flags=4; @@ -27222,7 +38677,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=874; + id=3364; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -27253,7 +38708,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1455.0795,5.0014391,1343.1448}; + position[]={1460.4385,5.0014391,930.58875}; }; side="Independent"; flags=4; @@ -27266,7 +38721,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=875; + id=3365; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -27297,7 +38752,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1470.1381,5.0014391,1339.7893}; + position[]={1475.4971,5.0014391,927.23328}; }; side="Independent"; flags=5; @@ -27310,7 +38765,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=876; + id=3366; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -27341,7 +38796,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1450.6732,5.0014391,1339.387}; + position[]={1456.0322,5.0014391,926.83093}; }; side="Independent"; flags=5; @@ -27353,7 +38808,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=877; + id=3367; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -27384,7 +38839,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1476.2045,5.0014391,1335.967}; + position[]={1481.5635,5.0014391,923.41101}; }; side="Independent"; flags=5; @@ -27396,7 +38851,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=878; + id=3368; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -27427,7 +38882,7 @@ class Mission { name="GrpSyn_B1"; }; - id=873; + id=3362; class CustomAttributes { class Attribute0 @@ -27452,7 +38907,7 @@ class Mission nAttributes=1; }; }; - class Item301 + class Item434 { dataType="Group"; side="Independent"; @@ -27464,7 +38919,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1460.6029,5.0014391,1316.6848}; + position[]={1465.9619,5.0014391,904.12878}; }; side="Independent"; flags=6; @@ -27477,7 +38932,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=886; + id=3370; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -27508,7 +38963,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1465.7094,5.0014391,1313.6975}; + position[]={1471.0684,5.0014391,901.14148}; }; side="Independent"; flags=4; @@ -27521,7 +38976,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=881; + id=3371; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -27552,7 +39007,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1455.4857,5.0014391,1313.7717}; + position[]={1460.8447,5.0014391,901.2157}; }; side="Independent"; flags=4; @@ -27565,7 +39020,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=882; + id=3372; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -27596,7 +39051,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1470.5443,5.0014391,1310.4172}; + position[]={1475.9033,5.0014391,897.86121}; }; side="Independent"; flags=5; @@ -27609,7 +39064,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=883; + id=3373; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -27640,7 +39095,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1451.0795,5.0014391,1310.0139}; + position[]={1456.4385,5.0014391,897.45789}; }; side="Independent"; flags=5; @@ -27652,7 +39107,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=884; + id=3374; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -27683,7 +39138,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1476.6107,5.0014391,1306.594}; + position[]={1481.9697,5.0014391,894.03796}; }; side="Independent"; flags=5; @@ -27695,7 +39150,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=885; + id=3375; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -27726,7 +39181,7 @@ class Mission { name="GrpSyn_B2"; }; - id=880; + id=3369; class CustomAttributes { class Attribute0 @@ -27751,7 +39206,7 @@ class Mission nAttributes=1; }; }; - class Item302 + class Item435 { dataType="Group"; side="Independent"; @@ -27763,7 +39218,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1500.8724,5.0014391,1370.8596}; + position[]={1506.2314,5.0014391,958.30359}; }; side="Independent"; flags=6; @@ -27776,7 +39231,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=889; + id=3377; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -27807,7 +39262,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1505.9779,5.0014391,1367.8723}; + position[]={1511.3369,5.0014391,955.31628}; }; side="Independent"; flags=5; @@ -27819,7 +39274,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=888; + id=3378; type="I_C_Soldier_Para_3_F"; class CustomAttributes { @@ -27850,7 +39305,7 @@ class Mission { name="GrpSyn_CSL"; }; - id=887; + id=3376; class CustomAttributes { class Attribute0 @@ -27875,7 +39330,7 @@ class Mission nAttributes=1; }; }; - class Item303 + class Item436 { dataType="Group"; side="Independent"; @@ -27887,7 +39342,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1500.6595,5.0014391,1347.4036}; + position[]={1506.0186,5.0014391,934.84753}; }; side="Independent"; flags=6; @@ -27900,7 +39355,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=896; + id=3380; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -27931,7 +39386,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1505.765,5.0014391,1344.4172}; + position[]={1511.124,5.0014391,931.86121}; }; side="Independent"; flags=4; @@ -27944,7 +39399,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=891; + id=3381; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -27975,7 +39430,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1495.5404,5.0014391,1344.4905}; + position[]={1500.8994,5.0014391,931.93445}; }; side="Independent"; flags=4; @@ -27988,7 +39443,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=892; + id=3382; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -28019,7 +39474,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1510.601,5.0014391,1341.135}; + position[]={1515.96,5.0014391,928.57898}; }; side="Independent"; flags=5; @@ -28032,7 +39487,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=893; + id=3383; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -28063,7 +39518,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1491.1342,5.0014391,1340.7327}; + position[]={1496.4932,5.0014391,928.17664}; }; side="Independent"; flags=5; @@ -28075,7 +39530,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=894; + id=3384; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -28106,7 +39561,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1516.6674,5.0014391,1337.3137}; + position[]={1522.0264,5.0014391,924.75769}; }; side="Independent"; flags=5; @@ -28118,7 +39573,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=895; + id=3385; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -28149,7 +39604,7 @@ class Mission { name="GrpSyn_C1"; }; - id=890; + id=3379; class CustomAttributes { class Attribute0 @@ -28174,7 +39629,7 @@ class Mission nAttributes=1; }; }; - class Item304 + class Item437 { dataType="Group"; side="Independent"; @@ -28186,7 +39641,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1500.6595,5.0014391,1316.9084}; + position[]={1506.0186,5.0014391,904.35242}; }; side="Independent"; flags=6; @@ -28199,7 +39654,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=903; + id=3387; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -28230,7 +39685,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1505.765,5.0014391,1313.9211}; + position[]={1511.124,5.0014391,901.36511}; }; side="Independent"; flags=4; @@ -28243,7 +39698,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=898; + id=3388; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -28274,7 +39729,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1495.5424,5.0014391,1313.9954}; + position[]={1500.9014,5.0014391,901.43933}; }; side="Independent"; flags=4; @@ -28287,7 +39742,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=899; + id=3389; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -28318,7 +39773,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1510.601,5.0014391,1310.6399}; + position[]={1515.96,5.0014391,898.08386}; }; side="Independent"; flags=5; @@ -28331,7 +39786,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=900; + id=3390; type="I_C_Soldier_Para_5_F"; }; class Item4 @@ -28339,7 +39794,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1491.1361,5.0014391,1310.2375}; + position[]={1496.4951,5.0014391,897.68152}; }; side="Independent"; flags=5; @@ -28351,7 +39806,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=901; + id=3391; type="I_C_Soldier_Para_1_F"; }; class Item5 @@ -28359,7 +39814,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1516.6674,5.0014391,1306.8176}; + position[]={1522.0264,5.0014391,894.2616}; }; side="Independent"; flags=5; @@ -28371,7 +39826,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=902; + id=3392; type="I_C_Soldier_Para_1_F"; }; }; @@ -28379,7 +39834,7 @@ class Mission { name="GrpSyn_C2"; }; - id=897; + id=3386; class CustomAttributes { class Attribute0 @@ -28404,7 +39859,7 @@ class Mission nAttributes=1; }; }; - class Item305 + class Item438 { dataType="Group"; side="Independent"; @@ -28416,7 +39871,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.021,5.0014391,1369.0061}; + position[]={1564.38,5.0014391,956.45007}; }; side="Independent"; flags=6; @@ -28429,7 +39884,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=905; + id=3394; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -28460,7 +39915,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1563.9642,5.0014391,1366.842}; + position[]={1569.3232,5.0014391,954.28601}; }; side="Independent"; flags=5; @@ -28472,7 +39927,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=906; + id=3395; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -28503,7 +39958,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1554.8589,5.0014391,1367.384}; + position[]={1560.2179,5.0014391,954.828}; }; side="Independent"; flags=4; @@ -28516,7 +39971,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1219; + id=3396; type="I_C_Soldier_Para_4_F"; }; }; @@ -28524,7 +39979,7 @@ class Mission { name="GrpSyn_MMG1"; }; - id=904; + id=3393; class CustomAttributes { class Attribute0 @@ -28549,7 +40004,7 @@ class Mission nAttributes=1; }; }; - class Item306 + class Item439 { dataType="Group"; side="Independent"; @@ -28561,7 +40016,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1558.835,5.0014391,1356.4191}; + position[]={1564.194,5.0014391,943.86292}; }; side="Independent"; flags=6; @@ -28574,7 +40029,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=908; + id=3398; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -28605,7 +40060,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1563.7787,5.0014391,1354.2551}; + position[]={1569.1377,5.0014391,941.6991}; }; side="Independent"; flags=4; @@ -28617,7 +40072,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=909; + id=3399; type="I_C_Soldier_Para_4_F"; class CustomAttributes { @@ -28648,7 +40103,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1554.673,5.0014391,1354.7981}; + position[]={1560.032,5.0014391,942.24207}; }; side="Independent"; flags=4; @@ -28661,7 +40116,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1220; + id=3400; type="I_C_Soldier_Para_4_F"; }; }; @@ -28669,7 +40124,7 @@ class Mission { name="GrpSyn_MMG2"; }; - id=907; + id=3397; class CustomAttributes { class Attribute0 @@ -28694,7 +40149,7 @@ class Mission nAttributes=1; }; }; - class Item307 + class Item440 { dataType="Group"; side="Independent"; @@ -28706,7 +40161,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1558.859,5.0014391,1345.2571}; + position[]={1564.218,5.0014391,932.70105}; }; side="Independent"; flags=6; @@ -28719,7 +40174,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=911; + id=3402; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -28750,7 +40205,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1563.8041,5.0014391,1343.093}; + position[]={1569.1631,5.0014391,930.53699}; }; side="Independent"; flags=4; @@ -28762,7 +40217,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=912; + id=3403; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -28793,7 +40248,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1554.6959,5.0014391,1343.635}; + position[]={1560.0549,5.0014391,931.07898}; }; side="Independent"; flags=4; @@ -28806,7 +40261,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1221; + id=3404; type="I_C_Soldier_Para_5_F"; }; }; @@ -28814,7 +40269,7 @@ class Mission { name="GrpSyn_MAT1"; }; - id=910; + id=3401; class CustomAttributes { class Attribute0 @@ -28839,7 +40294,7 @@ class Mission nAttributes=1; }; }; - class Item308 + class Item441 { dataType="Group"; side="Independent"; @@ -28851,7 +40306,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.0811,5.0014391,1333.7101}; + position[]={1564.4401,5.0014391,921.15399}; }; side="Independent"; flags=6; @@ -28864,7 +40319,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=914; + id=3406; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -28895,7 +40350,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1564.0248,5.0014391,1331.5461}; + position[]={1569.3838,5.0014391,918.99017}; }; side="Independent"; flags=4; @@ -28907,7 +40362,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=915; + id=3407; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -28938,7 +40393,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1554.9189,5.0014391,1332.0891}; + position[]={1560.278,5.0014391,919.53314}; }; side="Independent"; flags=4; @@ -28951,7 +40406,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1222; + id=3408; type="I_C_Soldier_Para_5_F"; }; }; @@ -28959,7 +40414,7 @@ class Mission { name="GrpSyn_MAT2"; }; - id=913; + id=3405; class CustomAttributes { class Attribute0 @@ -28984,7 +40439,7 @@ class Mission nAttributes=1; }; }; - class Item309 + class Item442 { dataType="Group"; side="Independent"; @@ -28996,7 +40451,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.0209,5.0014391,1323.0881}; + position[]={1564.3799,5.0014391,910.5321}; }; side="Independent"; flags=6; @@ -29009,11 +40464,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=917; + id=3410; type="I_C_Soldier_Para_2_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01FRE"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -29032,7 +40506,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; class Item1 @@ -29040,7 +40514,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1563.9662,5.0014391,1320.9231}; + position[]={1569.3252,5.0014391,908.36707}; }; side="Independent"; flags=4; @@ -29052,11 +40526,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=918; + id=3411; type="I_C_Soldier_Para_4_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01FRE"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -29075,7 +40568,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; }; @@ -29083,7 +40576,7 @@ class Mission { name="GrpSyn_HMG1"; }; - id=916; + id=3409; class CustomAttributes { class Attribute0 @@ -29108,7 +40601,7 @@ class Mission nAttributes=1; }; }; - class Item310 + class Item443 { dataType="Group"; side="Independent"; @@ -29120,7 +40613,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1558.816,5.0014391,1310.2871}; + position[]={1564.175,5.0014391,897.73108}; }; side="Independent"; flags=6; @@ -29133,7 +40626,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=920; + id=3413; type="I_C_Soldier_Para_2_F"; class CustomAttributes { @@ -29164,7 +40657,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1563.7592,5.0014391,1308.1233}; + position[]={1569.1182,5.0014391,895.56726}; }; side="Independent"; flags=4; @@ -29176,7 +40669,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=921; + id=3414; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -29207,7 +40700,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1554.6539,5.0014391,1308.666}; + position[]={1560.0129,5.0014391,896.10999}; }; side="Independent"; flags=4; @@ -29220,7 +40713,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1223; + id=3415; type="I_C_Soldier_Para_5_F"; }; }; @@ -29228,7 +40721,7 @@ class Mission { name="GrpSyn_HAT1"; }; - id=919; + id=3412; class CustomAttributes { class Attribute0 @@ -29253,7 +40746,7 @@ class Mission nAttributes=1; }; }; - class Item311 + class Item444 { dataType="Group"; side="Independent"; @@ -29265,7 +40758,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.306,5.0014391,1298.2249}; + position[]={1564.665,5.0014391,885.66882}; }; side="Independent"; flags=6; @@ -29278,7 +40771,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=923; + id=3417; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -29309,7 +40802,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1564.2494,5.0014391,1296.0598}; + position[]={1569.6084,5.0014391,883.50378}; }; side="Independent"; flags=4; @@ -29321,7 +40814,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=924; + id=3418; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -29352,7 +40845,7 @@ class Mission { name="GrpSyn_MTR1"; }; - id=922; + id=3416; class CustomAttributes { class Attribute0 @@ -29377,7 +40870,7 @@ class Mission nAttributes=1; }; }; - class Item312 + class Item445 { dataType="Group"; side="Independent"; @@ -29389,7 +40882,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.033,5.0014391,1285.1261}; + position[]={1564.392,5.0014391,872.57007}; }; side="Independent"; flags=6; @@ -29402,7 +40895,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=926; + id=3420; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -29433,7 +40926,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1563.976,5.0014391,1282.9612}; + position[]={1569.335,5.0014391,870.40515}; }; side="Independent"; flags=4; @@ -29445,7 +40938,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=927; + id=3421; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -29476,7 +40969,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1554.0341,5.0014391,1283.089}; + position[]={1559.3931,5.0014391,870.53296}; }; side="Independent"; flags=4; @@ -29489,7 +40982,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1184; + id=3422; type="I_C_Soldier_Para_5_F"; }; }; @@ -29497,7 +40990,7 @@ class Mission { name="GrpSyn_MSAM1"; }; - id=925; + id=3419; class CustomAttributes { class Attribute0 @@ -29522,7 +41015,7 @@ class Mission nAttributes=1; }; }; - class Item313 + class Item446 { dataType="Group"; side="Independent"; @@ -29534,7 +41027,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.7533,5.0014391,1272.1184}; + position[]={1565.1123,5.0014391,859.56238}; }; side="Independent"; flags=6; @@ -29547,7 +41040,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=929; + id=3424; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -29578,7 +41071,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1564.6967,5.0014391,1269.9534}; + position[]={1570.0557,5.0014391,857.39734}; }; side="Independent"; flags=4; @@ -29590,7 +41083,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=930; + id=3425; type="I_C_Soldier_Para_5_F"; class CustomAttributes { @@ -29621,7 +41114,7 @@ class Mission { name="GrpSyn_HSAM1"; }; - id=928; + id=3423; class CustomAttributes { class Attribute0 @@ -29646,7 +41139,7 @@ class Mission nAttributes=1; }; }; - class Item314 + class Item447 { dataType="Group"; side="Independent"; @@ -29658,7 +41151,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.8353,5.0014391,1261.8909}; + position[]={1565.1943,5.0014391,849.33484}; }; side="Independent"; flags=6; @@ -29671,11 +41164,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=932; + id=3427; type="I_C_Soldier_Para_1_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02FRE"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -29694,7 +41206,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; class Item1 @@ -29702,7 +41214,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1564.7787,5.0014391,1259.7258}; + position[]={1570.1377,5.0014391,847.1698}; }; side="Independent"; flags=4; @@ -29714,11 +41226,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=933; + id=3428; type="I_C_Soldier_Para_1_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02FRE"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -29737,7 +41268,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; }; @@ -29745,7 +41276,7 @@ class Mission { name="GrpSyn_ST1"; }; - id=931; + id=3426; class CustomAttributes { class Attribute0 @@ -29770,7 +41301,7 @@ class Mission nAttributes=1; }; }; - class Item315 + class Item448 { dataType="Group"; side="Independent"; @@ -29782,7 +41313,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1560.3763,5.0014391,1249.842}; + position[]={1565.7354,5.0014391,837.28601}; }; side="Independent"; flags=6; @@ -29795,7 +41326,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=935; + id=3430; type="I_C_Soldier_Para_8_F"; class CustomAttributes { @@ -29826,7 +41357,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1565.3197,5.0014391,1247.677}; + position[]={1570.6787,5.0014391,835.12097}; }; side="Independent"; flags=4; @@ -29838,7 +41369,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=936; + id=3431; type="I_C_Soldier_Para_8_F"; class CustomAttributes { @@ -29869,7 +41400,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1554.9447,5.0014391,1248.1292}; + position[]={1560.3037,5.0014391,835.57312}; }; side="Independent"; flags=4; @@ -29881,7 +41412,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=937; + id=3432; type="I_C_Soldier_Para_8_F"; class CustomAttributes { @@ -29912,7 +41443,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1570.2924,5.0014391,1245.7551}; + position[]={1575.6514,5.0014391,833.1991}; }; side="Independent"; flags=4; @@ -29924,7 +41455,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=938; + id=3433; type="I_C_Soldier_Para_8_F"; class CustomAttributes { @@ -29955,7 +41486,7 @@ class Mission { name="GrpSyn_ENG1"; }; - id=934; + id=3429; class CustomAttributes { class Attribute0 @@ -29980,7 +41511,7 @@ class Mission nAttributes=1; }; }; - class Item316 + class Item449 { dataType="Group"; side="Independent"; @@ -29992,7 +41523,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.641,5.0014391,1225.605}; + position[]={1565,5.0014391,813.05005}; }; side="Independent"; flags=6; @@ -30005,7 +41536,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=940; + id=3435; type="I_C_Helipilot_F"; class CustomAttributes { @@ -30036,7 +41567,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1559.641,5.0014391,1225.605}; + position[]={1565,5.0014391,813.05005}; }; side="Independent"; flags=4; @@ -30049,7 +41580,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=941; + id=3436; type="I_C_Helipilot_F"; class CustomAttributes { @@ -30092,8 +41623,8 @@ class Mission class Item0 { linkID=0; - item0=940; - item1=1027; + item0=3435; + item1=3478; class CustomData { role=1; @@ -30102,8 +41633,8 @@ class Mission class Item1 { linkID=1; - item0=941; - item1=1027; + item0=3436; + item1=3478; class CustomData { role=2; @@ -30112,8 +41643,7 @@ class Mission }; }; }; - id=939; - atlOffset=0.33195591; + id=3434; class CustomAttributes { class Attribute0 @@ -30138,7 +41668,7 @@ class Mission nAttributes=1; }; }; - class Item317 + class Item450 { dataType="Group"; side="Independent"; @@ -30150,7 +41680,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1379.3519,5.0014391,1284.8792}; + position[]={1384.7111,5.0014391,872.323}; }; side="Independent"; flags=6; @@ -30163,7 +41693,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=944; + id=3438; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -30194,7 +41724,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1379.3519,5.0014391,1284.8792}; + position[]={1384.7111,5.0014391,872.323}; }; side="Independent"; flags=4; @@ -30206,7 +41736,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=945; + id=3439; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -30249,8 +41779,8 @@ class Mission class Item0 { linkID=0; - item0=944; - item1=946; + item0=3438; + item1=3440; class CustomData { role=2; @@ -30260,8 +41790,8 @@ class Mission class Item1 { linkID=1; - item0=945; - item1=946; + item0=3439; + item1=3440; class CustomData { role=1; @@ -30269,7 +41799,7 @@ class Mission }; }; }; - id=943; + id=3437; class CustomAttributes { class Attribute0 @@ -30287,19 +41817,19 @@ class Mission "STRING" }; }; - value="Syndikat IFV1 -"; + value="Syndikat TECH1 -"; }; }; }; nAttributes=1; }; }; - class Item318 + class Item451 { dataType="Object"; class PositionInfo { - position[]={1379.3519,7.1644082,1284.8704}; + position[]={1384.7111,7.1644082,872.31433}; }; side="Independent"; flags=6; @@ -30310,10 +41840,10 @@ class Mission name="VehSyn_IFV1"; textures="Guerilla_09"; }; - id=946; + id=3440; type="B_G_Offroad_01_armed_F"; }; - class Item319 + class Item452 { dataType="Group"; side="Independent"; @@ -30325,7 +41855,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1420.1664,5.0014391,1287.9719}; + position[]={1425.525,5.0014391,875.41602}; }; side="Independent"; flags=6; @@ -30338,7 +41868,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=948; + id=3442; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -30369,7 +41899,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1420.1664,5.0014391,1287.9719}; + position[]={1425.525,5.0014391,875.41602}; }; side="Independent"; flags=4; @@ -30381,7 +41911,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=949; + id=3443; type="I_C_Soldier_Para_1_F"; class CustomAttributes { @@ -30424,8 +41954,8 @@ class Mission class Item0 { linkID=0; - item0=948; - item1=950; + item0=3442; + item1=3444; class CustomData { role=2; @@ -30435,8 +41965,8 @@ class Mission class Item1 { linkID=1; - item0=949; - item1=950; + item0=3443; + item1=3444; class CustomData { role=1; @@ -30444,7 +41974,7 @@ class Mission }; }; }; - id=947; + id=3441; class CustomAttributes { class Attribute0 @@ -30462,19 +41992,19 @@ class Mission "STRING" }; }; - value="Syndikat IFV2 -"; + value="Syndikat TECH2 -"; }; }; }; nAttributes=1; }; }; - class Item320 + class Item453 { dataType="Object"; class PositionInfo { - position[]={1420.1664,7.1644082,1287.9631}; + position[]={1425.525,7.1644082,875.40735}; }; side="Independent"; flags=6; @@ -30485,15 +42015,15 @@ class Mission name="VehSyn_IFV2"; textures="Guerilla_09"; }; - id=950; + id=3444; type="B_G_Offroad_01_armed_F"; }; - class Item321 + class Item454 { dataType="Object"; class PositionInfo { - position[]={1367.5658,6.5695963,1372.9875}; + position[]={1372.9248,6.5695963,960.43152}; }; side="Empty"; flags=4; @@ -30504,15 +42034,15 @@ class Mission name="VehSyn_CAR1"; textures="Olive"; }; - id=951; + id=3445; type="I_C_Offroad_02_unarmed_F"; }; - class Item322 + class Item455 { dataType="Object"; class PositionInfo { - position[]={1366.2035,6.5695963,1345.7668}; + position[]={1371.5625,6.5695963,933.21082}; }; side="Empty"; flags=4; @@ -30523,15 +42053,15 @@ class Mission name="VehSyn_CAR2"; textures="Olive"; }; - id=952; + id=3446; type="I_C_Offroad_02_unarmed_F"; }; - class Item323 + class Item456 { dataType="Object"; class PositionInfo { - position[]={1418.0883,6.8716264,1395.2258}; + position[]={1423.4473,6.8715067,982.6698}; }; side="Empty"; flags=4; @@ -30542,16 +42072,15 @@ class Mission name="VehSyn_TR1"; textures="Olive"; }; - id=953; + id=3447; type="I_C_Van_01_transport_F"; - atlOffset=0.00011968613; }; - class Item324 + class Item457 { dataType="Object"; class PositionInfo { - position[]={1425.2494,6.8716264,1389.2473}; + position[]={1430.6084,6.8715067,976.69128}; }; side="Empty"; flags=4; @@ -30562,16 +42091,15 @@ class Mission name="VehSyn_TR2"; textures="Olive"; }; - id=954; + id=3448; type="I_C_Van_01_transport_F"; - atlOffset=0.00011968613; }; - class Item325 + class Item458 { dataType="Object"; class PositionInfo { - position[]={1455.6927,6.8716264,1395.2034}; + position[]={1461.0518,6.8715067,982.64734}; }; side="Empty"; flags=4; @@ -30582,16 +42110,15 @@ class Mission name="VehSyn_TR3"; textures="Olive"; }; - id=955; + id=3449; type="I_C_Van_01_transport_F"; - atlOffset=0.00011968613; }; - class Item326 + class Item459 { dataType="Object"; class PositionInfo { - position[]={1463.8392,6.8716264,1388.677}; + position[]={1469.1982,6.8715067,976.12097}; }; side="Empty"; flags=4; @@ -30602,16 +42129,15 @@ class Mission name="VehSyn_TR4"; textures="Olive"; }; - id=956; + id=3450; type="I_C_Van_01_transport_F"; - atlOffset=0.00011968613; }; - class Item327 + class Item460 { dataType="Object"; class PositionInfo { - position[]={1499.974,6.8716264,1393.5471}; + position[]={1505.333,6.8715067,980.99109}; }; side="Empty"; flags=4; @@ -30622,16 +42148,15 @@ class Mission name="VehSyn_TR5"; textures="Olive"; }; - id=957; + id=3451; type="I_C_Van_01_transport_F"; - atlOffset=0.00011968613; }; - class Item328 + class Item461 { dataType="Object"; class PositionInfo { - position[]={1516.6342,6.8716264,1389.5872}; + position[]={1521.9932,6.8715067,977.03113}; }; side="Empty"; flags=4; @@ -30642,16 +42167,15 @@ class Mission name="VehSyn_TR6"; textures="Olive"; }; - id=958; + id=3452; type="I_C_Van_01_transport_F"; - atlOffset=0.00011968613; }; - class Item329 + class Item462 { dataType="Object"; class PositionInfo { - position[]={1574.7318,6.5695963,1367.6516}; + position[]={1580.0908,6.5695963,955.09558}; }; side="Empty"; flags=4; @@ -30662,15 +42186,15 @@ class Mission name="VehSyn_CAR3"; textures="Olive"; }; - id=959; + id=3453; type="I_C_Offroad_02_unarmed_F"; }; - class Item330 + class Item463 { dataType="Object"; class PositionInfo { - position[]={1573.8197,6.5695963,1342.1731}; + position[]={1579.1787,6.5695963,929.61707}; }; side="Empty"; flags=4; @@ -30681,15 +42205,15 @@ class Mission name="VehSyn_CAR4"; textures="Olive"; }; - id=960; + id=3454; type="I_C_Offroad_02_unarmed_F"; }; - class Item331 + class Item464 { dataType="Object"; class PositionInfo { - position[]={1507.12,5.8924227,1374.978}; + position[]={1512.479,5.8924227,962.422}; }; side="Empty"; flags=4; @@ -30699,7 +42223,7 @@ class Mission init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; name="CrateSyn_C"; }; - id=961; + id=3455; type="IG_supplyCrate_F"; class CustomAttributes { @@ -30725,12 +42249,12 @@ class Mission nAttributes=1; }; }; - class Item332 + class Item465 { dataType="Object"; class PositionInfo { - position[]={1465.968,5.8924227,1375.243}; + position[]={1471.327,5.8924227,962.68689}; }; side="Empty"; flags=4; @@ -30740,7 +42264,7 @@ class Mission init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; name="CrateSyn_B"; }; - id=962; + id=3456; type="IG_supplyCrate_F"; class CustomAttributes { @@ -30766,12 +42290,12 @@ class Mission nAttributes=1; }; }; - class Item333 + class Item466 { dataType="Object"; class PositionInfo { - position[]={1425.147,5.8924227,1375.54}; + position[]={1430.506,5.8924227,962.98401}; }; side="Empty"; flags=4; @@ -30781,7 +42305,7 @@ class Mission init="[""crate_med"",this,""ind_c_f""] call f_fnc_assignGear"; name="CrateSyn_A"; }; - id=963; + id=3457; type="IG_supplyCrate_F"; class CustomAttributes { @@ -30807,14 +42331,14 @@ class Mission nAttributes=1; }; }; - class Item334 + class Item467 { dataType="Logic"; class PositionInfo { - position[]={1348.1381,5,1369.7581}; + position[]={1353.4971,5,957.20203}; }; - id=964; + id=3458; type="SupportRequester"; class CustomAttributes { @@ -30954,7 +42478,7 @@ class Mission nAttributes=7; }; }; - class Item335 + class Item468 { dataType="Group"; side="Independent"; @@ -30966,14 +42490,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1350.14,5.0014391,1363.6685}; + position[]={1355.499,5.0014391,951.112}; }; side="Independent"; flags=6; class Attributes { }; - id=966; + id=3460; type="I_helipilot_F"; class CustomAttributes { @@ -31004,14 +42528,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1350.14,5.0014391,1363.6685}; + position[]={1355.499,5.0014391,951.112}; }; side="Independent"; flags=4; class Attributes { }; - id=967; + id=3461; type="I_helipilot_F"; class CustomAttributes { @@ -31053,8 +42577,8 @@ class Mission class Item0 { linkID=0; - item0=966; - item1=968; + item0=3460; + item1=3462; class CustomData { role=1; @@ -31063,8 +42587,8 @@ class Mission class Item1 { linkID=1; - item0=967; - item1=968; + item0=3461; + item1=3462; class CustomData { role=2; @@ -31073,14 +42597,14 @@ class Mission }; }; }; - id=965; + id=3459; }; - class Item336 + class Item469 { dataType="Object"; class PositionInfo { - position[]={1350.14,6.5310755,1363.6184}; + position[]={1355.499,6.5310755,951.06201}; }; side="Independent"; flags=6; @@ -31090,10 +42614,10 @@ class Mission textures="Green"; receiveRemoteTargets=1; }; - id=968; + id=3462; type="I_Heli_light_03_dynamicLoadout_F"; }; - class Item337 + class Item470 { dataType="Group"; side="Independent"; @@ -31105,14 +42629,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1346.0267,5.0014391,1363.6892}; + position[]={1351.3857,5.0014391,951.13318}; }; side="Independent"; flags=6; class Attributes { }; - id=970; + id=3464; type="I_soldier_F"; class CustomAttributes { @@ -31154,8 +42678,8 @@ class Mission class Item0 { linkID=0; - item0=970; - item1=971; + item0=3464; + item1=3465; class CustomData { role=2; @@ -31164,14 +42688,14 @@ class Mission }; }; }; - id=969; + id=3463; }; - class Item338 + class Item471 { dataType="Object"; class PositionInfo { - position[]={1346.0267,5.7216258,1363.6389}; + position[]={1351.3857,5.7216258,951.08276}; }; side="Independent"; flags=6; @@ -31179,17 +42703,17 @@ class Mission { skill=0.60000002; }; - id=971; + id=3465; type="I_Mortar_01_F"; }; - class Item339 + class Item472 { dataType="Logic"; class PositionInfo { - position[]={1350.3256,5,1367.3372}; + position[]={1355.6846,5,954.78113}; }; - id=972; + id=3466; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -31272,24 +42796,24 @@ class Mission nAttributes=4; }; }; - class Item340 + class Item473 { dataType="Logic"; class PositionInfo { - position[]={1346.0433,5,1367.4338}; + position[]={1351.4023,5,954.87781}; }; - id=973; + id=3467; type="SupportProvider_Artillery"; }; - class Item341 + class Item474 { dataType="Logic"; class PositionInfo { - position[]={1348.4252,5,1341.1448}; + position[]={1353.7842,5,928.58875}; }; - id=974; + id=3468; type="SupportRequester"; class CustomAttributes { @@ -31429,7 +42953,7 @@ class Mission nAttributes=7; }; }; - class Item342 + class Item475 { dataType="Group"; side="Independent"; @@ -31441,14 +42965,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1350.4271,5.0014391,1335.0552}; + position[]={1355.7861,5.0014391,922.49921}; }; side="Independent"; flags=6; class Attributes { }; - id=976; + id=3470; type="I_helipilot_F"; class CustomAttributes { @@ -31479,14 +43003,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1350.4271,5.0014391,1335.0552}; + position[]={1355.7861,5.0014391,922.49921}; }; side="Independent"; flags=4; class Attributes { }; - id=977; + id=3471; type="I_helipilot_F"; class CustomAttributes { @@ -31528,8 +43052,8 @@ class Mission class Item0 { linkID=0; - item0=976; - item1=978; + item0=3470; + item1=3472; class CustomData { role=1; @@ -31538,8 +43062,8 @@ class Mission class Item1 { linkID=1; - item0=977; - item1=978; + item0=3471; + item1=3472; class CustomData { role=2; @@ -31548,14 +43072,14 @@ class Mission }; }; }; - id=975; + id=3469; }; - class Item343 + class Item476 { dataType="Object"; class PositionInfo { - position[]={1350.4271,6.5310755,1335.0051}; + position[]={1355.7861,6.5310755,922.44916}; }; side="Independent"; flags=6; @@ -31565,10 +43089,10 @@ class Mission textures="Green"; receiveRemoteTargets=1; }; - id=978; + id=3472; type="I_Heli_light_03_dynamicLoadout_F"; }; - class Item344 + class Item477 { dataType="Group"; side="Independent"; @@ -31580,14 +43104,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1346.3138,5.0014391,1335.0759}; + position[]={1351.6729,5.0014391,922.51996}; }; side="Independent"; flags=6; class Attributes { }; - id=980; + id=3474; type="I_soldier_F"; class CustomAttributes { @@ -31629,8 +43153,8 @@ class Mission class Item0 { linkID=0; - item0=980; - item1=981; + item0=3474; + item1=3475; class CustomData { role=2; @@ -31639,14 +43163,14 @@ class Mission }; }; }; - id=979; + id=3473; }; - class Item345 + class Item478 { dataType="Object"; class PositionInfo { - position[]={1346.3138,5.7216258,1335.0256}; + position[]={1351.6729,5.7216258,922.46954}; }; side="Independent"; flags=6; @@ -31654,17 +43178,17 @@ class Mission { skill=0.60000002; }; - id=981; + id=3475; type="I_Mortar_01_F"; }; - class Item346 + class Item479 { dataType="Logic"; class PositionInfo { - position[]={1350.6117,5,1338.7239}; + position[]={1355.9707,5,926.16785}; }; - id=982; + id=3476; type="SupportProvider_Virtual_CAS_Heli"; class CustomAttributes { @@ -31747,25 +43271,25 @@ class Mission nAttributes=4; }; }; - class Item347 + class Item480 { dataType="Logic"; class PositionInfo { - position[]={1346.3304,5,1338.8206}; + position[]={1351.6895,5,926.26453}; }; - id=983; + id=3477; type="SupportProvider_Artillery"; }; - class Item348 + class Item481 { dataType="Object"; class PositionInfo { - position[]={1559.641,6.8630314,1225.556}; + position[]={1565,6.5310755,813}; }; side="Independent"; - flags=2; + flags=6; class Attributes { skill=0.60000002; @@ -31775,11 +43299,10 @@ class Mission receiveRemoteTargets=1; pylons=";;"; }; - id=1027; + id=3478; type="I_Heli_light_03_dynamicLoadout_F"; - atlOffset=0.33195591; }; - class Item349 + class Item482 { dataType="Group"; side="West"; @@ -31791,7 +43314,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={489.91336,5.0014391,1044.3853}; + position[]={488.63699,5.0014391,525.81097}; }; side="West"; flags=7; @@ -31804,7 +43327,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1038; + id=3480; type="B_GEN_Commander_F"; class CustomAttributes { @@ -31847,8 +43370,8 @@ class Mission class Item0 { linkID=0; - item0=1038; - item1=1088; + item0=3480; + item1=3509; class CustomData { role=1; @@ -31856,7 +43379,7 @@ class Mission }; }; }; - id=1037; + id=3479; class CustomAttributes { class Attribute0 @@ -31881,7 +43404,7 @@ class Mission nAttributes=1; }; }; - class Item350 + class Item483 { dataType="Group"; side="West"; @@ -31893,7 +43416,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={490.23773,5.0014391,1022.6599}; + position[]={488.961,5.0014391,504.086}; }; side="West"; flags=7; @@ -31906,7 +43429,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1040; + id=3482; type="B_GEN_Commander_F"; class CustomAttributes { @@ -31949,8 +43472,8 @@ class Mission class Item0 { linkID=0; - item0=1040; - item1=1089; + item0=3482; + item1=3510; class CustomData { role=1; @@ -31958,7 +43481,7 @@ class Mission }; }; }; - id=1039; + id=3481; class CustomAttributes { class Attribute0 @@ -31983,7 +43506,7 @@ class Mission nAttributes=1; }; }; - class Item351 + class Item484 { dataType="Group"; side="West"; @@ -31995,7 +43518,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={509.84177,5.0014391,1044.8337}; + position[]={508.56494,5.0014391,526.26001}; }; side="West"; flags=6; @@ -32008,7 +43531,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1067; + id=3484; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32039,7 +43562,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={509.84177,5.0014391,1044.8337}; + position[]={508.56494,5.0014391,526.26001}; }; side="West"; flags=4; @@ -32052,7 +43575,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1235; + id=3485; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32083,7 +43606,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={514.65173,5.0014391,1039.97}; + position[]={513.375,5.0014391,521.39624}; }; side="West"; flags=4; @@ -32096,7 +43619,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1237; + id=3486; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32127,7 +43650,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={514.65173,5.0014391,1039.97}; + position[]={513.375,5.0014391,521.39624}; }; side="West"; flags=4; @@ -32139,7 +43662,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1238; + id=3487; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32182,8 +43705,8 @@ class Mission class Item0 { linkID=0; - item0=1067; - item1=1090; + item0=3484; + item1=3511; class CustomData { role=2; @@ -32193,8 +43716,8 @@ class Mission class Item1 { linkID=1; - item0=1235; - item1=1090; + item0=3485; + item1=3511; class CustomData { role=1; @@ -32203,8 +43726,8 @@ class Mission class Item2 { linkID=2; - item0=1237; - item1=1091; + item0=3486; + item1=3512; class CustomData { role=2; @@ -32214,8 +43737,8 @@ class Mission class Item3 { linkID=3; - item0=1238; - item1=1091; + item0=3487; + item1=3512; class CustomData { role=1; @@ -32223,7 +43746,7 @@ class Mission }; }; }; - id=1041; + id=3483; class CustomAttributes { class Attribute0 @@ -32248,7 +43771,7 @@ class Mission nAttributes=1; }; }; - class Item352 + class Item485 { dataType="Group"; side="West"; @@ -32260,7 +43783,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.1658,5.0014391,1021.7027}; + position[]={508.88901,5.0014391,503.129}; }; side="West"; flags=6; @@ -32273,7 +43796,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1070; + id=3489; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32304,7 +43827,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.1658,5.0014391,1021.7027}; + position[]={508.88901,5.0014391,503.129}; }; side="West"; flags=4; @@ -32317,7 +43840,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1071; + id=3490; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32348,7 +43871,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.1658,5.0014391,1021.7027}; + position[]={508.88901,5.0014391,503.129}; }; side="West"; flags=4; @@ -32361,7 +43884,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1072; + id=3491; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32392,7 +43915,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.1658,5.0014391,1021.7027}; + position[]={508.88901,5.0014391,503.129}; }; side="West"; flags=4; @@ -32404,7 +43927,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1073; + id=3492; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32447,8 +43970,8 @@ class Mission class Item0 { linkID=0; - item0=1070; - item1=1092; + item0=3489; + item1=3513; class CustomData { role=3; @@ -32458,8 +43981,8 @@ class Mission class Item1 { linkID=1; - item0=1071; - item1=1092; + item0=3490; + item1=3513; class CustomData { role=2; @@ -32469,8 +43992,8 @@ class Mission class Item2 { linkID=2; - item0=1072; - item1=1092; + item0=3491; + item1=3513; class CustomData { role=2; @@ -32480,8 +44003,8 @@ class Mission class Item3 { linkID=3; - item0=1073; - item1=1092; + item0=3492; + item1=3513; class CustomData { role=1; @@ -32489,7 +44012,7 @@ class Mission }; }; }; - id=1049; + id=3488; class CustomAttributes { class Attribute0 @@ -32514,7 +44037,7 @@ class Mission nAttributes=1; }; }; - class Item353 + class Item486 { dataType="Group"; side="West"; @@ -32526,7 +44049,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.59879,5.0014391,999.65369}; + position[]={509.32199,5.0014391,481.07999}; }; side="West"; flags=6; @@ -32539,7 +44062,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1074; + id=3494; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32570,7 +44093,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.59879,5.0014391,999.65369}; + position[]={509.32199,5.0014391,481.07999}; }; side="West"; flags=4; @@ -32583,7 +44106,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1075; + id=3495; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32614,7 +44137,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.59879,5.0014391,999.65369}; + position[]={509.32199,5.0014391,481.07999}; }; side="West"; flags=4; @@ -32627,7 +44150,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1076; + id=3496; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32658,7 +44181,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.59879,5.0014391,999.65369}; + position[]={509.32199,5.0014391,481.07999}; }; side="West"; flags=4; @@ -32670,7 +44193,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1077; + id=3497; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32713,8 +44236,8 @@ class Mission class Item0 { linkID=0; - item0=1074; - item1=1093; + item0=3494; + item1=3514; class CustomData { role=3; @@ -32724,8 +44247,8 @@ class Mission class Item1 { linkID=1; - item0=1075; - item1=1093; + item0=3495; + item1=3514; class CustomData { role=2; @@ -32735,8 +44258,8 @@ class Mission class Item2 { linkID=2; - item0=1076; - item1=1093; + item0=3496; + item1=3514; class CustomData { role=2; @@ -32746,8 +44269,8 @@ class Mission class Item3 { linkID=3; - item0=1077; - item1=1093; + item0=3497; + item1=3514; class CustomData { role=1; @@ -32755,7 +44278,7 @@ class Mission }; }; }; - id=1054; + id=3493; class CustomAttributes { class Attribute0 @@ -32780,7 +44303,7 @@ class Mission nAttributes=1; }; }; - class Item354 + class Item487 { dataType="Group"; side="West"; @@ -32792,7 +44315,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.27676,5.0014391,976.62372}; + position[]={509,5.0014391,458.04999}; }; side="West"; flags=6; @@ -32805,7 +44328,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1078; + id=3499; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32836,7 +44359,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.27676,5.0014391,976.62372}; + position[]={509,5.0014391,458.04999}; }; side="West"; flags=4; @@ -32849,7 +44372,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1079; + id=3500; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32880,7 +44403,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.27676,5.0014391,976.62372}; + position[]={509,5.0014391,458.04999}; }; side="West"; flags=4; @@ -32893,7 +44416,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1080; + id=3501; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32924,7 +44447,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={510.27676,5.0014391,976.62372}; + position[]={509,5.0014391,458.04999}; }; side="West"; flags=4; @@ -32936,7 +44459,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1081; + id=3502; type="B_GEN_Soldier_F"; class CustomAttributes { @@ -32979,8 +44502,8 @@ class Mission class Item0 { linkID=0; - item0=1078; - item1=1098; + item0=3499; + item1=3515; class CustomData { role=3; @@ -32990,8 +44513,8 @@ class Mission class Item1 { linkID=1; - item0=1079; - item1=1098; + item0=3500; + item1=3515; class CustomData { role=3; @@ -33001,8 +44524,8 @@ class Mission class Item2 { linkID=2; - item0=1080; - item1=1098; + item0=3501; + item1=3515; class CustomData { role=3; @@ -33012,8 +44535,8 @@ class Mission class Item3 { linkID=3; - item0=1081; - item1=1098; + item0=3502; + item1=3515; class CustomData { role=1; @@ -33021,7 +44544,7 @@ class Mission }; }; }; - id=1059; + id=3498; class CustomAttributes { class Attribute0 @@ -33046,7 +44569,7 @@ class Mission nAttributes=1; }; }; - class Item355 + class Item488 { dataType="Group"; side="West"; @@ -33058,7 +44581,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={491.44461,5.0014391,999.80695}; + position[]={490.168,5.0014391,481.233}; }; side="West"; flags=6; @@ -33071,11 +44594,30 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1082; + id=3504; type="B_GEN_Soldier_F"; class CustomAttributes { class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male01ENGFRE"; + }; + }; + }; + class Attribute1 { property="pitch"; expression="_this setpitch _value;"; @@ -33094,7 +44636,7 @@ class Mission }; }; }; - nAttributes=1; + nAttributes=2; }; }; }; @@ -33102,7 +44644,7 @@ class Mission { name="GrpGEN_MK"; }; - id=1064; + id=3503; class CustomAttributes { class Attribute0 @@ -33120,14 +44662,14 @@ class Mission "STRING" }; }; - value="Gendarmerie MK -"; + value="Gendarmerie Marksman -"; }; }; }; nAttributes=1; }; }; - class Item356 + class Item489 { dataType="Group"; side="West"; @@ -33139,7 +44681,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={491.17267,5.0014391,976.23016}; + position[]={489.896,5.0014391,457.65598}; }; side="West"; flags=7; @@ -33152,7 +44694,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1084; + id=3506; type="B_GEN_Commander_F"; class CustomAttributes { @@ -33183,7 +44725,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={491.17267,5.0014391,976.23016}; + position[]={489.896,5.0014391,457.65598}; }; side="West"; flags=5; @@ -33196,7 +44738,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1086; + id=3507; type="B_GEN_Commander_F"; class CustomAttributes { @@ -33239,8 +44781,8 @@ class Mission class Item0 { linkID=0; - item0=1084; - item1=1087; + item0=3506; + item1=3508; class CustomData { role=1; @@ -33249,8 +44791,8 @@ class Mission class Item1 { linkID=1; - item0=1086; - item1=1087; + item0=3507; + item1=3508; class CustomData { role=2; @@ -33259,7 +44801,7 @@ class Mission }; }; }; - id=1083; + id=3505; class CustomAttributes { class Attribute0 @@ -33284,12 +44826,12 @@ class Mission nAttributes=1; }; }; - class Item357 + class Item490 { dataType="Object"; class PositionInfo { - position[]={491.17273,5.6047058,975.20013}; + position[]={489.89606,5.6047058,456.62592}; }; side="West"; flags=6; @@ -33299,15 +44841,15 @@ class Mission name="VehGEN_TH1"; textures="BlueLine"; }; - id=1087; + id=3508; type="C_Heli_Light_01_civil_F"; }; - class Item358 + class Item491 { dataType="Object"; class PositionInfo { - position[]={489.91336,6.6115026,1044.366}; + position[]={488.63699,6.6115026,525.79175}; }; side="West"; flags=6; @@ -33316,15 +44858,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehGEN_CAR1"; }; - id=1088; + id=3509; type="B_GEN_Offroad_01_gen_F"; }; - class Item359 + class Item492 { dataType="Object"; class PositionInfo { - position[]={490.23773,6.6115026,1022.6406}; + position[]={488.961,6.6115026,504.06677}; }; side="West"; flags=6; @@ -33333,15 +44875,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehGEN_CAR2"; }; - id=1089; + id=3510; type="B_GEN_Offroad_01_gen_F"; }; - class Item360 + class Item493 { dataType="Object"; class PositionInfo { - position[]={509.84177,6.6115026,1044.8145}; + position[]={508.56494,6.6115026,526.24072}; }; side="West"; flags=4; @@ -33350,15 +44892,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehGEN_CAR3"; }; - id=1090; + id=3511; type="B_GEN_Offroad_01_gen_F"; }; - class Item361 + class Item494 { dataType="Object"; class PositionInfo { - position[]={514.65173,6.6115026,1039.9507}; + position[]={513.375,6.6115026,521.37695}; }; side="West"; flags=4; @@ -33367,15 +44909,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehGEN_CAR4"; }; - id=1091; + id=3512; type="B_GEN_Offroad_01_gen_F"; }; - class Item362 + class Item495 { dataType="Object"; class PositionInfo { - position[]={510.1658,6.6115026,1021.6835}; + position[]={508.88901,6.6115026,503.10977}; }; side="West"; flags=4; @@ -33384,15 +44926,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehGEN_CAR5"; }; - id=1092; + id=3513; type="B_GEN_Offroad_01_gen_F"; }; - class Item363 + class Item496 { dataType="Object"; class PositionInfo { - position[]={510.59879,6.6115026,999.63446}; + position[]={509.32199,6.6115026,481.06076}; }; side="West"; flags=4; @@ -33401,15 +44943,15 @@ class Mission init="[""v_car"",this] call f_fnc_assignGear"; name="VehGEN_CAR6"; }; - id=1093; + id=3514; type="B_GEN_Offroad_01_gen_F"; }; - class Item364 + class Item497 { dataType="Object"; class PositionInfo { - position[]={510.27676,6.5964622,976.57373}; + position[]={509,6.5964622,458}; }; side="West"; flags=4; @@ -33419,140 +44961,130 @@ class Mission name="VehGEN_CAR7"; textures="Black"; }; - id=1098; + id=3515; type="C_SUV_01_F"; }; - class Item365 + class Item498 { dataType="Logic"; class PositionInfo { - position[]={473.59708,0,776.08887}; + position[]={467.05713,5,967.90967}; }; name="F3_preMount_FIA"; init="[synchronizedObjects this, [""GrpFIA_ASL"",""GrpFIA_A1"",""GrpFIA_A2""], true, false] call f_fnc_mountGroups;"; - id=1099; + id=3516; type="Logic"; - atlOffset=-5; }; - class Item366 + class Item499 { dataType="Logic"; class PositionInfo { - position[]={517.23132,0,778.17627}; + position[]={510.69141,5,969.99707}; }; name="F3_preMount_FIA_1"; init="[synchronizedObjects this, [""GrpFIA_BSL"",""GrpFIA_B1"",""GrpFIA_B2""], true, false] call f_fnc_mountGroups;"; - id=1105; + id=3517; type="Logic"; - atlOffset=-5; }; - class Item367 + class Item500 { dataType="Logic"; class PositionInfo { - position[]={558.604,0,780.34607}; + position[]={552.06396,5,972.16687}; }; name="F3_preMount_FIA_2"; init="[synchronizedObjects this, [""GrpFIA_CSL"",""GrpFIA_C1"",""GrpFIA_C2""], true, false] call f_fnc_mountGroups;"; - id=1106; + id=3518; type="Logic"; - atlOffset=-5; }; - class Item368 + class Item501 { dataType="Logic"; class PositionInfo { - position[]={435.57681,0,770.43823}; + position[]={429.03687,5,962.25903}; }; name="F3_preMount_FIA_3"; init="[synchronizedObjects this, [""GrpFIA_CO""], true, false] call f_fnc_mountGroups;"; - id=1107; + id=3519; type="Logic"; - atlOffset=-5; }; - class Item369 + class Item502 { dataType="Logic"; class PositionInfo { - position[]={437.03455,0,744.61487}; + position[]={430.49463,5,936.43567}; }; name="F3_preMount_FIA_4"; init="[synchronizedObjects this, [""GrpFIA_DC""], true, false] call f_fnc_mountGroups;"; - id=1108; + id=3520; type="Logic"; - atlOffset=-5; }; - class Item370 + class Item503 { dataType="Logic"; class PositionInfo { - position[]={1441.297,0,786.68701}; + position[]={1414.066,5,1387.2378}; }; name="F3_preMount_AAF"; init="[synchronizedObjects this, [""GrpAAF_ASL"",""GrpAAF_A1"",""GrpAAF_A2""], true, false] call f_fnc_mountGroups;"; - id=1110; + id=3521; type="Logic"; - atlOffset=-5; }; - class Item371 + class Item504 { dataType="Logic"; class PositionInfo { - position[]={1485.2041,0,788.32947}; + position[]={1457.9731,5,1388.8804}; }; name="F3_preMount_AAF_1"; init="[synchronizedObjects this, [""GrpAAF_BSL"",""GrpAAF_B1"",""GrpAAF_B2""], true, false] call f_fnc_mountGroups;;"; - id=1111; + id=3522; type="Logic"; - atlOffset=-5; }; - class Item372 + class Item505 { dataType="Logic"; class PositionInfo { - position[]={1528.1724,0,788.09692}; + position[]={1500.9414,5,1388.6477}; }; name="F3_preMount_AAF_2"; init="[synchronizedObjects this, [""GrpAAF_CSL"",""GrpAAF_C1"",""GrpAAF_C2""], true, false] call f_fnc_mountGroups;"; - id=1112; + id=3523; type="Logic"; - atlOffset=-5; }; - class Item373 + class Item506 { dataType="Logic"; class PositionInfo { - position[]={1398.5631,0,781.28723}; + position[]={1371.3322,5,1381.8381}; }; name="F3_preMount_AAF_3"; init="[synchronizedObjects this, [""GrpAAF_CO""], true, false] call f_fnc_mountGroups;"; - id=1113; + id=3524; type="Logic"; - atlOffset=-5; }; - class Item374 + class Item507 { dataType="Logic"; class PositionInfo { - position[]={1397.389,0,753.11096}; + position[]={1370.1581,5,1353.6619}; }; name="F3_preMount_AAF_4"; init="[synchronizedObjects this, [""GrpAAF_DC""], true, false] call f_fnc_mountGroups;"; - id=1114; + id=3525; type="Logic"; - atlOffset=-5; }; - class Item375 + class Item508 { dataType="Logic"; class PositionInfo @@ -33561,11 +45093,11 @@ class Mission }; name="F3_preMount_NATO"; init="[synchronizedObjects this, [""GrpNATO_ASL"",""GrpNATO_A1"",""GrpNATO_A2""], true, false] call f_fnc_mountGroups;"; - id=1115; + id=3526; type="Logic"; atlOffset=-5; }; - class Item376 + class Item509 { dataType="Logic"; class PositionInfo @@ -33574,11 +45106,11 @@ class Mission }; name="F3_preMount_NATO_1"; init="[synchronizedObjects this, [""GrpNATO_BSL"",""GrpNATO_B1"",""GrpNATO_B2""], true, false] call f_fnc_mountGroups;"; - id=1116; + id=3527; type="Logic"; atlOffset=-5; }; - class Item377 + class Item510 { dataType="Logic"; class PositionInfo @@ -33587,11 +45119,11 @@ class Mission }; name="F3_preMount_NATO_2"; init="[synchronizedObjects this, [""GrpNATO_CSL"",""GrpNATO_C1"",""GrpNATO_C2""], true, false] call f_fnc_mountGroups;"; - id=1117; + id=3528; type="Logic"; atlOffset=-5; }; - class Item378 + class Item511 { dataType="Logic"; class PositionInfo @@ -33600,11 +45132,11 @@ class Mission }; name="F3_preMount_NATO_3"; init="[synchronizedObjects this, [""GrpNATO_CO""], true, false] call f_fnc_mountGroups;"; - id=1118; + id=3529; type="Logic"; atlOffset=-5; }; - class Item379 + class Item512 { dataType="Logic"; class PositionInfo @@ -33613,76 +45145,71 @@ class Mission }; name="F3_preMount_NATO_4"; init="[synchronizedObjects this, [""GrpNATO_DC""], true, false] call f_fnc_mountGroups;"; - id=1119; + id=3530; type="Logic"; atlOffset=-5; }; - class Item380 + class Item513 { dataType="Logic"; class PositionInfo { - position[]={1413.598,0,1409.447}; + position[]={1418.957,5,996.89099}; }; name="F3_preMount_SYN"; init="[synchronizedObjects this, [""GrpSYN_ASL"",""GrpSYN_A1"",""GrpSYN_A2""], true, false] call f_fnc_mountGroups;"; - id=1120; + id=3531; type="Logic"; - atlOffset=-5; }; - class Item381 + class Item514 { dataType="Logic"; class PositionInfo { - position[]={1450.3208,0,1411.637}; + position[]={1455.6798,5,999.08093}; }; name="F3_preMount_SYN_1"; init="[synchronizedObjects this, [""GrpSYN_BSL"",""GrpSYN_B1"",""GrpSYN_B2""], true, false] call f_fnc_mountGroups;"; - id=1121; + id=3532; type="Logic"; - atlOffset=-5; }; - class Item382 + class Item515 { dataType="Logic"; class PositionInfo { - position[]={1492.4077,0,1411.3385}; + position[]={1497.7667,5,998.78235}; }; name="F3_preMount_SYN_2"; init="[synchronizedObjects this, [""GrpSYN_CSL"",""GrpSYN_C1"",""GrpSYN_C2""], true, false] call f_fnc_mountGroups;"; - id=1122; + id=3533; type="Logic"; - atlOffset=-5; }; - class Item383 + class Item516 { dataType="Logic"; class PositionInfo { - position[]={1360.4757,0,1389.549}; + position[]={1365.8347,5,976.9928}; }; name="F3_preMount_SYN_3"; init="[synchronizedObjects this, [""GrpSYN_CO""], true, false] call f_fnc_mountGroups;"; - id=1123; + id=3534; type="Logic"; - atlOffset=-5; }; - class Item384 + class Item517 { dataType="Logic"; class PositionInfo { - position[]={1362.8638,0,1356.7145}; + position[]={1368.2228,5,944.15833}; }; name="F3_preMount_SYN_4"; init="[synchronizedObjects this, [""GrpSYN_DC""], true, false] call f_fnc_mountGroups;"; - id=1124; + id=3535; type="Logic"; - atlOffset=-5; }; - class Item385 + class Item518 { dataType="Logic"; class PositionInfo @@ -33691,11 +45218,11 @@ class Mission }; name="F3_preMount_CSAT"; init="[synchronizedObjects this, [""GrpCSAT_ASL"",""GrpCSAT_A1"",""GrpCSAT_A2""], true, false] call f_fnc_mountGroups;"; - id=1125; + id=3536; type="Logic"; atlOffset=-5; }; - class Item386 + class Item519 { dataType="Logic"; class PositionInfo @@ -33704,11 +45231,11 @@ class Mission }; name="F3_preMount_CSAT_1"; init="[synchronizedObjects this, [""GrpCSAT_BSL"",""GrpCSAT_B1"",""GrpCSAT_B2""], true, false] call f_fnc_mountGroups;"; - id=1126; + id=3537; type="Logic"; atlOffset=-5; }; - class Item387 + class Item520 { dataType="Logic"; class PositionInfo @@ -33717,11 +45244,11 @@ class Mission }; name="F3_preMount_CSAT_2"; init="[synchronizedObjects this, [""GrpCSAT_CSL"",""GrpCSAT_C1"",""GrpCSAT_C2""], true, false] call f_fnc_mountGroups;"; - id=1127; + id=3538; type="Logic"; atlOffset=-5; }; - class Item388 + class Item521 { dataType="Logic"; class PositionInfo @@ -33730,11 +45257,11 @@ class Mission }; name="F3_preMount_CSAT_3"; init="[synchronizedObjects this, [""GrpCSAT_CO""], true, false] call f_fnc_mountGroups;"; - id=1128; + id=3539; type="Logic"; atlOffset=-5; }; - class Item389 + class Item522 { dataType="Logic"; class PositionInfo @@ -33743,22 +45270,22 @@ class Mission }; name="F3_preMount_CSAT_4"; init="[synchronizedObjects this, [""GrpCSAT_DC""], true, false] call f_fnc_mountGroups;"; - id=1129; + id=3540; type="Logic"; atlOffset=-5; }; - class Item390 + class Item523 { dataType="Logic"; class PositionInfo { - position[]={2900,5,800}; + position[]={2783,5,575}; }; name="F3_Spectator"; init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; - id=1130; + id=3541; type="VirtualSpectator_F"; class CustomAttributes { @@ -33859,18 +45386,18 @@ class Mission nAttributes=5; }; }; - class Item391 + class Item524 { dataType="Logic"; class PositionInfo { - position[]={2900,5,766}; + position[]={2783,5,541}; }; name="F3_Spectator_1"; init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; - id=1131; + id=3542; type="VirtualSpectator_F"; class CustomAttributes { @@ -33971,18 +45498,18 @@ class Mission nAttributes=5; }; }; - class Item392 + class Item525 { dataType="Logic"; class PositionInfo { - position[]={2900,5,733}; + position[]={2783,5,508}; }; name="F3_Spectator_2"; init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; - id=1132; + id=3543; type="VirtualSpectator_F"; class CustomAttributes { @@ -34083,18 +45610,18 @@ class Mission nAttributes=5; }; }; - class Item393 + class Item526 { dataType="Logic"; class PositionInfo { - position[]={2900,5,700}; + position[]={2783,5,475}; }; name="F3_Spectator_3"; init="if(isServer)then{" \n " {" \n " this setVariable [_x, this getVariable _x, true];" \n " } forEach [""AllowFreeCamera"", ""WhitelistedSides"", ""ShowFocusInfo"", ""AllowAi"", ""Allow3PPCamera""];" \n "};"; isPlayable=1; description="Spectator Slot"; - id=1133; + id=3544; type="VirtualSpectator_F"; class CustomAttributes { @@ -34195,7 +45722,7 @@ class Mission nAttributes=5; }; }; - class Item394 + class Item527 { dataType="Object"; class PositionInfo @@ -34210,10 +45737,10 @@ class Mission name="VehNATO_CAS1"; receiveRemoteTargets=1; }; - id=1134; + id=3545; type="B_Plane_CAS_01_dynamicLoadout_F"; }; - class Item395 + class Item528 { dataType="Group"; side="West"; @@ -34240,7 +45767,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1136; + id=3547; type="B_Fighter_Pilot_F"; class CustomAttributes { @@ -34290,7 +45817,7 @@ class Mission { name="GrpNATO_CAS1"; }; - id=1135; + id=3546; class CustomAttributes { class Attribute0 @@ -34315,12 +45842,12 @@ class Mission nAttributes=1; }; }; - class Item396 + class Item529 { dataType="Object"; class PositionInfo { - position[]={1383.8635,7.4227982,675.79047}; + position[]={1356.6326,7.4227982,1276.3413}; }; side="Empty"; flags=4; @@ -34330,10 +45857,10 @@ class Mission name="VehAAF_CAS1"; receiveRemoteTargets=1; }; - id=1139; + id=3548; type="I_Plane_Fighter_03_dynamicLoadout_F"; }; - class Item397 + class Item530 { dataType="Group"; side="Independent"; @@ -34345,8 +45872,8 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1380.6572,5.0014391,679.09668}; - angles[]={0,1.7658945,0}; + position[]={1353.426,5.0014391,1279.6471}; + angles[]={0,1.7658893,0}; }; side="Independent"; flags=6; @@ -34360,7 +45887,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1143; + id=3550; type="I_Fighter_Pilot_F"; class CustomAttributes { @@ -34410,7 +45937,7 @@ class Mission { name="GrpAAF_CAS1"; }; - id=1142; + id=3549; class CustomAttributes { class Attribute0 @@ -34435,7 +45962,7 @@ class Mission nAttributes=1; }; }; - class Item398 + class Item531 { dataType="Group"; side="East"; @@ -34461,7 +45988,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1145; + id=3552; type="O_Fighter_Pilot_F"; class CustomAttributes { @@ -34511,7 +46038,7 @@ class Mission { name="GrpCSAT_CAS1"; }; - id=1144; + id=3551; class CustomAttributes { class Attribute0 @@ -34536,7 +46063,7 @@ class Mission nAttributes=1; }; }; - class Item399 + class Item532 { dataType="Object"; class PositionInfo @@ -34551,15 +46078,15 @@ class Mission name="VehCSAT_CAS1"; receiveRemoteTargets=1; }; - id=1146; + id=3553; type="O_Plane_CAS_02_dynamicLoadout_F"; }; - class Item400 + class Item533 { dataType="Object"; class PositionInfo { - position[]={1412.1403,5.8924227,1074.8203}; + position[]={1425.3263,5.8924227,1768.1177}; }; side="Empty"; flags=4; @@ -34569,7 +46096,7 @@ class Mission init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; name="Crate3IFB_A"; }; - id=1399; + id=3554; type="IG_supplyCrate_F"; class CustomAttributes { @@ -34595,12 +46122,12 @@ class Mission nAttributes=1; }; }; - class Item401 + class Item534 { dataType="Object"; class PositionInfo { - position[]={1454.1492,5.8924227,1075.9512}; + position[]={1467.3352,5.8924227,1769.2485}; }; side="Empty"; flags=4; @@ -34610,7 +46137,7 @@ class Mission init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; name="Crate3IFB_B"; }; - id=1400; + id=3555; type="IG_supplyCrate_F"; class CustomAttributes { @@ -34636,12 +46163,12 @@ class Mission nAttributes=1; }; }; - class Item402 + class Item535 { dataType="Object"; class PositionInfo { - position[]={1494.1052,5.8924227,1074.7432}; + position[]={1507.2913,5.8924227,1768.0405}; }; side="Empty"; flags=4; @@ -34651,7 +46178,7 @@ class Mission init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""crate_med"",this] call f_fnc_assignGear"; name="Crate3IFB_C"; }; - id=1401; + id=3556; type="IG_supplyCrate_F"; class CustomAttributes { @@ -34677,22 +46204,22 @@ class Mission nAttributes=1; }; }; - class Item403 + class Item536 { dataType="Logic"; class PositionInfo { - position[]={1355.8893,5,1062.4961}; + position[]={1369.0753,5,1755.7935}; }; - id=1538; + id=3557; type="SupportProvider_Artillery"; }; - class Item404 + class Item537 { dataType="Object"; class PositionInfo { - position[]={1532.8141,5.6047058,935.72253}; + position[]={1546.0001,5.6047058,1629.0199}; }; side="Independent"; flags=6; @@ -34703,17 +46230,17 @@ class Mission name="Veh3IFB_TH1"; textures="Elliptical"; }; - id=1405; + id=3558; type="C_Heli_Light_01_civil_F"; }; - class Item405 + class Item538 { dataType="Logic"; class PositionInfo { - position[]={1357.984,5.4784107,1064.8203}; + position[]={1371.17,5.4784107,1758.1177}; }; - id=1417; + id=3559; type="SupportRequester"; atlOffset=0.47841072; class CustomAttributes @@ -34854,7 +46381,7 @@ class Mission nAttributes=7; }; }; - class Item406 + class Item539 { dataType="Group"; side="Independent"; @@ -34866,16 +46393,16 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1355.9049,5.3587284,1059.6226}; + position[]={1369.0909,5.358439,1752.92}; }; side="Independent"; flags=2; class Attributes { }; - id=1419; + id=3561; type="B_Soldier_F"; - atlOffset=0.35728931; + atlOffset=0.35699987; }; }; class Attributes @@ -34893,8 +46420,8 @@ class Mission class Item0 { linkID=0; - item0=1419; - item1=1420; + item0=3561; + item1=3562; class CustomData { role=2; @@ -34903,15 +46430,15 @@ class Mission }; }; }; - id=1418; - atlOffset=0.35728931; + id=3560; + atlOffset=0.35699987; }; - class Item407 + class Item540 { dataType="Object"; class PositionInfo { - position[]={1355.9049,6.0789151,1059.5721}; + position[]={1369.0909,6.0786257,1752.8696}; }; side="Independent"; flags=2; @@ -34920,11 +46447,11 @@ class Mission skill=0.60000002; init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; }; - id=1420; + id=3562; type="B_Mortar_01_F"; - atlOffset=0.35728931; + atlOffset=0.35699987; }; - class Item408 + class Item541 { dataType="Group"; side="Independent"; @@ -34936,14 +46463,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1360.2526,5.0109735,1058.3986}; + position[]={1373.4386,5.0109735,1751.696}; }; side="Independent"; flags=6; class Attributes { }; - id=1422; + id=3564; type="B_Helipilot_F"; atlOffset=0.009534359; }; @@ -34952,14 +46479,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1360.2526,5.0109735,1058.3986}; + position[]={1373.4386,5.0109735,1751.696}; }; side="Independent"; flags=4; class Attributes { }; - id=1423; + id=3565; type="B_Helipilot_F"; atlOffset=0.009534359; }; @@ -34979,8 +46506,8 @@ class Mission class Item0 { linkID=0; - item0=1422; - item1=1424; + item0=3564; + item1=3566; class CustomData { role=1; @@ -34989,8 +46516,8 @@ class Mission class Item1 { linkID=1; - item0=1423; - item1=1424; + item0=3565; + item1=3566; class CustomData { role=2; @@ -34999,38 +46526,15 @@ class Mission }; }; }; - id=1421; + id=3563; atlOffset=0.009534359; - class CustomAttributes - { - class Attribute0 - { - property="groupID"; - expression="_this setGroupID [_value];"; - class Value - { - class data - { - class type - { - type[]= - { - "STRING" - }; - }; - value=" -"; - }; - }; - }; - nAttributes=1; - }; }; - class Item409 + class Item542 { dataType="Object"; class PositionInfo { - position[]={1360.2526,6.7886786,1058.3496}; + position[]={1373.4386,6.7886786,1751.6471}; }; side="Independent"; flags=6; @@ -35040,18 +46544,18 @@ class Mission init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; receiveRemoteTargets=1; }; - id=1424; + id=3566; type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=0.009534359; }; - class Item410 + class Item543 { dataType="Logic"; class PositionInfo { - position[]={1358.8209,5.8319387,1040.9912}; + position[]={1372.007,5.8319387,1734.2886}; }; - id=1425; + id=3567; type="SupportRequester"; atlOffset=0.83193874; class CustomAttributes @@ -35192,7 +46696,7 @@ class Mission nAttributes=7; }; }; - class Item411 + class Item544 { dataType="Group"; side="Independent"; @@ -35204,14 +46708,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1356.7653,5.7404861,1035.8462}; + position[]={1369.9513,5.7404861,1729.1436}; }; side="Independent"; flags=2; class Attributes { }; - id=1427; + id=3569; type="B_Soldier_F"; atlOffset=0.73904705; }; @@ -35231,8 +46735,8 @@ class Mission class Item0 { linkID=0; - item0=1427; - item1=1428; + item0=3569; + item1=3570; class CustomData { role=2; @@ -35241,15 +46745,15 @@ class Mission }; }; }; - id=1426; + id=3568; atlOffset=0.73904705; }; - class Item412 + class Item545 { dataType="Object"; class PositionInfo { - position[]={1356.7653,6.4606729,1035.7958}; + position[]={1369.9513,6.4606729,1729.0931}; }; side="Independent"; flags=2; @@ -35258,11 +46762,11 @@ class Mission skill=0.60000002; init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; }; - id=1428; + id=3570; type="B_Mortar_01_F"; atlOffset=0.73904705; }; - class Item413 + class Item546 { dataType="Group"; side="Independent"; @@ -35274,14 +46778,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1361.1305,5.2110257,1034.6027}; + position[]={1374.3165,5.2110257,1727.9001}; }; side="Independent"; flags=6; class Attributes { }; - id=1430; + id=3572; type="B_Helipilot_F"; atlOffset=0.20958662; }; @@ -35290,14 +46794,14 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1361.1305,5.2110257,1034.6027}; + position[]={1374.3165,5.2110257,1727.9001}; }; side="Independent"; flags=4; class Attributes { }; - id=1431; + id=3573; type="B_Helipilot_F"; atlOffset=0.20958662; }; @@ -35317,8 +46821,8 @@ class Mission class Item0 { linkID=0; - item0=1430; - item1=1432; + item0=3572; + item1=3574; class CustomData { role=1; @@ -35327,8 +46831,8 @@ class Mission class Item1 { linkID=1; - item0=1431; - item1=1432; + item0=3573; + item1=3574; class CustomData { role=2; @@ -35337,15 +46841,15 @@ class Mission }; }; }; - id=1429; + id=3571; atlOffset=0.20958662; }; - class Item414 + class Item547 { dataType="Object"; class PositionInfo { - position[]={1361.1305,6.9887309,1034.5537}; + position[]={1374.3165,6.9887309,1727.8512}; }; side="Independent"; flags=6; @@ -35355,11 +46859,11 @@ class Mission init="[this,""3ifb""] call f_fnc_setVirtualFaction; "; receiveRemoteTargets=1; }; - id=1432; + id=3574; type="B_Heli_Light_01_dynamicLoadout_F"; atlOffset=0.20958662; }; - class Item415 + class Item548 { dataType="Group"; side="Independent"; @@ -35371,7 +46875,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1374.589,5.0014391,1067.248}; + position[]={1387.775,5.0014391,1760.5454}; }; side="Independent"; flags=6; @@ -35385,7 +46889,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1560; + id=3576; type="I_G_officer_F"; class CustomAttributes { @@ -35435,7 +46939,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1379.589,5.0014391,1065.597}; + position[]={1392.775,5.0014391,1758.8945}; }; side="Independent"; flags=4; @@ -35449,7 +46953,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1561; + id=3577; type="I_G_officer_F"; class CustomAttributes { @@ -35499,7 +47003,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1370.1198,5.0014391,1064.2362}; + position[]={1383.3058,5.0014391,1757.5337}; }; side="Independent"; flags=4; @@ -35512,7 +47016,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1562; + id=3578; type="I_G_Soldier_F"; }; class Item3 @@ -35520,7 +47024,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1384.5895,5.0014391,1062.8573}; + position[]={1397.7755,5.0014391,1756.1548}; }; side="Independent"; flags=4; @@ -35533,7 +47037,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1563; + id=3579; type="I_G_medic_F"; }; }; @@ -35541,7 +47045,7 @@ class Mission { name="Grp3IFB_CO"; }; - id=1433; + id=3575; class CustomAttributes { class Attribute0 @@ -35566,7 +47070,7 @@ class Mission nAttributes=1; }; }; - class Item416 + class Item549 { dataType="Group"; side="Independent"; @@ -35578,7 +47082,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1374.0514,5.2133446,1042.8837}; + position[]={1387.2374,5.2133446,1736.1812}; }; side="Independent"; flags=6; @@ -35592,7 +47096,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1564; + id=3581; type="I_G_officer_F"; atlOffset=0.21190548; class CustomAttributes @@ -35624,7 +47128,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1379.0514,5.2344303,1041.2333}; + position[]={1392.2374,5.2344303,1734.5308}; }; side="Independent"; flags=4; @@ -35638,7 +47142,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1565; + id=3582; type="I_G_officer_F"; atlOffset=0.23299122; class CustomAttributes @@ -35670,7 +47174,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1369.0514,5.1082706,1041.2333}; + position[]={1382.2374,5.1082706,1734.5308}; }; side="Independent"; flags=4; @@ -35683,7 +47187,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1566; + id=3583; type="I_G_Soldier_F"; atlOffset=0.10683155; class CustomAttributes @@ -35715,7 +47219,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1384.0514,5.1013861,1038.494}; + position[]={1397.2374,5.1013861,1731.7915}; }; side="Independent"; flags=4; @@ -35728,7 +47232,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1567; + id=3584; type="I_G_medic_F"; atlOffset=0.099946976; class CustomAttributes @@ -35760,7 +47264,7 @@ class Mission { name="Grp3IFB_DC"; }; - id=1438; + id=3580; atlOffset=0.21190548; class CustomAttributes { @@ -35786,7 +47290,7 @@ class Mission nAttributes=1; }; }; - class Item417 + class Item550 { dataType="Group"; side="Independent"; @@ -35798,7 +47302,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1410.743,5.0014391,1066.639}; + position[]={1423.9291,5.0014391,1759.9365}; }; side="Independent"; flags=6; @@ -35812,7 +47316,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1568; + id=3586; type="I_G_Soldier_SL_F"; class CustomAttributes { @@ -35862,7 +47366,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1415.7428,5.0014391,1064.9882}; + position[]={1428.9288,5.0014391,1758.2856}; }; side="Independent"; flags=4; @@ -35875,7 +47379,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1569; + id=3587; type="I_G_medic_F"; class CustomAttributes { @@ -35906,7 +47410,7 @@ class Mission { name="Grp3IFB_ASL"; }; - id=1443; + id=3585; class CustomAttributes { class Attribute0 @@ -35931,7 +47435,7 @@ class Mission nAttributes=1; }; }; - class Item418 + class Item551 { dataType="Group"; side="Independent"; @@ -35943,7 +47447,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1411.3024,5.0014391,1045.1337}; + position[]={1424.4884,5.0014391,1738.4312}; }; side="Independent"; flags=6; @@ -35957,7 +47461,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1570; + id=3589; type="I_G_Soldier_TL_F"; class CustomAttributes { @@ -35988,7 +47492,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1416.3024,5.0913763,1043.4833}; + position[]={1429.4884,5.0913763,1736.7808}; }; side="Independent"; flags=4; @@ -36002,7 +47506,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1571; + id=3590; type="I_G_Soldier_AR_F"; atlOffset=0.08993721; class CustomAttributes @@ -36034,7 +47538,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1406.3024,5.0014391,1043.4833}; + position[]={1419.4884,5.0014391,1736.7808}; }; side="Independent"; flags=4; @@ -36048,7 +47552,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1572; + id=3591; type="I_G_Soldier_AR_F"; class CustomAttributes { @@ -36079,7 +47583,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1421.3024,5.248991,1040.744}; + position[]={1434.4884,5.248991,1734.0415}; }; side="Independent"; flags=4; @@ -36093,7 +47597,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1573; + id=3592; type="I_G_Soldier_LAT_F"; atlOffset=0.24755192; class CustomAttributes @@ -36125,7 +47629,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1401.3024,5.0014391,1040.744}; + position[]={1414.4884,5.0014391,1734.0415}; }; side="Independent"; flags=4; @@ -36138,7 +47642,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1574; + id=3593; type="I_G_Soldier_F"; class CustomAttributes { @@ -36169,7 +47673,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1426.3024,5.0014391,1036.1971}; + position[]={1439.4884,5.0014391,1729.4946}; }; side="Independent"; flags=4; @@ -36182,7 +47686,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1575; + id=3594; type="I_G_Soldier_F"; class CustomAttributes { @@ -36213,7 +47717,7 @@ class Mission { name="Grp3IFB_A1"; }; - id=1446; + id=3588; class CustomAttributes { class Attribute0 @@ -36238,7 +47742,7 @@ class Mission nAttributes=1; }; }; - class Item419 + class Item552 { dataType="Group"; side="Independent"; @@ -36250,7 +47754,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1411.066,5.0014391,1021.2548}; + position[]={1424.2521,5.0014391,1714.5522}; }; side="Independent"; flags=6; @@ -36264,7 +47768,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1576; + id=3596; type="I_G_Soldier_TL_F"; class CustomAttributes { @@ -36295,7 +47799,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1416.066,5.0014391,1019.6044}; + position[]={1429.2521,5.0014391,1712.9019}; }; side="Independent"; flags=4; @@ -36309,7 +47813,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1577; + id=3597; type="I_G_Soldier_AR_F"; class CustomAttributes { @@ -36340,7 +47844,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1406.066,5.0014391,1019.6044}; + position[]={1419.2521,5.0014391,1712.9019}; }; side="Independent"; flags=4; @@ -36354,7 +47858,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1578; + id=3598; type="I_G_Soldier_AR_F"; class CustomAttributes { @@ -36385,7 +47889,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1421.066,5.0014391,1016.8651}; + position[]={1434.2521,5.0014391,1710.1626}; }; side="Independent"; flags=4; @@ -36399,7 +47903,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1579; + id=3599; type="I_G_Soldier_LAT_F"; class CustomAttributes { @@ -36430,7 +47934,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1401.066,5.0014391,1016.8651}; + position[]={1414.2521,5.0014391,1710.1626}; }; side="Independent"; flags=4; @@ -36443,7 +47947,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1580; + id=3600; type="I_G_Soldier_F"; class CustomAttributes { @@ -36474,7 +47978,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1426.066,5.0014391,1012.3182}; + position[]={1439.2521,5.0014391,1705.6157}; }; side="Independent"; flags=4; @@ -36487,7 +47991,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1581; + id=3601; type="I_G_Soldier_F"; class CustomAttributes { @@ -36518,7 +48022,7 @@ class Mission { name="Grp3IFB_A2"; }; - id=1453; + id=3595; class CustomAttributes { class Attribute0 @@ -36543,7 +48047,7 @@ class Mission nAttributes=1; }; }; - class Item420 + class Item553 { dataType="Group"; side="Independent"; @@ -36555,7 +48059,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1451.425,5.0014391,1066.592}; + position[]={1464.6111,5.0014391,1759.8894}; }; side="Independent"; flags=6; @@ -36569,7 +48073,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1582; + id=3603; type="I_G_Soldier_SL_F"; class CustomAttributes { @@ -36619,7 +48123,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1456.4246,5.0014391,1064.9413}; + position[]={1469.6106,5.0014391,1758.2388}; }; side="Independent"; flags=4; @@ -36632,7 +48136,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1583; + id=3604; type="I_G_medic_F"; class CustomAttributes { @@ -36663,7 +48167,7 @@ class Mission { name="Grp3IFB_BSL"; }; - id=1460; + id=3602; class CustomAttributes { class Attribute0 @@ -36688,7 +48192,7 @@ class Mission nAttributes=1; }; }; - class Item421 + class Item554 { dataType="Group"; side="Independent"; @@ -36700,7 +48204,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1452.1912,5.0014391,1044.8964}; + position[]={1465.3772,5.0014391,1738.1938}; }; side="Independent"; flags=6; @@ -36714,7 +48218,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1584; + id=3606; type="I_G_Soldier_TL_F"; }; class Item1 @@ -36722,7 +48226,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1457.1912,5.0014391,1043.2469}; + position[]={1470.3772,5.0014391,1736.5444}; }; side="Independent"; flags=4; @@ -36736,7 +48240,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1585; + id=3607; type="I_G_Soldier_AR_F"; class CustomAttributes { @@ -36767,7 +48271,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1447.1912,5.0014391,1043.2469}; + position[]={1460.3772,5.0014391,1736.5444}; }; side="Independent"; flags=4; @@ -36781,7 +48285,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1586; + id=3608; type="I_G_Soldier_AR_F"; }; class Item3 @@ -36789,7 +48293,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1462.1912,5.0014391,1040.5067}; + position[]={1475.3772,5.0014391,1733.8042}; }; side="Independent"; flags=4; @@ -36803,7 +48307,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1587; + id=3609; type="I_G_Soldier_LAT_F"; }; class Item4 @@ -36811,7 +48315,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1442.1912,5.0014391,1040.5067}; + position[]={1455.3772,5.0014391,1733.8042}; }; side="Independent"; flags=4; @@ -36824,7 +48328,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1588; + id=3610; type="I_G_Soldier_F"; }; class Item5 @@ -36832,7 +48336,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1467.1912,5.0014391,1035.9608}; + position[]={1480.3772,5.0014391,1729.2583}; }; side="Independent"; flags=4; @@ -36845,7 +48349,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1589; + id=3611; type="I_G_Soldier_F"; }; }; @@ -36853,7 +48357,7 @@ class Mission { name="Grp3IFB_B1"; }; - id=1463; + id=3605; class CustomAttributes { class Attribute0 @@ -36878,7 +48382,7 @@ class Mission nAttributes=1; }; }; - class Item422 + class Item555 { dataType="Group"; side="Independent"; @@ -36890,7 +48394,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1451.6316,5.0014391,1021.6688}; + position[]={1464.8176,5.0014391,1714.9663}; }; side="Independent"; flags=6; @@ -36904,7 +48408,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1590; + id=3613; type="I_G_Soldier_TL_F"; }; class Item1 @@ -36912,7 +48416,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1456.6316,5.0014391,1020.0175}; + position[]={1469.8176,5.0014391,1713.3149}; }; side="Independent"; flags=4; @@ -36926,7 +48430,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1591; + id=3614; type="I_G_Soldier_AR_F"; }; class Item2 @@ -36934,7 +48438,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1446.6316,5.0014391,1020.0175}; + position[]={1459.8176,5.0014391,1713.3149}; }; side="Independent"; flags=4; @@ -36948,7 +48452,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1592; + id=3615; type="I_G_Soldier_AR_F"; }; class Item3 @@ -36956,7 +48460,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1461.6316,5.0014391,1017.2782}; + position[]={1474.8176,5.0014391,1710.5757}; }; side="Independent"; flags=4; @@ -36970,7 +48474,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1593; + id=3616; type="I_G_Soldier_LAT_F"; }; class Item4 @@ -36978,7 +48482,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1441.6316,5.0014391,1017.2782}; + position[]={1454.8176,5.0014391,1710.5757}; }; side="Independent"; flags=4; @@ -36991,7 +48495,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1594; + id=3617; type="I_G_Soldier_F"; }; class Item5 @@ -36999,7 +48503,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1466.6316,5.0014391,1012.7313}; + position[]={1479.8176,5.0014391,1706.0288}; }; side="Independent"; flags=4; @@ -37012,7 +48516,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1595; + id=3618; type="I_G_Soldier_F"; }; }; @@ -37020,7 +48524,7 @@ class Mission { name="Grp3IFB_B2"; }; - id=1470; + id=3612; class CustomAttributes { class Attribute0 @@ -37045,7 +48549,7 @@ class Mission nAttributes=1; }; }; - class Item423 + class Item556 { dataType="Group"; side="Independent"; @@ -37057,7 +48561,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1494.6082,5.3023081,1065.995}; + position[]={1507.7942,5.3023081,1759.2925}; }; side="Independent"; flags=2; @@ -37071,16 +48575,39 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1596; + id=3620; type="I_G_Soldier_SL_F"; atlOffset=0.30086899; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02GRE"; + }; + }; + }; + nAttributes=1; + }; }; class Item1 { dataType="Object"; class PositionInfo { - position[]={1499.6082,5.6464462,1064.3446}; + position[]={1512.7942,5.6464462,1757.6421}; }; side="Independent"; class Attributes @@ -37092,16 +48619,39 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1597; + id=3621; type="I_G_medic_F"; atlOffset=0.64500713; + class CustomAttributes + { + class Attribute0 + { + property="speaker"; + expression="_this setspeaker _value;"; + class Value + { + class data + { + class type + { + type[]= + { + "STRING" + }; + }; + value="Male02GRE"; + }; + }; + }; + nAttributes=1; + }; }; }; class Attributes { name="Grp3IFB_CSL"; }; - id=1477; + id=3619; atlOffset=0.30086899; class CustomAttributes { @@ -37127,7 +48677,7 @@ class Mission nAttributes=1; }; }; - class Item424 + class Item557 { dataType="Group"; side="Independent"; @@ -37139,7 +48689,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1495.0095,5.0014391,1044.2352}; + position[]={1508.1956,5.0014391,1737.5327}; }; side="Independent"; flags=6; @@ -37153,7 +48703,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1598; + id=3623; type="I_G_Soldier_TL_F"; }; class Item1 @@ -37161,7 +48711,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1500.0095,5.0014391,1042.5858}; + position[]={1513.1956,5.0014391,1735.8833}; }; side="Independent"; flags=4; @@ -37175,7 +48725,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1599; + id=3624; type="I_G_Soldier_AR_F"; }; class Item2 @@ -37183,7 +48733,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1490.0095,5.0014391,1042.5858}; + position[]={1503.1956,5.0014391,1735.8833}; }; side="Independent"; flags=4; @@ -37197,7 +48747,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1600; + id=3625; type="I_G_Soldier_AR_F"; }; class Item3 @@ -37205,7 +48755,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1505.0095,5.0014391,1039.8456}; + position[]={1518.1956,5.0014391,1733.1431}; }; side="Independent"; flags=4; @@ -37219,7 +48769,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1601; + id=3626; type="I_G_Soldier_LAT_F"; }; class Item4 @@ -37227,7 +48777,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1485.0095,5.0014391,1039.8456}; + position[]={1498.1956,5.0014391,1733.1431}; }; side="Independent"; flags=4; @@ -37240,7 +48790,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1602; + id=3627; type="I_G_Soldier_F"; }; class Item5 @@ -37248,7 +48798,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1510.0095,5.0014391,1035.2987}; + position[]={1523.1956,5.0014391,1728.5962}; }; side="Independent"; flags=4; @@ -37261,7 +48811,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1603; + id=3628; type="I_G_Soldier_F"; }; }; @@ -37269,7 +48819,7 @@ class Mission { name="Grp3IFB_C1"; }; - id=1480; + id=3622; class CustomAttributes { class Attribute0 @@ -37294,7 +48844,7 @@ class Mission nAttributes=1; }; }; - class Item425 + class Item558 { dataType="Group"; side="Independent"; @@ -37306,7 +48856,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1495.3142,5.0014391,1021.1317}; + position[]={1508.5002,5.0014391,1714.4292}; }; side="Independent"; flags=6; @@ -37320,7 +48870,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1604; + id=3630; type="I_G_Soldier_TL_F"; }; class Item1 @@ -37328,7 +48878,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1500.3142,5.0014391,1019.4813}; + position[]={1513.5002,5.0014391,1712.7788}; }; side="Independent"; flags=4; @@ -37342,7 +48892,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1605; + id=3631; type="I_G_Soldier_AR_F"; }; class Item2 @@ -37350,7 +48900,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1490.3142,5.0014391,1019.4813}; + position[]={1503.5002,5.0014391,1712.7788}; }; side="Independent"; flags=4; @@ -37364,7 +48914,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1606; + id=3632; type="I_G_Soldier_AR_F"; }; class Item3 @@ -37372,7 +48922,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1505.3142,5.0014391,1016.7421}; + position[]={1518.5002,5.0014391,1710.0396}; }; side="Independent"; flags=4; @@ -37386,7 +48936,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1607; + id=3633; type="I_G_Soldier_LAT_F"; }; class Item4 @@ -37394,7 +48944,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1485.3142,5.0014391,1016.7421}; + position[]={1498.5002,5.0014391,1710.0396}; }; side="Independent"; flags=4; @@ -37407,7 +48957,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1608; + id=3634; type="I_G_Soldier_F"; }; class Item5 @@ -37415,7 +48965,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1510.3142,5.0014391,1012.1942}; + position[]={1523.5002,5.0014391,1705.4917}; }; side="Independent"; flags=4; @@ -37428,7 +48978,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1609; + id=3635; type="I_G_Soldier_F"; }; }; @@ -37436,7 +48986,7 @@ class Mission { name="Grp3IFB_C2"; }; - id=1487; + id=3629; class CustomAttributes { class Attribute0 @@ -37461,7 +49011,7 @@ class Mission nAttributes=1; }; }; - class Item426 + class Item559 { dataType="Group"; side="Independent"; @@ -37473,7 +49023,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.2993,5.153439,1066.2166}; + position[]={1544.4854,5.153439,1759.5139}; }; side="Independent"; flags=6; @@ -37487,7 +49037,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1610; + id=3637; type="I_G_Soldier_TL_F"; atlOffset=0.15199995; }; @@ -37496,7 +49046,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.2996,5.2476587,1064.5663}; + position[]={1549.4856,5.2476587,1757.8638}; }; side="Independent"; flags=4; @@ -37509,7 +49059,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1611; + id=3638; type="I_G_Soldier_AR_F"; atlOffset=0.24621964; }; @@ -37518,7 +49068,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1527.1372,5.153439,1064.5956}; + position[]={1540.3232,5.153439,1757.8931}; }; side="Independent"; flags=4; @@ -37532,7 +49082,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1612; + id=3639; type="I_G_Soldier_lite_F"; atlOffset=0.15199995; }; @@ -37541,7 +49091,7 @@ class Mission { name="Grp3IFB_MMG1"; }; - id=1494; + id=3636; atlOffset=0.15199995; class CustomAttributes { @@ -37567,7 +49117,7 @@ class Mission nAttributes=1; }; }; - class Item427 + class Item560 { dataType="Group"; side="Independent"; @@ -37579,7 +49129,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.1594,5.0014391,1054.8776}; + position[]={1544.3455,5.0014391,1748.175}; }; side="Independent"; flags=6; @@ -37593,7 +49143,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1613; + id=3641; type="I_G_Soldier_TL_F"; }; class Item1 @@ -37601,7 +49151,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.1599,5.0014391,1053.2274}; + position[]={1549.3459,5.0014391,1746.5249}; }; side="Independent"; flags=4; @@ -37614,7 +49164,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1614; + id=3642; type="I_G_Soldier_AR_F"; }; class Item2 @@ -37622,7 +49172,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1526.9973,5.0014391,1053.2566}; + position[]={1540.1833,5.0014391,1746.554}; }; side="Independent"; flags=4; @@ -37636,7 +49186,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1615; + id=3643; type="I_G_Soldier_lite_F"; }; }; @@ -37644,7 +49194,7 @@ class Mission { name="Grp3IFB_MMG2"; }; - id=1498; + id=3640; class CustomAttributes { class Attribute0 @@ -37669,7 +49219,7 @@ class Mission nAttributes=1; }; }; - class Item428 + class Item561 { dataType="Group"; side="Independent"; @@ -37681,7 +49231,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.5034,5.0014391,1044.1696}; + position[]={1544.6895,5.0014391,1737.467}; }; side="Independent"; flags=6; @@ -37695,7 +49245,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1616; + id=3645; type="I_G_Soldier_TL_F"; }; class Item1 @@ -37703,7 +49253,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.5037,5.0014391,1042.5194}; + position[]={1549.6897,5.0014391,1735.8169}; }; side="Independent"; flags=4; @@ -37716,7 +49266,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1617; + id=3646; type="I_G_Soldier_LAT_F"; }; class Item2 @@ -37724,7 +49274,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1527.3413,5.0014391,1042.5486}; + position[]={1540.5273,5.0014391,1735.8459}; }; side="Independent"; flags=4; @@ -37738,7 +49288,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1618; + id=3647; type="I_G_Soldier_LAT_F"; }; }; @@ -37746,7 +49296,7 @@ class Mission { name="Grp3IFB_MAT1"; }; - id=1502; + id=3644; class CustomAttributes { class Attribute0 @@ -37771,7 +49321,7 @@ class Mission nAttributes=1; }; }; - class Item429 + class Item562 { dataType="Group"; side="Independent"; @@ -37783,7 +49333,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.4164,5.0014391,1032.1875}; + position[]={1544.6024,5.0014391,1725.4849}; }; side="Independent"; flags=6; @@ -37797,7 +49347,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1619; + id=3649; type="I_G_Soldier_TL_F"; }; class Item1 @@ -37805,7 +49355,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.4167,5.0014391,1030.537}; + position[]={1549.6028,5.0014391,1723.8345}; }; side="Independent"; flags=4; @@ -37819,7 +49369,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1620; + id=3650; type="I_G_Soldier_LAT_F"; }; class Item2 @@ -37827,7 +49377,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1527.2544,5.0014391,1030.5656}; + position[]={1540.4404,5.0014391,1723.863}; }; side="Independent"; flags=4; @@ -37841,7 +49391,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1621; + id=3651; type="I_G_Soldier_LAT_F"; }; }; @@ -37849,7 +49399,7 @@ class Mission { name="Grp3IFB_MAT2"; }; - id=1506; + id=3648; class CustomAttributes { class Attribute0 @@ -37874,7 +49424,7 @@ class Mission nAttributes=1; }; }; - class Item430 + class Item563 { dataType="Group"; side="Independent"; @@ -37886,7 +49436,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.905,5.0014391,1021.2889}; + position[]={1545.0911,5.0014391,1714.5864}; }; side="Independent"; flags=6; @@ -37900,7 +49450,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1622; + id=3653; type="I_G_Soldier_TL_F"; }; class Item1 @@ -37908,7 +49458,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.905,5.0014391,1019.6385}; + position[]={1550.0911,5.0014391,1712.936}; }; side="Independent"; flags=4; @@ -37921,7 +49471,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1623; + id=3654; type="I_G_Soldier_AR_F"; }; }; @@ -37929,7 +49479,7 @@ class Mission { name="Grp3IFB_HMG1"; }; - id=1510; + id=3652; class CustomAttributes { class Attribute0 @@ -37954,7 +49504,7 @@ class Mission nAttributes=1; }; }; - class Item431 + class Item564 { dataType="Group"; side="Independent"; @@ -37966,7 +49516,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.7294,5.0014391,1008.8856}; + position[]={1544.9154,5.0014391,1702.1831}; }; side="Independent"; flags=6; @@ -37980,7 +49530,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1624; + id=3656; type="I_G_Soldier_TL_F"; }; class Item1 @@ -37988,7 +49538,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.7292,5.2301273,1007.2352}; + position[]={1549.9153,5.2301273,1700.5327}; }; side="Independent"; flags=4; @@ -38002,7 +49552,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1625; + id=3657; type="I_G_Soldier_LAT_F"; atlOffset=0.22868824; }; @@ -38011,7 +49561,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1527.5664,5.0014391,1007.2635}; + position[]={1540.7524,5.0014391,1700.561}; }; side="Independent"; flags=4; @@ -38025,7 +49575,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1626; + id=3658; type="I_G_Soldier_LAT_F"; }; }; @@ -38033,7 +49583,7 @@ class Mission { name="Grp3IFB_HAT1"; }; - id=1513; + id=3655; class CustomAttributes { class Attribute0 @@ -38058,7 +49608,7 @@ class Mission nAttributes=1; }; }; - class Item432 + class Item565 { dataType="Group"; side="Independent"; @@ -38070,7 +49620,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.7312,5.0014391,997.11707}; + position[]={1544.9172,5.0014391,1690.4146}; }; side="Independent"; flags=6; @@ -38084,7 +49634,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1627; + id=3660; type="I_G_Soldier_F"; }; class Item1 @@ -38092,7 +49642,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.7312,5.3897858,995.46667}; + position[]={1549.9172,5.3897858,1688.7642}; }; side="Independent"; class Attributes @@ -38105,7 +49655,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1628; + id=3661; type="I_G_Soldier_A_F"; atlOffset=0.38834667; }; @@ -38114,7 +49664,7 @@ class Mission { name="Grp3IFB_MTR1"; }; - id=1517; + id=3659; class CustomAttributes { class Attribute0 @@ -38139,7 +49689,7 @@ class Mission nAttributes=1; }; }; - class Item433 + class Item566 { dataType="Group"; side="Independent"; @@ -38151,7 +49701,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.7305,5.0014391,984.59955}; + position[]={1544.9165,5.0014391,1677.897}; }; side="Independent"; flags=6; @@ -38165,7 +49715,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1629; + id=3663; type="I_G_Soldier_LAT_F"; }; class Item1 @@ -38173,7 +49723,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.7302,5.5413675,982.9491}; + position[]={1549.9163,5.5413675,1676.2466}; }; side="Independent"; class Attributes @@ -38186,7 +49736,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1630; + id=3664; type="I_G_Soldier_LAT_F"; atlOffset=0.53992844; }; @@ -38195,7 +49745,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1527.5674,5.0014391,982.97754}; + position[]={1540.7534,5.0014391,1676.2749}; }; side="Independent"; flags=4; @@ -38209,7 +49759,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1631; + id=3665; type="I_G_Soldier_LAT_F"; }; }; @@ -38217,7 +49767,7 @@ class Mission { name="Grp3IFB_MSAM1"; }; - id=1520; + id=3662; class CustomAttributes { class Attribute0 @@ -38242,7 +49792,7 @@ class Mission nAttributes=1; }; }; - class Item434 + class Item567 { dataType="Group"; side="Independent"; @@ -38254,7 +49804,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.6296,5.0014391,971.82507}; + position[]={1544.8157,5.0014391,1665.1226}; }; side="Independent"; flags=6; @@ -38268,7 +49818,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1632; + id=3667; type="I_G_Soldier_LAT_F"; }; class Item1 @@ -38276,7 +49826,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.6296,5.0014391,970.17468}; + position[]={1549.8157,5.0014391,1663.4722}; }; side="Independent"; flags=4; @@ -38290,7 +49840,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1633; + id=3668; type="I_G_Soldier_LAT_F"; }; }; @@ -38298,7 +49848,7 @@ class Mission { name="Grp3IFB_HSAM1"; }; - id=1524; + id=3666; class CustomAttributes { class Attribute0 @@ -38323,7 +49873,7 @@ class Mission nAttributes=1; }; }; - class Item435 + class Item568 { dataType="Group"; side="Independent"; @@ -38335,7 +49885,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1531.5027,5.0014391,960.9198}; + position[]={1544.6887,5.0014391,1654.2173}; }; side="Independent"; flags=6; @@ -38349,7 +49899,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1634; + id=3670; type="I_G_Soldier_M_F"; }; class Item1 @@ -38357,7 +49907,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1536.5027,5.0014391,959.26941}; + position[]={1549.6887,5.0014391,1652.5669}; }; side="Independent"; flags=4; @@ -38371,7 +49921,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1635; + id=3671; type="I_G_Soldier_M_F"; }; }; @@ -38379,7 +49929,7 @@ class Mission { name="Grp3IFB_ST1"; }; - id=1527; + id=3669; class CustomAttributes { class Attribute0 @@ -38404,7 +49954,7 @@ class Mission nAttributes=1; }; }; - class Item436 + class Item569 { dataType="Group"; side="Independent"; @@ -38416,7 +49966,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1532.2742,5.0014391,948.57312}; + position[]={1545.4602,5.0014391,1641.8706}; }; side="Independent"; flags=6; @@ -38430,7 +49980,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1636; + id=3673; type="I_G_engineer_F"; }; class Item1 @@ -38438,7 +49988,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1537.2742,5.0014391,946.92273}; + position[]={1550.4602,5.0014391,1640.2202}; }; side="Independent"; flags=4; @@ -38451,7 +50001,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1637; + id=3674; type="I_G_engineer_F"; }; class Item2 @@ -38459,7 +50009,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1527.2742,5.0014391,946.92273}; + position[]={1540.4602,5.0014391,1640.2202}; }; side="Independent"; flags=4; @@ -38472,7 +50022,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1638; + id=3675; type="I_G_engineer_F"; }; class Item3 @@ -38480,7 +50030,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1542.2742,5.0014391,944.18347}; + position[]={1555.4602,5.0014391,1637.481}; }; side="Independent"; flags=4; @@ -38493,7 +50043,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1639; + id=3676; type="I_G_engineer_F"; }; }; @@ -38501,7 +50051,7 @@ class Mission { name="Grp3IFB_ENG1"; }; - id=1530; + id=3672; class CustomAttributes { class Attribute0 @@ -38526,7 +50076,7 @@ class Mission nAttributes=1; }; }; - class Item437 + class Item570 { dataType="Group"; side="Independent"; @@ -38538,7 +50088,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1378.1918,5.0014391,983.27466}; + position[]={1391.3781,5.0014391,1676.572}; }; side="Independent"; flags=4; @@ -38551,7 +50101,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1650; + id=3678; type="I_G_Soldier_F"; class CustomAttributes { @@ -38582,7 +50132,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1378.1918,5.0014391,983.27466}; + position[]={1391.3781,5.0014391,1676.572}; }; side="Independent"; flags=6; @@ -38596,7 +50146,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1651; + id=3679; type="I_G_Soldier_F"; class CustomAttributes { @@ -38639,8 +50189,8 @@ class Mission class Item0 { linkID=0; - item0=1650; - item1=1652; + item0=3678; + item1=3704; class CustomData { role=1; @@ -38649,8 +50199,8 @@ class Mission class Item1 { linkID=1; - item0=1651; - item1=1652; + item0=3679; + item1=3704; class CustomData { role=2; @@ -38659,7 +50209,7 @@ class Mission }; }; }; - id=1642; + id=3677; class CustomAttributes { class Attribute0 @@ -38677,14 +50227,14 @@ class Mission "STRING" }; }; - value="3IFB IFV1 -"; + value="3IFB TECH1 -"; }; }; }; nAttributes=1; }; }; - class Item438 + class Item571 { dataType="Group"; side="Independent"; @@ -38696,7 +50246,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1412.9154,5.0014391,983.19165}; + position[]={1426.101,5.0014391,1676.489}; }; side="Independent"; flags=6; @@ -38710,7 +50260,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1653; + id=3681; type="I_G_Soldier_F"; class CustomAttributes { @@ -38741,7 +50291,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1412.9154,5.0014391,983.19165}; + position[]={1426.101,5.0014391,1676.489}; }; side="Independent"; flags=4; @@ -38754,7 +50304,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1654; + id=3682; type="I_G_Soldier_F"; class CustomAttributes { @@ -38797,8 +50347,8 @@ class Mission class Item0 { linkID=0; - item0=1653; - item1=1655; + item0=3681; + item1=3705; class CustomData { role=2; @@ -38808,8 +50358,8 @@ class Mission class Item1 { linkID=1; - item0=1654; - item1=1655; + item0=3682; + item1=3705; class CustomData { role=1; @@ -38817,7 +50367,7 @@ class Mission }; }; }; - id=1646; + id=3680; class CustomAttributes { class Attribute0 @@ -38835,25 +50385,25 @@ class Mission "STRING" }; }; - value="3IFB IFV2 -"; + value="3IFB TECH2 -"; }; }; }; nAttributes=1; }; }; - class Item439 + class Item572 { dataType="Logic"; class PositionInfo { - position[]={1356.7262,5.8610754,1038.666}; + position[]={1369.9122,5.8610754,1731.9634}; }; - id=1537; + id=3683; type="SupportProvider_Artillery"; atlOffset=0.8610754; }; - class Item440 + class Item573 { dataType="Group"; side="Independent"; @@ -38865,7 +50415,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1532.814,5.0014391,936.75256}; + position[]={1546,5.0014391,1630.05}; }; side="Independent"; flags=6; @@ -38879,7 +50429,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1640; + id=3685; type="I_G_engineer_F"; }; class Item1 @@ -38887,7 +50437,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1532.814,5.0014391,936.75256}; + position[]={1546,5.0014391,1630.05}; }; side="Independent"; flags=4; @@ -38901,7 +50451,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=1641; + id=3686; type="I_G_engineer_F"; }; }; @@ -38921,8 +50471,8 @@ class Mission class Item0 { linkID=0; - item0=1640; - item1=1405; + item0=3685; + item1=3558; class CustomData { role=1; @@ -38931,8 +50481,8 @@ class Mission class Item1 { linkID=1; - item0=1641; - item1=1405; + item0=3686; + item1=3558; class CustomData { role=2; @@ -38941,7 +50491,7 @@ class Mission }; }; }; - id=1402; + id=3684; class CustomAttributes { class Attribute0 @@ -38966,77 +50516,72 @@ class Mission nAttributes=1; }; }; - class Item441 + class Item574 { dataType="Logic"; class PositionInfo { - position[]={1401.9275,0,1086.1885}; + position[]={1415.1135,5,1779.4858}; }; name="F3_preMount_3IFB_5"; init="[synchronizedObjects this, [""Grp3IFB_ASL"",""Grp3IFB_A1"",""Grp3IFB_A2""], true, false] call f_fnc_mountGroups;"; - id=1539; + id=3687; type="Logic"; - atlOffset=-5; }; - class Item442 + class Item575 { dataType="Logic"; class PositionInfo { - position[]={1445.5618,0,1088.2759}; + position[]={1458.7478,5,1781.5732}; }; name="F3_preMount_3IFB_6"; init="[synchronizedObjects this, [""Grp3IFB_BSL"",""Grp3IFB_B1"",""Grp3IFB_B2""], true, false] call f_fnc_mountGroups;"; - id=1540; + id=3688; type="Logic"; - atlOffset=-5; }; - class Item443 + class Item576 { dataType="Logic"; class PositionInfo { - position[]={1486.9343,0,1090.4456}; + position[]={1500.1204,5,1783.7429}; }; name="F3_preMount_3IFB_7"; init="[synchronizedObjects this, [""Grp3IFB_CSL"",""Grp3IFB_C1"",""Grp3IFB_C2""], true, false] call f_fnc_mountGroups;"; - id=1541; + id=3689; type="Logic"; - atlOffset=-5; }; - class Item444 + class Item577 { dataType="Logic"; class PositionInfo { - position[]={1363.9072,0,1080.5378}; + position[]={1377.0933,5,1773.8352}; }; name="F3_preMount_3IFB_8"; init="[synchronizedObjects this, [""Grp3IFB_CO""], true, false] call f_fnc_mountGroups;"; - id=1542; + id=3690; type="Logic"; - atlOffset=-5; }; - class Item445 + class Item578 { dataType="Logic"; class PositionInfo { - position[]={1365.365,0,1054.7144}; + position[]={1378.551,5,1748.0117}; }; name="F3_preMount_3IFB_9"; init="[synchronizedObjects this, [""Grp3IFB_DC""], true, false] call f_fnc_mountGroups;"; - id=1543; + id=3691; type="Logic"; - atlOffset=-5; }; - class Item446 + class Item579 { dataType="Object"; class PositionInfo { - position[]={1544.7996,6.6115026,1036.6387}; + position[]={1557.9856,6.6115026,1729.936}; }; side="Empty"; flags=4; @@ -39047,15 +50592,15 @@ class Mission name="Veh3IFB_CAR4"; textures="Guerilla_07"; }; - id=1544; + id=3692; type="I_G_Offroad_01_F"; }; - class Item447 + class Item580 { dataType="Object"; class PositionInfo { - position[]={1368.8815,6.6115026,1067.9521}; + position[]={1382.0675,6.6115026,1761.2495}; }; side="Empty"; flags=4; @@ -39066,15 +50611,15 @@ class Mission name="Veh3IFB_CAR1"; textures="Guerilla_07"; }; - id=1545; + id=3693; type="I_G_Offroad_01_F"; }; - class Item448 + class Item581 { dataType="Object"; class PositionInfo { - position[]={1368.9606,6.7971687,1045.4297}; + position[]={1382.1466,6.7971687,1738.7271}; }; side="Empty"; flags=4; @@ -39085,16 +50630,16 @@ class Mission name="Veh3IFB_CAR2"; textures="Guerilla_07"; }; - id=1546; + id=3694; type="I_G_Offroad_01_F"; atlOffset=0.18566608; }; - class Item449 + class Item582 { dataType="Object"; class PositionInfo { - position[]={1544.0339,6.6115026,1059.2061}; + position[]={1557.22,6.6115026,1752.5034}; }; side="Empty"; flags=4; @@ -39105,15 +50650,15 @@ class Mission name="Veh3IFB_CAR3"; textures="Guerilla_07"; }; - id=1547; + id=3695; type="I_G_Offroad_01_F"; }; - class Item450 + class Item583 { dataType="Object"; class PositionInfo { - position[]={1410.2662,6.8716264,1082.0282}; + position[]={1423.4523,6.8716264,1775.3257}; }; side="Empty"; flags=4; @@ -39124,16 +50669,16 @@ class Mission name="Veh3IFB_TR1"; textures="Guerilla_04"; }; - id=1548; + id=3696; type="I_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item451 + class Item584 { dataType="Object"; class PositionInfo { - position[]={1418.1637,6.8716264,1077.535}; + position[]={1431.3497,6.8716264,1770.8325}; }; side="Empty"; flags=4; @@ -39144,16 +50689,16 @@ class Mission name="Veh3IFB_TR2"; textures="Guerilla_04"; }; - id=1549; + id=3697; type="I_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item452 + class Item585 { dataType="Object"; class PositionInfo { - position[]={1454.1765,6.8716264,1082.8163}; + position[]={1467.3625,6.8716264,1776.1138}; }; side="Empty"; flags=4; @@ -39164,16 +50709,16 @@ class Mission name="Veh3IFB_TR3"; textures="Guerilla_04"; }; - id=1550; + id=3698; type="I_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item453 + class Item586 { dataType="Object"; class PositionInfo { - position[]={1464.2869,6.8716264,1077.66}; + position[]={1477.4729,6.8716264,1770.9575}; }; side="Empty"; flags=4; @@ -39184,16 +50729,16 @@ class Mission name="Veh3IFB_TR4"; textures="Guerilla_04"; }; - id=1557; + id=3699; type="I_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item454 + class Item587 { dataType="Object"; class PositionInfo { - position[]={1494.6326,6.8716264,1082.662}; + position[]={1507.8186,6.8716264,1775.9595}; }; side="Empty"; flags=4; @@ -39204,16 +50749,16 @@ class Mission name="Veh3IFB_TR5"; textures="Guerilla_04"; }; - id=1558; + id=3700; type="I_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item455 + class Item588 { dataType="Object"; class PositionInfo { - position[]={1503.4949,6.8716264,1077.1532}; + position[]={1516.6809,6.8716264,1770.4507}; }; side="Empty"; flags=4; @@ -39224,18 +50769,18 @@ class Mission name="Veh3IFB_TR6"; textures="Guerilla_04"; }; - id=1559; + id=3701; type="I_G_Van_01_transport_F"; atlOffset=0.00011968613; }; - class Item456 + class Item589 { dataType="Logic"; class PositionInfo { - position[]={1361.316,5.7177486,1039.123}; + position[]={1374.5021,5.7177486,1732.4204}; }; - id=1535; + id=3702; type="SupportProvider_Virtual_CAS_Heli"; atlOffset=0.71774864; class CustomAttributes @@ -39319,14 +50864,14 @@ class Mission nAttributes=4; }; }; - class Item457 + class Item590 { dataType="Logic"; class PositionInfo { - position[]={1360.1705,5.4597912,1062.4004}; + position[]={1373.3566,5.4597912,1755.6978}; }; - id=1536; + id=3703; type="SupportProvider_Virtual_CAS_Heli"; atlOffset=0.45979118; class CustomAttributes @@ -39410,12 +50955,12 @@ class Mission nAttributes=4; }; }; - class Item458 + class Item591 { dataType="Object"; class PositionInfo { - position[]={1378.1918,7.1644082,983.26599}; + position[]={1391.3781,7.1644082,1676.5632}; }; side="Independent"; flags=6; @@ -39426,15 +50971,15 @@ class Mission name="Veh3IFB_IFV1"; textures="Guerilla_07"; }; - id=1652; + id=3704; type="I_G_Offroad_01_armed_F"; }; - class Item459 + class Item592 { dataType="Object"; class PositionInfo { - position[]={1412.9154,7.1644082,983.18298}; + position[]={1426.101,7.1644082,1676.4802}; }; side="Independent"; flags=6; @@ -39445,7 +50990,7 @@ class Mission name="Veh3IFB_IFV2"; textures="Guerilla_07"; }; - id=1655; + id=3705; type="I_G_Offroad_01_armed_F"; }; }; @@ -39453,16 +50998,16 @@ class Mission { class LinkIDProvider { - nextID=99; + nextID=126; }; class Links { - items=99; + items=126; class Item0 { linkID=0; - item0=813; - item1=110; + item0=2199; + item1=2073; class CustomData { type="Sync"; @@ -39471,8 +51016,8 @@ class Mission class Item1 { linkID=1; - item0=804; - item1=110; + item0=2196; + item1=2073; class CustomData { type="Sync"; @@ -39481,8 +51026,8 @@ class Mission class Item2 { linkID=2; - item0=192; - item1=110; + item0=2091; + item1=2073; class CustomData { type="Sync"; @@ -39491,8 +51036,8 @@ class Mission class Item3 { linkID=3; - item0=115; - item1=813; + item0=2075; + item1=2196; class CustomData { type="Sync"; @@ -39501,8 +51046,8 @@ class Mission class Item4 { linkID=4; - item0=118; - item1=804; + item0=2198; + item1=2081; class CustomData { type="Sync"; @@ -39511,8 +51056,8 @@ class Mission class Item5 { linkID=5; - item0=820; - item1=120; + item0=2197; + item1=2081; class CustomData { type="Sync"; @@ -39521,8 +51066,8 @@ class Mission class Item6 { linkID=6; - item0=802; - item1=120; + item0=2096; + item1=2081; class CustomData { type="Sync"; @@ -39531,8 +51076,8 @@ class Mission class Item7 { linkID=7; - item0=681; - item1=120; + item0=2083; + item1=2197; class CustomData { type="Sync"; @@ -39541,8 +51086,8 @@ class Mission class Item8 { linkID=8; - item0=125; - item1=820; + item0=2057; + item1=2204; class CustomData { type="Sync"; @@ -39551,8 +51096,8 @@ class Mission class Item9 { linkID=9; - item0=128; - item1=802; + item0=2056; + item1=2203; class CustomData { type="Sync"; @@ -39561,8 +51106,8 @@ class Mission class Item10 { linkID=10; - item0=814; - item1=130; + item0=2053; + item1=2200; class CustomData { type="Sync"; @@ -39571,8 +51116,8 @@ class Mission class Item11 { linkID=11; - item0=801; - item1=130; + item0=2054; + item1=2201; class CustomData { type="Sync"; @@ -39581,8 +51126,8 @@ class Mission class Item12 { linkID=12; - item0=686; - item1=130; + item0=2055; + item1=2202; class CustomData { type="Sync"; @@ -39591,8 +51136,8 @@ class Mission class Item13 { linkID=13; - item0=135; - item1=814; + item0=2388; + item1=2393; class CustomData { type="Sync"; @@ -39601,8 +51146,8 @@ class Mission class Item14 { linkID=14; - item0=138; - item1=801; + item0=2536; + item1=2393; class CustomData { type="Sync"; @@ -39611,8 +51156,8 @@ class Mission class Item15 { linkID=15; - item0=819; - item1=140; + item0=2410; + item1=2393; class CustomData { type="Sync"; @@ -39621,8 +51166,8 @@ class Mission class Item16 { linkID=16; - item0=799; - item1=140; + item0=2519; + item1=2401; class CustomData { type="Sync"; @@ -39631,8 +51176,8 @@ class Mission class Item17 { linkID=17; - item0=369; - item1=140; + item0=2535; + item1=2401; class CustomData { type="Sync"; @@ -39641,8 +51186,8 @@ class Mission class Item18 { linkID=18; - item0=149; - item1=819; + item0=2416; + item1=2401; class CustomData { type="Sync"; @@ -39651,8 +51196,8 @@ class Mission class Item19 { linkID=19; - item0=145; - item1=799; + item0=2529; + item1=2520; class CustomData { type="Sync"; @@ -39661,8 +51206,8 @@ class Mission class Item20 { linkID=20; - item0=818; - item1=150; + item0=2530; + item1=2520; class CustomData { type="Sync"; @@ -39671,8 +51216,8 @@ class Mission class Item21 { linkID=21; - item0=800; - item1=150; + item0=2526; + item1=2523; class CustomData { type="Sync"; @@ -39681,8 +51226,8 @@ class Mission class Item22 { linkID=22; - item0=374; - item1=150; + item0=2531; + item1=2521; class CustomData { type="Sync"; @@ -39691,8 +51236,8 @@ class Mission class Item23 { linkID=23; - item0=159; - item1=818; + item0=2532; + item1=2521; class CustomData { type="Sync"; @@ -39701,8 +51246,8 @@ class Mission class Item24 { linkID=24; - item0=155; - item1=800; + item0=2533; + item1=2522; class CustomData { type="Sync"; @@ -39711,8 +51256,8 @@ class Mission class Item25 { linkID=25; - item0=817; - item1=160; + item0=2534; + item1=2522; class CustomData { type="Sync"; @@ -39721,8 +51266,8 @@ class Mission class Item26 { linkID=26; - item0=797; - item1=160; + item0=2527; + item1=2524; class CustomData { type="Sync"; @@ -39731,8 +51276,8 @@ class Mission class Item27 { linkID=27; - item0=532; - item1=160; + item0=3324; + item1=2645; class CustomData { type="Sync"; @@ -39741,8 +51286,8 @@ class Mission class Item28 { linkID=28; - item0=169; - item1=817; + item0=3323; + item1=2645; class CustomData { type="Sync"; @@ -39751,8 +51296,8 @@ class Mission class Item29 { linkID=29; - item0=165; - item1=797; + item0=2711; + item1=2645; class CustomData { type="Sync"; @@ -39761,8 +51306,8 @@ class Mission class Item30 { linkID=30; - item0=816; - item1=170; + item0=2647; + item1=3324; class CustomData { type="Sync"; @@ -39771,8 +51316,8 @@ class Mission class Item31 { linkID=31; - item0=798; - item1=170; + item0=2650; + item1=3323; class CustomData { type="Sync"; @@ -39781,8 +51326,8 @@ class Mission class Item32 { linkID=32; - item0=537; - item1=170; + item0=3331; + item1=2653; class CustomData { type="Sync"; @@ -39791,8 +51336,8 @@ class Mission class Item33 { linkID=33; - item0=179; - item1=816; + item0=3321; + item1=2653; class CustomData { type="Sync"; @@ -39801,8 +51346,8 @@ class Mission class Item34 { linkID=34; - item0=175; - item1=798; + item0=3199; + item1=2653; class CustomData { type="Sync"; @@ -39811,8 +51356,8 @@ class Mission class Item35 { linkID=35; - item0=815; - item1=180; + item0=2655; + item1=3331; class CustomData { type="Sync"; @@ -39821,8 +51366,8 @@ class Mission class Item36 { linkID=36; - item0=803; - item1=180; + item0=2658; + item1=3321; class CustomData { type="Sync"; @@ -39831,8 +51376,8 @@ class Mission class Item37 { linkID=37; - item0=197; - item1=180; + item0=3325; + item1=2661; class CustomData { type="Sync"; @@ -39841,8 +51386,8 @@ class Mission class Item38 { linkID=38; - item0=185; - item1=815; + item0=3320; + item1=2661; class CustomData { type="Sync"; @@ -39851,8 +51396,8 @@ class Mission class Item39 { linkID=39; - item0=188; - item1=803; + item0=3204; + item1=2661; class CustomData { type="Sync"; @@ -39861,8 +51406,8 @@ class Mission class Item40 { linkID=40; - item0=973; - item1=964; + item0=2663; + item1=3325; class CustomData { type="Sync"; @@ -39871,8 +51416,8 @@ class Mission class Item41 { linkID=41; - item0=972; - item1=964; + item0=2666; + item1=3320; class CustomData { type="Sync"; @@ -39881,8 +51426,8 @@ class Mission class Item42 { linkID=42; - item0=970; - item1=973; + item0=3330; + item1=2669; class CustomData { type="Sync"; @@ -39891,8 +51436,8 @@ class Mission class Item43 { linkID=43; - item0=966; - item1=972; + item0=3318; + item1=2669; class CustomData { type="Sync"; @@ -39901,8 +51446,8 @@ class Mission class Item44 { linkID=44; - item0=983; - item1=974; + item0=2889; + item1=2669; class CustomData { type="Sync"; @@ -39911,8 +51456,8 @@ class Mission class Item45 { linkID=45; - item0=982; - item1=974; + item0=2675; + item1=3330; class CustomData { type="Sync"; @@ -39921,8 +51466,8 @@ class Mission class Item46 { linkID=46; - item0=980; - item1=983; + item0=2671; + item1=3318; class CustomData { type="Sync"; @@ -39931,8 +51476,8 @@ class Mission class Item47 { linkID=47; - item0=976; - item1=982; + item0=3329; + item1=2677; class CustomData { type="Sync"; @@ -39941,8 +51486,8 @@ class Mission class Item48 { linkID=48; - item0=824; - item1=964; + item0=3319; + item1=2677; class CustomData { type="Sync"; @@ -39951,8 +51496,8 @@ class Mission class Item49 { linkID=49; - item0=839; - item1=974; + item0=2894; + item1=2677; class CustomData { type="Sync"; @@ -39961,8 +51506,8 @@ class Mission class Item50 { linkID=50; - item0=54; - item1=1099; + item0=2683; + item1=3329; class CustomData { type="Sync"; @@ -39971,8 +51516,8 @@ class Mission class Item51 { linkID=51; - item0=55; - item1=1099; + item0=2679; + item1=3319; class CustomData { type="Sync"; @@ -39981,8 +51526,8 @@ class Mission class Item52 { linkID=52; - item0=51; - item1=1107; + item0=3328; + item1=2685; class CustomData { type="Sync"; @@ -39991,8 +51536,8 @@ class Mission class Item53 { linkID=53; - item0=56; - item1=1105; + item0=3316; + item1=2685; class CustomData { type="Sync"; @@ -40001,8 +51546,8 @@ class Mission class Item54 { linkID=54; - item0=87; - item1=1105; + item0=3049; + item1=2685; class CustomData { type="Sync"; @@ -40011,8 +51556,8 @@ class Mission class Item55 { linkID=55; - item0=88; - item1=1106; + item0=2691; + item1=3328; class CustomData { type="Sync"; @@ -40021,8 +51566,8 @@ class Mission class Item56 { linkID=56; - item0=89; - item1=1106; + item0=2687; + item1=3316; class CustomData { type="Sync"; @@ -40031,8 +51576,8 @@ class Mission class Item57 { linkID=57; - item0=52; - item1=1108; + item0=3327; + item1=2693; class CustomData { type="Sync"; @@ -40041,8 +51586,8 @@ class Mission class Item58 { linkID=58; - item0=59; - item1=1119; + item0=3317; + item1=2693; class CustomData { type="Sync"; @@ -40051,8 +51596,8 @@ class Mission class Item59 { linkID=59; - item0=42; - item1=1118; + item0=3054; + item1=2693; class CustomData { type="Sync"; @@ -40061,8 +51606,8 @@ class Mission class Item60 { linkID=60; - item0=43; - item1=1115; + item0=2699; + item1=3327; class CustomData { type="Sync"; @@ -40071,8 +51616,8 @@ class Mission class Item61 { linkID=61; - item0=44; - item1=1116; + item0=2695; + item1=3317; class CustomData { type="Sync"; @@ -40081,8 +51626,8 @@ class Mission class Item62 { linkID=62; - item0=45; - item1=1117; + item0=3326; + item1=2701; class CustomData { type="Sync"; @@ -40091,8 +51636,8 @@ class Mission class Item63 { linkID=63; - item0=57; - item1=1114; + item0=3322; + item1=2701; class CustomData { type="Sync"; @@ -40101,8 +51646,8 @@ class Mission class Item64 { linkID=64; - item0=41; - item1=1113; + item0=2716; + item1=2701; class CustomData { type="Sync"; @@ -40111,8 +51656,8 @@ class Mission class Item65 { linkID=65; - item0=38; - item1=1110; + item0=2703; + item1=3326; class CustomData { type="Sync"; @@ -40121,8 +51666,8 @@ class Mission class Item66 { linkID=66; - item0=39; - item1=1111; + item0=2706; + item1=3322; class CustomData { type="Sync"; @@ -40131,8 +51676,8 @@ class Mission class Item67 { linkID=67; - item0=40; - item1=1112; + item0=3467; + item1=3458; class CustomData { type="Sync"; @@ -40141,8 +51686,8 @@ class Mission class Item68 { linkID=68; - item0=952; - item1=1124; + item0=3466; + item1=3458; class CustomData { type="Sync"; @@ -40151,8 +51696,8 @@ class Mission class Item69 { linkID=69; - item0=951; - item1=1123; + item0=3464; + item1=3467; class CustomData { type="Sync"; @@ -40161,8 +51706,8 @@ class Mission class Item70 { linkID=70; - item0=953; - item1=1120; + item0=3460; + item1=3466; class CustomData { type="Sync"; @@ -40171,8 +51716,8 @@ class Mission class Item71 { linkID=71; - item0=954; - item1=1120; + item0=3477; + item1=3468; class CustomData { type="Sync"; @@ -40181,8 +51726,8 @@ class Mission class Item72 { linkID=72; - item0=955; - item1=1121; + item0=3476; + item1=3468; class CustomData { type="Sync"; @@ -40191,8 +51736,8 @@ class Mission class Item73 { linkID=73; - item0=956; - item1=1121; + item0=3474; + item1=3477; class CustomData { type="Sync"; @@ -40201,8 +51746,8 @@ class Mission class Item74 { linkID=74; - item0=957; - item1=1122; + item0=3470; + item1=3476; class CustomData { type="Sync"; @@ -40211,8 +51756,8 @@ class Mission class Item75 { linkID=75; - item0=958; - item1=1122; + item0=3334; + item1=3458; class CustomData { type="Sync"; @@ -40221,8 +51766,8 @@ class Mission class Item76 { linkID=76; - item0=58; - item1=1129; + item0=3339; + item1=3468; class CustomData { type="Sync"; @@ -40231,8 +51776,8 @@ class Mission class Item77 { linkID=77; - item0=46; - item1=1128; + item0=2605; + item1=3516; class CustomData { type="Sync"; @@ -40241,8 +51786,8 @@ class Mission class Item78 { linkID=78; - item0=47; - item1=1125; + item0=2606; + item1=3516; class CustomData { type="Sync"; @@ -40251,8 +51796,8 @@ class Mission class Item79 { linkID=79; - item0=48; - item1=1126; + item0=2602; + item1=3519; class CustomData { type="Sync"; @@ -40261,8 +51806,8 @@ class Mission class Item80 { linkID=80; - item0=49; - item1=1127; + item0=2607; + item1=3517; class CustomData { type="Sync"; @@ -40271,8 +51816,8 @@ class Mission class Item81 { linkID=81; - item0=1538; - item1=1417; + item0=2638; + item1=3517; class CustomData { type="Sync"; @@ -40281,8 +51826,8 @@ class Mission class Item82 { linkID=82; - item0=1536; - item1=1417; + item0=2639; + item1=3518; class CustomData { type="Sync"; @@ -40291,8 +51836,8 @@ class Mission class Item83 { linkID=83; - item0=1561; - item1=1417; + item0=2640; + item1=3518; class CustomData { type="Sync"; @@ -40301,8 +51846,8 @@ class Mission class Item84 { linkID=84; - item0=1419; - item1=1538; + item0=2603; + item1=3520; class CustomData { type="Sync"; @@ -40311,8 +51856,8 @@ class Mission class Item85 { linkID=85; - item0=1422; - item1=1536; + item0=2610; + item1=3530; class CustomData { type="Sync"; @@ -40321,8 +51866,8 @@ class Mission class Item86 { linkID=86; - item0=1537; - item1=1425; + item0=2593; + item1=3529; class CustomData { type="Sync"; @@ -40331,8 +51876,8 @@ class Mission class Item87 { linkID=87; - item0=1535; - item1=1425; + item0=2594; + item1=3526; class CustomData { type="Sync"; @@ -40341,8 +51886,8 @@ class Mission class Item88 { linkID=88; - item0=1565; - item1=1425; + item0=2595; + item1=3527; class CustomData { type="Sync"; @@ -40351,8 +51896,8 @@ class Mission class Item89 { linkID=89; - item0=1427; - item1=1537; + item0=2596; + item1=3528; class CustomData { type="Sync"; @@ -40361,8 +51906,8 @@ class Mission class Item90 { linkID=90; - item0=1430; - item1=1535; + item0=2608; + item1=3525; class CustomData { type="Sync"; @@ -40371,8 +51916,8 @@ class Mission class Item91 { linkID=91; - item0=1548; - item1=1539; + item0=2592; + item1=3524; class CustomData { type="Sync"; @@ -40381,8 +51926,8 @@ class Mission class Item92 { linkID=92; - item0=1549; - item1=1539; + item0=2589; + item1=3521; class CustomData { type="Sync"; @@ -40391,8 +51936,8 @@ class Mission class Item93 { linkID=93; - item0=1545; - item1=1542; + item0=2590; + item1=3522; class CustomData { type="Sync"; @@ -40401,8 +51946,8 @@ class Mission class Item94 { linkID=94; - item0=1550; - item1=1540; + item0=2591; + item1=3523; class CustomData { type="Sync"; @@ -40411,8 +51956,8 @@ class Mission class Item95 { linkID=95; - item0=1557; - item1=1540; + item0=3446; + item1=3535; class CustomData { type="Sync"; @@ -40421,8 +51966,8 @@ class Mission class Item96 { linkID=96; - item0=1558; - item1=1541; + item0=3445; + item1=3534; class CustomData { type="Sync"; @@ -40431,8 +51976,8 @@ class Mission class Item97 { linkID=97; - item0=1559; - item1=1541; + item0=3447; + item1=3531; class CustomData { type="Sync"; @@ -40441,8 +51986,278 @@ class Mission class Item98 { linkID=98; - item0=1546; - item1=1543; + item0=3448; + item1=3531; + class CustomData + { + type="Sync"; + }; + }; + class Item99 + { + linkID=99; + item0=3449; + item1=3532; + class CustomData + { + type="Sync"; + }; + }; + class Item100 + { + linkID=100; + item0=3450; + item1=3532; + class CustomData + { + type="Sync"; + }; + }; + class Item101 + { + linkID=101; + item0=3451; + item1=3533; + class CustomData + { + type="Sync"; + }; + }; + class Item102 + { + linkID=102; + item0=3452; + item1=3533; + class CustomData + { + type="Sync"; + }; + }; + class Item103 + { + linkID=103; + item0=2609; + item1=3540; + class CustomData + { + type="Sync"; + }; + }; + class Item104 + { + linkID=104; + item0=2597; + item1=3539; + class CustomData + { + type="Sync"; + }; + }; + class Item105 + { + linkID=105; + item0=2598; + item1=3536; + class CustomData + { + type="Sync"; + }; + }; + class Item106 + { + linkID=106; + item0=2599; + item1=3537; + class CustomData + { + type="Sync"; + }; + }; + class Item107 + { + linkID=107; + item0=2600; + item1=3538; + class CustomData + { + type="Sync"; + }; + }; + class Item108 + { + linkID=108; + item0=3557; + item1=3559; + class CustomData + { + type="Sync"; + }; + }; + class Item109 + { + linkID=109; + item0=3703; + item1=3559; + class CustomData + { + type="Sync"; + }; + }; + class Item110 + { + linkID=110; + item0=3577; + item1=3559; + class CustomData + { + type="Sync"; + }; + }; + class Item111 + { + linkID=111; + item0=3561; + item1=3557; + class CustomData + { + type="Sync"; + }; + }; + class Item112 + { + linkID=112; + item0=3564; + item1=3703; + class CustomData + { + type="Sync"; + }; + }; + class Item113 + { + linkID=113; + item0=3683; + item1=3567; + class CustomData + { + type="Sync"; + }; + }; + class Item114 + { + linkID=114; + item0=3702; + item1=3567; + class CustomData + { + type="Sync"; + }; + }; + class Item115 + { + linkID=115; + item0=3582; + item1=3567; + class CustomData + { + type="Sync"; + }; + }; + class Item116 + { + linkID=116; + item0=3569; + item1=3683; + class CustomData + { + type="Sync"; + }; + }; + class Item117 + { + linkID=117; + item0=3572; + item1=3702; + class CustomData + { + type="Sync"; + }; + }; + class Item118 + { + linkID=118; + item0=3696; + item1=3687; + class CustomData + { + type="Sync"; + }; + }; + class Item119 + { + linkID=119; + item0=3697; + item1=3687; + class CustomData + { + type="Sync"; + }; + }; + class Item120 + { + linkID=120; + item0=3693; + item1=3690; + class CustomData + { + type="Sync"; + }; + }; + class Item121 + { + linkID=121; + item0=3698; + item1=3688; + class CustomData + { + type="Sync"; + }; + }; + class Item122 + { + linkID=122; + item0=3699; + item1=3688; + class CustomData + { + type="Sync"; + }; + }; + class Item123 + { + linkID=123; + item0=3700; + item1=3689; + class CustomData + { + type="Sync"; + }; + }; + class Item124 + { + linkID=124; + item0=3701; + item1=3689; + class CustomData + { + type="Sync"; + }; + }; + class Item125 + { + linkID=125; + item0=3694; + item1=3691; class CustomData { type="Sync"; From b76ee84e5ee1d61f8ffabfa142163caeca50a9d9 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Wed, 28 Aug 2019 08:34:21 +0200 Subject: [PATCH 188/407] Change F3 version to 3-5-4 (#264) --- README.md | 2 +- description.ext | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 02d0c496d..46deb2882 100644 --- a/README.md +++ b/README.md @@ -12,5 +12,5 @@ * Pre-configured endings 1 -3 with generic titles and texts ## Versions ## -* F3 3-5-3 +* F3 3-5-4 * ws_fnc 05/07/2015 diff --git a/description.ext b/description.ext index 8b380b594..cd82f2959 100644 --- a/description.ext +++ b/description.ext @@ -1,4 +1,4 @@ -fa3_version[] = {3,5,3}; // WARNING: DO NOT CHANGE THIS LINE +fa3_version[] = {3,5,4}; // WARNING: DO NOT CHANGE THIS LINE // ============================================================================================ // F3 - Loading Screen From aa9d763711921650acdc75013cee2dc280d6d019 Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Fri, 30 Aug 2019 23:33:44 +0200 Subject: [PATCH 189/407] Fix issue 267 --- f/briefing/f_orbatNotes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 3e55b3f6b..283a3785c 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -34,7 +34,7 @@ private _groupData = f_var_groupData_all apply { [ missionNamespace getVariable [_x select 0,grpNull], getText (configfile >> "CfgMarkers" >> (_x select 1) >> "icon"), - getArray (configfile >> "CfgMarkerColors" >> (_x select 3) >> "color") call BIS_fnc_colorRGBAtoHTML + ((configfile >> "CfgMarkerColors" >> (_x select 3) >> "color") call BIS_fnc_colorConfigToRGBA) call BIS_fnc_colorRGBAtoHTML ] } select { ! isNull (_x select 0) && {(_x select 0) in (_groups + _units)}}; From 0f3a70d6ed61dbd49ce5771b86c858a16c67c5c8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 12 Sep 2019 23:00:15 +0100 Subject: [PATCH 190/407] Switch AA and AT Titan launchers Launchers were incorrectly given to the opposite roles to what they needed to be --- f/assignGear/f_assignGear_ctrg.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 8bb9f48d3..19814fac7 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -232,11 +232,11 @@ _MATmag1 = "NLAW_F"; _MATmag2 = "NLAW_F"; // Surface Air -_SAM = "launch_B_Titan_short_tna_F"; +_SAM = "launch_B_Titan_tna_F"; _SAMmag = "Titan_AA"; // Heavy AT -_HAT = "launch_B_Titan_tna_F"; +_HAT = "launch_B_Titan_short_tna_F"; _HATmag1 = "Titan_AT"; _HATmag2 = "Titan_AP"; From f945520cb3f6b66a37595e4b72f3a44068da0e5c Mon Sep 17 00:00:00 2001 From: s Date: Wed, 2 Oct 2019 21:27:02 +0200 Subject: [PATCH 191/407] Add link to new wiki and remove old one. --- description.ext | 16 +++--- f/EandEcheck/f_EandECheckLoop.sqf | 2 +- f/FTMemberMarkers/f_localFTMemberMarker.sqf | 2 +- f/FTMemberMarkers/fn_GetMarkerColor.sqf | 2 +- .../fn_SetLocalFTMemberMarkers.sqf | 2 +- f/assignGear/f_assignGear_3IFB.sqf | 2 +- f/assignGear/f_assignGear_3IFB_light.sqf | 2 +- f/assignGear/f_assignGear_3IFB_standard.sqf | 2 +- f/assignGear/f_assignGear_AI.sqf | 2 +- f/assignGear/f_assignGear_aaf.sqf | 2 +- f/assignGear/f_assignGear_aaf_light.sqf | 2 +- f/assignGear/f_assignGear_aaf_standard.sqf | 2 +- f/assignGear/f_assignGear_clothes.sqf | 2 +- f/assignGear/f_assignGear_csat.sqf | 2 +- f/assignGear/f_assignGear_csatPacific.sqf | 2 +- .../f_assignGear_csatPacific_light.sqf | 2 +- .../f_assignGear_csatPacific_standard.sqf | 2 +- f/assignGear/f_assignGear_csat_light.sqf | 2 +- f/assignGear/f_assignGear_csat_standard.sqf | 2 +- f/assignGear/f_assignGear_ctrg.sqf | 2 +- f/assignGear/f_assignGear_ctrg_light.sqf | 2 +- f/assignGear/f_assignGear_ctrg_standard.sqf | 2 +- f/assignGear/f_assignGear_fia.sqf | 2 +- f/assignGear/f_assignGear_fia_light.sqf | 2 +- f/assignGear/f_assignGear_fia_standard.sqf | 2 +- f/assignGear/f_assignGear_gendarmerie.sqf | 4 +- f/assignGear/f_assignGear_ldf.sqf | 2 +- f/assignGear/f_assignGear_ldf_light.sqf | 2 +- f/assignGear/f_assignGear_ldf_standard.sqf | 2 +- f/assignGear/f_assignGear_nato.sqf | 2 +- f/assignGear/f_assignGear_natoPacific.sqf | 2 +- .../f_assignGear_natoPacific_light.sqf | 2 +- .../f_assignGear_natoPacific_standard.sqf | 2 +- f/assignGear/f_assignGear_natoWoodland.sqf | 2 +- .../f_assignGear_natoWoodland_light.sqf | 2 +- .../f_assignGear_natoWoodland_standard.sqf | 2 +- f/assignGear/f_assignGear_nato_light.sqf | 2 +- f/assignGear/f_assignGear_nato_standard.sqf | 2 +- f/assignGear/f_assignGear_npr.sqf | 2 +- f/assignGear/f_assignGear_npr_light.sqf | 2 +- f/assignGear/f_assignGear_npr_standard.sqf | 2 +- f/assignGear/f_assignGear_spetsnaz.sqf | 2 +- f/assignGear/f_assignGear_spetsnaz_light.sqf | 2 +- .../f_assignGear_spetsnaz_standard.sqf | 2 +- f/assignGear/f_assignGear_syndikat.sqf | 2 +- f/assignGear/f_assignGear_syndikat_light.sqf | 2 +- .../f_assignGear_syndikat_standard.sqf | 2 +- f/assignGear/fn_assignGear.sqf | 2 +- f/assignGear/fn_assignInsignia.sqf | 2 +- f/authorisedCrew/fn_authorisedCrewCheck.sqf | 2 +- f/briefing/f_briefing_3ifb.sqf | 2 +- f/briefing/f_briefing_aaf.sqf | 2 +- f/briefing/f_briefing_admin.sqf | 2 +- f/briefing/f_briefing_civ.sqf | 2 +- f/briefing/f_briefing_credits.sqf | 2 +- f/briefing/f_briefing_csat.sqf | 2 +- f/briefing/f_briefing_ctrg.sqf | 2 +- f/briefing/f_briefing_fia.sqf | 2 +- f/briefing/f_briefing_gendarmerie.sqf | 2 +- f/briefing/f_briefing_ldf.sqf | 2 +- f/briefing/f_briefing_nato.sqf | 2 +- f/briefing/f_briefing_npr.sqf | 2 +- f/briefing/f_briefing_spetsnaz.sqf | 2 +- f/briefing/f_briefing_syndikat.sqf | 2 +- f/briefing/f_briefing_zeus.sqf | 2 +- f/briefing/f_loadoutNotes.sqf | 2 +- f/briefing/f_orbatNotes.sqf | 2 +- f/briefing/fn_createBriefing.sqf | 2 +- f/cache/fn_cInit.sqf | 2 +- f/cache/fn_cTracker.sqf | 2 +- f/cache/fn_gCache.sqf | 2 +- f/cache/fn_gUncache.sqf | 2 +- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 2 +- f/common/f_setLocalVars.sqf | 2 +- f/common/fn_nearPlayer.sqf | 2 +- f/common/fn_processParamsArray.sqf | 2 +- f/disableThermals/fn_disableThermals.sqf | 2 +- f/groupJoin/f_groupJoinAction.sqf | 2 +- f/groupMarkers/f_setLocalGroupMarkers.sqf | 2 +- f/groupMarkers/fn_localGroupMarker.sqf | 2 +- f/groupMarkers/fn_localSpecialistMarker.sqf | 2 +- f/mapClickTeleport/f_mapClickTeleport.sqf | 2 +- .../fn_mapClickTeleportAction.sqf | 2 +- .../fn_mapClickTeleportBriefing.sqf | 2 +- .../fn_mapClickTeleportParachute.sqf | 2 +- .../fn_mapClickTeleportRemoveAction.sqf | 2 +- .../fn_mapClickTeleportSetPos.sqf | 2 +- .../f_setMissionConditions.sqf | 2 +- f/missionConditions/fn_SetFog.sqf | 2 +- f/missionConditions/fn_SetTime.sqf | 2 +- f/missionConditions/fn_SetWeather.sqf | 2 +- f/missionConditions/fn_SetWind.sqf | 2 +- f/mpEnd/fn_mpEnd.sqf | 2 +- f/mpEnd/fn_mpEndReceiver.sqf | 2 +- f/preMount/fn_mountGroups.sqf | 2 +- f/safeStart/f_safeStart.sqf | 2 +- f/safeStart/f_safeStartLoop.sqf | 2 +- f/safeStart/fn_safety.sqf | 2 +- f/setAISkill/f_setAISkill.sqf | 2 +- f/setAISkill/fn_setAISkill.sqf | 2 +- f/setGroupID/f_setGroupIDs.sqf | 2 +- f/setGroupID/fn_setGroupID.sqf | 2 +- f/setTeamColours/f_setTeamColours.sqf | 2 +- f/zeus/fn_zeusAddAddons.sqf | 2 +- f/zeus/fn_zeusAddObjects.sqf | 2 +- f/zeus/fn_zeusInit.sqf | 2 +- f/zeus/fn_zeusInitLocal.sqf | 2 +- init.sqf | 50 +++++++++---------- 108 files changed, 139 insertions(+), 141 deletions(-) diff --git a/description.ext b/description.ext index 8b380b594..3bd45c03c 100644 --- a/description.ext +++ b/description.ext @@ -132,7 +132,7 @@ class Params // ============================================================================================ // F3 - Debug Mode -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // WARNING: DO NOT DISABLE THIS COMPONENT class f_param_debugMode @@ -146,7 +146,7 @@ class Params // ============================================================================================ // F3 - Folk Assign Gear Script -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki class f_param_loadouts { @@ -158,10 +158,8 @@ class Params // ============================================================================================ -// ============================================================================================ - // F3 - Mission Timer/Safe Start -// Credits: Please see the F2 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki class f_param_mission_timer { @@ -174,7 +172,7 @@ class Params // ============================================================================================ // F3 - Mission Conditions Selector -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki class f_param_weather { @@ -213,7 +211,7 @@ class Params // ============================================================================================ // F3 - AI Skill Selector -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki class f_param_AISkill_BLUFOR { @@ -242,7 +240,7 @@ class Params // ============================================================================================ // F3 - Caching -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // class f_param_caching // { @@ -261,7 +259,7 @@ class Params // ============================================================================================ // F3 - Briefing Template -// Credits: BIS - Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki class CfgDebriefing { diff --git a/f/EandEcheck/f_EandECheckLoop.sqf b/f/EandEcheck/f_EandECheckLoop.sqf index 3f37e1010..02f8847ba 100644 --- a/f/EandEcheck/f_EandECheckLoop.sqf +++ b/f/EandEcheck/f_EandECheckLoop.sqf @@ -1,5 +1,5 @@ // F3 - Group E&E Check -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SERVER CHECK diff --git a/f/FTMemberMarkers/f_localFTMemberMarker.sqf b/f/FTMemberMarkers/f_localFTMemberMarker.sqf index c80da5364..5b94719c9 100644 --- a/f/FTMemberMarkers/f_localFTMemberMarker.sqf +++ b/f/FTMemberMarkers/f_localFTMemberMarker.sqf @@ -1,5 +1,5 @@ // F3 - Fireteam Member Markers -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE PRIVATE VARIABLES diff --git a/f/FTMemberMarkers/fn_GetMarkerColor.sqf b/f/FTMemberMarkers/fn_GetMarkerColor.sqf index f48f753f6..ec6dd1b37 100644 --- a/f/FTMemberMarkers/fn_GetMarkerColor.sqf +++ b/f/FTMemberMarkers/fn_GetMarkerColor.sqf @@ -1,5 +1,5 @@ // F3 - Convert teamcolors to markercolor. -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // Description: Converts group team colors to Marker colors // Parameters // 0: String (MAIN,RED,GREEN,BLUE,YELLOW) diff --git a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf index be0346529..58cdf7bb6 100644 --- a/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf +++ b/f/FTMemberMarkers/fn_SetLocalFTMemberMarkers.sqf @@ -1,5 +1,5 @@ // F3 - Fireteam Member Markers -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // Description: Launches the main part of the FireTeam Member markers. // Parameters // Nothing. diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 4f5a7686e..056bfd353 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - 3IFB -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_3IFB_light.sqf b/f/assignGear/f_assignGear_3IFB_light.sqf index 050122945..2c59b8135 100644 --- a/f/assignGear/f_assignGear_3IFB_light.sqf +++ b/f/assignGear/f_assignGear_3IFB_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - 3IFB - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index a53de2d70..d34b55b67 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - 3IFB - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_AI.sqf b/f/assignGear/f_assignGear_AI.sqf index 6c9184834..e7edba928 100644 --- a/f/assignGear/f_assignGear_AI.sqf +++ b/f/assignGear/f_assignGear_AI.sqf @@ -1,5 +1,5 @@ // F3 - Assign Gear Script - AI -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SERVER CHECK diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 1602715dc..6d763b024 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - AAF -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index 189b73799..5f97a7b69 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index 52d39f8ef..d585cd4f0 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - AAF - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 9c886d997..7395904b4 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -1,5 +1,5 @@ // F3 - F3 Folk ARPS Assign Gear -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // Prevent BIS Randomisation System diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 22a69cf7a..8ff2a82ae 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CSAT -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index d7260f10b..71c423392 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CSAT (PACIFIC) -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 986aaf3c2..08d4c6cd8 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CSAT Pacific - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 83e3b0eee..6a98215ce 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CSAT Pacific - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 2637fd4b8..42c977b4b 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CSAT - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 82a47d062..688379adf 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CSAT - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 8bb9f48d3..4ccae4364 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CTRG -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 54601f866..c5131d7cb 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CTRG - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 973e3da8d..4e3bbae37 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - CTRG - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index c057c8ce2..332613e4a 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - FIA -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index 220871c0c..8741be6ca 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - FIA - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 626f6a56f..0bf0a5245 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - FIA - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 486224e2b..ac00d2a23 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - GENDARMERIE -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES @@ -182,7 +182,7 @@ if (_isMan) then { // ==================================================================================== // F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index f2ddbb595..50e0ccd81 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - LDF -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_ldf_light.sqf b/f/assignGear/f_assignGear_ldf_light.sqf index 97b8279c3..63dadd874 100644 --- a/f/assignGear/f_assignGear_ldf_light.sqf +++ b/f/assignGear/f_assignGear_ldf_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - LDF - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_ldf_standard.sqf b/f/assignGear/f_assignGear_ldf_standard.sqf index e0141bf90..7fedfbba4 100644 --- a/f/assignGear/f_assignGear_ldf_standard.sqf +++ b/f/assignGear/f_assignGear_ldf_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - LDF - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index cdb09b6f2..03017001f 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index 48b3623b5..5ceca00ae 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO (PACIFIC) -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 96b19ccba..d19962228 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO Pacific - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index 4efb3df91..b800d5930 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO Pacific - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 4163da937..13cf844d5 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO (Woodland) -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_natoWoodland_light.sqf b/f/assignGear/f_assignGear_natoWoodland_light.sqf index 91e322890..b5008c54e 100644 --- a/f/assignGear/f_assignGear_natoWoodland_light.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_natoWoodland_standard.sqf b/f/assignGear/f_assignGear_natoWoodland_standard.sqf index 1adb95d3d..6a0b699c8 100644 --- a/f/assignGear/f_assignGear_natoWoodland_standard.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index 29170a5bd..1ef247d71 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 1b9d6bd7b..291eca39b 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NATO - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index 40da865c9..d30958bad 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NPR -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_npr_light.sqf b/f/assignGear/f_assignGear_npr_light.sqf index 56a7cdb2c..945361e63 100644 --- a/f/assignGear/f_assignGear_npr_light.sqf +++ b/f/assignGear/f_assignGear_npr_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NPR - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf index 52bbdbe62..0fe581abb 100644 --- a/f/assignGear/f_assignGear_npr_standard.sqf +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - NPR - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 297ab2f17..42abcd38a 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - Spetsnaz -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_spetsnaz_light.sqf b/f/assignGear/f_assignGear_spetsnaz_light.sqf index 0a083b5c4..9082974e2 100644 --- a/f/assignGear/f_assignGear_spetsnaz_light.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - Spetsnaz - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf index 41e4a4a94..30359e872 100644 --- a/f/assignGear/f_assignGear_spetsnaz_standard.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - Spetsnaz - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index e3b9fb071..7c0f8d1a2 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - SYNDIKAT -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE EQUIPMENT TABLES diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index 9b4d97930..233aee906 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - Syndikat - Light Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index dfcbd75ad..1fa28c851 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script - Syndikat - Standard Loadout -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DEFINE UNIT TYPE LOADOUTS diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index b30989c5d..63ac44fd2 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -1,5 +1,5 @@ // F3 - Folk ARPS Assign Gear Script (Server-side) -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // INTERPRET PASSED VARIABLES diff --git a/f/assignGear/fn_assignInsignia.sqf b/f/assignGear/fn_assignInsignia.sqf index 35bd30fc1..0b5ca2000 100644 --- a/f/assignGear/fn_assignInsignia.sqf +++ b/f/assignGear/fn_assignInsignia.sqf @@ -1,5 +1,5 @@ // F3 - Assign Insignia -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== private _badge = ""; diff --git a/f/authorisedCrew/fn_authorisedCrewCheck.sqf b/f/authorisedCrew/fn_authorisedCrewCheck.sqf index 5d48dc9a1..7ad75f204 100644 --- a/f/authorisedCrew/fn_authorisedCrewCheck.sqf +++ b/f/authorisedCrew/fn_authorisedCrewCheck.sqf @@ -1,5 +1,5 @@ // F3 - Authorised Crew Check -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/briefing/f_briefing_3ifb.sqf b/f/briefing/f_briefing_3ifb.sqf index 33c7cc789..1ba0d3a74 100644 --- a/f/briefing/f_briefing_3ifb.sqf +++ b/f/briefing/f_briefing_3ifb.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // VIRTUAL FACTION: 3IFB diff --git a/f/briefing/f_briefing_aaf.sqf b/f/briefing/f_briefing_aaf.sqf index 3322e2e0b..8906205ac 100644 --- a/f/briefing/f_briefing_aaf.sqf +++ b/f/briefing/f_briefing_aaf.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: AAF diff --git a/f/briefing/f_briefing_admin.sqf b/f/briefing/f_briefing_admin.sqf index 0c9284f25..e1569c294 100644 --- a/f/briefing/f_briefing_admin.sqf +++ b/f/briefing/f_briefing_admin.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // ADD MISSION MAKER NOTES SECTIONS diff --git a/f/briefing/f_briefing_civ.sqf b/f/briefing/f_briefing_civ.sqf index c0d99befc..6ac06635f 100644 --- a/f/briefing/f_briefing_civ.sqf +++ b/f/briefing/f_briefing_civ.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTIONS: CIVILIAN, IDAP diff --git a/f/briefing/f_briefing_credits.sqf b/f/briefing/f_briefing_credits.sqf index bcfe5a717..5ceb7373f 100644 --- a/f/briefing/f_briefing_credits.sqf +++ b/f/briefing/f_briefing_credits.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // NOTES: CREDITS diff --git a/f/briefing/f_briefing_csat.sqf b/f/briefing/f_briefing_csat.sqf index ae1156f0a..b81703949 100644 --- a/f/briefing/f_briefing_csat.sqf +++ b/f/briefing/f_briefing_csat.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: CSAT diff --git a/f/briefing/f_briefing_ctrg.sqf b/f/briefing/f_briefing_ctrg.sqf index 5a4f82897..7bc125a71 100644 --- a/f/briefing/f_briefing_ctrg.sqf +++ b/f/briefing/f_briefing_ctrg.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: CTRG diff --git a/f/briefing/f_briefing_fia.sqf b/f/briefing/f_briefing_fia.sqf index 5421f0324..ee45bcb50 100644 --- a/f/briefing/f_briefing_fia.sqf +++ b/f/briefing/f_briefing_fia.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: FIA diff --git a/f/briefing/f_briefing_gendarmerie.sqf b/f/briefing/f_briefing_gendarmerie.sqf index 567c05ec5..cc9abc70e 100644 --- a/f/briefing/f_briefing_gendarmerie.sqf +++ b/f/briefing/f_briefing_gendarmerie.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: GENDARMERIE diff --git a/f/briefing/f_briefing_ldf.sqf b/f/briefing/f_briefing_ldf.sqf index a3cf13898..f51dec916 100644 --- a/f/briefing/f_briefing_ldf.sqf +++ b/f/briefing/f_briefing_ldf.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: LDF diff --git a/f/briefing/f_briefing_nato.sqf b/f/briefing/f_briefing_nato.sqf index ae2d31cca..ff4bcd893 100644 --- a/f/briefing/f_briefing_nato.sqf +++ b/f/briefing/f_briefing_nato.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: NATO diff --git a/f/briefing/f_briefing_npr.sqf b/f/briefing/f_briefing_npr.sqf index 6475ffeb5..03a573d69 100644 --- a/f/briefing/f_briefing_npr.sqf +++ b/f/briefing/f_briefing_npr.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: NPR diff --git a/f/briefing/f_briefing_spetsnaz.sqf b/f/briefing/f_briefing_spetsnaz.sqf index 96579e8ad..a2175fe80 100644 --- a/f/briefing/f_briefing_spetsnaz.sqf +++ b/f/briefing/f_briefing_spetsnaz.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: Spetsnaz diff --git a/f/briefing/f_briefing_syndikat.sqf b/f/briefing/f_briefing_syndikat.sqf index 1b9a9eb5d..e6ff25f99 100644 --- a/f/briefing/f_briefing_syndikat.sqf +++ b/f/briefing/f_briefing_syndikat.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: SYNDIKAT diff --git a/f/briefing/f_briefing_zeus.sqf b/f/briefing/f_briefing_zeus.sqf index a9a8e980e..375125120 100644 --- a/f/briefing/f_briefing_zeus.sqf +++ b/f/briefing/f_briefing_zeus.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // FACTION: ZEUS diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index b31c615a1..11531f4b7 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -1,5 +1,5 @@ // F3 - Loadout Notes -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== if (!hasInterface || (side player == sideLogic)) exitWith {}; //Exit if not a player. diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 3e55b3f6b..aa149aa54 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -1,5 +1,5 @@ // F3 - ORBAT Notes -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== if (!hasInterface || (side player == sideLogic)) exitWith {}; //Exit if not a player. diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index 1c7197984..92ecdd77a 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -1,5 +1,5 @@ // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== if (!hasInterface) exitWith {}; //Exit if not a player. diff --git a/f/cache/fn_cInit.sqf b/f/cache/fn_cInit.sqf index 82d4c653f..6ea2405c3 100644 --- a/f/cache/fn_cInit.sqf +++ b/f/cache/fn_cInit.sqf @@ -1,5 +1,5 @@ // F3 - Caching Script Init -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // Check whether the paramater is defined (or caching switched off)) - if not, just exit diff --git a/f/cache/fn_cTracker.sqf b/f/cache/fn_cTracker.sqf index ad78bffb3..3a9bf1902 100644 --- a/f/cache/fn_cTracker.sqf +++ b/f/cache/fn_cTracker.sqf @@ -1,5 +1,5 @@ // F3 - Caching Script Tracker -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND PARAMETERS diff --git a/f/cache/fn_gCache.sqf b/f/cache/fn_gCache.sqf index d6c91ce13..665cd68d8 100644 --- a/f/cache/fn_gCache.sqf +++ b/f/cache/fn_gCache.sqf @@ -1,5 +1,5 @@ // F3 - Caching Script Group Cacher -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // LOOP THROUGH THE PASSED UNITS diff --git a/f/cache/fn_gUncache.sqf b/f/cache/fn_gUncache.sqf index 6e3dd9f44..58a617e78 100644 --- a/f/cache/fn_gUncache.sqf +++ b/f/cache/fn_gUncache.sqf @@ -1,5 +1,5 @@ // F3 - Caching Script Group Uncacher -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== { diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index c1a9253fa..db125247d 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -1,5 +1,5 @@ // F3 - Casualties Cap -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SERVER CHECK diff --git a/f/common/f_setLocalVars.sqf b/f/common/f_setLocalVars.sqf index f597c3c29..018d3f3e2 100644 --- a/f/common/f_setLocalVars.sqf +++ b/f/common/f_setLocalVars.sqf @@ -1,5 +1,5 @@ // F3 - F3 Common Local Variables -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // ==================================================================================== diff --git a/f/common/fn_nearPlayer.sqf b/f/common/fn_nearPlayer.sqf index 277af2421..ff57e71de 100644 --- a/f/common/fn_nearPlayer.sqf +++ b/f/common/fn_nearPlayer.sqf @@ -1,5 +1,5 @@ // F3 - Near Player Function -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/common/fn_processParamsArray.sqf b/f/common/fn_processParamsArray.sqf index a908142fe..44e9b1083 100644 --- a/f/common/fn_processParamsArray.sqf +++ b/f/common/fn_processParamsArray.sqf @@ -1,5 +1,5 @@ // F3 - Process ParamsArray -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== //Testing has shown that paramArrays only exists on the server during preInit diff --git a/f/disableThermals/fn_disableThermals.sqf b/f/disableThermals/fn_disableThermals.sqf index 60e515922..6dee88df8 100644 --- a/f/disableThermals/fn_disableThermals.sqf +++ b/f/disableThermals/fn_disableThermals.sqf @@ -1,5 +1,5 @@ // F3 - Disable Thermals -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/groupJoin/f_groupJoinAction.sqf b/f/groupJoin/f_groupJoinAction.sqf index f52d04edc..a6a3f9bdc 100644 --- a/f/groupJoin/f_groupJoinAction.sqf +++ b/f/groupJoin/f_groupJoinAction.sqf @@ -1,5 +1,5 @@ // F3 - Add group join option to action menu -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // This script can be called either without parameters, or with a single boolean parameter. diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index 42c0e36ef..f1d6780c5 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -1,5 +1,5 @@ // F3 - Folk Group Markers -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // MAKE SURE THE PLAYER INITIALIZES PROPERLY diff --git a/f/groupMarkers/fn_localGroupMarker.sqf b/f/groupMarkers/fn_localGroupMarker.sqf index ebc287357..b9f195d02 100644 --- a/f/groupMarkers/fn_localGroupMarker.sqf +++ b/f/groupMarkers/fn_localGroupMarker.sqf @@ -1,5 +1,5 @@ // F3 - Folk Group Markers -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SET KEY VARIABLES diff --git a/f/groupMarkers/fn_localSpecialistMarker.sqf b/f/groupMarkers/fn_localSpecialistMarker.sqf index 175f87e22..f6b2ff9b0 100644 --- a/f/groupMarkers/fn_localSpecialistMarker.sqf +++ b/f/groupMarkers/fn_localSpecialistMarker.sqf @@ -1,5 +1,5 @@ // F3 - Folk Unit Markers for Specialists -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE PRIVATE VARIABLES diff --git a/f/mapClickTeleport/f_mapClickTeleport.sqf b/f/mapClickTeleport/f_mapClickTeleport.sqf index 62682a29c..354665f7c 100644 --- a/f/mapClickTeleport/f_mapClickTeleport.sqf +++ b/f/mapClickTeleport/f_mapClickTeleport.sqf @@ -1,5 +1,5 @@ // F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // Only run this for players diff --git a/f/mapClickTeleport/fn_mapClickTeleportAction.sqf b/f/mapClickTeleport/fn_mapClickTeleportAction.sqf index ae5100dfa..9ba4933bc 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportAction.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportAction.sqf @@ -1,5 +1,5 @@ // F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SET KEY VARIABLES diff --git a/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf b/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf index e83a0e7a7..93eb2d309 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportBriefing.sqf @@ -1,5 +1,5 @@ // F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== if (!hasInterface) exitWith {}; diff --git a/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf index 9ea1cef32..4a3d5844e 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportParachute.sqf @@ -1,5 +1,5 @@ // F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // If a vehicle is teleported, a parachute is attached at a given height. diff --git a/f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf b/f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf index a73e403b2..f67768277 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportRemoveAction.sqf @@ -1,5 +1,5 @@ // F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // REMOVE ACTION diff --git a/f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf b/f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf index 71890353e..af8c593b2 100644 --- a/f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf +++ b/f/mapClickTeleport/fn_mapClickTeleportSetPos.sqf @@ -1,5 +1,5 @@ // F3 - Mission Maker Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== diff --git a/f/missionConditions/f_setMissionConditions.sqf b/f/missionConditions/f_setMissionConditions.sqf index ffffd3fc9..58ae395a4 100644 --- a/f/missionConditions/f_setMissionConditions.sqf +++ b/f/missionConditions/f_setMissionConditions.sqf @@ -1,5 +1,5 @@ // F3 - Mission Conditions -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SCRIPT SHOULD ONLY RUN ON SERVER diff --git a/f/missionConditions/fn_SetFog.sqf b/f/missionConditions/fn_SetFog.sqf index ded86954c..fd674f554 100644 --- a/f/missionConditions/fn_SetFog.sqf +++ b/f/missionConditions/fn_SetFog.sqf @@ -1,5 +1,5 @@ // F3 - SetFog -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index 85eea1d5e..d83efdad6 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -1,5 +1,5 @@ // F3 - SetTime -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // RUN ONLY ON THE SERVER diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index 3a4b05f89..81916e35d 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -1,5 +1,5 @@ // F3 - SetWeather -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/missionConditions/fn_SetWind.sqf b/f/missionConditions/fn_SetWind.sqf index 1c15952d1..965574e6b 100644 --- a/f/missionConditions/fn_SetWind.sqf +++ b/f/missionConditions/fn_SetWind.sqf @@ -1,5 +1,5 @@ // F3 - SetWind -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/mpEnd/fn_mpEnd.sqf b/f/mpEnd/fn_mpEnd.sqf index 1bf721957..76cddba5f 100644 --- a/f/mpEnd/fn_mpEnd.sqf +++ b/f/mpEnd/fn_mpEnd.sqf @@ -1,5 +1,5 @@ // F3 - Multiplayer Ending Controller -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/mpEnd/fn_mpEndReceiver.sqf b/f/mpEnd/fn_mpEndReceiver.sqf index 34f091148..26d96b12f 100644 --- a/f/mpEnd/fn_mpEndReceiver.sqf +++ b/f/mpEnd/fn_mpEndReceiver.sqf @@ -1,5 +1,5 @@ // F3 - Multiplayer Ending Controller -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES AND FUNCTIONS diff --git a/f/preMount/fn_mountGroups.sqf b/f/preMount/fn_mountGroups.sqf index 2e4ba4a82..4f220354b 100644 --- a/f/preMount/fn_mountGroups.sqf +++ b/f/preMount/fn_mountGroups.sqf @@ -1,5 +1,5 @@ // F3 - Mount Groups Function -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // MAKE SURE THE SCRIPT IS ONLY RUN SERVER-SIDE diff --git a/f/safeStart/f_safeStart.sqf b/f/safeStart/f_safeStart.sqf index 127ef1457..afd01c1d1 100644 --- a/f/safeStart/f_safeStart.sqf +++ b/f/safeStart/f_safeStart.sqf @@ -1,5 +1,5 @@ // F3 - Safe Start -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // This script inits the Mission Timer and the Safe Start, has the server setup the publicVariable // while the client waits, sets units invincibility and displays hints, then disables it. diff --git a/f/safeStart/f_safeStartLoop.sqf b/f/safeStart/f_safeStartLoop.sqf index 0142844ea..a20d18b10 100644 --- a/f/safeStart/f_safeStartLoop.sqf +++ b/f/safeStart/f_safeStartLoop.sqf @@ -1,5 +1,5 @@ // F3 - Safe Start, Server Loop -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki //===================================================================================== // Run the loop only on the server diff --git a/f/safeStart/fn_safety.sqf b/f/safeStart/fn_safety.sqf index 82449258a..0214d4202 100644 --- a/f/safeStart/fn_safety.sqf +++ b/f/safeStart/fn_safety.sqf @@ -1,5 +1,5 @@ // F3 - Safe Start, Safety Toggle -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki //===================================================================================== //Exit if server diff --git a/f/setAISkill/f_setAISkill.sqf b/f/setAISkill/f_setAISkill.sqf index 02ea3478e..22c2316e5 100644 --- a/f/setAISkill/f_setAISkill.sqf +++ b/f/setAISkill/f_setAISkill.sqf @@ -1,5 +1,5 @@ // F3 - AI Skill Selector -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // WAIT FOR THE MISSION TO BEGIN diff --git a/f/setAISkill/fn_setAISkill.sqf b/f/setAISkill/fn_setAISkill.sqf index 568931cb6..a34f2b62c 100644 --- a/f/setAISkill/fn_setAISkill.sqf +++ b/f/setAISkill/fn_setAISkill.sqf @@ -1,5 +1,5 @@ // F3 - SetAISkill -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SET KEY VARIABLES diff --git a/f/setGroupID/f_setGroupIDs.sqf b/f/setGroupID/f_setGroupIDs.sqf index eafe8079b..020aa232e 100644 --- a/f/setGroupID/f_setGroupIDs.sqf +++ b/f/setGroupID/f_setGroupIDs.sqf @@ -1,5 +1,5 @@ // F3 - Set Group IDs -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // Automatically assigns intelligible names to groups diff --git a/f/setGroupID/fn_setGroupID.sqf b/f/setGroupID/fn_setGroupID.sqf index 1f2dbb73d..f1a089320 100644 --- a/f/setGroupID/fn_setGroupID.sqf +++ b/f/setGroupID/fn_setGroupID.sqf @@ -1,5 +1,5 @@ // F3 - Set Group ID Function -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES diff --git a/f/setTeamColours/f_setTeamColours.sqf b/f/setTeamColours/f_setTeamColours.sqf index 1c10bcf99..857aa61be 100644 --- a/f/setTeamColours/f_setTeamColours.sqf +++ b/f/setTeamColours/f_setTeamColours.sqf @@ -1,5 +1,5 @@ // F3 - Buddy Team Colours -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== if (!hasInterface) exitWith {}; diff --git a/f/zeus/fn_zeusAddAddons.sqf b/f/zeus/fn_zeusAddAddons.sqf index d5c200b4e..24f7774df 100644 --- a/f/zeus/fn_zeusAddAddons.sqf +++ b/f/zeus/fn_zeusAddAddons.sqf @@ -1,5 +1,5 @@ // F3 Zeus Support - Add Addons -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES diff --git a/f/zeus/fn_zeusAddObjects.sqf b/f/zeus/fn_zeusAddObjects.sqf index 48e7de73e..69d712c98 100644 --- a/f/zeus/fn_zeusAddObjects.sqf +++ b/f/zeus/fn_zeusAddObjects.sqf @@ -1,5 +1,5 @@ // F3 Zeus Support - Add Objects -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // DECLARE VARIABLES diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index f8d2c4797..72a26dd5c 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -1,5 +1,5 @@ // F3 Zeus Support - Initialization -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== // SERVER CHECK diff --git a/f/zeus/fn_zeusInitLocal.sqf b/f/zeus/fn_zeusInitLocal.sqf index e75b36ced..e06908fcf 100644 --- a/f/zeus/fn_zeusInitLocal.sqf +++ b/f/zeus/fn_zeusInitLocal.sqf @@ -1,5 +1,5 @@ // F3 Zeus Support - Add Addons -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== params [ diff --git a/init.sqf b/init.sqf index 1f4b5f870..c994b8b10 100644 --- a/init.sqf +++ b/init.sqf @@ -1,107 +1,106 @@ // ==================================================================================== // F3 - Common Local Variables -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // WARNING: DO NOT DISABLE THIS COMPONENT if(isServer) then { f_script_setLocalVars = [] execVM "f\common\f_setLocalVars.sqf"; }; - // ==================================================================================== // F3 - Disable Saving and Auto Saving -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki enableSaving [false, false]; // ==================================================================================== // F3 - Mute Orders and Reports -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki {_x setSpeaker "NoVoice"} forEach playableUnits; // ==================================================================================== // F3 - Mission Timer/Safe Start -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [] execVM "f\safeStart\f_safeStart.sqf"; // ==================================================================================== // F3 - F3 Mission Conditions Selector -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki f_script_setMissionConditions = [] execVM "f\missionConditions\f_setMissionConditions.sqf"; // ==================================================================================== // F3 - Folk ARPS Group IDs -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki f_script_setGroupIDs = [] execVM "f\setGroupID\f_setGroupIDs.sqf"; // ==================================================================================== // F3 - F3 Folk ARPS Group Markers -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki f_script_setGroupMarkers = [] execVM "f\groupMarkers\f_setLocalGroupMarkers.sqf"; // ==================================================================================== // F3 - Buddy Team Colours -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki f_script_setTeamColours = [] execVM "f\setTeamColours\f_setTeamColours.sqf"; // ==================================================================================== // F3 - Fireteam Member Markers -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [] spawn f_fnc_SetLocalFTMemberMarkers; // ==================================================================================== // F3 - Join Group Action -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [false] execVM "f\groupJoin\f_groupJoinAction.sqf"; // ==================================================================================== // F3 - Briefing -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki f_script_briefing = [] spawn f_fnc_createBriefing; // ==================================================================================== // F3 - ORBAT Notes -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [] execVM "f\briefing\f_orbatNotes.sqf"; // ==================================================================================== // F3 - Loadout Notes -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [] execVM "f\briefing\f_loadoutNotes.sqf"; // ==================================================================================== // F3 - Revive -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [] execVM "f\medical\init.sqf"; // ==================================================================================== // F3 - AI Unit Caching -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki //[30] spawn f_fnc_cInit; @@ -114,6 +113,7 @@ f_script_briefing = [] spawn f_fnc_createBriefing; // ==================================================================================== // F3 - Automatic Body Removal +// Credits and documentation: https://github.com/folkarps/F3/wiki //Exclude units from automatic body/wreck removal: removeFromRemainsCollector playableUnits; @@ -122,7 +122,7 @@ removeFromRemainsCollector playableUnits; // ==================================================================================== // F3 - AI Skill Selector -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki f_var_civAI = independent; // Optional: The civilian AI will use this side's settings [] execVM "f\setAISKill\f_setAISkill.sqf"; @@ -130,14 +130,14 @@ f_var_civAI = independent; // Optional: The civilian AI will use this side's s // ==================================================================================== // F3 - Assign Gear AI -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // [] execVM "f\assignGear\f_assignGear_AI.sqf"; // ==================================================================================== // F3 - Dynamic View Distance -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki f_var_viewDistance_default = 1600; f_var_viewDistance_tank = 2500; @@ -150,7 +150,7 @@ f_var_viewDistance_crewOnly = true; // ==================================================================================== // F3 - Authorised Crew Check -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // VehicleName addEventhandler ["GetIn", {[_this,[UnitName1,UnitName2],false] call f_fnc_authorisedCrewCheck}]; // VehicleName addEventhandler ["GetIn", {[_this,["UnitClass1","UnitClass2"],false] call f_fnc_authorisedCrewCheck}]; @@ -158,7 +158,7 @@ f_var_viewDistance_crewOnly = true; // ==================================================================================== // F3 - MapClick Teleport -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // f_var_mapClickTeleport_Uses = 1; // How often the teleport action can be used. 0 = infinite usage. // f_var_mapClickTeleport_TimeLimit = 0; // If higher than 0 the action will be removed after the given time. @@ -171,14 +171,14 @@ f_var_viewDistance_crewOnly = true; // ==================================================================================== // F3 - Name Tags -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [] execVM "f\nametag\f_nametagInit.sqf"; // ==================================================================================== // F3 - Group E&E Check -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // [side,ObjectName or "MarkerName",100,1] execVM "f\EandEcheck\f_EandECheckLoop.sqf"; // [["Grp1","Grp2"],ObjectName or "MarkerName",100,1] execVM "f\EandEcheck\f_EandECheckLoop.sqf"; @@ -188,7 +188,7 @@ f_var_viewDistance_crewOnly = true; // ==================================================================================== // F3 - Casualties Cap -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // [[GroupName or SIDE],100,1] execVM "f\casualtiesCap\f_CasualtiesCapCheck.sqf"; // [[GroupName or SIDE],100,{code}] execVM "f\casualtiesCap\f_CasualtiesCapCheck.sqf"; @@ -205,7 +205,7 @@ f_var_viewDistance_crewOnly = true; // ==================================================================================== // F3 - Disable Thermals -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki [] spawn f_fnc_disableThermals; // [[UnitName1, "UnitClass1"]] spawn f_fnc_disableThermals; From f88150877d190ae1f55e94ffc698dde0049327b9 Mon Sep 17 00:00:00 2001 From: s Date: Wed, 2 Oct 2019 22:06:45 +0200 Subject: [PATCH 192/407] Add type checks to params --- f/briefing/f_loadoutNotes.sqf | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/f/briefing/f_loadoutNotes.sqf b/f/briefing/f_loadoutNotes.sqf index b31c615a1..bd5e7b764 100644 --- a/f/briefing/f_loadoutNotes.sqf +++ b/f/briefing/f_loadoutNotes.sqf @@ -69,7 +69,7 @@ private _fnc_nameShort = { // Local function to format the text for magazine counts private _fnc_magArrText = { - params ["_magArr"]; + params [["_magArr", [], [[]]]]; if (count _magArr > 0) exitWith { format ["[%1]", _magArr joinString "+"] }; @@ -77,7 +77,16 @@ private _fnc_magArrText = { }; private _fnc_loadoutDataToText = { - params ["_full","_wepItems", "_mags", "_items", "_items_assigned", "_bp", "_bpLoad", "_weps"]; + params [ + ["_full", true, [true]], + ["_wepItems", [], [[]]], + ["_mags", [], [[]]], + ["_items", [], [[]]], + ["_items_assigned", [], [[]]], + ["_bp", "", [""]], + ["_bpLoad", 0, [0]], + ["_weps", [], [[]]] + ]; private _arrow = ""; private _classesBlacklist = ["HandGrenade", "1Rnd_HE_Grenade_shell", "FirstAidKit"]; @@ -90,7 +99,12 @@ private _fnc_loadoutDataToText = { if (count _weps > 0) then { _textLong = _textLong + "WEAPONS [#MAGAZINES]:"; { - _x params ["_weapon", "_magArr", "_ugls", "_attachments"]; + _x params [ + ["_weapon", "", [""]], + ["_magArr", [], [[]]], + ["_ugls", [], [[]]], + ["_attachments", [], [[]]] + ]; // Weapon name and picture _textLong = _textLong + "
" + ([_weapon] call _fnc_name); @@ -142,13 +156,19 @@ private _fnc_loadoutDataToText = { _textLong = _textLong + "
OTHER [#]:"; { - _x params ["_className","_num"]; + _x params [ + ["_className", "", [""]], + ["_num", 0, [0]] + ]; _textLong = _textLong + "
" + ([_className, "CfgMagazines"] call _fnc_name) + format[" [%1]", _num]; _textShrt = _textShrt + ([_className, "CfgMagazines"] call _fnc_nameShort) + format[" [%1]", _num]; } forEach _mags; { - _x params ["_className","_num"]; + _x params [ + ["_className", "", [""]], + ["_num", 0, [0]] + ]; _textLong = _textLong + "
" + ([_className, "CfgWeapons"] call _fnc_name) + format[" [%1]",_num]; _textShrt = _textShrt + ([_className, "CfgWeapons"] call _fnc_nameShort) + format[" [%1]", _num]; } forEach _items; From ffb69bec0c68c5fc83d2948a227cf83493d2fbea Mon Sep 17 00:00:00 2001 From: s Date: Sat, 5 Oct 2019 14:24:38 +0200 Subject: [PATCH 193/407] Issue 247: Add fullscreen NVG to pilots --- f/assignGear/f_assignGear_3IFB.sqf | 1 + f/assignGear/f_assignGear_aaf.sqf | 1 + f/assignGear/f_assignGear_clothes.sqf | 1 + f/assignGear/f_assignGear_csat.sqf | 1 + f/assignGear/f_assignGear_csatPacific.sqf | 1 + f/assignGear/f_assignGear_ctrg.sqf | 1 + f/assignGear/f_assignGear_fia.sqf | 1 + f/assignGear/f_assignGear_gendarmerie.sqf | 4 ++++ f/assignGear/f_assignGear_ldf.sqf | 1 + f/assignGear/f_assignGear_nato.sqf | 1 + f/assignGear/f_assignGear_natoPacific.sqf | 1 + f/assignGear/f_assignGear_natoWoodland.sqf | 1 + f/assignGear/f_assignGear_npr.sqf | 3 ++- f/assignGear/f_assignGear_spetsnaz.sqf | 1 + f/assignGear/f_assignGear_syndikat.sqf | 1 + f/assignGear/fn_assignGear.sqf | 2 +- 16 files changed, 20 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 4f5a7686e..dcded234f 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -165,6 +165,7 @@ _medkit = "Medikit"; // Night Vision Goggles //_nvg = "NVGoggles_OPFOR"; +//_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 1602715dc..7ee7f432e 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -165,6 +165,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 9c886d997..7ccc0b2b6 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -34,6 +34,7 @@ if (_typeOfUnit in _pilot) then { _uniform = _pilotUniform; _rig = _pilotRig; _glasses = _pilotGlasses; + _nvg = _nvgPilot; }; // Jet Pilot diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 22a69cf7a..471add5f1 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -166,6 +166,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_hex_F"; //_nvg = "O_NVGoggles_urb_F"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_02"; diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index d7260f10b..97fbaabf6 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -165,6 +165,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_ghex_F"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_02_ghex_F"; diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 8bb9f48d3..afadbf4e3 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -165,6 +165,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator"; diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index c057c8ce2..cd23ed485 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -165,6 +165,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 486224e2b..88a2c4baf 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -93,6 +93,10 @@ _smokegrenadepurple = "SmokeShellPurple"; _firstaid = "FirstAidKit"; _medkit = "Medikit"; +// Night Vision Goggles +//_nvg = "NVGoggles"; +//_nvgPilot = "Integrated_NVG_F"; + // Chemlights _chemgreen = "Chemlight_green"; _chemred = "Chemlight_red"; diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index f2ddbb595..eb446283b 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -166,6 +166,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index cdb09b6f2..1e785798f 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -166,6 +166,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator"; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index 48b3623b5..400c49c7c 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -166,6 +166,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_tna_F"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_01_khk_F"; diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 4163da937..61fa1bc28 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -164,6 +164,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_01_khk_F"; diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index 40da865c9..b0145952a 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -183,6 +183,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_OPFOR"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_03"; @@ -386,4 +387,4 @@ if (_loadout == 1) then { #include "f_assignGear_npr_standard.sqf" }; -// ==================================================================================== \ No newline at end of file +// ==================================================================================== diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 297ab2f17..b795119f7 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -169,6 +169,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_grn_F"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_02"; diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index e3b9fb071..1f3cff2c4 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -165,6 +165,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +_nvgPilot = "Integrated_NVG_F"; // Laserdesignator _laserdesignator = "Laserdesignator_01_khk_F"; diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index b30989c5d..2d3dd4be9 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -54,7 +54,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; +private ["_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_nvgPilot","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; // ==================================================================================== From c8b04c2b5120c1810f01fb52f0af465844b97b8f Mon Sep 17 00:00:00 2001 From: s Date: Sat, 5 Oct 2019 14:46:42 +0200 Subject: [PATCH 194/407] Issue #265 --- f/briefing/f_orbatNotes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 3e55b3f6b..be2a2215f 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -72,7 +72,7 @@ private _fnc_getMarker = { }; private _icon = [_x] call _fnc_getMarker; - _orbatText = _orbatText + format ["%1%2 %3", _icon, _x, name leader _x,_color] + "
"; + _orbatText = _orbatText + format ["%1%2 %3", _icon, groupId _x, name leader _x,_color] + "
"; { private _unit = _x; From d9f107e89827a395292dd40a136e3bdb01b78d96 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 4 May 2020 18:40:19 +0100 Subject: [PATCH 195/407] Change LDF AR mags to red tracer --- f/assignGear/f_assignGear_ldf.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index f2ddbb595..9bfe56b42 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -200,8 +200,8 @@ _bagRadio = "B_RadioBag_01_eaf_F"; // cosmetic, used by COs, DCs, and anybody // Automatic Rifleman _AR = "LMG_Mk200_black_F"; -_ARmag = "200Rnd_65x39_cased_Box"; -_ARmag_tr = "200Rnd_65x39_cased_Box_Tracer"; +_ARmag = "200Rnd_65x39_cased_Box_Red"; +_ARmag_tr = "200Rnd_65x39_cased_Box_Tracer_Red"; // Medium MG _MMG = "MMG_02_black_F"; From ed4097d22eda82a24758b0013931deac9bdf7ca2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 4 May 2020 18:42:16 +0100 Subject: [PATCH 196/407] Correct NPR technical callsigns and markers --- f/groupMarkers/fn_groupData.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf index d94f643c7..83890bc99 100644 --- a/f/groupMarkers/fn_groupData.sqf +++ b/f/groupMarkers/fn_groupData.sqf @@ -757,8 +757,8 @@ f_var_groupData_opfor_npr = [ ["GrpNPR_DT1", _rec, "DT1", "ColorOrange", "NPR DT1 -"], ["GrpNPR_ENG1", _eng, "ENG1", "ColorOrange", "NPR ENG1 -"], - ["GrpNPR_IFV1", _ifv, "IFV1", "ColorOrange", "NPR IFV1 -"], - ["GrpNPR_IFV2", _ifv, "IFV2", "ColorOrange", "NPR IFV2 -"], + ["GrpNPR_IFV1", _ifv, "TECH1", "ColorOrange", "NPR TECH1 -"], + ["GrpNPR_IFV2", _ifv, "TECH2", "ColorOrange", "NPR TECH2 -"], ["GrpNPR_TNK1", _tnk, "TNK1", "ColorRed", "NPR TNK1 -"], ["GrpNPR_CAS1", _pla, "CAS1", "ColorOrange", "NPR CAS1 -"], From 0730569e0f24f8d0bf18b405906b986bbd7d9e0d Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 4 May 2020 18:45:53 +0100 Subject: [PATCH 197/407] Switch Syndikat to Pacific ghillie suit --- f/assignGear/f_assignGear_syndikat.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index e3b9fb071..5502564eb 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -290,7 +290,7 @@ _crewRig = ["V_Chestrig_blk"]; _crewGlasses = []; // Ghillie -_ghillieUniform = ["U_B_GhillieSuit"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; +_ghillieUniform = ["U_B_T_Sniper_F"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; CSAT option: ["U_O_T_Sniper_F"];, ["U_O_T_FullGhillie_tna_F"]; _ghillieHelmet = []; _ghillieRig = ["V_Chestrig_rgr"]; _ghillieGlasses = []; From d0ab511ddb83701cee8783e8a09113ceafc5d82d Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Jun 2020 12:56:02 +0100 Subject: [PATCH 198/407] Increase 3IFB AR mag count Increases number of RPK drums for 3IFB ARs to match NATO MX SW mag counts. --- f/assignGear/f_assignGear_3IFB_light.sqf | 6 +++--- f/assignGear/f_assignGear_3IFB_standard.sqf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB_light.sqf b/f/assignGear/f_assignGear_3IFB_light.sqf index 050122945..b927d7ae1 100644 --- a/f/assignGear/f_assignGear_3IFB_light.sqf +++ b/f/assignGear/f_assignGear_3IFB_light.sqf @@ -19,8 +19,8 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -48,7 +48,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag, 2]; }; // Fire Team Leader Loadout: case "ftl": diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index a53de2d70..05a272c01 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -19,8 +19,8 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -50,7 +50,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag, 2]; _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: From 4cfab9e368ec3fe1771140175faba52855b08b5e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Jun 2020 12:58:00 +0100 Subject: [PATCH 199/407] Fix undefined NVGs in 3IFB Uncomments the NVG definition to avoid errors; comments the part where they're *used* to maintain the original intent of no NVGs by default. --- f/assignGear/f_assignGear_3IFB.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 4f5a7686e..d322cd5b5 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -164,7 +164,7 @@ _firstaid = "FirstAidKit"; _medkit = "Medikit"; // Night Vision Goggles -//_nvg = "NVGoggles_OPFOR"; +_nvg = "NVGoggles_OPFOR"; // Laserdesignator _laserdesignator = "Laserdesignator_03"; @@ -335,7 +335,7 @@ if (_isMan) then { // ADD UNIVERSAL ITEMS // Add items universal to all units of this faction - _unit linkItem _nvg; // Add and equip the faction's nvg +// _unit linkItem _nvg; // Add and equip the faction's nvg _unit addItem _firstaid; // Add a single first aid kit (FAK) _unit linkItem "ItemMap"; // Add and equip the map _unit linkItem "ItemCompass"; // Add and equip a compass From a644869a52a0247b8d0e870c1d963062043ac74b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Jun 2020 13:07:53 +0100 Subject: [PATCH 200/407] Move binoculars to a dedicated variable Replaces all direct additions of rangefinders/binocs with a reference to a variable defined in the faction main file. --- f/assignGear/f_assignGear_3IFB.sqf | 3 +++ f/assignGear/f_assignGear_3IFB_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_3IFB_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_aaf.sqf | 3 +++ f/assignGear/f_assignGear_aaf_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_aaf_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_csat.sqf | 3 +++ f/assignGear/f_assignGear_csatPacific.sqf | 3 +++ .../f_assignGear_csatPacific_light.sqf | 24 +++++++++---------- .../f_assignGear_csatPacific_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_csat_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_csat_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_ctrg.sqf | 3 +++ f/assignGear/f_assignGear_ctrg_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_ctrg_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_fia.sqf | 3 +++ f/assignGear/f_assignGear_fia_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_fia_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_gendarmerie.sqf | 11 +++++---- f/assignGear/f_assignGear_ldf.sqf | 3 +++ f/assignGear/f_assignGear_ldf_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_ldf_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_nato.sqf | 3 +++ f/assignGear/f_assignGear_natoPacific.sqf | 3 +++ .../f_assignGear_natoPacific_light.sqf | 24 +++++++++---------- .../f_assignGear_natoPacific_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_natoWoodland.sqf | 3 +++ .../f_assignGear_natoWoodland_light.sqf | 24 +++++++++---------- .../f_assignGear_natoWoodland_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_nato_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_nato_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_npr.sqf | 3 +++ f/assignGear/f_assignGear_npr_light.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_npr_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_spetsnaz.sqf | 3 +++ f/assignGear/f_assignGear_spetsnaz_light.sqf | 24 +++++++++---------- .../f_assignGear_spetsnaz_standard.sqf | 24 +++++++++---------- f/assignGear/f_assignGear_syndikat.sqf | 3 +++ f/assignGear/f_assignGear_syndikat_light.sqf | 24 +++++++++---------- .../f_assignGear_syndikat_standard.sqf | 24 +++++++++---------- f/assignGear/fn_assignGear.sqf | 2 +- 41 files changed, 359 insertions(+), 317 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index d322cd5b5..9e8b43ed7 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -166,6 +166,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_OPFOR"; +// Binoculars or rangefinder +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_3IFB_light.sqf b/f/assignGear/f_assignGear_3IFB_light.sqf index b927d7ae1..16e841610 100644 --- a/f/assignGear/f_assignGear_3IFB_light.sqf +++ b/f/assignGear/f_assignGear_3IFB_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 2]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index 05a272c01..60ee7587a 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 2]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 1602715dc..ce088adf0 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -166,6 +166,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf index 189b73799..e5a66d252 100644 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ b/f/assignGear/f_assignGear_aaf_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index 52d39f8ef..5a29092b7 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 22a69cf7a..a1fab96c7 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -167,6 +167,9 @@ _medkit = "Medikit"; _nvg = "O_NVGoggles_hex_F"; //_nvg = "O_NVGoggles_urb_F"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_02"; diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index d7260f10b..405580455 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -166,6 +166,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_ghex_F"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_02_ghex_F"; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf index 986aaf3c2..1fb46b7f0 100644 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ b/f/assignGear/f_assignGear_csatPacific_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 83e3b0eee..022ece8b6 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf index 2637fd4b8..27a13e0a9 100644 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ b/f/assignGear/f_assignGear_csat_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 82a47d062..206d11e3c 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 19814fac7..ba4b0bd31 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -166,6 +166,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator"; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf index 54601f866..6d78dc113 100644 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ b/f/assignGear/f_assignGear_ctrg_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -83,7 +83,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -103,7 +103,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -191,7 +191,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -215,7 +215,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -256,7 +256,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -297,7 +297,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -321,7 +321,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -361,7 +361,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -385,7 +385,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -411,7 +411,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -422,7 +422,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 973e3da8d..2aaa8502d 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -86,7 +86,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -106,7 +106,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -262,7 +262,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -303,7 +303,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -327,7 +327,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -367,7 +367,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -391,7 +391,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -417,7 +417,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -428,7 +428,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index c057c8ce2..f6c309313 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -166,6 +166,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf index 220871c0c..6f9256f3b 100644 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ b/f/assignGear/f_assignGear_fia_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -83,7 +83,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -103,7 +103,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -191,7 +191,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -215,7 +215,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -256,7 +256,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -297,7 +297,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -321,7 +321,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -361,7 +361,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -385,7 +385,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -411,7 +411,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -422,7 +422,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 626f6a56f..cf1aace84 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -86,7 +86,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -106,7 +106,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -262,7 +262,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -303,7 +303,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -327,7 +327,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -367,7 +367,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -391,7 +391,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -417,7 +417,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -428,7 +428,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 486224e2b..1755dec00 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -89,6 +89,9 @@ _smokegrenadegreen = "SmokeShellGreen"; _smokegrenadeblue = "SmokeShellBlue"; _smokegrenadepurple = "SmokeShellPurple"; +// Binoculars +_binoculars = "Rangefinder"; + // misc medical items. _firstaid = "FirstAidKit"; _medkit = "Medikit"; @@ -202,7 +205,7 @@ switch (_typeofUnit) do _unit addweapon _pistol; _unit addmagazines [_pistolmag, 7]; _unit addItem _firstaid; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_chemgreen,1]; _unit addmagazines [_chemred,1]; @@ -216,7 +219,7 @@ switch (_typeofUnit) do _unit addweapon _pistol; _unit addmagazines [_pistolmag, 7]; _unit addItem _firstaid; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_chemgreen,1]; _unit addmagazines [_chemred,1]; @@ -230,7 +233,7 @@ switch (_typeofUnit) do _unit addweapon _pistol; _unit addmagazines [_pistolmag, 7]; _unit addItem _firstaid; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenade, 1]; _unit addmagazines [_chemgreen,1]; _unit addmagazines [_chemred,1]; @@ -306,7 +309,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 7]; _attachments pushback (_silencer1); // Adds silencer _hg_attachments pushback (_hg_silencer1); // Adds pistol silencer - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_grenade, 2]; _unit addmagazines [_smokegrenade, 2]; _unit addmagazines [_chemgreen,1]; diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index f2ddbb595..5427b88ec 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -167,6 +167,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_ldf_light.sqf b/f/assignGear/f_assignGear_ldf_light.sqf index 97b8279c3..f47781877 100644 --- a/f/assignGear/f_assignGear_ldf_light.sqf +++ b/f/assignGear/f_assignGear_ldf_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_ldf_standard.sqf b/f/assignGear/f_assignGear_ldf_standard.sqf index e0141bf90..cad6db342 100644 --- a/f/assignGear/f_assignGear_ldf_standard.sqf +++ b/f/assignGear/f_assignGear_ldf_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index cdb09b6f2..9b4583be0 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -167,6 +167,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator"; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index 48b3623b5..c3b58800c 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -167,6 +167,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_tna_F"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_01_khk_F"; diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf index 96b19ccba..82b9f2641 100644 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ b/f/assignGear/f_assignGear_natoPacific_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index 4efb3df91..a068b7e8e 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 4163da937..7b0b5aa55 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -165,6 +165,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_01_khk_F"; diff --git a/f/assignGear/f_assignGear_natoWoodland_light.sqf b/f/assignGear/f_assignGear_natoWoodland_light.sqf index 91e322890..71e13cc08 100644 --- a/f/assignGear/f_assignGear_natoWoodland_light.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_natoWoodland_standard.sqf b/f/assignGear/f_assignGear_natoWoodland_standard.sqf index 1adb95d3d..c39f2576d 100644 --- a/f/assignGear/f_assignGear_natoWoodland_standard.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf index 29170a5bd..db2e44dc9 100644 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ b/f/assignGear/f_assignGear_nato_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 1b9d6bd7b..9ea34efb6 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index 40da865c9..5340fb070 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -184,6 +184,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_OPFOR"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_03"; diff --git a/f/assignGear/f_assignGear_npr_light.sqf b/f/assignGear/f_assignGear_npr_light.sqf index 56a7cdb2c..e1fd24ad5 100644 --- a/f/assignGear/f_assignGear_npr_light.sqf +++ b/f/assignGear/f_assignGear_npr_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -84,7 +84,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -105,7 +105,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -259,7 +259,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -300,7 +300,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -324,7 +324,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -364,7 +364,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -388,7 +388,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -414,7 +414,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -425,7 +425,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf index 52bbdbe62..366c25d52 100644 --- a/f/assignGear/f_assignGear_npr_standard.sqf +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -87,7 +87,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -108,7 +108,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -197,7 +197,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -221,7 +221,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -265,7 +265,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -306,7 +306,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -330,7 +330,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -370,7 +370,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -394,7 +394,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -420,7 +420,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -431,7 +431,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 297ab2f17..011e94e8c 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -170,6 +170,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_grn_F"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_02"; diff --git a/f/assignGear/f_assignGear_spetsnaz_light.sqf b/f/assignGear/f_assignGear_spetsnaz_light.sqf index 0a083b5c4..8c0c8e93a 100644 --- a/f/assignGear/f_assignGear_spetsnaz_light.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -83,7 +83,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -103,7 +103,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -191,7 +191,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -215,7 +215,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -256,7 +256,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -297,7 +297,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -321,7 +321,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -361,7 +361,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -385,7 +385,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -411,7 +411,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -422,7 +422,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf index 41e4a4a94..b2b2bb700 100644 --- a/f/assignGear/f_assignGear_spetsnaz_standard.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -67,7 +67,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -88,7 +88,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -109,7 +109,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -198,7 +198,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -222,7 +222,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -266,7 +266,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -307,7 +307,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -331,7 +331,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -371,7 +371,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -395,7 +395,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -421,7 +421,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -432,7 +432,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index e3b9fb071..c6f13ffa4 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -166,6 +166,9 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; +// Binoculars +_binoculars = "Rangefinder"; + // Laserdesignator _laserdesignator = "Laserdesignator_01_khk_F"; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf index 9b4d97930..e70921a56 100644 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ b/f/assignGear/f_assignGear_syndikat_light.sqf @@ -63,7 +63,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -83,7 +83,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -103,7 +103,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -191,7 +191,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -215,7 +215,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -256,7 +256,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -297,7 +297,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -321,7 +321,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -361,7 +361,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -385,7 +385,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -411,7 +411,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -422,7 +422,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index dfcbd75ad..21a749864 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -66,7 +66,7 @@ switch (_typeofUnit) do _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadegreen, 2]; }; // Squad Leader / DC Loadout: @@ -86,7 +86,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokered, 3]; _unit addmagazines [_pistolmag, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // Platoon CO Loadout: @@ -106,7 +106,7 @@ switch (_typeofUnit) do _unit addmagazines [_glsmokegreen, 2]; _unit addmagazines [_pistolmag, 4]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_smokegrenadepurple, 3]; }; // JTAC Loadout: @@ -194,7 +194,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MMGmag, 2]; _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy MG Gunner Loadout: case "hmgg": @@ -218,7 +218,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium AT Gunner Loadout: case "matg": @@ -262,7 +262,7 @@ switch (_typeofUnit) do _unit addmagazines [_grenade, 2]; _unit addmagazines [_MATmag1, 2]; _unit addmagazines [_MATmag2, 1]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy AT Gunner Loadout: case "hatg": @@ -303,7 +303,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Mortar Gunner Loadout: case "mtrg": @@ -327,7 +327,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Medium SAM Gunner Loadout: case "msamg": @@ -367,7 +367,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Heavy SAM Gunner Loadout: case "hsamg": @@ -391,7 +391,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; }; // Sniper Loadout: case "sn": @@ -417,7 +417,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; + _unit addWeapon _binoculars; _unit addmagazines [_SNrifleMag, 3]; }; // Vehicle Commander Loadout: @@ -428,7 +428,7 @@ switch (_typeofUnit) do _unit addItem _firstaid; _unit addmagazines [_smokegrenadeblue, 3]; _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; + _unit addweapon _binoculars; }; // Vehicle Gunner Loadout: case "vg": diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index b30989c5d..1d218b3e4 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -54,7 +54,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; +private ["_binoculars","_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; // ==================================================================================== From 119802e28ede00bb208e692034625256c7a3568d Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Jun 2020 13:19:45 +0100 Subject: [PATCH 201/407] Switch lowtech faction Mk30 HMGs to M2 Replaces Mk30 HMG bags for 3IFB, AAF, FIA, LDF, NPR, and Syndikat with M2 .50 bags of appropriate factions. --- f/assignGear/f_assignGear_3IFB.sqf | 4 ++-- f/assignGear/f_assignGear_aaf.sqf | 4 ++-- f/assignGear/f_assignGear_fia.sqf | 4 ++-- f/assignGear/f_assignGear_ldf.sqf | 4 ++-- f/assignGear/f_assignGear_npr.sqf | 4 ++-- f/assignGear/f_assignGear_syndikat.sqf | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 9e8b43ed7..d59122349 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -186,8 +186,8 @@ _bag = "B_FieldPack_khk"; // carries 160, weighs 20 _baglarge = "B_Carryall_khk"; // carries 320, weighs 60 _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "I_UAV_01_backpack_F"; // used by UAV operator -_baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner -_baghmgag = "B_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghmgg = "I_G_HMG_02_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_G_HMG_02_support_F"; // used by Heavy MG assistant gunner _baghatg = "B_AssaultPack_rgr"; // Used by Heavy AT Gunner _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index ce088adf0..3b5dcb3bb 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -186,8 +186,8 @@ _bag = "B_AssaultPack_dgtl"; // The standard bag for most classes _bagLarge = "B_Kitbag_rgr"; // Larger bag for some special purpose classes _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "I_UAV_01_backpack_F"; // used by UAV operator -_baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner -_baghmgag = "I_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghmgg = "I_HMG_02_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_HMG_02_support_F"; // used by Heavy MG assistant gunner _baghatg = "I_AT_01_weapon_F"; // used by Heavy AT gunner _baghatag = "I_HMG_01_support_F"; // used by Heavy AT assistant gunner _bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index f6c309313..fc89f52fd 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -188,8 +188,8 @@ _bag = "B_AssaultPack_cbr"; _bagLarge = "B_Kitbag_cbr"; _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "B_UAV_01_backpack_F"; // used by UAV operator -_baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner -_baghmgag = "B_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghmgg = "I_G_HMG_02_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_G_HMG_02_support_F"; // used by Heavy MG assistant gunner _baghatg = "B_AssaultPack_cbr"; // used by Heavy AT gunner _baghatag = "B_Kitbag_cbr"; // used by Heavy AT assistant gunner ** _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index 5427b88ec..e74ff1108 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -187,8 +187,8 @@ _bag = "B_AssaultPack_eaf_F"; // The standard bag for most classes _bagLarge = "B_Carryall_eaf_F"; // Larger bag for some special purpose classes _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "I_E_UAV_01_backpack_F"; // used by UAV operator -_baghmgg = "I_E_HMG_01_weapon_F"; // used by Heavy MG gunner -_baghmgag = "I_E_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghmgg = "I_E_HMG_02_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_E_HMG_02_support_F"; // used by Heavy MG assistant gunner _baghatg = "I_E_AT_01_weapon_F"; // used by Heavy AT gunner _baghatag = "I_E_HMG_01_support_F"; // used by Heavy AT assistant gunner _bagmtrg = "I_E_Mortar_01_weapon_F"; // used by Mortar gunner diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index 5340fb070..dcd39986a 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -206,8 +206,8 @@ _bag = "B_FieldPack_green_F"; _bagLarge = "B_Carryall_oli"; _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "O_UAV_01_backpack_F"; // used by UAV operator -_baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner -_baghmgag = "I_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghmgg = "I_G_HMG_02_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_G_HMG_02_support_F"; // used by Heavy MG assistant gunner _baghatg = "I_AssaultPack_cbr"; // used by Heavy AT gunner _baghatag = "I_Kitbag_cbr"; // used by Heavy AT assistant gunner ** _bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index c6f13ffa4..a5e7a4d5c 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -186,8 +186,8 @@ _bag = "B_AssaultPack_rgr"; // carries 160, weighs 20 _bagLarge = "B_Carryall_cbr"; // carries 320, weighs 60 _bagdiver = "B_AssaultPack_blk"; // used by divers _baguav = "I_UAV_01_backpack_F"; // used by UAV operator -_baghmgg = "B_HMG_01_weapon_F"; // used by Heavy MG gunner -_baghmgag = "B_HMG_01_support_F"; // used by Heavy MG assistant gunner +_baghmgg = "I_C_HMG_02_weapon_F"; // used by Heavy MG gunner +_baghmgag = "I_C_HMG_02_support_F"; // used by Heavy MG assistant gunner _baghatg = "B_AssaultPack_rgr"; // Used by Heavy AT Gunner _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner From 412131784f9d784f62b0765431d92d92c79801c8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Jun 2020 13:21:46 +0100 Subject: [PATCH 202/407] Increase AR drum counts for NPR NPR also uses 75rd drums for their ARs, and also had only 2 spares per AR, so I made the same change as for 3IFB. --- f/assignGear/f_assignGear_npr_light.sqf | 6 +++--- f/assignGear/f_assignGear_npr_standard.sqf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/f/assignGear/f_assignGear_npr_light.sqf b/f/assignGear/f_assignGear_npr_light.sqf index e1fd24ad5..fdfef0252 100644 --- a/f/assignGear/f_assignGear_npr_light.sqf +++ b/f/assignGear/f_assignGear_npr_light.sqf @@ -19,8 +19,8 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -48,7 +48,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag, 2]; }; // Fire Team Leader Loadout: case "ftl": diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf index 366c25d52..22ecc17ce 100644 --- a/f/assignGear/f_assignGear_npr_standard.sqf +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -19,8 +19,8 @@ switch (_typeofUnit) do _attachments pushback (_bipod1); // Adds the bipod _unit addItem _firstaid; _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; + _unit addmagazines [_ARmag, 3]; + _unit addmagazines [_ARmag_tr, 2]; _unit addmagazines [_grenade, 1]; }; // Rifleman (AT) Loadout: @@ -50,7 +50,7 @@ switch (_typeofUnit) do _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; + _unit addmagazines [_ARmag, 2]; _unit addmagazines [_RATmag1, 1]; }; // Fire Team Leader Loadout: From 88ba24a24ad1ec125d50aa1990256f9533db019e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Jun 2020 13:27:42 +0100 Subject: [PATCH 203/407] Equip Livonia faction with better ghillies Mediterranean ghillies are garbo in woodland. LDF and 3IFB get the NATO Pacific ghillie, which isn't perfect but it's better, and NPR get the camo Gorka suit since they have Spetsnaz advisors. --- f/assignGear/f_assignGear_3IFB.sqf | 2 +- f/assignGear/f_assignGear_ldf.sqf | 2 +- f/assignGear/f_assignGear_npr.sqf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index d59122349..a55e70f5a 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -302,7 +302,7 @@ _crewRig = ["V_Chestrig_blk"]; _crewGlasses = []; // Ghillie -_ghillieUniform = ["U_B_GhillieSuit"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; +_ghillieUniform = ["U_B_T_Sniper_F"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; _ghillieHelmet = []; _ghillieRig = ["V_Chestrig_rgr"]; _ghillieGlasses = []; diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index e74ff1108..b1a3969b8 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -296,7 +296,7 @@ _crewRig = ["V_TacVest_oli"]; _crewGlasses = []; // Ghillie -_ghillieUniform = ["U_I_GhillieSuit"]; //DLC alternatives: ["U_I_FullGhillie_lsh","U_I_FullGhillie_ard","U_I_FullGhillie_sard"]; +_ghillieUniform = ["U_B_T_Sniper_F"]; //DLC alternatives: ["U_I_FullGhillie_lsh","U_I_FullGhillie_ard","U_I_FullGhillie_sard"]; _ghillieHelmet = []; _ghillieRig = ["V_Chestrig_rgr"]; _ghillieGlasses = []; diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index dcd39986a..a082335de 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -326,7 +326,7 @@ _crewRig = ["V_BandollierB_cbr"]; _crewGlasses = []; // Ghillie -_ghillieUniform = ["U_B_GhillieSuit"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; +_ghillieUniform = ["U_O_R_Gorka_01_camo_F"]; //DLC alternatives: ["U_B_FullGhillie_lsh","U_B_FullGhillie_ard","U_B_FullGhillie_sard"]; _ghillieHelmet = []; _ghillieRig = ["V_Chestrig_rgr"]; _ghillieGlasses = []; From 3d06837a755337a56f57aefd2923e7d558ab0b17 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 13 Jun 2020 22:48:30 +0100 Subject: [PATCH 204/407] Comment styling fixes it is what it is --- f/assignGear/f_assignGear_3IFB.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index a55e70f5a..abbf76307 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -166,7 +166,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_OPFOR"; -// Binoculars or rangefinder +// Binoculars _binoculars = "Rangefinder"; // Laserdesignator @@ -338,7 +338,7 @@ if (_isMan) then { // ADD UNIVERSAL ITEMS // Add items universal to all units of this faction -// _unit linkItem _nvg; // Add and equip the faction's nvg + // _unit linkItem _nvg; // Add and equip the faction's nvg _unit addItem _firstaid; // Add a single first aid kit (FAK) _unit linkItem "ItemMap"; // Add and equip the map _unit linkItem "ItemCompass"; // Add and equip a compass From 3edd58bdf74c7d2886402b49928771c7fae93311 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 19 Jun 2020 17:50:54 +0100 Subject: [PATCH 205/407] Change default AI skill setting to Medium --- description.ext | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/description.ext b/description.ext index 8b380b594..c17e27dc1 100644 --- a/description.ext +++ b/description.ext @@ -220,7 +220,7 @@ class Params title = "$STR_f_param_AISkill_BLUFOR"; values[] = {0,1,2,3}; texts[] = {$STR_f_param_AISkill_Option0,$STR_f_param_AISkill_Option1,$STR_f_param_AISkill_Option2,$STR_f_param_AISkill_Option3}; - default = 1; + default = 2; }; class f_param_AISkill_OPFOR @@ -228,7 +228,7 @@ class Params title = "$STR_f_param_AISkill_OPFOR"; values[] = {0,1,2,3}; texts[] = {$STR_f_param_AISkill_Option0,$STR_f_param_AISkill_Option1,$STR_f_param_AISkill_Option2,$STR_f_param_AISkill_Option3}; - default = 1; + default = 2; }; class f_param_AISkill_INDP @@ -236,7 +236,7 @@ class Params title = "$STR_f_param_AISkill_INDP"; values[] = {0,1,2,3}; texts[] = {$STR_f_param_AISkill_Option0,$STR_f_param_AISkill_Option1,$STR_f_param_AISkill_Option2,$STR_f_param_AISkill_Option3}; - default = 1; + default = 2; }; // ============================================================================================ From 13d44762ce227e15c4630f42365db9a4cccbc2b0 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 19 Jun 2020 17:54:38 +0100 Subject: [PATCH 206/407] Reduce base accuracy values This compensates for LAMBS Danger improved aggression and fire rate by reducing accuracy and aim speed. --- f/setAISkill/f_setAISkill.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/f/setAISkill/f_setAISkill.sqf b/f/setAISkill/f_setAISkill.sqf index 02ea3478e..b22d823e5 100644 --- a/f/setAISkill/f_setAISkill.sqf +++ b/f/setAISkill/f_setAISkill.sqf @@ -50,10 +50,10 @@ private _skillLevels = [ // then this means that this particular skill will always be 1 // for all possible skillLevels that were set via parameter. f_var_skillSet = [ - 0.55, // aimingAccuracy - 0.6, // aimingShake - 0.6, // aimingSpeed - 0.7, // spotDistance + 0.45, // aimingAccuracy + 0.5, // aimingShake + 0.5, // aimingSpeed + 0.65, // spotDistance 0.7, // spotTime 1.2, // courage 2, // reloadSpeed From 18d2adef2c3da07ffbbfe56dd018271afc00b623 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 21 Jun 2020 13:17:24 +0100 Subject: [PATCH 207/407] Switch CSAT Marid group command to gunner --- mission.sqm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mission.sqm b/mission.sqm index f801eda00..e2fa10ea0 100644 --- a/mission.sqm +++ b/mission.sqm @@ -22171,7 +22171,7 @@ class Mission position[]={2381.1589,5.0014391,1301.369}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -22193,7 +22193,7 @@ class Mission position[]={2381.1589,5.0014391,1301.369}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; @@ -23033,7 +23033,7 @@ class Mission position[]={2423.8579,5.0014391,1301.144}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -23055,7 +23055,7 @@ class Mission position[]={2423.8579,5.0014391,1301.144}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; @@ -23933,7 +23933,7 @@ class Mission position[]={2475.9971,5.0014391,1300.3561}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -23978,7 +23978,7 @@ class Mission position[]={2475.9971,5.0014391,1300.3561}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; @@ -24856,7 +24856,7 @@ class Mission position[]={2529.116,5.0014391,1300.166}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -24878,7 +24878,7 @@ class Mission position[]={2529.116,5.0014391,1300.166}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; From 33e854b34e966d5717bf88595bcf3e33498dd721 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 26 Jun 2020 21:45:32 +0100 Subject: [PATCH 208/407] Define AA marker and convert existing AA elements --- f/groupMarkers/fn_groupData.sqf | 49 +++++++++++++++++---------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf index d94f643c7..02e7b7991 100644 --- a/f/groupMarkers/fn_groupData.sqf +++ b/f/groupMarkers/fn_groupData.sqf @@ -16,6 +16,7 @@ private _rec = "b_recon"; // Recon (ST) private _hel = "b_air"; // Helicopters private _pla = "b_plane"; // Planes private _art = "b_art"; // Artillery +private _aa = "b_antiair"; // AA // Specialists private _med = "b_med"; // Medic @@ -62,8 +63,8 @@ f_var_groupData_blufor_nato = [ ["GrpNATO_MAT2", _lau, "MAT2", "ColorOrange", "NATO MAT2 -"], ["GrpNATO_HAT1", _lau, "HAT1", "ColorOrange", "NATO HAT1 -"], ["GrpNATO_MTR1", _mor, "MTR1", "ColorOrange", "NATO MTR1 -"], - ["GrpNATO_MSAM1", _lau, "MSAM1", "ColorOrange", "NATO MSAM1 -"], - ["GrpNATO_HSAM1", _lau, "HSAM1", "ColorOrange", "NATO HSAM1 -"], + ["GrpNATO_MSAM1", _aa, "MSAM1", "ColorOrange", "NATO MSAM1 -"], + ["GrpNATO_HSAM1", _aa, "HSAM1", "ColorOrange", "NATO HSAM1 -"], ["GrpNATO_ST1", _rec, "ST1", "ColorOrange", "NATO ST1 -"], ["GrpNATO_DT1", _rec, "DT1", "ColorOrange", "NATO DT1 -"], ["GrpNATO_ENG1", _eng, "ENG1", "ColorOrange", "NATO ENG1 -"], @@ -124,8 +125,8 @@ f_var_groupData_blufor_fia = [ ["GrpFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA MAT2 -"], ["GrpFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA HAT1 -"], ["GrpFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA MTR1 -"], - ["GrpFIA_MSAM1", _lau, "MSAM1", "ColorOrange", "FIA MSAM1 -"], - ["GrpFIA_HSAM1", _lau, "HSAM1", "ColorOrange", "FIA HSAM1 -"], + ["GrpFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA MSAM1 -"], + ["GrpFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA HSAM1 -"], ["GrpFIA_ST1", _rec, "ST1", "ColorOrange", "FIA ST1 -"], ["GrpFIA_DT1", _rec, "DT1", "ColorOrange", "FIA DT1 -"], ["GrpFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA ENG1 -"], @@ -197,8 +198,8 @@ f_var_groupData_blufor_ctrg = [ ["GrpCTRG_MAT2", _lau, "MAT2", "ColorOrange", "CTRG MAT2 -"], ["GrpCTRG_HAT1", _lau, "HAT1", "ColorOrange", "CTRG HAT1 -"], ["GrpCTRG_MTR1", _mor, "MTR1", "ColorOrange", "CTRG MTR1 -"], - ["GrpCTRG_MSAM1", _lau, "MSAM1", "ColorOrange", "CTRG MSAM1 -"], - ["GrpCTRG_HSAM1", _lau, "HSAM1", "ColorOrange", "CTRG HSAM1 -"], + ["GrpCTRG_MSAM1", _aa, "MSAM1", "ColorOrange", "CTRG MSAM1 -"], + ["GrpCTRG_HSAM1", _aa, "HSAM1", "ColorOrange", "CTRG HSAM1 -"], ["GrpCTRG_ST1", _rec, "ST1", "ColorOrange", "CTRG ST1 -"], ["GrpCTRG_DT1", _rec, "DT1", "ColorOrange", "CTRG DT1 -"], ["GrpCTRG_ENG1", _eng, "ENG1", "ColorOrange", "CTRG ENG1 -"], @@ -259,8 +260,8 @@ f_var_groupData_opfor_csat = [ ["GrpCSAT_MAT2", _lau, "MAT2", "ColorOrange", "CSAT MAT2 -"], ["GrpCSAT_HAT1", _lau, "HAT1", "ColorOrange", "CSAT HAT1 -"], ["GrpCSAT_MTR1", _mor, "MTR1", "ColorOrange", "CSAT MTR1 -"], - ["GrpCSAT_MSAM1", _lau, "MSAM1", "ColorOrange", "CSAT MSAM1 -"], - ["GrpCSAT_HSAM1", _lau, "HSAM1", "ColorOrange", "CSAT HSAM1 -"], + ["GrpCSAT_MSAM1", _aa, "MSAM1", "ColorOrange", "CSAT MSAM1 -"], + ["GrpCSAT_HSAM1", _aa, "HSAM1", "ColorOrange", "CSAT HSAM1 -"], ["GrpCSAT_ST1", _rec, "ST1", "ColorOrange", "CSAT ST1 -"], ["GrpCSAT_DT1", _rec, "DT1", "ColorOrange", "CSAT DT1 -"], ["GrpCSAT_ENG1", _eng, "ENG1", "ColorOrange", "CSAT ENG1 -"], @@ -321,8 +322,8 @@ f_var_groupData_opfor_fia = [ ["GrpOFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA O MAT2 -"], ["GrpOFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA O HAT1 -"], ["GrpOFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA O MTR1 -"], - ["GrpOFIA_MSAM1", _lau, "MSAM1", "ColorOrange", "FIA O MSAM1 -"], - ["GrpOFIA_HSAM1", _lau, "HSAM1", "ColorOrange", "FIA O HSAM1 -"], + ["GrpOFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA O MSAM1 -"], + ["GrpOFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA O HSAM1 -"], ["GrpOFIA_ST1", _rec, "ST1", "ColorOrange", "FIA O ST1 -"], ["GrpOFIA_DT1", _rec, "DT1", "ColorOrange", "FIA O DT1 -"], ["GrpOFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA O ENG1 -"], @@ -383,8 +384,8 @@ f_var_groupData_opfor_spetsnaz = [ ["GrpSpetsnaz_MAT2", _lau, "MAT2", "ColorOrange", "Spetsnaz MAT2 -"], ["GrpSpetsnaz_HAT1", _lau, "HAT1", "ColorOrange", "Spetsnaz HAT1 -"], ["GrpSpetsnaz_MTR1", _mor, "MTR1", "ColorOrange", "Spetsnaz MTR1 -"], - ["GrpSpetsnaz_MSAM1", _lau, "MSAM1", "ColorOrange", "Spetsnaz MSAM1 -"], - ["GrpSpetsnaz_HSAM1", _lau, "HSAM1", "ColorOrange", "Spetsnaz HSAM1 -"], + ["GrpSpetsnaz_MSAM1", _aa, "MSAM1", "ColorOrange", "Spetsnaz MSAM1 -"], + ["GrpSpetsnaz_HSAM1", _aa, "HSAM1", "ColorOrange", "Spetsnaz HSAM1 -"], ["GrpSpetsnaz_ST1", _rec, "ST1", "ColorOrange", "Spetsnaz ST1 -"], ["GrpSpetsnaz_DT1", _rec, "DT1", "ColorOrange", "Spetsnaz DT1 -"], ["GrpSpetsnaz_ENG1", _eng, "ENG1", "ColorOrange", "Spetsnaz ENG1 -"], @@ -445,8 +446,8 @@ f_var_groupData_indfor_aaf = [ ["GrpAAF_MAT2", _lau, "MAT2", "ColorOrange", "AAF MAT2 -"], ["GrpAAF_HAT1", _lau, "HAT1", "ColorOrange", "AAF HAT1 -"], ["GrpAAF_MTR1", _mor, "MTR1", "ColorOrange", "AAF MTR1 -"], - ["GrpAAF_MSAM1", _lau, "MSAM1", "ColorOrange", "AAF MSAM1 -"], - ["GrpAAF_HSAM1", _lau, "HSAM1", "ColorOrange", "AAF HSAM1 -"], + ["GrpAAF_MSAM1", _aa, "MSAM1", "ColorOrange", "AAF MSAM1 -"], + ["GrpAAF_HSAM1", _aa, "HSAM1", "ColorOrange", "AAF HSAM1 -"], ["GrpAAF_ST1", _rec, "ST1", "ColorOrange", "AAF ST1 -"], ["GrpAAF_DT1", _rec, "DT1", "ColorOrange", "AAF DT1 -"], ["GrpAAF_ENG1", _eng, "ENG1", "ColorOrange", "AAF ENG1 -"], @@ -503,8 +504,8 @@ f_var_groupData_indfor_fia = [ ["GrpIFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA I MAT2 -"], ["GrpIFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA I HAT1 -"], ["GrpIFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA I MTR1 -"], - ["GrpIFIA_MSAM1", _lau, "MSAM1", "ColorOrange", "FIA I MSAM1 -"], - ["GrpIFIA_HSAM1", _lau, "HSAM1", "ColorOrange", "FIA I HSAM1 -"], + ["GrpIFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA I MSAM1 -"], + ["GrpIFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA I HSAM1 -"], ["GrpIFIA_ST1", _rec, "ST1", "ColorOrange", "FIA I ST1 -"], ["GrpIFIA_DT1", _rec, "DT1", "ColorOrange", "FIA I DT1 -"], ["GrpIFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA I ENG1 -"], @@ -565,8 +566,8 @@ f_var_groupData_indfor_syn = [ ["GrpSyn_MAT2", _lau, "MAT2", "ColorOrange", "Syndikat MAT2 -"], ["GrpSyn_HAT1", _lau, "HAT1", "ColorOrange", "Syndikat HAT1 -"], ["GrpSyn_MTR1", _mor, "MTR1", "ColorOrange", "Syndikat MTR1 -"], - ["GrpSyn_MSAM1", _lau, "MSAM1", "ColorOrange", "Syndikat MSAM1 -"], - ["GrpSyn_HSAM1", _lau, "HSAM1", "ColorOrange", "Syndikat HSAM1 -"], + ["GrpSyn_MSAM1", _aa, "MSAM1", "ColorOrange", "Syndikat MSAM1 -"], + ["GrpSyn_HSAM1", _aa, "HSAM1", "ColorOrange", "Syndikat HSAM1 -"], ["GrpSyn_ST1", _rec, "ST1", "ColorOrange", "Syndikat ST1 -"], ["GrpSyn_DT1", _rec, "DT1", "ColorOrange", "Syndikat DT1 -"], ["GrpSyn_ENG1", _eng, "ENG1", "ColorOrange", "Syndikat ENG1 -"], @@ -627,8 +628,8 @@ f_var_groupData_indfor_3ifb = [ ["Grp3IFB_MAT2", _lau, "MAT2", "ColorOrange", "3IFB MAT2 -"], ["Grp3IFB_HAT1", _lau, "HAT1", "ColorOrange", "3IFB HAT1 -"], ["Grp3IFB_MTR1", _mor, "MTR1", "ColorOrange", "3IFB MTR1 -"], - ["Grp3IFB_MSAM1", _lau, "MSAM1", "ColorOrange", "3IFB MSAM1 -"], - ["Grp3IFB_HSAM1", _lau, "HSAM1", "ColorOrange", "3IFB HSAM1 -"], + ["Grp3IFB_MSAM1", _aa, "MSAM1", "ColorOrange", "3IFB MSAM1 -"], + ["Grp3IFB_HSAM1", _aa, "HSAM1", "ColorOrange", "3IFB HSAM1 -"], ["Grp3IFB_ST1", _rec, "ST1", "ColorOrange", "3IFB ST1 -"], ["Grp3IFB_DT1", _rec, "DT1", "ColorOrange", "3IFB DT1 -"], ["Grp3IFB_ENG1", _eng, "ENG1", "ColorOrange", "3IFB ENG1 -"], @@ -689,8 +690,8 @@ f_var_groupData_indfor_LDF = [ ["GrpLDF_MAT2", _lau, "MAT2", "ColorOrange", "LDF MAT2 -"], ["GrpLDF_HAT1", _lau, "HAT1", "ColorOrange", "LDF HAT1 -"], ["GrpLDF_MTR1", _mor, "MTR1", "ColorOrange", "LDF MTR1 -"], - ["GrpLDF_MSAM1", _lau, "MSAM1", "ColorOrange", "LDF MSAM1 -"], - ["GrpLDF_HSAM1", _lau, "HSAM1", "ColorOrange", "LDF HSAM1 -"], + ["GrpLDF_MSAM1", _aa, "MSAM1", "ColorOrange", "LDF MSAM1 -"], + ["GrpLDF_HSAM1", _aa, "HSAM1", "ColorOrange", "LDF HSAM1 -"], ["GrpLDF_ST1", _rec, "ST1", "ColorOrange", "LDF ST1 -"], ["GrpLDF_DT1", _rec, "DT1", "ColorOrange", "LDF DT1 -"], ["GrpLDF_ENG1", _eng, "ENG1", "ColorOrange", "LDF ENG1 -"], @@ -751,8 +752,8 @@ f_var_groupData_opfor_npr = [ ["GrpNPR_MAT2", _lau, "MAT2", "ColorOrange", "NPR MAT2 -"], ["GrpNPR_HAT1", _lau, "HAT1", "ColorOrange", "NPR HAT1 -"], ["GrpNPR_MTR1", _mor, "MTR1", "ColorOrange", "NPR MTR1 -"], - ["GrpNPR_MSAM1", _lau, "MSAM1", "ColorOrange", "NPR MSAM1 -"], - ["GrpNPR_HSAM1", _lau, "HSAM1", "ColorOrange", "NPR HSAM1 -"], + ["GrpNPR_MSAM1", _aa, "MSAM1", "ColorOrange", "NPR MSAM1 -"], + ["GrpNPR_HSAM1", _aa, "HSAM1", "ColorOrange", "NPR HSAM1 -"], ["GrpNPR_ST1", _rec, "ST1", "ColorOrange", "NPR ST1 -"], ["GrpNPR_DT1", _rec, "DT1", "ColorOrange", "NPR DT1 -"], ["GrpNPR_ENG1", _eng, "ENG1", "ColorOrange", "NPR ENG1 -"], From 94537a2834368bcd944589626ed9beabe6ba1898 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Jun 2020 17:06:21 +0100 Subject: [PATCH 209/407] Change alignment of AA marker --- f/groupMarkers/fn_groupData.sqf | 50 ++++++++++++++++----------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/f/groupMarkers/fn_groupData.sqf b/f/groupMarkers/fn_groupData.sqf index 02e7b7991..9cc7b5e70 100644 --- a/f/groupMarkers/fn_groupData.sqf +++ b/f/groupMarkers/fn_groupData.sqf @@ -16,7 +16,7 @@ private _rec = "b_recon"; // Recon (ST) private _hel = "b_air"; // Helicopters private _pla = "b_plane"; // Planes private _art = "b_art"; // Artillery -private _aa = "b_antiair"; // AA +private _aa = "b_antiair"; // AA // Specialists private _med = "b_med"; // Medic @@ -63,8 +63,8 @@ f_var_groupData_blufor_nato = [ ["GrpNATO_MAT2", _lau, "MAT2", "ColorOrange", "NATO MAT2 -"], ["GrpNATO_HAT1", _lau, "HAT1", "ColorOrange", "NATO HAT1 -"], ["GrpNATO_MTR1", _mor, "MTR1", "ColorOrange", "NATO MTR1 -"], - ["GrpNATO_MSAM1", _aa, "MSAM1", "ColorOrange", "NATO MSAM1 -"], - ["GrpNATO_HSAM1", _aa, "HSAM1", "ColorOrange", "NATO HSAM1 -"], + ["GrpNATO_MSAM1", _aa, "MSAM1", "ColorOrange", "NATO MSAM1 -"], + ["GrpNATO_HSAM1", _aa, "HSAM1", "ColorOrange", "NATO HSAM1 -"], ["GrpNATO_ST1", _rec, "ST1", "ColorOrange", "NATO ST1 -"], ["GrpNATO_DT1", _rec, "DT1", "ColorOrange", "NATO DT1 -"], ["GrpNATO_ENG1", _eng, "ENG1", "ColorOrange", "NATO ENG1 -"], @@ -125,8 +125,8 @@ f_var_groupData_blufor_fia = [ ["GrpFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA MAT2 -"], ["GrpFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA HAT1 -"], ["GrpFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA MTR1 -"], - ["GrpFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA MSAM1 -"], - ["GrpFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA HSAM1 -"], + ["GrpFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA MSAM1 -"], + ["GrpFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA HSAM1 -"], ["GrpFIA_ST1", _rec, "ST1", "ColorOrange", "FIA ST1 -"], ["GrpFIA_DT1", _rec, "DT1", "ColorOrange", "FIA DT1 -"], ["GrpFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA ENG1 -"], @@ -198,8 +198,8 @@ f_var_groupData_blufor_ctrg = [ ["GrpCTRG_MAT2", _lau, "MAT2", "ColorOrange", "CTRG MAT2 -"], ["GrpCTRG_HAT1", _lau, "HAT1", "ColorOrange", "CTRG HAT1 -"], ["GrpCTRG_MTR1", _mor, "MTR1", "ColorOrange", "CTRG MTR1 -"], - ["GrpCTRG_MSAM1", _aa, "MSAM1", "ColorOrange", "CTRG MSAM1 -"], - ["GrpCTRG_HSAM1", _aa, "HSAM1", "ColorOrange", "CTRG HSAM1 -"], + ["GrpCTRG_MSAM1", _aa, "MSAM1", "ColorOrange", "CTRG MSAM1 -"], + ["GrpCTRG_HSAM1", _aa, "HSAM1", "ColorOrange", "CTRG HSAM1 -"], ["GrpCTRG_ST1", _rec, "ST1", "ColorOrange", "CTRG ST1 -"], ["GrpCTRG_DT1", _rec, "DT1", "ColorOrange", "CTRG DT1 -"], ["GrpCTRG_ENG1", _eng, "ENG1", "ColorOrange", "CTRG ENG1 -"], @@ -260,8 +260,8 @@ f_var_groupData_opfor_csat = [ ["GrpCSAT_MAT2", _lau, "MAT2", "ColorOrange", "CSAT MAT2 -"], ["GrpCSAT_HAT1", _lau, "HAT1", "ColorOrange", "CSAT HAT1 -"], ["GrpCSAT_MTR1", _mor, "MTR1", "ColorOrange", "CSAT MTR1 -"], - ["GrpCSAT_MSAM1", _aa, "MSAM1", "ColorOrange", "CSAT MSAM1 -"], - ["GrpCSAT_HSAM1", _aa, "HSAM1", "ColorOrange", "CSAT HSAM1 -"], + ["GrpCSAT_MSAM1", _aa, "MSAM1", "ColorOrange", "CSAT MSAM1 -"], + ["GrpCSAT_HSAM1", _aa, "HSAM1", "ColorOrange", "CSAT HSAM1 -"], ["GrpCSAT_ST1", _rec, "ST1", "ColorOrange", "CSAT ST1 -"], ["GrpCSAT_DT1", _rec, "DT1", "ColorOrange", "CSAT DT1 -"], ["GrpCSAT_ENG1", _eng, "ENG1", "ColorOrange", "CSAT ENG1 -"], @@ -322,8 +322,8 @@ f_var_groupData_opfor_fia = [ ["GrpOFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA O MAT2 -"], ["GrpOFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA O HAT1 -"], ["GrpOFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA O MTR1 -"], - ["GrpOFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA O MSAM1 -"], - ["GrpOFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA O HSAM1 -"], + ["GrpOFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA O MSAM1 -"], + ["GrpOFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA O HSAM1 -"], ["GrpOFIA_ST1", _rec, "ST1", "ColorOrange", "FIA O ST1 -"], ["GrpOFIA_DT1", _rec, "DT1", "ColorOrange", "FIA O DT1 -"], ["GrpOFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA O ENG1 -"], @@ -384,8 +384,8 @@ f_var_groupData_opfor_spetsnaz = [ ["GrpSpetsnaz_MAT2", _lau, "MAT2", "ColorOrange", "Spetsnaz MAT2 -"], ["GrpSpetsnaz_HAT1", _lau, "HAT1", "ColorOrange", "Spetsnaz HAT1 -"], ["GrpSpetsnaz_MTR1", _mor, "MTR1", "ColorOrange", "Spetsnaz MTR1 -"], - ["GrpSpetsnaz_MSAM1", _aa, "MSAM1", "ColorOrange", "Spetsnaz MSAM1 -"], - ["GrpSpetsnaz_HSAM1", _aa, "HSAM1", "ColorOrange", "Spetsnaz HSAM1 -"], + ["GrpSpetsnaz_MSAM1", _aa, "MSAM1", "ColorOrange", "Spetsnaz MSAM1 -"], + ["GrpSpetsnaz_HSAM1", _aa, "HSAM1", "ColorOrange", "Spetsnaz HSAM1 -"], ["GrpSpetsnaz_ST1", _rec, "ST1", "ColorOrange", "Spetsnaz ST1 -"], ["GrpSpetsnaz_DT1", _rec, "DT1", "ColorOrange", "Spetsnaz DT1 -"], ["GrpSpetsnaz_ENG1", _eng, "ENG1", "ColorOrange", "Spetsnaz ENG1 -"], @@ -446,8 +446,8 @@ f_var_groupData_indfor_aaf = [ ["GrpAAF_MAT2", _lau, "MAT2", "ColorOrange", "AAF MAT2 -"], ["GrpAAF_HAT1", _lau, "HAT1", "ColorOrange", "AAF HAT1 -"], ["GrpAAF_MTR1", _mor, "MTR1", "ColorOrange", "AAF MTR1 -"], - ["GrpAAF_MSAM1", _aa, "MSAM1", "ColorOrange", "AAF MSAM1 -"], - ["GrpAAF_HSAM1", _aa, "HSAM1", "ColorOrange", "AAF HSAM1 -"], + ["GrpAAF_MSAM1", _aa, "MSAM1", "ColorOrange", "AAF MSAM1 -"], + ["GrpAAF_HSAM1", _aa, "HSAM1", "ColorOrange", "AAF HSAM1 -"], ["GrpAAF_ST1", _rec, "ST1", "ColorOrange", "AAF ST1 -"], ["GrpAAF_DT1", _rec, "DT1", "ColorOrange", "AAF DT1 -"], ["GrpAAF_ENG1", _eng, "ENG1", "ColorOrange", "AAF ENG1 -"], @@ -504,8 +504,8 @@ f_var_groupData_indfor_fia = [ ["GrpIFIA_MAT2", _lau, "MAT2", "ColorOrange", "FIA I MAT2 -"], ["GrpIFIA_HAT1", _lau, "HAT1", "ColorOrange", "FIA I HAT1 -"], ["GrpIFIA_MTR1", _mor, "MTR1", "ColorOrange", "FIA I MTR1 -"], - ["GrpIFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA I MSAM1 -"], - ["GrpIFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA I HSAM1 -"], + ["GrpIFIA_MSAM1", _aa, "MSAM1", "ColorOrange", "FIA I MSAM1 -"], + ["GrpIFIA_HSAM1", _aa, "HSAM1", "ColorOrange", "FIA I HSAM1 -"], ["GrpIFIA_ST1", _rec, "ST1", "ColorOrange", "FIA I ST1 -"], ["GrpIFIA_DT1", _rec, "DT1", "ColorOrange", "FIA I DT1 -"], ["GrpIFIA_ENG1", _eng, "ENG1", "ColorOrange", "FIA I ENG1 -"], @@ -566,8 +566,8 @@ f_var_groupData_indfor_syn = [ ["GrpSyn_MAT2", _lau, "MAT2", "ColorOrange", "Syndikat MAT2 -"], ["GrpSyn_HAT1", _lau, "HAT1", "ColorOrange", "Syndikat HAT1 -"], ["GrpSyn_MTR1", _mor, "MTR1", "ColorOrange", "Syndikat MTR1 -"], - ["GrpSyn_MSAM1", _aa, "MSAM1", "ColorOrange", "Syndikat MSAM1 -"], - ["GrpSyn_HSAM1", _aa, "HSAM1", "ColorOrange", "Syndikat HSAM1 -"], + ["GrpSyn_MSAM1", _aa, "MSAM1", "ColorOrange", "Syndikat MSAM1 -"], + ["GrpSyn_HSAM1", _aa, "HSAM1", "ColorOrange", "Syndikat HSAM1 -"], ["GrpSyn_ST1", _rec, "ST1", "ColorOrange", "Syndikat ST1 -"], ["GrpSyn_DT1", _rec, "DT1", "ColorOrange", "Syndikat DT1 -"], ["GrpSyn_ENG1", _eng, "ENG1", "ColorOrange", "Syndikat ENG1 -"], @@ -628,8 +628,8 @@ f_var_groupData_indfor_3ifb = [ ["Grp3IFB_MAT2", _lau, "MAT2", "ColorOrange", "3IFB MAT2 -"], ["Grp3IFB_HAT1", _lau, "HAT1", "ColorOrange", "3IFB HAT1 -"], ["Grp3IFB_MTR1", _mor, "MTR1", "ColorOrange", "3IFB MTR1 -"], - ["Grp3IFB_MSAM1", _aa, "MSAM1", "ColorOrange", "3IFB MSAM1 -"], - ["Grp3IFB_HSAM1", _aa, "HSAM1", "ColorOrange", "3IFB HSAM1 -"], + ["Grp3IFB_MSAM1", _aa, "MSAM1", "ColorOrange", "3IFB MSAM1 -"], + ["Grp3IFB_HSAM1", _aa, "HSAM1", "ColorOrange", "3IFB HSAM1 -"], ["Grp3IFB_ST1", _rec, "ST1", "ColorOrange", "3IFB ST1 -"], ["Grp3IFB_DT1", _rec, "DT1", "ColorOrange", "3IFB DT1 -"], ["Grp3IFB_ENG1", _eng, "ENG1", "ColorOrange", "3IFB ENG1 -"], @@ -690,8 +690,8 @@ f_var_groupData_indfor_LDF = [ ["GrpLDF_MAT2", _lau, "MAT2", "ColorOrange", "LDF MAT2 -"], ["GrpLDF_HAT1", _lau, "HAT1", "ColorOrange", "LDF HAT1 -"], ["GrpLDF_MTR1", _mor, "MTR1", "ColorOrange", "LDF MTR1 -"], - ["GrpLDF_MSAM1", _aa, "MSAM1", "ColorOrange", "LDF MSAM1 -"], - ["GrpLDF_HSAM1", _aa, "HSAM1", "ColorOrange", "LDF HSAM1 -"], + ["GrpLDF_MSAM1", _aa, "MSAM1", "ColorOrange", "LDF MSAM1 -"], + ["GrpLDF_HSAM1", _aa, "HSAM1", "ColorOrange", "LDF HSAM1 -"], ["GrpLDF_ST1", _rec, "ST1", "ColorOrange", "LDF ST1 -"], ["GrpLDF_DT1", _rec, "DT1", "ColorOrange", "LDF DT1 -"], ["GrpLDF_ENG1", _eng, "ENG1", "ColorOrange", "LDF ENG1 -"], @@ -752,8 +752,8 @@ f_var_groupData_opfor_npr = [ ["GrpNPR_MAT2", _lau, "MAT2", "ColorOrange", "NPR MAT2 -"], ["GrpNPR_HAT1", _lau, "HAT1", "ColorOrange", "NPR HAT1 -"], ["GrpNPR_MTR1", _mor, "MTR1", "ColorOrange", "NPR MTR1 -"], - ["GrpNPR_MSAM1", _aa, "MSAM1", "ColorOrange", "NPR MSAM1 -"], - ["GrpNPR_HSAM1", _aa, "HSAM1", "ColorOrange", "NPR HSAM1 -"], + ["GrpNPR_MSAM1", _aa, "MSAM1", "ColorOrange", "NPR MSAM1 -"], + ["GrpNPR_HSAM1", _aa, "HSAM1", "ColorOrange", "NPR HSAM1 -"], ["GrpNPR_ST1", _rec, "ST1", "ColorOrange", "NPR ST1 -"], ["GrpNPR_DT1", _rec, "DT1", "ColorOrange", "NPR DT1 -"], ["GrpNPR_ENG1", _eng, "ENG1", "ColorOrange", "NPR ENG1 -"], From 6948472997d1df264ecbc4c9d81b030cb6f8f4a0 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Jun 2020 17:24:07 +0100 Subject: [PATCH 210/407] Change CSAT Med vests to tacvests --- f/assignGear/f_assignGear_csat.sqf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 22a69cf7a..89aed179b 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -279,12 +279,14 @@ _baseGlasses = []; //_baseHelmet = ["H_HelmetO_oucamo"]; // Vests -_lightRig = ["V_HarnessO_brn"]; -_standardRig = ["V_HarnessO_brn"]; +_lightRig = ["V_TacVest_khk"]; +_standardRig = ["V_TacVest_khk"]; +// Consider changing to "V_HarnessO_brn" if using this with assignGear AI. // Urban Vests -// _lightRig = ["V_HarnessO_gry"]; -// _standardRig = ["V_HarnessO_gry"]; +// _lightRig = ["V_TacVest_blk"]; +// _standardRig = ["V_TacVest_blk"]; +// Consider changing to "V_HarnessO_gry" if using this with assignGear AI. // Diver _diverUniform = ["U_O_Wetsuit"]; From b6533abd4d29e904ce887a3994d2e9f95e9ed307 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Jun 2020 17:26:02 +0100 Subject: [PATCH 211/407] Change CSAT Pac vests to tacvests I also copied the rest of the Urban alternative loadout from the Med file, since it was already partially present here. --- f/assignGear/f_assignGear_csatPacific.sqf | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index d7260f10b..595a3df08 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -279,8 +279,14 @@ _baseGlasses = []; //_baseHelmet = ["H_HelmetO_oucamo"]; // Vests -_lightRig = ["V_HarnessO_ghex_F"]; -_standardRig = ["V_HarnessO_ghex_F"]; +_lightRig = ["V_TacVest_oli"]; +_standardRig = ["V_TacVest_oli"]; +// Consider changing to "V_HarnessO_ghex_F" if using this with assignGear AI. + +// Urban Vests +// _lightRig = ["V_TacVest_blk"]; +// _standardRig = ["V_TacVest_blk"]; +// Consider changing to "V_HarnessO_gry" if using this with assignGear AI. // Diver _diverUniform = ["U_O_Wetsuit"]; From d12797df3a577ec74e60b9d4a15e2715e46a6454 Mon Sep 17 00:00:00 2001 From: darkChozo Date: Mon, 18 Nov 2019 17:43:31 -0500 Subject: [PATCH 212/407] Add Mission Condition Notes Adds a briefing page summarizing mission conditions. Also fixes a bug with setTime. (was erroring on evening) --- description.ext | 2 - f/missionConditions/f_conditionNotes.sqf | 78 +++++++++++++++++++ .../f_setMissionConditions.sqf | 57 +++++++++----- f/missionConditions/fn_SetFog.sqf | 5 +- f/missionConditions/fn_SetTime.sqf | 21 ++--- f/missionConditions/fn_SetWeather.sqf | 3 + f/missionConditions/fn_SetWind.sqf | 3 + 7 files changed, 138 insertions(+), 31 deletions(-) create mode 100644 f/missionConditions/f_conditionNotes.sqf diff --git a/description.ext b/description.ext index 8b380b594..04bfd182c 100644 --- a/description.ext +++ b/description.ext @@ -206,8 +206,6 @@ class Params values[] = {0,1,2,3,4,5,6,7,8}; texts[] = {$STR_f_param_timeOfDay_Option0,$STR_f_param_timeOfDay_Option1,$STR_f_param_timeOfDay_Option2,$STR_f_param_timeOfDay_Option3,$STR_f_param_timeOfDay_Option4,$STR_f_param_timeOfDay_Option5,$STR_f_param_timeOfDay_Option6,$STR_f_param_timeOfDay_Option7,$STR_f_param_timeOfDay_Option8}; default = 8; - function = "f_fnc_setTime"; // This function is called to apply the values - isGlobal = 0; // Execute this only on the server }; // ============================================================================================ diff --git a/f/missionConditions/f_conditionNotes.sqf b/f/missionConditions/f_conditionNotes.sqf new file mode 100644 index 000000000..e012c13c5 --- /dev/null +++ b/f/missionConditions/f_conditionNotes.sqf @@ -0,0 +1,78 @@ +// F3 - Mission Condition briefing notes +// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// ==================================================================================== + +if (!hasInterface) exitWith {}; //Exit if not a player. + +// Wait until server publishes the mission conditions +waitUntil { !isNil {f_var_conditions_params} }; + +f_var_conditions_params params ["_date","_overcast","_rain","_lightnings","_waves","_wind","_fogParams"]; + +_diaryText = ""; + +// Start time & date +_diaryText = _diaryText + format ["Mission start time: %1:%2
", + (if (_date#3 >=10) then {""} else {"0"}) + str (_date#3), + (if (_date#4 >=10) then {""} else {"0"}) + str (_date#4)]; + +_diaryText = _diaryText + format ["Mission date: %1 %2 %3

", + _date#0, + ["","January","February","March","April","May","June","July","August","September","October","November","December"] select (_date#1), + _date#2]; + + +// Weather +_overCastText = "Overcast"; +if (_overcast < .8) then {_overCastText = "Mostly Cloudy"}; +if (_overcast < .5) then {_overCastText = "Partly Cloudy"}; +if (_overcast < .13) then {_overCastText = "Clear"}; + +_rainText = "Heavy Rain"; +if (_rain < .65) then { _rainText = "Rain" }; +if (_rain < .3) then { _rainText = "Light Rain" }; +if (_rain < .01 || _overcast < .5) then { _rainText = "No Precipitation" }; // rain doesn't do anything below .5 overcast + +_diaryText = _diaryText + format ["Weather
%1 | %2
",_overCastText,_rainText]; + + +// Wind and fog +_windText = "High Winds"; +if (_wind < .5) then {_windText = "Windy"; }; +if (_wind < .3) then {_windText = "Light Winds"; }; +_windDirText = ["N","NE","E","SE","S","SW","W","NW"] select floor abs (((windDir+22.5) % 360)/45); + +_diaryText = _diaryText + format ["%1 (%2kt %3)
",_windText,_wind*13.6 toFixed 1,_windDirText]; + +_fogText = "No Visibility"; +if (_fogParams#0 < .8) then {_fogText = "Heavy Fog"}; +if (_fogParams#0 < .5) then {_fogText = "Foggy"}; +if (_fogParams#0 < .2) then {_fogText = "Misty"}; +if (_fogParams#0 < .01) then {_fogText = "Good Visibility"}; +if (_fogParams#1 > 0) then { + _fogText = _fogText + format [" (at %1m ASL)",_fogParams#2 toFixed 0]; +}; + +_diaryText = _diaryText + format ["%1
",_fogText]; + + +// Astronomical info +_moonPhase = moonPhase _date; +_moonText = "Full"; +if (_moonPhase < .875) then { _moonText = "Gibbous"; }; +if (_moonPhase < .625) then { _moonText = "Quarter"; }; +if (_moonPhase < .375) then { _moonText = "Crescent"; }; +if (_moonPhase < .125) then { _moonText = "New"; }; + +_sunriseSunset = _date call BIS_fnc_sunriseSunsetTime apply { + if (! (_x in [0,-1]) ) then { // probably unnecessary polar handling + [_x,"HH:MM"] call BIS_fnc_timeToString; + }; +}; + +_diaryText = _diaryText + format ["
Moon Phase: %1
Sunrise: %2 | Sunset: %3
",_moonText,_sunriseSunset#0,_sunriseSunset#1]; + + +// Insert final result into briefing +waitUntil {scriptDone f_script_briefing}; +player createDiaryRecord ["diary", ["Mission Conditions", _diaryText]]; diff --git a/f/missionConditions/f_setMissionConditions.sqf b/f/missionConditions/f_setMissionConditions.sqf index ffffd3fc9..65e85492c 100644 --- a/f/missionConditions/f_setMissionConditions.sqf +++ b/f/missionConditions/f_setMissionConditions.sqf @@ -2,24 +2,45 @@ // Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) // ==================================================================================== -// SCRIPT SHOULD ONLY RUN ON SERVER - -if (!isServer) exitWith {}; - -// ==================================================================================== - -// SET WEATHER -// Set the mission weather according to params. If the fog and wind override params -// are set, then prevent setWeather from setting them and set them manually instead. - -[f_param_weather,f_param_fog == 4,f_param_wind == 4] call f_fnc_setWeather; - -if (f_param_fog != 4) then { - [f_param_fog] call f_fnc_setFog; -}; - -if (f_param_wind != 4) then { - [f_param_wind] call f_fnc_setWind; +// SET CONDITIONS +// Set the mission conditions (weather and time) according to params. + +// ONLY SET CONDITIONS ON THE SERVER +if (isServer) then { + _weatherParams = [f_param_weather, f_param_fog == 4, f_param_wind == 4] call f_fnc_setWeather; + if (isNil "_weatherParams") then { + f_var_conditions_params = [date, overcast, rain, lightnings, waves, windStr, fogParams]; + } else { + f_var_conditions_params = [date] + _weatherParams; + }; + + // Fix for date sometimes returning wrong minute + f_var_conditions_params#0 set [3,floor (dayTime + (.5/60))]; + f_var_conditions_params#0 set [4,floor ((dayTime%1)*60+.5)]; + + _fogParams = [f_param_fog] call f_fnc_setFog; + if (!isNil "_fogParams") then { + f_var_conditions_params set [6,_fogParams]; + }; + + _windParams = [f_param_wind] call f_fnc_setWind; + if (!isNil "_windParams") then { + f_var_conditions_params set [5,_windParams]; + }; + + _dateParams = [f_param_timeOfDay] call f_fnc_setTime; + if (!isNil "_dateParams") then { + f_var_conditions_params set [0,_dateParams]; + }; + + // STORE CONDITIONS PARAMETERS + // Store all starting mission condition parameters in a global variable for later reference + // array format - [[year,month,day,hour,minute],overcast,rain,lightnings,waves,windStr,[fogStr,fogDecay,fogBase]] + publicVariable "f_var_conditions_params"; }; // ==================================================================================== + +// GENERATE CONDITION NOTES +// Adds a briefing entry that summarizes the mission conditions +[] execVM "f\missionConditions\f_conditionNotes.sqf"; diff --git a/f/missionConditions/fn_SetFog.sqf b/f/missionConditions/fn_SetFog.sqf index ded86954c..80fccb144 100644 --- a/f/missionConditions/fn_SetFog.sqf +++ b/f/missionConditions/fn_SetFog.sqf @@ -12,7 +12,7 @@ private ["_strength","_decay","_base"]; // We interpret the values parsed to the script. If the function was called from the parameters those values are used. params [ - ["_fog", 0, [0]], + ["_fog", 4, [0]], ["_transition", 0, [0]] ]; @@ -64,3 +64,6 @@ switch (_fog) do _transition setFog [_strength,_decay,_base]; // ==================================================================================== + +// RETURN FOG PARAMS +[_strength,_decay,_base] diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index 85eea1d5e..e8c140ef2 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -16,7 +16,7 @@ private ["_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise // We interpret the values parsed to the script. If the function was called from the parameters those values are used. params [ - ["_timeOfDay", 0, [0]] + ["_timeOfDay", 8, [0]] ]; // Exit when using mission settings @@ -50,15 +50,13 @@ _addTime = { ["_time1", [], [[]], 2], ["_time2", [], [[]], 2] ]; - _result = _time1 vectorAdd _time2; - while { _result select 1 > 60 } do { // convert extra minutes into hours - _result = _result vectorAdd [1,-60]; - }; - // make sure hour is in range [0,23] - _result set [0,(_result select 0) % 24]; - if (_result select 0 < 0) then { - _result = _result vectorAdd [24,0]; - }; + _result = [_time1#0 + _time2#0,_time1#1 + _time2#1]; + + _extraHours = floor (_result#1 / 60); + _result = [(_result#0 + _extraHours) % 24,_result#1 - 60*_extraHours]; + + if (_result#0 < 0) then { _result = [_result#0 + 24,_result#1] }; + _result }; @@ -172,3 +170,6 @@ _date = [_year,_month,_day,_hour,_minute]; [_date,true,_transition] call BIS_fnc_setDate; // ==================================================================================== + +// RETURN DATE +_date diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index 3a4b05f89..95667b742 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -193,3 +193,6 @@ if (_setFog) then { forceWeatherChange; // ==================================================================================== + +// RETURN WEATHER PARAMS +[_MissionOvercast,_MissionRain,_MissionLightnings,_MissionWaves,_MissionWindStr,[_MissionFogStrength,_MissionFogDecay,_MissionFogBase]] diff --git a/f/missionConditions/fn_SetWind.sqf b/f/missionConditions/fn_SetWind.sqf index 1c15952d1..37048aff9 100644 --- a/f/missionConditions/fn_SetWind.sqf +++ b/f/missionConditions/fn_SetWind.sqf @@ -63,3 +63,6 @@ _transition setWindForce _gusts; _transition setWaves _waves; // ==================================================================================== + +// RETURN WIND PARAMS +_strength From 69a1fcefdb88e638078f5020803acfcc69b03fed Mon Sep 17 00:00:00 2001 From: darkChozo Date: Wed, 29 Apr 2020 12:54:01 -0400 Subject: [PATCH 213/407] linted i222 change, added lots of privates --- f/missionConditions/f_conditionNotes.sqf | 20 +++++++++---------- .../f_setMissionConditions.sqf | 14 ++++++------- f/missionConditions/fn_SetTime.sqf | 8 ++++---- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/f/missionConditions/f_conditionNotes.sqf b/f/missionConditions/f_conditionNotes.sqf index e012c13c5..a8ccc6c38 100644 --- a/f/missionConditions/f_conditionNotes.sqf +++ b/f/missionConditions/f_conditionNotes.sqf @@ -9,10 +9,10 @@ waitUntil { !isNil {f_var_conditions_params} }; f_var_conditions_params params ["_date","_overcast","_rain","_lightnings","_waves","_wind","_fogParams"]; -_diaryText = ""; +private _diaryText = ""; // Start time & date -_diaryText = _diaryText + format ["Mission start time: %1:%2
", +private _diaryText = _diaryText + format ["Mission start time: %1:%2
", (if (_date#3 >=10) then {""} else {"0"}) + str (_date#3), (if (_date#4 >=10) then {""} else {"0"}) + str (_date#4)]; @@ -23,12 +23,12 @@ _diaryText = _diaryText + format ["Mission date: // Weather -_overCastText = "Overcast"; +private _overCastText = "Overcast"; if (_overcast < .8) then {_overCastText = "Mostly Cloudy"}; if (_overcast < .5) then {_overCastText = "Partly Cloudy"}; if (_overcast < .13) then {_overCastText = "Clear"}; -_rainText = "Heavy Rain"; +private _rainText = "Heavy Rain"; if (_rain < .65) then { _rainText = "Rain" }; if (_rain < .3) then { _rainText = "Light Rain" }; if (_rain < .01 || _overcast < .5) then { _rainText = "No Precipitation" }; // rain doesn't do anything below .5 overcast @@ -37,14 +37,14 @@ _diaryText = _diaryText + format ["Weather%1 (%2kt %3)
",_windText,_wind*13.6 toFixed 1,_windDirText]; -_fogText = "No Visibility"; +private _fogText = "No Visibility"; if (_fogParams#0 < .8) then {_fogText = "Heavy Fog"}; if (_fogParams#0 < .5) then {_fogText = "Foggy"}; if (_fogParams#0 < .2) then {_fogText = "Misty"}; @@ -57,14 +57,14 @@ _diaryText = _diaryText + format ["%1
",_fogText]; // Astronomical info -_moonPhase = moonPhase _date; -_moonText = "Full"; +private _moonPhase = moonPhase _date; +private _moonText = "Full"; if (_moonPhase < .875) then { _moonText = "Gibbous"; }; if (_moonPhase < .625) then { _moonText = "Quarter"; }; if (_moonPhase < .375) then { _moonText = "Crescent"; }; if (_moonPhase < .125) then { _moonText = "New"; }; -_sunriseSunset = _date call BIS_fnc_sunriseSunsetTime apply { +private _sunriseSunset = _date call BIS_fnc_sunriseSunsetTime apply { if (! (_x in [0,-1]) ) then { // probably unnecessary polar handling [_x,"HH:MM"] call BIS_fnc_timeToString; }; diff --git a/f/missionConditions/f_setMissionConditions.sqf b/f/missionConditions/f_setMissionConditions.sqf index 65e85492c..81d4b4add 100644 --- a/f/missionConditions/f_setMissionConditions.sqf +++ b/f/missionConditions/f_setMissionConditions.sqf @@ -7,33 +7,33 @@ // ONLY SET CONDITIONS ON THE SERVER if (isServer) then { - _weatherParams = [f_param_weather, f_param_fog == 4, f_param_wind == 4] call f_fnc_setWeather; + private _weatherParams = [f_param_weather, f_param_fog == 4, f_param_wind == 4] call f_fnc_setWeather; if (isNil "_weatherParams") then { f_var_conditions_params = [date, overcast, rain, lightnings, waves, windStr, fogParams]; } else { f_var_conditions_params = [date] + _weatherParams; }; - + // Fix for date sometimes returning wrong minute f_var_conditions_params#0 set [3,floor (dayTime + (.5/60))]; f_var_conditions_params#0 set [4,floor ((dayTime%1)*60+.5)]; - _fogParams = [f_param_fog] call f_fnc_setFog; + private _fogParams = [f_param_fog] call f_fnc_setFog; if (!isNil "_fogParams") then { f_var_conditions_params set [6,_fogParams]; }; - _windParams = [f_param_wind] call f_fnc_setWind; + private _windParams = [f_param_wind] call f_fnc_setWind; if (!isNil "_windParams") then { f_var_conditions_params set [5,_windParams]; }; - _dateParams = [f_param_timeOfDay] call f_fnc_setTime; - if (!isNil "_dateParams") then { + private _dateParams = [f_param_timeOfDay] call f_fnc_setTime; + if (!isNil "_dateParams") then { f_var_conditions_params set [0,_dateParams]; }; - // STORE CONDITIONS PARAMETERS + // STORE CONDITIONS PARAMETERS // Store all starting mission condition parameters in a global variable for later reference // array format - [[year,month,day,hour,minute],overcast,rain,lightnings,waves,windStr,[fogStr,fogDecay,fogBase]] publicVariable "f_var_conditions_params"; diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index e8c140ef2..36a9f7f84 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -8,7 +8,7 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time","_result","_date"]; +private ["_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time","_date"]; // ==================================================================================== @@ -50,11 +50,11 @@ _addTime = { ["_time1", [], [[]], 2], ["_time2", [], [[]], 2] ]; - _result = [_time1#0 + _time2#0,_time1#1 + _time2#1]; + private _result = [_time1#0 + _time2#0,_time1#1 + _time2#1]; - _extraHours = floor (_result#1 / 60); + private _extraHours = floor (_result#1 / 60); _result = [(_result#0 + _extraHours) % 24,_result#1 - 60*_extraHours]; - + if (_result#0 < 0) then { _result = [_result#0 + 24,_result#1] }; _result From d9684472f8b17c82891152faaa05f8b4629f4100 Mon Sep 17 00:00:00 2001 From: darkChozo Date: Wed, 29 Apr 2020 12:56:21 -0400 Subject: [PATCH 214/407] change isNil from code to string per style oops forgot this one --- f/missionConditions/f_conditionNotes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/missionConditions/f_conditionNotes.sqf b/f/missionConditions/f_conditionNotes.sqf index a8ccc6c38..f53d4158f 100644 --- a/f/missionConditions/f_conditionNotes.sqf +++ b/f/missionConditions/f_conditionNotes.sqf @@ -5,7 +5,7 @@ if (!hasInterface) exitWith {}; //Exit if not a player. // Wait until server publishes the mission conditions -waitUntil { !isNil {f_var_conditions_params} }; +waitUntil { !isNil "f_var_conditions_params" }; f_var_conditions_params params ["_date","_overcast","_rain","_lightnings","_waves","_wind","_fogParams"]; From baf0b87bf1e571e7ebd15eb687092263fd70930d Mon Sep 17 00:00:00 2001 From: darkChozo Date: Tue, 28 Jan 2020 10:17:55 -0500 Subject: [PATCH 215/407] i280 - f_fnc_setWeather rain fog Significantly dialed down fog during rain in f_fnc_setWeather --- f/missionConditions/fn_SetWeather.sqf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index 3a4b05f89..b02033287 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -122,7 +122,7 @@ switch (_weather) do _MissionWindGusts = 0.2; _MissionWaves = 0.5; _MissionFogStrength = 0.03; - _MissionFogDecay = 0; + _MissionFogDecay = 0.002; _MissionFogBase = 0; }; // Light Rain @@ -135,8 +135,8 @@ switch (_weather) do _MissionWindStr = 0.25; _MissionWindGusts = 0.25; _MissionWaves = 0.5; - _MissionFogStrength = 0.07; - _MissionFogDecay = 0; + _MissionFogStrength = 0.04; + _MissionFogDecay = 0.002; _MissionFogBase = 0; }; // Heavy Rain @@ -149,8 +149,8 @@ switch (_weather) do _MissionWindStr = 0.4; _MissionWindGusts = 0.4; _MissionWaves = 0.8; - _MissionFogStrength = 0.15; - _MissionFogDecay = 0; + _MissionFogStrength = 0.04; + _MissionFogDecay = 0.002; _MissionFogBase = 0; }; // Storm @@ -163,8 +163,8 @@ switch (_weather) do _MissionWindStr = 0.75; _MissionWindGusts = 1; _MissionWaves = 1; - _MissionFogStrength = 0.3; - _MissionFogDecay = 0; + _MissionFogStrength = 0.05; + _MissionFogDecay = 0.002; _MissionFogBase = 0; }; }; From 90daf422c1f07bab692bd62340d8154b0e8c385d Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 30 Jul 2020 17:17:47 +0100 Subject: [PATCH 216/407] Resolve Pilot NVG conflict --- f/assignGear/f_assignGear_3IFB.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index abbf76307..a64de3ad8 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -165,6 +165,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_OPFOR"; +_nvgPilot = "Integrated_NVG_F"; // Binoculars _binoculars = "Rangefinder"; From 4bc13f45a1d74e1a4b91ad05158b2b9527287680 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 30 Jul 2020 17:19:28 +0100 Subject: [PATCH 217/407] Resolve Pilot NVG conflict --- f/assignGear/fn_assignGear.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 1d218b3e4..8830b3117 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -54,7 +54,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_binoculars","_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; +private ["_binoculars","_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_nvgPilot","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; // ==================================================================================== From 3ca90531937748710f47b31e71292afbc7a42d35 Mon Sep 17 00:00:00 2001 From: darkChozo Date: Sat, 15 Aug 2020 13:01:04 -0400 Subject: [PATCH 218/407] i285 - added vip / officer clothes option to assign gear --- f/assignGear/f_assignGear_3IFB.sqf | 7 +++++++ f/assignGear/f_assignGear_aaf.sqf | 7 +++++++ f/assignGear/f_assignGear_clothes.sqf | 8 ++++++++ f/assignGear/f_assignGear_csat.sqf | 7 +++++++ f/assignGear/f_assignGear_csatPacific.sqf | 7 +++++++ f/assignGear/f_assignGear_ctrg.sqf | 7 +++++++ f/assignGear/f_assignGear_fia.sqf | 7 +++++++ f/assignGear/f_assignGear_gendarmerie.sqf | 7 +++++++ f/assignGear/f_assignGear_ldf.sqf | 7 +++++++ f/assignGear/f_assignGear_nato.sqf | 7 +++++++ f/assignGear/f_assignGear_natoPacific.sqf | 7 +++++++ f/assignGear/f_assignGear_natoWoodland.sqf | 7 +++++++ f/assignGear/f_assignGear_npr.sqf | 7 +++++++ f/assignGear/f_assignGear_spetsnaz.sqf | 7 +++++++ f/assignGear/f_assignGear_syndikat.sqf | 7 +++++++ 15 files changed, 106 insertions(+) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 06c4d684f..7a82804d2 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -255,6 +255,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -311,6 +312,12 @@ _sfhelmet = _baseHelmet; _sfRig = _standardRig; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_O_R_Gorka_01_black_F"]; +_vipHelmet = _baseHelmet; +_vipRig = _standardRig; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 376e846f2..ff5c8723b 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -256,6 +256,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -304,6 +305,12 @@ _sfhelmet = _baseHelmet; _sfRig = _standardRig; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_I_officerUniform"]; +_vipHelmet = ["H_MilCap_dgtl"]; +_vipRig = ["V_TacVest_oli"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index c9e6a144f..193bac565 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -78,6 +78,14 @@ if (_typeOfUnit in _specOp) then { _glasses = _sfGlasses; }; +// VIP/Officer +if (_typeOfUnit in _vip) then { + _helmet = _vipHelmet; + _uniform = _vipUniform; + _rig = _vipRig; + _glasses = _vipGlasses; +}; + // Add clothing items to unit if(count _uniform > 0) then { diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 3df892638..b99bd8a0b 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -266,6 +266,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -323,6 +324,12 @@ _sfhelmet = ["H_HelmetSpecO_ocamo"]; //Viper: ["H_HelmetO_ViperSP_hex_F"]; IM _sfRig = _standardRig; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_O_officerUniform_ocamo"]; +_vipHelmet = ["H_Beret_CSAT_01_F"]; +_vipRig = ["V_TacVest_brn"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 5722f8baf..70141bf33 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -266,6 +266,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -319,6 +320,12 @@ _sfhelmet = ["H_HelmetSpecO_ghex_F"]; //Viper: ["H_HelmetO_ViperSP_ghex_F"]; IMP _sfRig = _standardRig; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_O_T_officer_F"]; +_vipHelmet = ["H_Beret_CSAT_01_F"]; +_vipRig = ["V_TacVest_oli"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index ea029c08c..9d14781d1 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -265,6 +265,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -312,6 +313,12 @@ _sfhelmet = ["H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_He _sfRig = ["V_PlateCarrierSpec_rgr"]; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_B_CTRG_1"]; +_vipHelmet = ["H_Beret_02"]; +_vipRig = ["V_TacVest_oli"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 39571cb45..dda8e4fd8 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -262,6 +262,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -310,6 +311,12 @@ _sfhelmet = _baseHelmet; _sfRig = ["V_PlateCarrierL_CTRG","V_PlateCarrierH_CTRG"]; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_I_G_resistanceLeader_F"]; +_vipHelmet = []; +_vipRig = ["V_I_G_resistanceLeader_F"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 3829c1e84..5c888b401 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -124,6 +124,7 @@ _DMriflemag = "20Rnd_762x51_Mag"; _pilot = ["pp","pcc","pc"]; _specOp = ["nf"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -148,6 +149,12 @@ _sfhelmet = ["H_Helmet_Skate"]; _sfRig = ["V_PlateCarrier1_blk"]; _sfGlasses = ["G_Balaclava_blk"]; +// VIP/Officer +_vipUniform = ["U_B_GEN_Commander_F"]; +_vipHelmet = ["H_Beret_gen_F"]; +_vipRig = ["V_TacVest_gen_F"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index 518a20766..7ea44bc38 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -257,6 +257,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -305,6 +306,12 @@ _sfhelmet = _baseHelmet; _sfRig = _standardRig; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_I_E_Uniform_01_officer_F"]; +_vipHelmet = ["H_Beret_EAF_01_F"]; +_vipRig = ["V_TacVest_oli"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index c38caae3a..6a9373d64 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -262,6 +262,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -309,6 +310,12 @@ _sfhelmet = ["H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_He _sfRig = ["V_PlateCarrierSpec_rgr"]; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_B_CombatUniform_mcam_tshirt"]; +_vipHelmet = ["H_Beret_02"]; +_vipRig = ["V_TacVest_khk"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index d6c163a26..08f74a8dd 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -262,6 +262,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -309,6 +310,12 @@ _sfhelmet = ["H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_He _sfRig = ["V_PlateCarrierSpec_rgr"]; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_B_T_Soldier_AR_F"]; +_vipHelmet = ["H_Beret_02"]; +_vipRig = ["V_TacVest_oli"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 89f3ca921..cdbde072f 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -260,6 +260,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -307,6 +308,12 @@ _sfhelmet = ["H_HelmetSpecB_wdl"]; _sfRig = ["V_PlateCarrierSpec_wdl"]; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_B_CombatUniform_tshirt_mcam_wdl_f"]; +_vipHelmet = ["H_Beret_02"]; +_vipRig = ["V_TacVest_oli"]; +_vipGlasses = []; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index e5e2ec726..0b50f120c 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -285,6 +285,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -335,6 +336,12 @@ _sfhelmet = _baseHelmet; _sfRig = ["V_PlateCarrierL_CTRG","V_PlateCarrierH_CTRG"]; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_O_R_Gorka_01_black_F"]; +_vipHelmet = ["H_Beret_blk"]; +_vipRig = ["V_TacVest_blk"]; +_vipGlasses = ["G_Balaclava_blk"]; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 9a0140f18..0b713f422 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -260,6 +260,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -318,6 +319,12 @@ _ghillieGlasses = []; //_sfRig = _standardRig; //_sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_O_R_Gorka_01_camo_F"]; +_vipHelmet = ["H_MilCap_taiga"]; +_vipRig = ["V_SmershVest_01_radio_F"]; +_vipGlasses = ["G_Aviator"]; + // ==================================================================================== // This block needs only to be run on an infantry unit diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index 83f3d5bc9..21399da35 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -254,6 +254,7 @@ _crew = ["vc","vg","vd"]; _ghillie = ["sn","sp"]; _specOp = []; _jet = ["jp"]; +_vip = []; // Basic clothing // The outfit-piece is randomly selected from the array for each unit @@ -302,6 +303,12 @@ _sfhelmet = _baseHelmet; _sfRig = _standardRig; _sfGlasses = []; +// VIP/Officer +_vipUniform = ["U_I_C_Soldier_Camo_F"]; +_vipHelmet = []; +_vipRig = ["V_TacVestIR_blk"]; +_vipGlasses = ["G_Aviator"]; + // ==================================================================================== // This block needs only to be run on an infantry unit From 50b4b1035bfcdf74f917d94700a005381ebe6fe3 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 17 Nov 2020 00:36:29 +0000 Subject: [PATCH 219/407] Add new military buildings Add things to the military buildings array that are new since the list was originally made. --- ws_fnc/AI/fn_taskDefend.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ws_fnc/AI/fn_taskDefend.sqf b/ws_fnc/AI/fn_taskDefend.sqf index 0618bf03e..daec589bb 100644 --- a/ws_fnc/AI/fn_taskDefend.sqf +++ b/ws_fnc/AI/fn_taskDefend.sqf @@ -60,7 +60,7 @@ _badarrayA2 = ["Land_Misc_Cargo1Ao","Land_Misc_Cargo1Bo","Land_Misc_Cargo1Bo_mil // ARMA 3 only // Military buildings that are garrisoned before civilian buildings -_milarrayA3 = ["Land_Cargo_HQ_V1_F","Land_Cargo_HQ_V2_F","Land_Cargo_HQ_V3_F","Land_Cargo_Tower_V1_F","Land_Cargo_Tower_V1_No1_F","Land_Cargo_Tower_V1_No2_F","Land_Cargo_Tower_V1_No3_F","Land_Cargo_Tower_V1_No4_F","Land_Cargo_Tower_V1_No5_F","Land_Cargo_Tower_V1_No6_F","Land_Cargo_Tower_V1_No7_F","Land_Cargo_Tower_V2_F","Land_Cargo_Tower_V3_F","Land_Radar_F","Land_Cargo_Patrol_V1_F","Land_Cargo_Patrol_V2_F","Land_Cargo_Patrol_V3_F","Land_Bunker_F","Land_Airport_Tower_F","Land_i_Barracks_V1_F","Land_i_Barracks_V2_F","Land_u_Barracks_V2_F"]; +_milarrayA3 = ["Land_Cargo_HQ_V1_F","Land_Cargo_HQ_V2_F","Land_Cargo_HQ_V3_F","Land_Cargo_Tower_V1_F","Land_Cargo_Tower_V1_No1_F","Land_Cargo_Tower_V1_No2_F","Land_Cargo_Tower_V1_No3_F","Land_Cargo_Tower_V1_No4_F","Land_Cargo_Tower_V1_No5_F","Land_Cargo_Tower_V1_No6_F","Land_Cargo_Tower_V1_No7_F","Land_Cargo_Tower_V2_F","Land_Cargo_Tower_V3_F","Land_Radar_F","Land_Cargo_Patrol_V1_F","Land_Cargo_Patrol_V2_F","Land_Cargo_Patrol_V3_F","Land_Bunker_F","Land_Airport_Tower_F","Land_i_Barracks_V1_F","Land_i_Barracks_V2_F","Land_u_Barracks_V2_F","Land_Barracks_03_F","Land_Barracks_04_F","Land_Barracks_05_F","Land_ControlTower_01_F","Land_GuardTower_01_F","Land_Bunker_02_light_double_F","Land_Bunker_02_light_left_F","Land_Bunker_02_left_F","Land_Bunker_02_double_F","Land_Bunker_02_light_right_F","Land_Bunker_02_right_F","Land_Radar_01_antenna_base_F","Land_Radar_01_HQ_F","Land_Bunker_01_big_F","Land_Bunker_01_HQ_F","Land_Bunker_01_small_F","Land_Bunker_01_tall_F","Land_Barracks_01_dilapidated_F","Land_BagBunker_Small_F","Land_BagBunker_01_small_green_F","Land_Barracks_01_grey_F","Land_BagBunker_large_F","Land_BagBunker_01_large_green_F","Land_BagBunker_01_tower_F","Land_BagBunker_Tower_F","Land_HBarrier_01_big_tower_green_F","Land_HBarrierTower_F","Land_Cargo_HQ_V4_F","Land_Cargo_Patrol_V4_F","Land_Cargo_Tower_V4_F","Land_PillboxBunker_01_big_F","Land_PillboxBunker_01_hex_F","Land_PillboxBunker_01_rectangle_F","land_gm_tower_bt_6_fuest_80","land_gm_euro_barracks_02","land_gm_euro_barracks_02_win"]; // Buildings NEVER to garrison _badarrayA3 = []; From b81f3c1b3a4797a84e3564ad719bd3672decad74 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 12 Jan 2021 22:27:59 +0000 Subject: [PATCH 220/407] Change Spetsnaz UAV backpack Give Spetsnaz an OPFOR UAV bag instead of INDFOR. It's unfortunate that it's not a convenient colour, but it is necessary for their side affiliation as the UAV side has a mechanical effect. --- f/assignGear/f_assignGear_spetsnaz.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 9a0140f18..4d9bb47bb 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -187,7 +187,7 @@ _chemblue = "Chemlight_blue"; _bag = "B_FieldPack_green_F"; // carries 120, weighs 20 _bagLarge = "B_Carryall_green_f"; // carries 320, weighs 40 _bagdiver = "B_AssaultPack_rgr"; // used by divers -_baguav = "I_UAV_01_backpack_F"; // used by UAV operator +_baguav = "O_UAV_01_backpack_F"; // used by UAV operator _baghmgg = "I_HMG_01_weapon_F"; // used by Heavy MG gunner _baghmgag = "I_HMG_01_support_F"; // used by Heavy MG assistant gunner _baghatg = "I_AT_01_weapon_F"; // used by Heavy AT gunner From eda76cfd1ea79455d87205df7167abeade17e02c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 12 Jan 2021 22:31:22 +0000 Subject: [PATCH 221/407] Replace CSAT 5.56 suppressor The CSAT assignGear had a 5.56 suppressor not compatible with any CSAT guns. I moved the common 6.5mm suppressor to the first slot, and replaced the 5.56 with a 7.62mm suppressor used on AKs and DMRs. --- f/assignGear/f_assignGear_csat.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 3df892638..474008de9 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -71,8 +71,8 @@ _attach1 = "acc_pointer_IR"; // IR Laser _attach2 = "acc_flashlight"; // Flashlight -_silencer1 = "muzzle_snds_M"; // 5.56 suppressor -_silencer2 = "muzzle_snds_H"; // 6.5 suppressor +_silencer1 = "muzzle_snds_H"; // 6.5 suppressor +_silencer2 = "muzzle_snds_B"; // 7.62 suppressor _scope1 = "optic_ACO_grn"; // ACO _scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x From 0dd9163a0aff040d872a809266cb1a335adc5a4c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 12 Jan 2021 22:41:47 +0000 Subject: [PATCH 222/407] Minor weapon attachment fixes Some factions have minor discrepancies in their attachments, such as incorrect scope descriptions or using different factions' bipods. --- f/assignGear/f_assignGear_ctrg.sqf | 2 +- f/assignGear/f_assignGear_ldf.sqf | 4 ++-- f/assignGear/f_assignGear_nato.sqf | 2 +- f/assignGear/f_assignGear_natoPacific.sqf | 2 +- f/assignGear/f_assignGear_npr.sqf | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index ea029c08c..306c7fed6 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -79,7 +79,7 @@ _scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x _scope3 = "optic_SOS"; // SOS Scope - 18x - 75x _bipod1 = "bipod_01_F_snd"; // Default bipod -_bipod2 = "bipod_02_F_blk"; // Black bipod +_bipod2 = "bipod_01_F_blk"; // Black bipod // Default setup _attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index 518a20766..3378aa60c 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -75,11 +75,11 @@ _silencer1 = "muzzle_snds_M"; // 5.56 suppressor _silencer2 = "muzzle_snds_H"; // 6.5 suppressor _scope1 = "optic_ACO"; // ACO -_scope2 = "optic_ico_01_f"; // MRCO Scope - 1x - 6x +_scope2 = "optic_ico_01_f"; // Promet ISR scope _scope3 = "optic_SOS"; // SOS Scope - 18x - 75x _bipod1 = "bipod_01_F_blk"; // Default bipod -_bipod2 = "bipod_03_F_blk"; // Black bipod +_bipod2 = "bipod_01_F_khk"; // Green bipod // Default setup _attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index c38caae3a..18c6b86ec 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -79,7 +79,7 @@ _scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x _scope3 = "optic_SOS"; // SOS Scope - 18x - 75x _bipod1 = "bipod_01_F_snd"; // Default bipod -_bipod2 = "bipod_02_F_blk"; // Black bipod +_bipod2 = "bipod_01_F_blk"; // Black bipod // Default setup _attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index d6c163a26..6069ae73d 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -79,7 +79,7 @@ _scope2 = "optic_Hamr_khk_F"; // RCO Scope _scope3 = "optic_LRPS_tna_F"; // LRPS _bipod1 = "bipod_01_F_khk"; // Default bipod -_bipod2 = "bipod_02_F_blk"; // Black bipod +_bipod2 = "bipod_01_F_blk"; // Black bipod // Default setup _attachments = [_scope1]; // The default attachment set for most units, overwritten in the individual unitType diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index e5e2ec726..0b844ef7d 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -79,7 +79,7 @@ _scope2 = "optic_MRCO"; // MRCO Scope - 1x - 6x _scope3 = "optic_SOS"; // SOS Scope - 18x - 75x _bipod1 = "bipod_02_F_blk"; // Default bipod -_bipod2 = "bipod_02_F_blk"; // Black bipod +_bipod2 = "bipod_02_F_lush"; // Green bipod // Default setup _attachments = []; // The default attachment set for most units, overwritten in the individual unitType From e73b035a99f82a5e50646c8b09759c20eff0437a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 12 Jan 2021 22:53:52 +0000 Subject: [PATCH 223/407] Add GM classes to assignGear AI list --- f/assignGear/f_assignGear_AI.sqf | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/f/assignGear/f_assignGear_AI.sqf b/f/assignGear/f_assignGear_AI.sqf index e7edba928..82f115db1 100644 --- a/f/assignGear/f_assignGear_AI.sqf +++ b/f/assignGear/f_assignGear_AI.sqf @@ -74,6 +74,21 @@ private _unitClasses = [ ["_Bandit_6_" , "gren" ], ["_Bandit_7_" , "car" ], ["_Bandit_8_" , "engm" ], + + // GM units + + ["_squadleader_", "ftl" ], + ["_antitank_assistant_","aar" ], + ["_machinegunner_assistant_","aar" ], + ["_machinegunner_", "ar" ], + ["_rifleman_" , "r" ], + ["_antitank_" , "rat" ], + ["_demolition_" , "eng" ], + ["_marksman_" , "dm" ], + ["_antiair_" , "msam" ], + ["_grenadier_" , "gren" ], + ["_paratrooper_", "car" ], + ["_soldier_" , "r" ] // No comma after the last array! From 9dfe4dafef3257bd0d914c99c53a43e81ba9ae6b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 19 Jan 2021 02:29:04 +0000 Subject: [PATCH 224/407] Remove Light assignGear files --- f/assignGear/f_assignGear_3IFB_light.sqf | 585 ------------------ f/assignGear/f_assignGear_aaf_light.sqf | 585 ------------------ .../f_assignGear_csatPacific_light.sqf | 585 ------------------ f/assignGear/f_assignGear_csat_light.sqf | 585 ------------------ f/assignGear/f_assignGear_ctrg_light.sqf | 582 ----------------- f/assignGear/f_assignGear_fia_light.sqf | 582 ----------------- f/assignGear/f_assignGear_ldf_light.sqf | 585 ------------------ .../f_assignGear_natoPacific_light.sqf | 585 ------------------ .../f_assignGear_natoWoodland_light.sqf | 585 ------------------ f/assignGear/f_assignGear_nato_light.sqf | 585 ------------------ f/assignGear/f_assignGear_npr_light.sqf | 585 ------------------ f/assignGear/f_assignGear_spetsnaz_light.sqf | 582 ----------------- f/assignGear/f_assignGear_syndikat_light.sqf | 582 ----------------- 13 files changed, 7593 deletions(-) delete mode 100644 f/assignGear/f_assignGear_3IFB_light.sqf delete mode 100644 f/assignGear/f_assignGear_aaf_light.sqf delete mode 100644 f/assignGear/f_assignGear_csatPacific_light.sqf delete mode 100644 f/assignGear/f_assignGear_csat_light.sqf delete mode 100644 f/assignGear/f_assignGear_ctrg_light.sqf delete mode 100644 f/assignGear/f_assignGear_fia_light.sqf delete mode 100644 f/assignGear/f_assignGear_ldf_light.sqf delete mode 100644 f/assignGear/f_assignGear_natoPacific_light.sqf delete mode 100644 f/assignGear/f_assignGear_natoWoodland_light.sqf delete mode 100644 f/assignGear/f_assignGear_nato_light.sqf delete mode 100644 f/assignGear/f_assignGear_npr_light.sqf delete mode 100644 f/assignGear/f_assignGear_spetsnaz_light.sqf delete mode 100644 f/assignGear/f_assignGear_syndikat_light.sqf diff --git a/f/assignGear/f_assignGear_3IFB_light.sqf b/f/assignGear/f_assignGear_3IFB_light.sqf deleted file mode 100644 index 2c59b8135..000000000 --- a/f/assignGear/f_assignGear_3IFB_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - 3IFB - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 4]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 2]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_3IFB_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_aaf_light.sqf b/f/assignGear/f_assignGear_aaf_light.sqf deleted file mode 100644 index 5f97a7b69..000000000 --- a/f/assignGear/f_assignGear_aaf_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - AAF - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_aaf_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_csatPacific_light.sqf b/f/assignGear/f_assignGear_csatPacific_light.sqf deleted file mode 100644 index 08d4c6cd8..000000000 --- a/f/assignGear/f_assignGear_csatPacific_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - CSAT Pacific - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 3]; - _unit addmagazines [_ARmag_tr, 2]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 2]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_csat_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_csat_light.sqf b/f/assignGear/f_assignGear_csat_light.sqf deleted file mode 100644 index 42c977b4b..000000000 --- a/f/assignGear/f_assignGear_csat_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - CSAT - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 7]; - _unit addmagazines [_DMriflemag_tr, 4]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_csat_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_ctrg_light.sqf b/f/assignGear/f_assignGear_ctrg_light.sqf deleted file mode 100644 index c5131d7cb..000000000 --- a/f/assignGear/f_assignGear_ctrg_light.sqf +++ /dev/null @@ -1,582 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - CTRG - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 2]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 2]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_ctrg_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_fia_light.sqf b/f/assignGear/f_assignGear_fia_light.sqf deleted file mode 100644 index 8741be6ca..000000000 --- a/f/assignGear/f_assignGear_fia_light.sqf +++ /dev/null @@ -1,582 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - FIA - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_fia_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_ldf_light.sqf b/f/assignGear/f_assignGear_ldf_light.sqf deleted file mode 100644 index 63dadd874..000000000 --- a/f/assignGear/f_assignGear_ldf_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - LDF - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_ldf_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_natoPacific_light.sqf b/f/assignGear/f_assignGear_natoPacific_light.sqf deleted file mode 100644 index d19962228..000000000 --- a/f/assignGear/f_assignGear_natoPacific_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - NATO Pacific - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 3]; - _unit addmagazines [_ARmag_tr, 2]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 2]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_nato_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_natoWoodland_light.sqf b/f/assignGear/f_assignGear_natoWoodland_light.sqf deleted file mode 100644 index b5008c54e..000000000 --- a/f/assignGear/f_assignGear_natoWoodland_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - NATO - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 3]; - _unit addmagazines [_ARmag_tr, 2]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 2]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_nato_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; \ No newline at end of file diff --git a/f/assignGear/f_assignGear_nato_light.sqf b/f/assignGear/f_assignGear_nato_light.sqf deleted file mode 100644 index 1ef247d71..000000000 --- a/f/assignGear/f_assignGear_nato_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - NATO - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 3]; - _unit addmagazines [_ARmag_tr, 2]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 2]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_nato_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_npr_light.sqf b/f/assignGear/f_assignGear_npr_light.sqf deleted file mode 100644 index 945361e63..000000000 --- a/f/assignGear/f_assignGear_npr_light.sqf +++ /dev/null @@ -1,585 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - NPR - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addBackpack _bagRadio; - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_npr_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_spetsnaz_light.sqf b/f/assignGear/f_assignGear_spetsnaz_light.sqf deleted file mode 100644 index 9082974e2..000000000 --- a/f/assignGear/f_assignGear_spetsnaz_light.sqf +++ /dev/null @@ -1,582 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - Spetsnaz - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 3]; - _unit addmagazines [_ARmag_tr, 2]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 2]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_spetsnaz_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; diff --git a/f/assignGear/f_assignGear_syndikat_light.sqf b/f/assignGear/f_assignGear_syndikat_light.sqf deleted file mode 100644 index 233aee906..000000000 --- a/f/assignGear/f_assignGear_syndikat_light.sqf +++ /dev/null @@ -1,582 +0,0 @@ -// F3 - Folk ARPS Assign Gear Script - Syndikat - Light Loadout -// Credits and documentation: https://github.com/folkarps/F3/wiki -// ==================================================================================== - -// DEFINE UNIT TYPE LOADOUTS -// The following blocks of code define loadouts for each type of unit (the unit type -// is passed to the script in the first variable) - -switch (_typeofUnit) do -{ - -// ==================================================================================== -// Automatic Rifleman Loadout: - case "ar": - { - _unit addBackpack _bag; - _unit addmagazines [_ARmag, 1]; - _unit addweapon _AR; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_ARmag, 1]; - _unit addmagazines [_ARmag_tr, 1]; - _unit addmagazines [_grenade, 1]; - }; -// Rifleman (AT) Loadout: - case "rat": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_RATmag1, 1]; - _unit addweapon _RAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_RATmag1, 1]; - }; -// Assistant Autorifleman Loadout: - case "aar": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_ARmag, 1]; - }; -// Fire Team Leader Loadout: - case "ftl": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadegreen, 2]; - }; -// Squad Leader / DC Loadout: - case "dc": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_pistolmag, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// Platoon CO Loadout: - case "co": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokewhite, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 4]; - _unit addmagazines [_glsmokered, 2]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_smokegrenadepurple, 3]; - }; -// JTAC Loadout: - case "jtac": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glsmokered, 1]; - _unit addweapon _glrifle; - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glsmokewhite, 3]; - _unit addmagazines [_glsmokered, 3]; - _unit addmagazines [_glsmokegreen, 2]; - _unit addmagazines [_pistolmag, 4]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addmagazines ["Laserbatteries", 1]; - _unit addWeapon _laserdesignator; - }; -// Medic Loadout: - case "m": - { - _unit setUnitTrait ["medic",true]; // Can use medkit - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addItem _medkit; - _unit addItem _firstaid; - }; -// Designated Marksman Loadout: - case "dm": - { - _unit addmagazines [_DMriflemag, 1]; - _unit addweapon _DMrifle; - _attachments = [_bipod1,_scope2]; // Overwrites default attachments to add a bipod and scope 2 - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_DMriflemag, 4]; - _unit addmagazines [_DMriflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Medium MG Gunner Loadout: - case "mmgg": - { - _unit addBackpack _bag; - _unit addmagazines [_MMGmag, 1]; - _unit addweapon _MMG; - _attachments pushback (_bipod1); // Adds the bipod - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_MMGmag, 1]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Assistant Loadout: - case "mmgag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - }; -// Medium MG Team Leader Loadout: - case "mmgl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MMGmag, 2]; - _unit addmagazines [_MMGmag_tr, 1]; - _unit addWeapon "Rangefinder"; - }; -// Heavy MG Gunner Loadout: - case "hmgg": - { - _unit addBackpack _baghmgg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy MG Team Leader Loadout: - case "hmgag": - { - _unit addBackpack _baghmgag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium AT Gunner Loadout: - case "matg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_MATmag1, 1]; - _unit addweapon _MAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Assistant Loadout: - case "matag": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - }; -// Medium AT Team Leader Loadout: - case "matl": - { - _unit addBackpack _bag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_MATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy AT Gunner Loadout: - case "hatg": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_HATmag1, 1]; - _unit addweapon _HAT; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_HATmag1, 1]; - }; -// Heavy AT Assistant Loadout: - case "hatag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - }; -// Heavy AT Team Leader Loadout: - case "hatl": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_HATmag1, 2]; - _unit addWeapon "Rangefinder"; - }; -// Mortar Gunner Loadout: - case "mtrg": - { - _unit addBackpack _bagmtrg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 2]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Mortar Team Leader Loadout: - case "mtrag": - { - _unit addBackpack _bagmtrag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Medium SAM Gunner Loadout: - case "msamg": - { - _unit addBackpack _bag; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addmagazines [_SAMmag, 1]; - _unit addweapon _SAM; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Medium SAM Assistant Loadout: - case "msamag": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - }; -// Medium SAM Team Leader Loadout: - case "msaml": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addmagazines [_SAMmag, 2]; - _unit addWeapon "Rangefinder"; - }; -// Heavy SAM Gunner Loadout: - case "hsamg": - { - _unit addBackpack _baghsamg; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - }; -// Heavy SAM Team Leader Loadout: - case "hsamag": - { - _unit addBackpack _baghsamag; - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addWeapon "Rangefinder"; - }; -// Sniper Loadout: - case "sn": - { - _unit addmagazines [_SNrifleMag, 1]; - _unit addweapon _SNrifle; - _attachments = [_bipod1,_scope3]; // Overwrites default attachments to add a bipod and scope 3 - _unit addmagazines [_pistolmag, 1]; - _unit addweapon _pistol; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_SNrifleMag, 6]; - _unit addmagazines [_pistolmag, 5]; - }; -// Spotter Loadout: - case "sp": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope - _unit addWeapon "Rangefinder"; - _unit addmagazines [_SNrifleMag, 3]; - }; -// Vehicle Commander Loadout: - case "vc": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addweapon "Rangefinder"; - }; -// Vehicle Gunner Loadout: - case "vg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - }; -// Vehicle Driver Loadout: - case "vd": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Jet Pilot Loadout: - case "jp": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 3]; - }; -// Helicopter Crew Loadout: - case "pp"; - case "pcc"; - case "pc": - { - _unit setUnitTrait ["engineer",true]; // Can repair - _unit addBackpack _bag; - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenadeblue, 3]; - _unit addmagazines [_smgmag, 4]; - _unit addItem "ToolKit"; - }; -// Engineer (Demo) Loadout: - case "eng": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_satchel, 2]; - }; -// Engineer (Mines) Loadout: - case "engm": - { - _unit addBackpack _bagLarge; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - _unit addItem "ToolKit"; - _unit addItem "MineDetector"; - _unit addmagazines [_APmine2, 4]; - _unit addmagazines [_ATmine, 1]; - }; -// UAV Operator Loadout: - case "uav": - { - _unit addBackpack _baguav; - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit linkItem _uavterminal; - }; -// Diver Loadout: - case "div": - { - _unit addBackpack _bagdiver; - _unit addmagazines [_diverMag1, 1]; - _unit addweapon _diverWep; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_diverMag1, 4]; - _unit addmagazines [_diverMag2, 2]; - _unit addmagazines [_diverMag3, 3]; - _unit addmagazines [_grenade, 3]; - }; -// Rifleman Loadout: - case "r": - { - _unit addmagazines [_riflemag, 1]; - _unit addweapon _rifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_riflemag, 4]; - _unit addmagazines [_riflemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Carbineer Loadout: - case "car": - { - _unit addmagazines [_carbinemag, 1]; - _unit addweapon _carbine; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_carbinemag, 4]; - _unit addmagazines [_carbinemag_tr, 2]; - _unit addmagazines [_grenade, 2]; - }; -// Submachinegunner Loadout: - case "smg": - { - _unit addmagazines [_smgmag, 1]; - _unit addweapon _smg; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_smgmag, 6]; - _unit addmagazines [_grenade, 2]; - }; -// Grenadier Loadout: - case "gren": - { - _unit addmagazines [_glriflemag, 1]; - _unit addmagazines [_glmag, 1]; - _unit addweapon _glrifle; - _unit addItem _firstaid; - _unit addmagazines [_smokegrenade, 3]; - _unit addmagazines [_glriflemag, 4]; - _unit addmagazines [_glriflemag_tr, 2]; - _unit addmagazines [_glmag, 5]; - }; - -// Include the loadouts for vehicles and crates: -#include "f_assignGear_syndikat_v.sqf"; - -// Include the default case for error handling -#include "f_assignGear_default.sqf"; - -// ==================================================================================== - -// END SWITCH FOR DEFINE UNIT TYPE LOADOUTS -}; From c2fdd8db500a45e272d488b9267bacf499cd33d2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 19 Jan 2021 02:31:29 +0000 Subject: [PATCH 225/407] Comment out mission parameter block. --- description.ext | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/description.ext b/description.ext index 3bd45c03c..90daa3aee 100644 --- a/description.ext +++ b/description.ext @@ -148,13 +148,14 @@ class Params // F3 - Folk Assign Gear Script // Credits and documentation: https://github.com/folkarps/F3/wiki - class f_param_loadouts - { - title = "$STR_f_param_loadouts"; - values[] = {0,1}; - texts[] = {"Light","Standard"}; - default = 1; - }; +// To add an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in a faction assignGear file, and add a new assignGear loadout file named according to that block. +// class f_param_loadouts + // { + // title = "$STR_f_param_loadouts"; +// values[] = {0,1}; + // texts[] = {"Light","Standard"}; + // default = 1; + // }; // ============================================================================================ From 703423c9e40c1a1a0abc9079494c6957042fe447 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 19 Jan 2021 02:42:14 +0000 Subject: [PATCH 226/407] Comment out references to light loadouts --- description.ext | 2 ++ f/assignGear/f_assignGear_3IFB.sqf | 13 +++++++------ f/assignGear/f_assignGear_aaf.sqf | 13 +++++++------ f/assignGear/f_assignGear_clothes.sqf | 13 ++++++++----- f/assignGear/f_assignGear_csat.sqf | 13 +++++++------ f/assignGear/f_assignGear_csatPacific.sqf | 13 +++++++------ f/assignGear/f_assignGear_ctrg.sqf | 13 +++++++------ f/assignGear/f_assignGear_fia.sqf | 13 +++++++------ f/assignGear/f_assignGear_ldf.sqf | 13 +++++++------ f/assignGear/f_assignGear_nato.sqf | 13 +++++++------ f/assignGear/f_assignGear_natoPacific.sqf | 13 +++++++------ f/assignGear/f_assignGear_natoWoodland.sqf | 13 +++++++------ f/assignGear/f_assignGear_npr.sqf | 13 +++++++------ f/assignGear/f_assignGear_spetsnaz.sqf | 15 ++++++++------- f/assignGear/f_assignGear_syndikat.sqf | 15 ++++++++------- 15 files changed, 103 insertions(+), 85 deletions(-) diff --git a/description.ext b/description.ext index 90daa3aee..04ef92ef8 100644 --- a/description.ext +++ b/description.ext @@ -149,6 +149,8 @@ class Params // Credits and documentation: https://github.com/folkarps/F3/wiki // To add an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in a faction assignGear file, and add a new assignGear loadout file named according to that block. +// You should also enable the rig selection block in assignGear_clothes.sqf + // class f_param_loadouts // { // title = "$STR_f_param_loadouts"; diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 06c4d684f..f9a0eb185 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -350,17 +350,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_3IFB_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_3IFB_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_3IFB_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 376e846f2..f7e25ae7c 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -343,17 +343,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_aaf_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_aaf_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_aaf_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index c9e6a144f..8e858770c 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -19,12 +19,15 @@ _uniform = _baseUniform; _helmet = _baseHelmet; _glasses = _baseGlasses; +_rig = _standardRig + +// Uncomment this block if you are adding an alternate loadout. See relevant block in description.ext for more info. // Select the default rig -_rig = switch (f_param_loadouts) do { - case 0:{_lightRig}; - case 1:{_standardRig}; - default{_standardRig}; -}; +// _rig = switch (f_param_loadouts) do { +// case 0:{_lightRig}; +// case 1:{_standardRig}; +// default{_standardRig}; +// }; // Flip through unit to assign specialized uniforms diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 3df892638..98761286c 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -362,17 +362,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_csat_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_csat_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_csat_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 5722f8baf..0ff0ecb5e 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -358,17 +358,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_csatPacific_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_csatPacific_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_csatPacific_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index ea029c08c..d57fd65a0 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -351,17 +351,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_ctrg_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_ctrg_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_ctrg_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 39571cb45..4afad896e 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -349,17 +349,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_fia_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_fia_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_fia_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index 518a20766..e5e45d955 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -344,17 +344,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_ldf_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_ldf_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_ldf_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index c38caae3a..8088d9332 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -348,17 +348,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_nato_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_nato_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_nato_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index d6c163a26..d9e6d33bf 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -348,17 +348,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_natoPacific_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_natoPacific_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_natoPacific_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 89f3ca921..7b854b7ef 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -346,17 +346,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_natoWoodland_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_natoWoodland_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_natoWoodland_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index e5e2ec726..d28ae323d 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -374,17 +374,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_npr_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_npr_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { +// if (_loadout == 1) then { #include "f_assignGear_npr_standard.sqf" -}; +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 9a0140f18..73dd63910 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -357,17 +357,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_spetsnaz_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_spetsnaz_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { - #include "f_assignGear_spetsnaz_standard.sqf" -}; +// if (_loadout == 1) then { +// #include "f_assignGear_spetsnaz_standard.sqf" +// }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index 83f3d5bc9..80bd6a956 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -341,17 +341,18 @@ if (_isMan) then { // SELECT LOADOUT // Pick the appropriate loadout depending on the parameter +// To use an alternate loadout parameter, you must uncomment this block, uncomment the relevant block in description.ext, and add an assignGear loadout file as named below. -_loadout = f_param_loadouts; +// _loadout = f_param_loadouts; // Light Loadout -if (_loadout == 0) then { - #include "f_assignGear_syndikat_light.sqf" -}; +// if (_loadout == 0) then { +// #include "f_assignGear_syndikat_light.sqf" +// }; // Standard Loadout -if (_loadout == 1) then { - #include "f_assignGear_syndikat_standard.sqf" -}; +// if (_loadout == 1) then { + #include "f_assignGear_syndikat_standard.sqf" +// }; // ==================================================================================== From 0c7496ebdcfdc1fedc414b330b2aa173eb5862d9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 19 Jan 2021 03:43:14 +0000 Subject: [PATCH 227/407] Add light crew classes The new classes are largely the same as existing vic crew classes, but receive default uniforms and get carbines rather than SMGs. --- f/assignGear/f_assignGear_3IFB_standard.sqf | 23 +++++++++++++++++++ f/assignGear/f_assignGear_aaf_standard.sqf | 23 +++++++++++++++++++ .../f_assignGear_csatPacific_standard.sqf | 23 +++++++++++++++++++ f/assignGear/f_assignGear_csat_standard.sqf | 23 +++++++++++++++++++ f/assignGear/f_assignGear_ctrg_standard.sqf | 23 +++++++++++++++++++ f/assignGear/f_assignGear_fia_standard.sqf | 23 +++++++++++++++++++ f/assignGear/f_assignGear_ldf_standard.sqf | 23 +++++++++++++++++++ .../f_assignGear_natoPacific_standard.sqf | 23 +++++++++++++++++++ .../f_assignGear_natoWoodland_standard.sqf | 23 +++++++++++++++++++ f/assignGear/f_assignGear_nato_standard.sqf | 23 +++++++++++++++++++ f/assignGear/f_assignGear_npr_standard.sqf | 23 +++++++++++++++++++ .../f_assignGear_spetsnaz_standard.sqf | 23 +++++++++++++++++++ .../f_assignGear_syndikat_standard.sqf | 23 +++++++++++++++++++ 13 files changed, 299 insertions(+) diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index d34b55b67..e33d6e351 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 2]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index d585cd4f0..7b63f8a72 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 6a98215ce..b4e8040ba 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 688379adf..ff2baa101 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 4e3bbae37..1bc95e688 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -430,6 +430,29 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Gunner Loadout: case "vg": { diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 0bf0a5245..bbd55242a 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -420,6 +420,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_ldf_standard.sqf b/f/assignGear/f_assignGear_ldf_standard.sqf index 7fedfbba4..4716722a6 100644 --- a/f/assignGear/f_assignGear_ldf_standard.sqf +++ b/f/assignGear/f_assignGear_ldf_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index b800d5930..44bb15915 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -433,6 +433,29 @@ switch (_typeofUnit) do _unit addmagazines [_smgmag, 4]; _unit addweapon "Rangefinder"; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Gunner Loadout: case "vg": { diff --git a/f/assignGear/f_assignGear_natoWoodland_standard.sqf b/f/assignGear/f_assignGear_natoWoodland_standard.sqf index 6a0b699c8..54d810676 100644 --- a/f/assignGear/f_assignGear_natoWoodland_standard.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 291eca39b..886e8c894 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf index 0fe581abb..3ecf248bd 100644 --- a/f/assignGear/f_assignGear_npr_standard.sqf +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -423,6 +423,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf index 30359e872..d4b286da7 100644 --- a/f/assignGear/f_assignGear_spetsnaz_standard.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -424,6 +424,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 1fa28c851..806d4a185 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -420,6 +420,29 @@ switch (_typeofUnit) do _unit addWeapon "Rangefinder"; _unit addmagazines [_SNrifleMag, 3]; }; +// Light Vehicle Crew Loadout: + case "lvc": + { + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addweapon _binoculars; + }; +// Light Vehicle Driver Loadout: + case "lvd": + { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit addBackpack _bag; + _unit addmagazines [_carbinemag, 1]; + _unit addweapon _carbine; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenadeblue, 3]; + _unit addmagazines [_carbinemag, 4]; + _unit addItem "ToolKit"; + _unit addweapon _binoculars; + }; // Vehicle Commander Loadout: case "vc": { From 34e3118478d108b542d95ab5f4dcbab9624d3bfd Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 19 Jan 2021 03:46:01 +0000 Subject: [PATCH 228/407] List new classes in main files --- f/assignGear/f_assignGear_3IFB.sqf | 2 ++ f/assignGear/f_assignGear_aaf.sqf | 2 ++ f/assignGear/f_assignGear_csat.sqf | 2 ++ f/assignGear/f_assignGear_csatPacific.sqf | 2 ++ f/assignGear/f_assignGear_ctrg.sqf | 2 ++ f/assignGear/f_assignGear_fia.sqf | 2 ++ f/assignGear/f_assignGear_ldf.sqf | 2 ++ f/assignGear/f_assignGear_nato.sqf | 2 ++ f/assignGear/f_assignGear_natoPacific.sqf | 2 ++ f/assignGear/f_assignGear_natoWoodland.sqf | 2 ++ f/assignGear/f_assignGear_npr.sqf | 2 ++ f/assignGear/f_assignGear_spetsnaz.sqf | 2 ++ f/assignGear/f_assignGear_syndikat.sqf | 2 ++ 13 files changed, 26 insertions(+) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 06c4d684f..cb3f97740 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 376e846f2..97487dbd8 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 3df892638..3cddc3434 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 5722f8baf..72a5e188c 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index ea029c08c..f6d24f098 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 39571cb45..b40c25985 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index 518a20766..e050abfcc 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index c38caae3a..0d21e6d81 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index d6c163a26..f5c40a6fd 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 89f3ca921..bfa80f2ea 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index e5e2ec726..3f978813e 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 9a0140f18..8611e8254 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index 83f3d5bc9..2802e72dc 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -34,6 +34,8 @@ // hsamag - heavy SAM assistant gunner (deployable) // sn - sniper // sp - spotter (for sniper) +// lvc - light vehicle crew +// lvd - light vehicle driver (repair) // vc - vehicle commander // vg - vehicle gunner // vd - vehicle driver (repair) From c02edeae34731a4d4e09e5348d02f162e2d7d9d0 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 19 Jan 2021 03:48:49 +0000 Subject: [PATCH 229/407] Switch template technical crews to new classes --- mission.sqm | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/mission.sqm b/mission.sqm index f801eda00..73439f034 100644 --- a/mission.sqm +++ b/mission.sqm @@ -10400,7 +10400,7 @@ class Mission class Attributes { skill=0.60000002; - init="[this,""npr""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; name="UnitNPR_IFV1_D"; description="NPR Technical 1 Driver (Repair)"; isPlayable=1; @@ -10445,7 +10445,7 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[this,""npr""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; name="UnitNPR_IFV1_G"; description="NPR Technical 1 Gunner"; isPlayable=1; @@ -10578,7 +10578,7 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[this,""npr""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; name="UnitNPR_IFV2_G"; description="NPR Technical 2 Gunner"; isPlayable=1; @@ -10622,7 +10622,7 @@ class Mission class Attributes { skill=0.60000002; - init="[this,""npr""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; name="UnitNPR_IFV2_D"; description="NPR Technical 2 Driver (Repair)"; isPlayable=1; @@ -36056,7 +36056,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; + init="[""lvd"",this] call f_fnc_assignGear;"; name="UnitFIA_IFV1_D"; description="FIA Technical 1 Driver (Repair)"; isPlayable=1; @@ -36101,7 +36101,7 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; + init="[""lvc"",this] call f_fnc_assignGear;"; name="UnitFIA_IFV1_G"; description="FIA Technical 1 Gunner"; isPlayable=1; @@ -36215,7 +36215,7 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; + init="[""lvc"",this] call f_fnc_assignGear;"; name="UnitFIA_IFV2_G"; description="FIA Technical 2 Gunner"; isPlayable=1; @@ -36259,7 +36259,7 @@ class Mission class Attributes { skill=0.60000002; - init="[""vd"",this] call f_fnc_assignGear;"; + init="[""lvd"",this] call f_fnc_assignGear;"; name="UnitFIA_IFV2_D"; description="FIA Technical 2 Driver (Repair)"; isPlayable=1; @@ -41687,7 +41687,7 @@ class Mission class Attributes { rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; + init="[""lvc"",this] call f_fnc_assignGear;"; name="UnitSyn_IFV1_G"; description="Syndikat Technical 1 Gunner"; isPlayable=1; @@ -41730,7 +41730,7 @@ class Mission flags=4; class Attributes { - init="[""vd"",this] call f_fnc_assignGear;"; + init="[""lvd"",this] call f_fnc_assignGear;"; name="UnitSyn_IFV1_D"; description="Syndikat Technical 1 Driver (Repair)"; isPlayable=1; @@ -41862,7 +41862,7 @@ class Mission class Attributes { rank="CORPORAL"; - init="[""vg"",this] call f_fnc_assignGear;"; + init="[""lvc"",this] call f_fnc_assignGear;"; name="UnitSyn_IFV2_G"; description="Syndikat Technical 2 Gunner"; isPlayable=1; @@ -41905,7 +41905,7 @@ class Mission flags=4; class Attributes { - init="[""vd"",this] call f_fnc_assignGear;"; + init="[""lvd"",this] call f_fnc_assignGear;"; name="UnitSyn_IFV2_D"; description="Syndikat Technical 2 Driver (Repair)"; isPlayable=1; @@ -50095,7 +50095,7 @@ class Mission class Attributes { skill=0.60000002; - init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; name="Unit3IFB_IFV1_D"; description="3IFB Technical 1 Driver (Repair)"; isPlayable=1; @@ -50140,7 +50140,7 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; name="Unit3IFB_IFV1_G"; description="3IFB Technical 1 Gunner"; isPlayable=1; @@ -50254,7 +50254,7 @@ class Mission { skill=0.60000002; rank="CORPORAL"; - init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vg"",this] call f_fnc_assignGear;"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; name="Unit3IFB_IFV2_G"; description="3IFB Technical 2 Gunner"; isPlayable=1; @@ -50298,7 +50298,7 @@ class Mission class Attributes { skill=0.60000002; - init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""vd"",this] call f_fnc_assignGear;"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; name="Unit3IFB_IFV2_D"; description="3IFB Technical 2 Driver (Repair)"; isPlayable=1; From 08f33c68fc9cd42dc73576c86d54c47e928e0b49 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 5 Feb 2021 16:19:26 +0000 Subject: [PATCH 230/407] Add parameter to run assignGear AI The function now accepts an optional parameter which automatically runs assignGear AI on the spawned units. --- ws_fnc/AI/fn_createGarrison.sqf | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index cec98c0ca..89c601054 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -11,7 +11,7 @@ Minimal: Full: [center,radius,side,number,number,array,bool] call ws_fnc_createGarrison or -[center,radius,side,number,number,string,bool] call ws_fnc_createGarrison +[center,radius,side,number,number,string,bool,string] call ws_fnc_createGarrison NOTE Make sure to call this only on the server or headless client. The function itself does not check where it is run. @@ -26,6 +26,7 @@ PARAMETERS: 6. Array of classes to spawn | OPTIONAL - array w. strings - default are classes defined below 6. ALTERNATIVE: Faction to spawn | OPTIONAL - string - faction name 7. Only garrison empty buildings | OPTIONAL - bool - true, if only empty buildings should be garrisoned. This is useful for overlappnig garrison radii. +8. assignGear AI faction to useful | OPTIONAL - string - faction name listed in assignGear.sqf. If this is defined, assignGear AI will be run on the spawned units automatically using this faction. EXAMPLE ["mkrOutpost",50,resistance] call ws_fnc_createGarrison; @@ -37,10 +38,11 @@ The classes of the units will be taken from the default array (by default light Place 50 NATO soldiers in buildings in a 150m radius around the Object (unit) named UnitNATO_General. All of them will be either AT or Grenadier. Only fill the buildings to 70% percent. -["mkrOutpost",50,opfor,0,0.8,"gendarmerie"] call ws_fnc_createGarrison; +["mkrOutpost",50,opfor,0,0.8,"gendarmerie","3ifb"] call ws_fnc_createGarrison; This will create units in buildings 50m around the marker named "mkrOutpost". The number of units will the the number of buildings in the radius divided by 4. The classes of the units will be Gendarmerie and their side opfor. +AssignGear AI will be run on the spawned units, giving them the loadouts defined for the "3ifb" faction in assignGear.sqf. RETURNS array of created units @@ -57,7 +59,8 @@ params [ ["_int", 0, [0]], ["_thrsh", 0.8, [0]], ["_classes", [], ["", []]], - ["_onlyEmptyBuildings", false, [false]] + ["_onlyEmptyBuildings", false, [false]], + ["_assignGearFaction", "none", [""]] ]; //Process radius paramter @@ -211,11 +214,17 @@ for "_x" from 1 to _int do { // Set new variables _u setVariable ["ws_bpos",_bp,true]; _b setVariable ["ws_bUnits",_bu + 1,true]; - _b setVariable ["ws_bPosLeft",_bpl,true]; + _b setVariable ["ws_bPosLeft",_bpl,true]; if (_debug) then {_mkr = createMarker [format ["%1-bpos",_u],getPos _u];_mkr setMarkerSize [0.5,0.5];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorGreen";}; }; +// If assignGear AI parameter is enabled, set the faction on the spawned units then pass them to assignGear AI. +if (_assignGearFaction != "none") then { + [units _grp,_assignGearFaction] call f_fnc_setVirtualFaction; + [units _grp] execVM "f\assignGear\f_assignGear_AI.sqf"; +}; + // Prevent the group leader to issue attack orders to the members, improving their attack from buildings _grp enableAttack false; From 6c2a1425bf648b36e2427cc83c7a061bc19e5c1f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 5 Feb 2021 16:27:50 +0000 Subject: [PATCH 231/407] add Spetsnaz and LDF default class cases --- ws_fnc/AI/fn_createGarrison.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index 89c601054..83ee6c29c 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -107,9 +107,15 @@ if (_classes isEqualType "") then { case (_classes in ["opf_t_f","csatpacific"]): { // CSAT Pacific ["O_T_Soldier_F"] }; + case (_classes in ["opf_r_f","spetsnaz"]): { // Spetsnaz + ["O_R_JTAC_F"] + }; case (_classes in ["ind_f","aaf"]): { // AAF ["I_Soldier_lite_F","I_Soldier_F"] }; + case (_classes in ["ind_e_f","ldf"]): { // LDF + ["I_E_Soldier_lite_F","I_E_Soldier_F"] + }; case (_classes in ["blu_g_f","opf_g_f","ind_g_f","fia"]): { // FIA ["B_G_Soldier_lite_F","B_G_Soldier_F"] }; From 565d22e1c0afefb3ddc6731e8cdb6bfffc0f69ab Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 5 Feb 2021 16:44:30 +0000 Subject: [PATCH 232/407] Improve default class arrays The previous default arrays would only spawn riflemen. This expands the defaults to spawn a reasonable mix of fireteam members. --- ws_fnc/AI/fn_createGarrison.sqf | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index 83ee6c29c..cda83cf1f 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -86,44 +86,45 @@ if (count _classes == 0) then { }; // To change which units are spawned for which faction, replace the array or add additional units to it +// Default arrays (except Gendarmerie): 3x Rifleman, 1x LAT, 1x AR, 1x TL, 1x medic. Units are randomly selected from the array so this represents probabilities, not a fixed group spawn. if (_classes isEqualType "") then { _classes = toLower _classes; _classes = switch (true) do { case (_classes in ["blu_f","nato"]): { // NATO - ["B_Soldier_lite_F","B_Soldier_F"] + ["B_Soldier_lite_F","B_Soldier_F","B_Soldier_LAT2_F","B_Soldier_AR_F","B_Soldier_TL_F","B_Soldier_F","B_medic_F"] }; case (_classes in ["blu_t_f","natopacific"]): { // NATO Pacific - ["B_T_Soldier_F"] + ["B_T_Soldier_F","B_T_Soldier_F","B_T_Soldier_LAT2_F","B_T_Soldier_AR_F","B_T_Soldier_TL_F","B_T_Soldier_F","B_T_Medic_F"] }; case (_classes in ["blu_ctrg_f","ctrg"]): { // CTRG - ["B_CTRG_Soldier_tna_F"] + ["B_CTRG_Soldier_tna_F","B_CTRG_Soldier_tna_F","B_CTRG_Soldier_LAT2_tna_F","B_CTRG_Soldier_AR_tna_F","B_CTRG_Soldier_TL_tna_F","B_CTRG_Soldier_tna_F","B_CTRG_Medic_tna_F"] }; case (_classes in ["blu_gen_f","gendarmerie"]): { // Gendarmerie ["B_GEN_Soldier_F"] }; case (_classes in ["opf_f","csat"]): { // CSAT - ["O_Soldier_lite_F","O_Soldier_F"] + ["O_Soldier_lite_F","O_Soldier_F","O_Soldier_LAT_F","O_Soldier_AR_F","O_Soldier_TL_F","O_Soldier_F","O_medic_F"] }; case (_classes in ["opf_t_f","csatpacific"]): { // CSAT Pacific - ["O_T_Soldier_F"] + ["O_T_Soldier_F","O_T_Soldier_F","O_T_Soldier_LAT_F","O_T_Soldier_AR_F","O_T_Soldier_TL_F","O_T_Soldier_F","O_T_Medic_F"] }; case (_classes in ["opf_r_f","spetsnaz"]): { // Spetsnaz - ["O_R_JTAC_F"] + ["O_R_JTAC_F","O_R_Soldier_LAT_F","O_R_Soldier_AR_F","O_R_Soldier_TL_F","O_R_JTAC_F","O_R_JTAC_F","O_R_medic_F"] }; case (_classes in ["ind_f","aaf"]): { // AAF - ["I_Soldier_lite_F","I_Soldier_F"] + ["I_Soldier_lite_F","I_Soldier_F","I_Soldier_LAT_F","I_Soldier_AR_F","I_Soldier_TL_F","I_Soldier_F","I_medic_F"] }; case (_classes in ["ind_e_f","ldf"]): { // LDF - ["I_E_Soldier_lite_F","I_E_Soldier_F"] + ["I_E_Soldier_lite_F","I_E_Soldier_F","I_E_Soldier_LAT_F","I_E_Soldier_AR_F","I_E_Soldier_TL_F","I_E_Soldier_F","I_E_Medic_F"] }; case (_classes in ["blu_g_f","opf_g_f","ind_g_f","fia"]): { // FIA - ["B_G_Soldier_lite_F","B_G_Soldier_F"] + ["B_G_Soldier_lite_F","B_G_Soldier_F","B_G_Soldier_LAT_F","B_G_Soldier_AR_F","B_G_Soldier_TL_F","B_G_Soldier_F","B_G_medic_F"] }; case (_classes in ["ind_c_f","syndikatparamilitary"]): { // Syndikat Paramilitary - ["I_C_Soldier_Para_1_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_7_F"] + ["I_C_Soldier_Para_1_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_7_F","I_C_Soldier_Para_5_F","I_C_Soldier_Para_4_F","I_C_Soldier_Para_3_F","I_C_Soldier_Para_6_F"] }; case (_classes in ["syndikatbandit"]): { // Syndikat Bandit - ["I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_5_F"] + ["I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_5_F","I_C_Soldier_Bandit_2_F","I_C_Soldier_Bandit_3_F","I_C_Soldier_Bandit_6_F","I_C_Soldier_Bandit_1_F"] }; case (_classes in ["civ_f","civ_idap_f","civilian"]): { // Civilian, IDAP [""] From 48a33600557fc8bb9aeafd22621e61297c682d87 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 5 Feb 2021 16:48:40 +0000 Subject: [PATCH 233/407] Add spawned units to Zeus --- ws_fnc/AI/fn_createGarrison.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index cda83cf1f..39c91dddf 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -238,5 +238,10 @@ _grp enableAttack false; // Set the group's attack mode and stance [_grp,"AWARE","YELLOW"] call ws_fnc_setAIMode; +// Add the spawned units as editable units to any extant Zeus +{ + _x addCuratorEditableObjects [units _grp, true]; +} foreach allCurators; + // Return created unis (units _grp) From 521427f9ac81d387588fb8cd56ab2965a97aee2e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 5 Feb 2021 16:54:03 +0000 Subject: [PATCH 234/407] fixed spelling mistakes and formatting oopsies --- ws_fnc/AI/fn_createGarrison.sqf | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index 39c91dddf..05b4d5cb4 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -1,6 +1,7 @@ -/*ws_fnc_createGarrison +/* ws_fnc_createGarrison By Wolfenswan [FA]: wolfenswanarps@gmail.com | folkarps.com Usage Guide: http://www.folkarps.com/forum/viewtopic.php?f=48&t=1224 +With small improvements from the Folk ARPS F3 maintenance team FEATURE Populates the buildings in the given area with the given number of units @@ -26,7 +27,7 @@ PARAMETERS: 6. Array of classes to spawn | OPTIONAL - array w. strings - default are classes defined below 6. ALTERNATIVE: Faction to spawn | OPTIONAL - string - faction name 7. Only garrison empty buildings | OPTIONAL - bool - true, if only empty buildings should be garrisoned. This is useful for overlappnig garrison radii. -8. assignGear AI faction to useful | OPTIONAL - string - faction name listed in assignGear.sqf. If this is defined, assignGear AI will be run on the spawned units automatically using this faction. +8. assignGear AI faction to use | OPTIONAL - string - faction name listed in assignGear.sqf. If this is defined, assignGear AI will be run on the spawned units automatically using this faction. EXAMPLE ["mkrOutpost",50,resistance] call ws_fnc_createGarrison; @@ -63,7 +64,7 @@ params [ ["_assignGearFaction", "none", [""]] ]; -//Process radius paramter +// Process radius paramter if (_radius isEqualType 0) then { _radius = [0, _radius]; }; @@ -132,13 +133,13 @@ if (_classes isEqualType "") then { }; }; -//prepare and check buildings: +// Prepare and check buildings: -//check if _area is a list of buildings, if not: find buildings +// Check if _area is a list of buildings, if not: find buildings _buildings = []; if ( typename _area == "ARRAY" && {count _area > 0} && {typename (_area select 0) == "OBJECT"} && {_area select 0 isKindOf "House"} ) then { _buildings = _area; - //Set BPos if not already set: + // Set BPos if not already set: { [_x] call ws_fnc_getBPos } forEach _buildings; } else { // Collect buildings and assign building positions @@ -151,11 +152,11 @@ if ( typename _area == "ARRAY" && {count _area > 0} && {typename (_area select 0 }; if (_onlyEmptyBuildings) then { - //only use buildings that haven't been garrisoned yet! (this is useful when having overlapping garrison areas) + // Only use buildings that haven't been garrisoned yet! (this is useful when having overlapping garrison areas) _buildings = _buildings select { (_x getVariable ["ws_bunits",0]) == 0 }; }; -//remove buildings without building positions +// Remove buildings without building positions _buildings = _buildings select { count (_x getVariable ["ws_bPos", []]) > 0}; if (count _buildings == 0) exitWith { @@ -164,7 +165,7 @@ if (count _buildings == 0) exitWith { }; [] }; -//Note: At this point we have at least one building with at least one building position +// Note: At this point we have at least one building with at least one building position // If no amount of units is set, calculate default if (_int == 0) then { @@ -214,7 +215,7 @@ for "_x" from 1 to _int do { _u setPosATL _bp; [_u] joinsilent _grp; //otherwise the side might be wrong dostop _u; - //_u disableAI "PATH"; + // _u disableAI "PATH"; _u spawn ws_fnc_setInsidePos; // SetInsidePos is fairly expensive, thus spawned From 9a8a62afa599bd82737613c67013ff3c3a78de30 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 13 Feb 2021 05:48:56 +0000 Subject: [PATCH 235/407] Fix typo in 3IFB silencer class --- f/assignGear/f_assignGear_3IFB.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 06c4d684f..296be038b 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -71,7 +71,7 @@ _attach1 = ""; // IR Laser _attach2 = "acc_flashlight"; // Flashlight -_silencer1 = "mmuzzle_snds_B"; // 7.62 suppressor +_silencer1 = "muzzle_snds_B"; // 7.62 suppressor _silencer2 = "muzzle_snds_H"; // 6.5 suppressor _scope1 = "optic_ACO"; // ACO From 81fc0e7a64c965ed67cee23489e24463f19d11a4 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 13 Feb 2021 05:54:43 +0000 Subject: [PATCH 236/407] Fix 3IFB attach1 Having a blank attach1 by default is silly. To preserve the spirit of not having lots of laser pointers for 3IFB, I've removed them from the ftl assignGear class. --- f/assignGear/f_assignGear_3IFB.sqf | 2 +- f/assignGear/f_assignGear_3IFB_standard.sqf | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 296be038b..0981e8e59 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -68,7 +68,7 @@ // GENERAL EQUIPMENT USED BY MULTIPLE CLASSES // ATTACHMENTS - PRIMARY -_attach1 = ""; // IR Laser +_attach1 = "acc_pointer_IR"; // IR Laser _attach2 = "acc_flashlight"; // Flashlight _silencer1 = "muzzle_snds_B"; // 7.62 suppressor diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index d34b55b67..1e33719a6 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -65,7 +65,6 @@ switch (_typeofUnit) do _unit addmagazines [_glriflemag_tr, 2]; _unit addmagazines [_glmag, 5]; _unit addmagazines [_glsmokewhite, 3]; - _attachments pushback (_attach1); // Adds laser pointer, keeps default scope _unit addWeapon "Rangefinder"; _unit addmagazines [_smokegrenadegreen, 2]; }; From 6aa90da5a750201daf8ad5fc65f8c5eca2d97946 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Feb 2021 20:59:03 +0000 Subject: [PATCH 237/407] add CLS assignGear role Similar loadout to medic but has rifle, no medkit, no medic trait, a bunch of FAKs, and the new special trait --- f/assignGear/f_assignGear_3IFB.sqf | 1 + f/assignGear/f_assignGear_3IFB_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_aaf.sqf | 1 + f/assignGear/f_assignGear_aaf_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_csat.sqf | 1 + f/assignGear/f_assignGear_csatPacific.sqf | 1 + .../f_assignGear_csatPacific_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_csat_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_ctrg.sqf | 1 + f/assignGear/f_assignGear_ctrg_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_fia.sqf | 1 + f/assignGear/f_assignGear_fia_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_ldf.sqf | 1 + f/assignGear/f_assignGear_ldf_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_nato.sqf | 1 + f/assignGear/f_assignGear_natoPacific.sqf | 1 + .../f_assignGear_natoPacific_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_natoWoodland.sqf | 1 + .../f_assignGear_natoWoodland_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_nato_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_npr.sqf | 1 + f/assignGear/f_assignGear_npr_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_spetsnaz.sqf | 1 + f/assignGear/f_assignGear_spetsnaz_standard.sqf | 15 +++++++++++++++ f/assignGear/f_assignGear_syndikat.sqf | 1 + f/assignGear/f_assignGear_syndikat_standard.sqf | 15 +++++++++++++++ 26 files changed, 208 insertions(+) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index 06c4d684f..9d713199b 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index d34b55b67..b2e4a8ccd 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 376e846f2..54c5be551 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index d585cd4f0..2e28ac908 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 3df892638..0256a7ce0 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 5722f8baf..a4a698848 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 6a98215ce..d634d0234 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 688379adf..beb719984 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index ea029c08c..724ff0be0 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 4e3bbae37..566312b03 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -143,6 +143,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 39571cb45..f871c2574 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 0bf0a5245..d4b632e78 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -143,6 +143,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index 518a20766..ab8c11439 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_ldf_standard.sqf b/f/assignGear/f_assignGear_ldf_standard.sqf index 7fedfbba4..67d57326e 100644 --- a/f/assignGear/f_assignGear_ldf_standard.sqf +++ b/f/assignGear/f_assignGear_ldf_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index c38caae3a..ed2e9ce32 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index d6c163a26..a9144b004 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index b800d5930..f5a0b6f69 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 89f3ca921..dae2cc854 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_natoWoodland_standard.sqf b/f/assignGear/f_assignGear_natoWoodland_standard.sqf index 6a0b699c8..e9a759ca9 100644 --- a/f/assignGear/f_assignGear_natoWoodland_standard.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 291eca39b..689201aaf 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index e5e2ec726..c2f28cac4 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf index 0fe581abb..c76afefd7 100644 --- a/f/assignGear/f_assignGear_npr_standard.sqf +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -146,6 +146,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 9a0140f18..62bd871ae 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf index 30359e872..82a1bbc7b 100644 --- a/f/assignGear/f_assignGear_spetsnaz_standard.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -147,6 +147,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index 83f3d5bc9..677171906 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -9,6 +9,7 @@ // co - commander // dc - deputy commander / squad leader // m - medic +// cls - combat life saver // ftl - fire team leader // ar - automatic rifleman // aar - assistant automatic rifleman diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 1fa28c851..0c141f18f 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -143,6 +143,21 @@ switch (_typeofUnit) do _unit addItem _medkit; _unit addItem _firstaid; }; +// Combat Life Saver Loadout: + case "cls": + { + _unit setUnitTrait ["f3_cls",true,true]; // Used in F3 CLS Event Handler + _unit addBackpack _bag; + _unit addmagazines [_riflemag, 1]; + _unit addweapon _rifle; + _unit addItem _firstaid; + _unit addmagazines [_smokegrenade, 3]; + _unit addmagazines [_riflemag, 4]; + _unit addmagazines [_riflemag_tr, 2]; + for "_i" from 1 to 5 do { + _unit addItem _firstaid; + }; + }; // Designated Marksman Loadout: case "dm": { From e7071bece76fcb3f82f633a9f0e5406cf5049594 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Feb 2021 21:03:18 +0000 Subject: [PATCH 238/407] Add CLS support to team colours module --- f/setTeamColours/f_setTeamColours.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/setTeamColours/f_setTeamColours.sqf b/f/setTeamColours/f_setTeamColours.sqf index 857aa61be..5048b3c4d 100644 --- a/f/setTeamColours/f_setTeamColours.sqf +++ b/f/setTeamColours/f_setTeamColours.sqf @@ -22,7 +22,7 @@ private _leaders = ["_FTL"]; // Set suffixes for each color private _colors = [ ["MAIN", [] ], - ["RED", ["_AT","_R1","_R2"] ], + ["RED", ["_AT","_R1","_R2","_CLS"] ], ["BLUE", ["_AR1","_AR2","_FTL"] ], ["YELLOW", [] ], ["GREEN", [] ] From aec32dbad9ded248c21e1289a20cba06e6f764a6 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 28 Feb 2021 16:59:36 +0000 Subject: [PATCH 239/407] Add Combat Life Saver EH Add the CLS event handler and a means to enable it in init.sqf. --- f/medical/f_CLSEH.sqf | 39 +++++++++++++++++++++++++++++++++++++++ init.sqf | 8 ++++++++ 2 files changed, 47 insertions(+) create mode 100644 f/medical/f_CLSEH.sqf diff --git a/f/medical/f_CLSEH.sqf b/f/medical/f_CLSEH.sqf new file mode 100644 index 000000000..a98dd7f55 --- /dev/null +++ b/f/medical/f_CLSEH.sqf @@ -0,0 +1,39 @@ +// FA3 - Combat Life Saver Event Handler +// This component adds an event handler for use with the Combat Life Saver assignGear class. Units with the f3_cls trait can provide full heals using FAKs. +// Enable this component in init.sqf +// For credits and more information see https://github.com/folkarps/F3/wiki + +// Make sure the player can be broadcast properly +_unit = player; + +// Add the EH +[_unit, ["HandleHeal", { + _this spawn { + params ["_injured", "_healer","_isMedic"]; + + + + // Check whether the person healing the player is a CLS + if (_healer getUnitTrait "f3_cls") then { + + // DEBUG + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f_CLSEH.sqf): %1 is CLS healing %2",(name _healer),(name _injured)]; + }; + + // Wait until the standard heal has been applied + waitUntil {damage _injured <= 0.25}; + // Apply a full heal + _injured setDamage 0; + + // DEBUG + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f_CLSEH.sqf): %1 healed to %2 damage",(name _injured),(damage _injured)]; + }; + }; + }; +// Upon initialising, the player broadcasts an instruction to all connected clients, including themselves, to add the EH on the broadcasting player. +// This instruction is added to the JIP queue, so any player joining in progress automatically receives the instructions from all existing players - and then broadcasts their own instruction. +}]] remoteExec ["addEventHandler",0,true]; diff --git a/init.sqf b/init.sqf index c994b8b10..545ba604a 100644 --- a/init.sqf +++ b/init.sqf @@ -99,6 +99,14 @@ f_script_briefing = [] spawn f_fnc_createBriefing; // ==================================================================================== +// F3 - Combat Life Saver EH +// Credits and documentation: https://github.com/folkarps/F3/wiki +// Uncomment the line below to enable the Combat Life Saver heal handler. Does nothing unless you have player units using the "cls" assignGear role. + +// [] execVM "f\medical\f_CLSEH.sqf"; + +// ==================================================================================== + // F3 - AI Unit Caching // Credits and documentation: https://github.com/folkarps/F3/wiki From 1b454c03a07793616852ecea8c9ae37d0c6fcb80 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 28 Feb 2021 17:40:33 +0000 Subject: [PATCH 240/407] Add frags to CLS class --- f/assignGear/f_assignGear_3IFB_standard.sqf | 3 ++- f/assignGear/f_assignGear_aaf_standard.sqf | 3 ++- f/assignGear/f_assignGear_csatPacific_standard.sqf | 3 ++- f/assignGear/f_assignGear_csat_standard.sqf | 3 ++- f/assignGear/f_assignGear_ctrg_standard.sqf | 3 ++- f/assignGear/f_assignGear_fia_standard.sqf | 3 ++- f/assignGear/f_assignGear_ldf_standard.sqf | 3 ++- f/assignGear/f_assignGear_natoPacific_standard.sqf | 3 ++- f/assignGear/f_assignGear_natoWoodland_standard.sqf | 3 ++- f/assignGear/f_assignGear_nato_standard.sqf | 3 ++- f/assignGear/f_assignGear_npr_standard.sqf | 3 ++- f/assignGear/f_assignGear_spetsnaz_standard.sqf | 3 ++- f/assignGear/f_assignGear_syndikat_standard.sqf | 3 ++- 13 files changed, 26 insertions(+), 13 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index b2e4a8ccd..c8c62ba61 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index 2e28ac908..75d217bd0 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index d634d0234..e0128089c 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index beb719984..113b54395 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 566312b03..db9017ae0 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -154,9 +154,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index d4b632e78..4799a0ed0 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -154,9 +154,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_ldf_standard.sqf b/f/assignGear/f_assignGear_ldf_standard.sqf index 67d57326e..ca26b4561 100644 --- a/f/assignGear/f_assignGear_ldf_standard.sqf +++ b/f/assignGear/f_assignGear_ldf_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index f5a0b6f69..c38db8157 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_natoWoodland_standard.sqf b/f/assignGear/f_assignGear_natoWoodland_standard.sqf index e9a759ca9..e9045b620 100644 --- a/f/assignGear/f_assignGear_natoWoodland_standard.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 689201aaf..956b5ffbc 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf index c76afefd7..0067abae1 100644 --- a/f/assignGear/f_assignGear_npr_standard.sqf +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -157,9 +157,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf index 82a1bbc7b..f1b1c7938 100644 --- a/f/assignGear/f_assignGear_spetsnaz_standard.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -158,9 +158,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 0c141f18f..62d887057 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -154,9 +154,10 @@ switch (_typeofUnit) do _unit addmagazines [_smokegrenade, 3]; _unit addmagazines [_riflemag, 4]; _unit addmagazines [_riflemag_tr, 2]; - for "_i" from 1 to 5 do { + for "_i" from 1 to 6 do { _unit addItem _firstaid; }; + _unit addmagazines [_grenade, 2]; }; // Designated Marksman Loadout: case "dm": From 176c7f7e9e14dc19796e1d5b9ea22d079bace849 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 1 Mar 2021 00:30:53 +0000 Subject: [PATCH 241/407] minor fixes --- f/medical/f_CLSEH.sqf | 50 +++++++++++++++++++++---------------------- init.sqf | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/f/medical/f_CLSEH.sqf b/f/medical/f_CLSEH.sqf index a98dd7f55..f96072d3a 100644 --- a/f/medical/f_CLSEH.sqf +++ b/f/medical/f_CLSEH.sqf @@ -7,33 +7,33 @@ _unit = player; // Add the EH -[_unit, ["HandleHeal", { - _this spawn { - params ["_injured", "_healer","_isMedic"]; - +[_unit, ["HandleHeal", { + _this spawn { + params ["_injured", "_healer","_isMedic"]; + + + // Check whether the person healing the player is a CLS + if (_healer getUnitTrait "f3_cls") then { - // Check whether the person healing the player is a CLS - if (_healer getUnitTrait "f3_cls") then { - - // DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (f_CLSEH.sqf): %1 is CLS healing %2",(name _healer),(name _injured)]; - }; - - // Wait until the standard heal has been applied - waitUntil {damage _injured <= 0.25}; - // Apply a full heal - _injured setDamage 0; + // DEBUG + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f_clsEH.sqf): %1 is CLS healing %2",(name _healer),(name _injured)]; + }; - // DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (f_CLSEH.sqf): %1 healed to %2 damage",(name _injured),(damage _injured)]; - }; - }; - }; + // Wait until the standard heal has been applied + waitUntil {damage _injured <= 0.2501}; + // Apply a full heal + _injured setDamage 0; + + // DEBUG + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f_clsEH.sqf): %1 healed to %2 damage",(name _injured),(damage _injured)]; + }; + }; + }; // Upon initialising, the player broadcasts an instruction to all connected clients, including themselves, to add the EH on the broadcasting player. // This instruction is added to the JIP queue, so any player joining in progress automatically receives the instructions from all existing players - and then broadcasts their own instruction. -}]] remoteExec ["addEventHandler",0,true]; +}]] remoteExec ["addEventHandler",0,_unit]; diff --git a/init.sqf b/init.sqf index 545ba604a..55fd9d93e 100644 --- a/init.sqf +++ b/init.sqf @@ -103,7 +103,7 @@ f_script_briefing = [] spawn f_fnc_createBriefing; // Credits and documentation: https://github.com/folkarps/F3/wiki // Uncomment the line below to enable the Combat Life Saver heal handler. Does nothing unless you have player units using the "cls" assignGear role. -// [] execVM "f\medical\f_CLSEH.sqf"; +// [] execVM "f\medical\f_clsEH.sqf"; // ==================================================================================== From 562a4bf052faf948c519d6613ba644e6b68d5245 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 1 Mar 2021 00:37:02 +0000 Subject: [PATCH 242/407] Add init delay --- f/medical/f_CLSEH.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/f/medical/f_CLSEH.sqf b/f/medical/f_CLSEH.sqf index f96072d3a..21a838a65 100644 --- a/f/medical/f_CLSEH.sqf +++ b/f/medical/f_CLSEH.sqf @@ -3,6 +3,9 @@ // Enable this component in init.sqf // For credits and more information see https://github.com/folkarps/F3/wiki +// Make sure the player is initialised +waitUntil {sleep 0.1; !isNull player}; + // Make sure the player can be broadcast properly _unit = player; From 06ccc0c8d53e4fdc27106b5bded2c574f4e20e9f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 1 Mar 2021 00:39:00 +0000 Subject: [PATCH 243/407] Fix init delay to F3 standard --- f/medical/f_CLSEH.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/f/medical/f_CLSEH.sqf b/f/medical/f_CLSEH.sqf index 21a838a65..03ee92821 100644 --- a/f/medical/f_CLSEH.sqf +++ b/f/medical/f_CLSEH.sqf @@ -4,7 +4,10 @@ // For credits and more information see https://github.com/folkarps/F3/wiki // Make sure the player is initialised -waitUntil {sleep 0.1; !isNull player}; +if (!isDedicated && (isNull player)) then +{ + waitUntil {sleep 0.1; !isNull player}; +}; // Make sure the player can be broadcast properly _unit = player; From 18229a22503c585d8049a3ad715335d2dfd54b41 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 1 Mar 2021 00:49:40 +0000 Subject: [PATCH 244/407] Add heal timeout --- f/medical/f_CLSEH.sqf | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/f/medical/f_CLSEH.sqf b/f/medical/f_CLSEH.sqf index 03ee92821..d8097530c 100644 --- a/f/medical/f_CLSEH.sqf +++ b/f/medical/f_CLSEH.sqf @@ -28,9 +28,19 @@ _unit = player; player sideChat format ["DEBUG (f_clsEH.sqf): %1 is CLS healing %2",(name _healer),(name _injured)]; }; - // Wait until the standard heal has been applied - waitUntil {damage _injured <= 0.2501}; - // Apply a full heal + // Wait until the standard heal has been applied, or a timeout happens + _timeout = (time + 20); + waitUntil {(damage _injured <= 0.2501) or (time > _timeout)}; + + // If it timed out, exit with nothing but a debug message + if (time > _timeout) then { + exitWith { + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f_clsEH.sqf): Heal on %1 timed out without completing",(name _injured)]; + }; + + // If the heal was successful, make it a full heal _injured setDamage 0; // DEBUG From 6485f736a11fd99707d32773d46a48aeb810bf22 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 1 Mar 2021 14:18:45 +0000 Subject: [PATCH 245/407] Rename f_CLSEH.sqf to f_clsEH.sqf --- f/medical/{f_CLSEH.sqf => f_clsEH.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename f/medical/{f_CLSEH.sqf => f_clsEH.sqf} (100%) diff --git a/f/medical/f_CLSEH.sqf b/f/medical/f_clsEH.sqf similarity index 100% rename from f/medical/f_CLSEH.sqf rename to f/medical/f_clsEH.sqf From 4b156c4270d223d44ad93bb9de5defc212059419 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 1 Mar 2021 15:33:24 +0000 Subject: [PATCH 246/407] Use new command from 2.02 --- f/assignGear/f_assignGear_attachments.sqf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_attachments.sqf b/f/assignGear/f_assignGear_attachments.sqf index 372a193fa..37766eb16 100644 --- a/f/assignGear/f_assignGear_attachments.sqf +++ b/f/assignGear/f_assignGear_attachments.sqf @@ -17,9 +17,7 @@ if (_hg_attachments isEqualType []) then { // Handle launcher attachments if (_lau_attachments isEqualType []) then { - { - _unit removeSecondaryWeaponItem _x; - } forEach secondaryWeaponItems _unit; + removeAllSecondaryWeaponItems _unit; { // loop through the attachments and add them to the weapon _unit addSecondaryWeaponItem _x; From 8a6d116d08cbfd8a19e1727f11fea50cf4f4092b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 4 Mar 2021 15:52:48 +0000 Subject: [PATCH 247/407] Fix timeout formatting --- f/medical/f_clsEH.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/f/medical/f_clsEH.sqf b/f/medical/f_clsEH.sqf index d8097530c..67c374aec 100644 --- a/f/medical/f_clsEH.sqf +++ b/f/medical/f_clsEH.sqf @@ -33,12 +33,14 @@ _unit = player; waitUntil {(damage _injured <= 0.2501) or (time > _timeout)}; // If it timed out, exit with nothing but a debug message - if (time > _timeout) then { + if (time > _timeout) { exitWith { if (f_param_debugMode == 1) then { player sideChat format ["DEBUG (f_clsEH.sqf): Heal on %1 timed out without completing",(name _injured)]; }; + }; + }; // If the heal was successful, make it a full heal _injured setDamage 0; From 77cb82d27b815a5a6526902fe04ba625b0e5e13c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 5 Mar 2021 20:34:53 +0000 Subject: [PATCH 248/407] Fix timeout formatting.......again --- f/medical/f_clsEH.sqf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/f/medical/f_clsEH.sqf b/f/medical/f_clsEH.sqf index 67c374aec..420315414 100644 --- a/f/medical/f_clsEH.sqf +++ b/f/medical/f_clsEH.sqf @@ -33,13 +33,11 @@ _unit = player; waitUntil {(damage _injured <= 0.2501) or (time > _timeout)}; // If it timed out, exit with nothing but a debug message - if (time > _timeout) { - exitWith { + if (time > _timeout) exitWith { if (f_param_debugMode == 1) then { player sideChat format ["DEBUG (f_clsEH.sqf): Heal on %1 timed out without completing",(name _injured)]; }; - }; }; // If the heal was successful, make it a full heal From f2c815358b0237c5a4a849a27852028c4240410a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 5 Mar 2021 22:14:19 +0000 Subject: [PATCH 249/407] properly aligned timeout --- f/medical/f_clsEH.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/f/medical/f_clsEH.sqf b/f/medical/f_clsEH.sqf index 420315414..d6c374f6d 100644 --- a/f/medical/f_clsEH.sqf +++ b/f/medical/f_clsEH.sqf @@ -34,10 +34,10 @@ _unit = player; // If it timed out, exit with nothing but a debug message if (time > _timeout) exitWith { - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (f_clsEH.sqf): Heal on %1 timed out without completing",(name _injured)]; - }; + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f_clsEH.sqf): Heal on %1 timed out without completing",(name _injured)]; + }; }; // If the heal was successful, make it a full heal From dd89444b4b8bc4fa95bb68167eeba3009c0d3aa4 Mon Sep 17 00:00:00 2001 From: darkChozo Date: Sat, 6 Mar 2021 11:06:24 -0500 Subject: [PATCH 250/407] properly privated variables --- f/assignGear/fn_assignGear.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 05254e44e..a5e9478d6 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -54,7 +54,7 @@ _unit setVariable ["f_var_assignGear",_typeofUnit,true]; // DECLARE VARIABLES AND FUNCTIONS 2 // Used by the faction-specific scripts -private ["_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_nvgPilot","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses"]; +private ["_lau_attach1","_lau_attachments","_attach1","_attach2","_silencer1","_silencer2","_scope1","_scope2","_scope3","_bipod1","_bipod2","_attachments","_silencer","_hg_silencer1","_hg_scope1","_hg_attachments","_rifle","_riflemag","_riflemag_tr","_carbine","_carbinemag","_carbinemag_tr","_shotgun","_shotgunmag1","_shotgunmag2","_smg","_smgmag","_smgmag_tr","_diverWep","_diverMag1","_diverMag2","_glrifle","_glriflemag","_glriflemag_tr","_glmag","_glsmokewhite","_glsmokegreen","_glsmokered","_glflarewhite","_glflarered","_glflareyellow","_glflaregreen","_pistol","_pistolmag","_grenade","_Mgrenade","_smokegrenade","_smokegrenadegreen","_smokegrenadeblue","_smokegrenadepurple","_firstaid","_medkit","_nvg","_nvgPilot","_uavterminal","_chemgreen","_chemred","_chemyellow","_chemblue","_bag","_bagLarge","_bagmediumdiver","_baguav","_baghmgg","_baghmgag","_baghatg","_baghatag","_bagmtrg","_bagmtrag","_baghsamg","_baghsamag","_bagRadio","_AR","_ARmag","_ARmag_tr","_MMG","_MMGmag","_MMGmag_tr","_Tracer","_DMrifle","_DMriflemag","_RAT","_RATmag1","_RATmag2","_MAT","_MATmag1","_MATmag2","_SAM","_SAMmag","_HAT","_HATmag1","_HATmag2","_SNrifle","_SNrifleMag","_ATmine","_satchel","_APmine1","_APmine2","_diver","_pilot","_crew","_ghillie","_specOp","_baseUniform","_baseHelmet","_baseGlasses","_lightRig","_mediumRig","_heavyRig","_diverUniform","_diverHelmet","_diverRig","_diverGlasses","_pilotUniform","_pilotHelmet","_pilotRig","_pilotGlasses","_crewUniform","_crewHelmet","_crewRig","_crewGlasses","_ghillieUniform","_ghillieHelmet","_ghillieRig","_ghillieGlasses","_sfuniform","_sfhelmet","_sfRig","_sfGlasses","_backpack","_typeofBackPack","_loadout","_COrifle","_mgrenade","_DC","_SLrifle","_JTACrifle","_ftlrifle","_grenrifle","_typeofunit","_jet","_jetUniform","_jetHelmet","_jetRig","_jetGlasses","_vip","_vipUniform","_vipHelmet","_vipRig","_vipGlasses"]; // ==================================================================================== From 9cde074aa2aded1f54509f417c1817b4bdf2cb1f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 6 Mar 2021 17:43:45 +0000 Subject: [PATCH 251/407] Fix assignGear param default value and disable value --- ws_fnc/AI/fn_createGarrison.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index 05b4d5cb4..d0670191a 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -61,7 +61,7 @@ params [ ["_thrsh", 0.8, [0]], ["_classes", [], ["", []]], ["_onlyEmptyBuildings", false, [false]], - ["_assignGearFaction", "none", [""]] + ["_assignGearFaction", "", [""]] ]; // Process radius paramter @@ -228,7 +228,7 @@ for "_x" from 1 to _int do { }; // If assignGear AI parameter is enabled, set the faction on the spawned units then pass them to assignGear AI. -if (_assignGearFaction != "none") then { +if (_assignGearFaction != "") then { [units _grp,_assignGearFaction] call f_fnc_setVirtualFaction; [units _grp] execVM "f\assignGear\f_assignGear_AI.sqf"; }; From 39801c92fc636e93ee436eb6aac370b8f0df5926 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 6 Mar 2021 17:47:18 +0000 Subject: [PATCH 252/407] Add param to disable zeus addition --- ws_fnc/AI/fn_createGarrison.sqf | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index d0670191a..3f5450c4e 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -27,7 +27,8 @@ PARAMETERS: 6. Array of classes to spawn | OPTIONAL - array w. strings - default are classes defined below 6. ALTERNATIVE: Faction to spawn | OPTIONAL - string - faction name 7. Only garrison empty buildings | OPTIONAL - bool - true, if only empty buildings should be garrisoned. This is useful for overlappnig garrison radii. -8. assignGear AI faction to use | OPTIONAL - string - faction name listed in assignGear.sqf. If this is defined, assignGear AI will be run on the spawned units automatically using this faction. +8. assignGear AI faction to use | OPTIONAL - string - faction name listed in assignGear.sqf. If this is defined, assignGear AI will be run on the spawned units automatically using this faction. +9. Add spawned units to Zeus, or not | OPTIONAL - bool - choose whether to automatically add spawned units to all existing Zeus. Defaults on. EXAMPLE ["mkrOutpost",50,resistance] call ws_fnc_createGarrison; @@ -61,7 +62,8 @@ params [ ["_thrsh", 0.8, [0]], ["_classes", [], ["", []]], ["_onlyEmptyBuildings", false, [false]], - ["_assignGearFaction", "", [""]] + ["_assignGearFaction", "", [""]], + ["_addToZeus", true, [true]] ]; // Process radius paramter @@ -239,10 +241,12 @@ _grp enableAttack false; // Set the group's attack mode and stance [_grp,"AWARE","YELLOW"] call ws_fnc_setAIMode; -// Add the spawned units as editable units to any extant Zeus -{ - _x addCuratorEditableObjects [units _grp, true]; -} foreach allCurators; +// Add the spawned units as editable units to any extant Zeus if that param is enabled +if (_addToZeus) then { + { + _x addCuratorEditableObjects [units _grp, true]; + } foreach allCurators; +}; // Return created unis (units _grp) From 327b6e611e57c8cbf76b473f3d7cdaf3d79f531c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 6 Mar 2021 18:30:25 +0000 Subject: [PATCH 253/407] More fixes --- ws_fnc/AI/fn_createGarrison.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index 3f5450c4e..a14991557 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -10,9 +10,9 @@ USAGE Minimal: [center,radius,side] call ws_fnc_createGarrison Full: -[center,radius,side,number,number,array,bool] call ws_fnc_createGarrison +[center,radius,side,number,number,array,bool,string,bool] call ws_fnc_createGarrison or -[center,radius,side,number,number,string,bool,string] call ws_fnc_createGarrison +[center,radius,side,number,number,string,bool,string,bool] call ws_fnc_createGarrison NOTE Make sure to call this only on the server or headless client. The function itself does not check where it is run. @@ -27,7 +27,7 @@ PARAMETERS: 6. Array of classes to spawn | OPTIONAL - array w. strings - default are classes defined below 6. ALTERNATIVE: Faction to spawn | OPTIONAL - string - faction name 7. Only garrison empty buildings | OPTIONAL - bool - true, if only empty buildings should be garrisoned. This is useful for overlappnig garrison radii. -8. assignGear AI faction to use | OPTIONAL - string - faction name listed in assignGear.sqf. If this is defined, assignGear AI will be run on the spawned units automatically using this faction. +8. assignGear AI faction to use | OPTIONAL - string - faction name listed in assignGear.sqf. If this is defined, assignGear AI will be run on the spawned units automatically using this faction. Leave as empty string ("") to skip. 9. Add spawned units to Zeus, or not | OPTIONAL - bool - choose whether to automatically add spawned units to all existing Zeus. Defaults on. EXAMPLE @@ -224,7 +224,7 @@ for "_x" from 1 to _int do { // Set new variables _u setVariable ["ws_bpos",_bp,true]; _b setVariable ["ws_bUnits",_bu + 1,true]; - _b setVariable ["ws_bPosLeft",_bpl,true]; + _b setVariable ["ws_bPosLeft",_bpl,true]; if (_debug) then {_mkr = createMarker [format ["%1-bpos",_u],getPos _u];_mkr setMarkerSize [0.5,0.5];_mkr setMarkerType "mil_dot";_mkr setMarkerColor "ColorGreen";}; }; @@ -232,7 +232,7 @@ for "_x" from 1 to _int do { // If assignGear AI parameter is enabled, set the faction on the spawned units then pass them to assignGear AI. if (_assignGearFaction != "") then { [units _grp,_assignGearFaction] call f_fnc_setVirtualFaction; - [units _grp] execVM "f\assignGear\f_assignGear_AI.sqf"; + [[units _grp],"f\assignGear\f_assignGear_AI.sqf"] remoteExec ["execVM",2]; }; // Prevent the group leader to issue attack orders to the members, improving their attack from buildings From b219c68292f89ac2cab8139b09fa83bf119b3ba7 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 6 Mar 2021 18:31:11 +0000 Subject: [PATCH 254/407] Expand example --- ws_fnc/AI/fn_createGarrison.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index a14991557..ead76d46a 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -40,11 +40,12 @@ The classes of the units will be taken from the default array (by default light Place 50 NATO soldiers in buildings in a 150m radius around the Object (unit) named UnitNATO_General. All of them will be either AT or Grenadier. Only fill the buildings to 70% percent. -["mkrOutpost",50,opfor,0,0.8,"gendarmerie","3ifb"] call ws_fnc_createGarrison; +["mkrOutpost",50,opfor,0,0.8,"gendarmerie","3ifb",false] call ws_fnc_createGarrison; This will create units in buildings 50m around the marker named "mkrOutpost". The number of units will the the number of buildings in the radius divided by 4. The classes of the units will be Gendarmerie and their side opfor. AssignGear AI will be run on the spawned units, giving them the loadouts defined for the "3ifb" faction in assignGear.sqf. +The created units will not be added to Zeus. RETURNS array of created units From e6e831b8b81325f970437f54b21c250b6a55cae2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 6 Mar 2021 20:04:54 +0000 Subject: [PATCH 255/407] remoteExec virtualFaction --- ws_fnc/AI/fn_createGarrison.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index ead76d46a..a77498164 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -232,7 +232,7 @@ for "_x" from 1 to _int do { // If assignGear AI parameter is enabled, set the faction on the spawned units then pass them to assignGear AI. if (_assignGearFaction != "") then { - [units _grp,_assignGearFaction] call f_fnc_setVirtualFaction; + [[units _grp,_assignGearFaction],f_fnc_setVirtualFaction] remoteExec ["call",2]; [[units _grp],"f\assignGear\f_assignGear_AI.sqf"] remoteExec ["execVM",2]; }; From 15dd6fa4637f7ccf6db6392f701d0d016239fd05 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:33:05 +0000 Subject: [PATCH 256/407] Update version number No, I don't know why dev branch never received the 3.5.4 number. --- description.ext | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/description.ext b/description.ext index 6df285411..6da42afb2 100644 --- a/description.ext +++ b/description.ext @@ -1,4 +1,4 @@ -fa3_version[] = {3,5,3}; // WARNING: DO NOT CHANGE THIS LINE +fa3_version[] = {3,5,5}; // WARNING: DO NOT CHANGE THIS LINE // ============================================================================================ // F3 - Loading Screen From b27bd189a300b52df14ddc919274af4795b674f2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:41:38 +0000 Subject: [PATCH 257/407] Update mission title --- mission.sqm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mission.sqm b/mission.sqm index 21bc02b81..cbeeca59f 100644 --- a/mission.sqm +++ b/mission.sqm @@ -329,7 +329,7 @@ class Mission { class Intel { - briefingName="fa3-5-4"; + briefingName="fa3-5-5"; resistanceWest=0; timeOfChanges=28800; startWeather=0.50001526; From fd12758268c40b11214ae77e133f7deab9101cc1 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 11 Mar 2021 20:43:37 +0000 Subject: [PATCH 258/407] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 02d0c496d..320ec030f 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,8 @@ * Safe Start default set to 1 minute * Set AI Skill for all factions - Missionmakers can remove the cases they do not need * Pre-configured endings 1 -3 with generic titles and texts + * Numerous feature updates and improvements. See https://github.com/folkarps/F3 for update history. ## Versions ## -* F3 3-5-3 -* ws_fnc 05/07/2015 +* F3 3-5-5 +* ws_fnc 05/07/2015 (with FA improvements) From 3f7148f808d07105d2e772fb90440fdd46106135 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Mar 2021 02:49:01 +0000 Subject: [PATCH 259/407] Missing semicolon --- f/assignGear/f_assignGear_clothes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index a118bf3bb..80f4a75c0 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -19,7 +19,7 @@ _uniform = _baseUniform; _helmet = _baseHelmet; _glasses = _baseGlasses; -_rig = _standardRig +_rig = _standardRig; // Uncomment this block if you are adding an alternate loadout. See relevant block in description.ext for more info. // Select the default rig From eb2c162a2c689ce9096674e2d4fd33bce44c16f8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 12 Mar 2021 03:50:20 +0000 Subject: [PATCH 260/407] Fix fuel for TH4s With no reference to fuel in their attributes, vehicles default to full fuel (see other vics in this mission.sqm) --- mission.sqm | 2 -- 1 file changed, 2 deletions(-) diff --git a/mission.sqm b/mission.sqm index 21bc02b81..05b2b04f3 100644 --- a/mission.sqm +++ b/mission.sqm @@ -6230,7 +6230,6 @@ class Mission class Attributes { skill=0.60000002; - fuel=0.29590145; init="[""v_helo_h"",this] call f_fnc_assignGear"; name="VehLDF_TH4"; }; @@ -11723,7 +11722,6 @@ class Mission class Attributes { skill=0.60000002; - fuel=0.29590145; init="[""v_helo_h"",this] call f_fnc_assignGear"; name="VehAAF_TH4"; }; From d0d169ccc4988f96d13d8177619fc10ffa9452d9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 17 Mar 2021 22:35:00 +0000 Subject: [PATCH 261/407] Fix passing array instead of object to VirtualFaction --- ws_fnc/AI/fn_createGarrison.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index a77498164..b2c4e1730 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -232,7 +232,9 @@ for "_x" from 1 to _int do { // If assignGear AI parameter is enabled, set the faction on the spawned units then pass them to assignGear AI. if (_assignGearFaction != "") then { - [[units _grp,_assignGearFaction],f_fnc_setVirtualFaction] remoteExec ["call",2]; + { + [[_x,_assignGearFaction],f_fnc_setVirtualFaction] remoteExec ["call",2]; + } forEach (units _grp); [[units _grp],"f\assignGear\f_assignGear_AI.sqf"] remoteExec ["execVM",2]; }; From 8fc0f2af2cf2b12b7415a7cb52301b4247353ced Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 17 Mar 2021 22:48:39 +0000 Subject: [PATCH 262/407] Fix overlooked letter prefix in ORBAT --- f/briefing/f_orbatNotes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index 602d4d610..acc1b1af8 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -143,7 +143,7 @@ if (count _veharray > 0) then { } forEach crew _x; { private _icon = [_x] call _fnc_getMarker; - _orbatText =_orbatText + format["%1%2 %3", _icon_arrow, _icon, _x] + " [CARGO]
"; + _orbatText =_orbatText + format["%1%2 %3", _icon_arrow, _icon, groupID _x] + " [CARGO]
"; } forEach _groupList; } forEach _veharray; From be2edb68288bed4fdf512c46e8b470536ecc4f69 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 17 Mar 2021 22:50:32 +0000 Subject: [PATCH 263/407] Fix Spetsnaz loadouts not being included --- f/assignGear/f_assignGear_spetsnaz.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 80c31d6fd..991eaf95f 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -381,7 +381,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { -// #include "f_assignGear_spetsnaz_standard.sqf" +#include "f_assignGear_spetsnaz_standard.sqf"; // }; // ==================================================================================== From e505f69d9e128cbdb9953851e8d5f6891239994c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 17 Mar 2021 22:53:38 +0000 Subject: [PATCH 264/407] Fix missing semicolons in loadout includes --- f/assignGear/f_assignGear_3IFB.sqf | 2 +- f/assignGear/f_assignGear_aaf.sqf | 2 +- f/assignGear/f_assignGear_csat.sqf | 2 +- f/assignGear/f_assignGear_csatPacific.sqf | 2 +- f/assignGear/f_assignGear_ctrg.sqf | 2 +- f/assignGear/f_assignGear_fia.sqf | 2 +- f/assignGear/f_assignGear_ldf.sqf | 2 +- f/assignGear/f_assignGear_nato.sqf | 2 +- f/assignGear/f_assignGear_natoPacific.sqf | 2 +- f/assignGear/f_assignGear_natoWoodland.sqf | 2 +- f/assignGear/f_assignGear_npr.sqf | 2 +- f/assignGear/f_assignGear_syndikat.sqf | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index e4011293d..a3253fdaf 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -374,7 +374,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_3IFB_standard.sqf" + #include "f_assignGear_3IFB_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 6dc21da67..a7bcad73c 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -367,7 +367,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_aaf_standard.sqf" + #include "f_assignGear_aaf_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index 5f7d97395..f3f239fdf 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -388,7 +388,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_csat_standard.sqf" + #include "f_assignGear_csat_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index ae00bf8e7..a8d5ee2d3 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -388,7 +388,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_csatPacific_standard.sqf" + #include "f_assignGear_csatPacific_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 1576c3ebb..049809e32 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -375,7 +375,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_ctrg_standard.sqf" + #include "f_assignGear_ctrg_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index a8fa78b25..1b90c1658 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -373,7 +373,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_fia_standard.sqf" + #include "f_assignGear_fia_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index ef5652adb..42ae57443 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -368,7 +368,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_ldf_standard.sqf" + #include "f_assignGear_ldf_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index 6cd0c8dbe..e675cce0b 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -372,7 +372,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_nato_standard.sqf" + #include "f_assignGear_nato_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index b6dd81ee7..e7cece954 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -372,7 +372,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_natoPacific_standard.sqf" + #include "f_assignGear_natoPacific_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index 9b2e64131..a6f4b097f 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -370,7 +370,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_natoWoodland_standard.sqf" + #include "f_assignGear_natoWoodland_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index fb1093437..c4df76f01 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -398,7 +398,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_npr_standard.sqf" + #include "f_assignGear_npr_standard.sqf"; // }; // ==================================================================================== diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index 0fb49178d..f962e8742 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -365,7 +365,7 @@ if (_isMan) then { // Standard Loadout // if (_loadout == 1) then { - #include "f_assignGear_syndikat_standard.sqf" + #include "f_assignGear_syndikat_standard.sqf"; // }; // ==================================================================================== From 1b9c90a673b1a760145a6e4dab26e2403e500f04 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 17 Mar 2021 23:18:09 +0000 Subject: [PATCH 265/407] Correct capitalisation of groupId --- f/briefing/f_orbatNotes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/f_orbatNotes.sqf b/f/briefing/f_orbatNotes.sqf index acc1b1af8..eade4592b 100644 --- a/f/briefing/f_orbatNotes.sqf +++ b/f/briefing/f_orbatNotes.sqf @@ -143,7 +143,7 @@ if (count _veharray > 0) then { } forEach crew _x; { private _icon = [_x] call _fnc_getMarker; - _orbatText =_orbatText + format["%1%2 %3", _icon_arrow, _icon, groupID _x] + " [CARGO]
"; + _orbatText =_orbatText + format["%1%2 %3", _icon_arrow, _icon, groupId _x] + " [CARGO]
"; } forEach _groupList; } forEach _veharray; From 3dc8ae322e75e73442aa4df0da37d5092246fc1c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 18 Mar 2021 16:20:45 +0000 Subject: [PATCH 266/407] Fix using wrong brackets in assignGear call --- ws_fnc/AI/fn_createGarrison.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index b2c4e1730..235b74e28 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -235,7 +235,7 @@ if (_assignGearFaction != "") then { { [[_x,_assignGearFaction],f_fnc_setVirtualFaction] remoteExec ["call",2]; } forEach (units _grp); - [[units _grp],"f\assignGear\f_assignGear_AI.sqf"] remoteExec ["execVM",2]; + [(units _grp),"f\assignGear\f_assignGear_AI.sqf"] remoteExec ["execVM",2]; }; // Prevent the group leader to issue attack orders to the members, improving their attack from buildings From 3c6e210325198bfca887b228f46a026db905c553 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 27 Mar 2021 14:00:04 +0000 Subject: [PATCH 267/407] RemoteExec adding to zeus --- ws_fnc/AI/fn_createGarrison.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index 235b74e28..ef37ce857 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -247,7 +247,7 @@ _grp enableAttack false; // Add the spawned units as editable units to any extant Zeus if that param is enabled if (_addToZeus) then { { - _x addCuratorEditableObjects [units _grp, true]; + [_x,[(units _grp),true] remoteExec ["addCuratorEditableObjects",2]; } foreach allCurators; }; From f9d9da76bd60510f35b2c03573e8a11d73e3f375 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 1 Apr 2021 20:20:03 +0100 Subject: [PATCH 268/407] Pilot NVGs now default to standard class All functionality for changing pilot NVGs independently of infantry remains in place. --- f/assignGear/f_assignGear_3IFB.sqf | 2 +- f/assignGear/f_assignGear_aaf.sqf | 2 +- f/assignGear/f_assignGear_csat.sqf | 2 +- f/assignGear/f_assignGear_csatPacific.sqf | 2 +- f/assignGear/f_assignGear_ctrg.sqf | 2 +- f/assignGear/f_assignGear_fia.sqf | 2 +- f/assignGear/f_assignGear_gendarmerie.sqf | 2 +- f/assignGear/f_assignGear_ldf.sqf | 2 +- f/assignGear/f_assignGear_nato.sqf | 2 +- f/assignGear/f_assignGear_natoPacific.sqf | 2 +- f/assignGear/f_assignGear_natoWoodland.sqf | 2 +- f/assignGear/f_assignGear_npr.sqf | 2 +- f/assignGear/f_assignGear_spetsnaz.sqf | 2 +- f/assignGear/f_assignGear_syndikat.sqf | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB.sqf b/f/assignGear/f_assignGear_3IFB.sqf index a3253fdaf..8ee327379 100644 --- a/f/assignGear/f_assignGear_3IFB.sqf +++ b/f/assignGear/f_assignGear_3IFB.sqf @@ -168,7 +168,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_OPFOR"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles_OPFOR"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index a7bcad73c..0d8c48757 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -168,7 +168,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles_INDEP"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_csat.sqf b/f/assignGear/f_assignGear_csat.sqf index f3f239fdf..15aa66919 100644 --- a/f/assignGear/f_assignGear_csat.sqf +++ b/f/assignGear/f_assignGear_csat.sqf @@ -169,7 +169,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_hex_F"; //_nvg = "O_NVGoggles_urb_F"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "O_NVGoggles_hex_F"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index a8d5ee2d3..6b0550fc7 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -168,7 +168,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_ghex_F"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "O_NVGoggles_ghex_F"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 049809e32..4c6a3e07c 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -168,7 +168,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 1b90c1658..124f6eddc 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -168,7 +168,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 404dd2012..b0e1f5ba0 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -98,7 +98,7 @@ _medkit = "Medikit"; // Night Vision Goggles //_nvg = "NVGoggles"; -//_nvgPilot = "Integrated_NVG_F"; +//_nvgPilot = "NVGoggles"; // Integrated_NVG_F for fullscreen NV // Chemlights _chemgreen = "Chemlight_green"; diff --git a/f/assignGear/f_assignGear_ldf.sqf b/f/assignGear/f_assignGear_ldf.sqf index 42ae57443..f3f6a9a15 100644 --- a/f/assignGear/f_assignGear_ldf.sqf +++ b/f/assignGear/f_assignGear_ldf.sqf @@ -169,7 +169,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles_INDEP"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_nato.sqf b/f/assignGear/f_assignGear_nato.sqf index e675cce0b..8b16d568e 100644 --- a/f/assignGear/f_assignGear_nato.sqf +++ b/f/assignGear/f_assignGear_nato.sqf @@ -169,7 +169,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_natoPacific.sqf b/f/assignGear/f_assignGear_natoPacific.sqf index e7cece954..cb1566f02 100644 --- a/f/assignGear/f_assignGear_natoPacific.sqf +++ b/f/assignGear/f_assignGear_natoPacific.sqf @@ -169,7 +169,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_tna_F"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles_tna_F"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_natoWoodland.sqf b/f/assignGear/f_assignGear_natoWoodland.sqf index a6f4b097f..1ab1946ee 100644 --- a/f/assignGear/f_assignGear_natoWoodland.sqf +++ b/f/assignGear/f_assignGear_natoWoodland.sqf @@ -167,7 +167,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles_INDEP"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_npr.sqf b/f/assignGear/f_assignGear_npr.sqf index c4df76f01..e764b26ec 100644 --- a/f/assignGear/f_assignGear_npr.sqf +++ b/f/assignGear/f_assignGear_npr.sqf @@ -186,7 +186,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_OPFOR"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles_OPFOR"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 991eaf95f..e92a144ce 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -172,7 +172,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "O_NVGoggles_grn_F"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "O_NVGoggles_grn_F"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index f962e8742..b3df7b17a 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -168,7 +168,7 @@ _medkit = "Medikit"; // Night Vision Goggles _nvg = "NVGoggles_INDEP"; -_nvgPilot = "Integrated_NVG_F"; +_nvgPilot = "NVGoggles_INDEP"; // Integrated_NVG_F for fullscreen NV // Binoculars _binoculars = "Rangefinder"; From 0b0881637a18bdc1ee101c3f3896b6940bcd59e6 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 1 Apr 2021 20:22:40 +0100 Subject: [PATCH 269/407] Fix undefined NVGs for Gendarmerie Same problem as 3IFB had before --- f/assignGear/f_assignGear_gendarmerie.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index b0e1f5ba0..4164ce930 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -97,8 +97,8 @@ _firstaid = "FirstAidKit"; _medkit = "Medikit"; // Night Vision Goggles -//_nvg = "NVGoggles"; -//_nvgPilot = "NVGoggles"; // Integrated_NVG_F for fullscreen NV +_nvg = "NVGoggles"; +_nvgPilot = "NVGoggles"; // Integrated_NVG_F for fullscreen NV // Chemlights _chemgreen = "Chemlight_green"; @@ -183,7 +183,7 @@ if (_isMan) then { // ADD UNIVERSAL ITEMS // Add items universal to all units of this faction - _unit linkItem _nvg; // Add and equip the faction's nvg + // _unit linkItem _nvg; // Add and equip the faction's nvg _unit addItem _firstaid; // Add a single first aid kit (FAK) _unit linkItem "ItemMap"; // Add and equip the map _unit linkItem "ItemCompass"; // Add and equip a compass From f86cf1fb1c2503990c3826de78cc94df70ce0c19 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 1 Apr 2021 20:24:19 +0100 Subject: [PATCH 270/407] fix zeus remoteExec --- ws_fnc/AI/fn_createGarrison.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ws_fnc/AI/fn_createGarrison.sqf b/ws_fnc/AI/fn_createGarrison.sqf index ef37ce857..f53fb7893 100644 --- a/ws_fnc/AI/fn_createGarrison.sqf +++ b/ws_fnc/AI/fn_createGarrison.sqf @@ -247,7 +247,7 @@ _grp enableAttack false; // Add the spawned units as editable units to any extant Zeus if that param is enabled if (_addToZeus) then { { - [_x,[(units _grp),true] remoteExec ["addCuratorEditableObjects",2]; + [_x,[(units _grp),true]] remoteExec ["addCuratorEditableObjects",2]; } foreach allCurators; }; From 38be2694e6f9866a388a28940c7e99068d91badb Mon Sep 17 00:00:00 2001 From: darkChozo Date: Fri, 2 Apr 2021 15:44:23 -0400 Subject: [PATCH 271/407] 331: added __has_include protection for assignGear and briefings --- f/assignGear/fn_assignGear.sqf | 74 +++++++++++++++++++++------ f/briefing/fn_createBriefing.sqf | 88 +++++++++++++++++++++----------- 2 files changed, 116 insertions(+), 46 deletions(-) diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 221008141..4c1697a6d 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -78,9 +78,19 @@ if (f_param_debugMode == 1) then // automatically includes a file which contains the appropriate equipment data. if (_faction in ["blu_f","nato"]) then { - #include "f_assignGear_nato.sqf" - // #include "f_assignGear_natoPacific.sqf" // Use NATO Pacific loadouts on NATO non-Pacific units (e.g. Folk ARPS Platoons) - // #include "f_assignGear_natoWoodland.sqf" // Use NATO Woodland loadouts on NATO non-Woodland units (e.g. Folk ARPS Platoons) + #if __has_include("f_assignGear_nato.sqf") + #include "f_assignGear_nato.sqf" + #endif + + // Use NATO Pacific loadouts on NATO non-Pacific units (e.g. Folk ARPS Platoons) + // #if __has_include("f_assignGear_natoPacific.sqf") + // #include "f_assignGear_natoPacific.sqf" + // #endif + + // Use NATO Woodland loadouts on NATO non-Woodland units (e.g. Folk ARPS Platoons) + // #if __has_include("f_assignGear_natoWoodland.sqf") + // #include "f_assignGear_natoWoodland.sqf" + // #endif }; // ==================================================================================== @@ -90,7 +100,9 @@ if (_faction in ["blu_f","nato"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["blu_t_f","natopacific"]) then { - #include "f_assignGear_natoPacific.sqf" + #if __has_include("f_assignGear_natoPacific.sqf") + #include "f_assignGear_natoPacific.sqf" + #endif }; // ==================================================================================== @@ -100,7 +112,9 @@ if (_faction in ["blu_t_f","natopacific"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["blu_w_f","natowoodland"]) then { - #include "f_assignGear_natoWoodland.sqf" + #if __has_include("f_assignGear_natoWoodland.sqf") + #include "f_assignGear_natoWoodland.sqf" + #endif }; // ==================================================================================== @@ -110,7 +124,9 @@ if (_faction in ["blu_w_f","natowoodland"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["blu_gen_f"]) then { - #include "f_assignGear_gendarmerie.sqf" + #if __has_include("f_assignGear_gendarmerie.sqf") + #include "f_assignGear_gendarmerie.sqf" + #endif }; // ==================================================================================== @@ -120,8 +136,14 @@ if (_faction in ["blu_gen_f"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["opf_f","csat"]) then { - #include "f_assignGear_csat.sqf" - // #include "f_assignGear_csatPacific.sqf" // Use CSAT Pacific loadouts on CSAT non-Pacific units (e.g. Folk ARPS Platoons) + #if __has_include("f_assignGear_csat.sqf") + #include "f_assignGear_csat.sqf" + #endif + + // Use CSAT Pacific loadouts on CSAT non-Pacific units (e.g. Folk ARPS Platoons) + // #if __has_include("f_assignGear_csatPacific.sqf") + // #include "f_assignGear_csatPacific.sqf" + // #endif }; // ==================================================================================== @@ -131,7 +153,9 @@ if (_faction in ["opf_f","csat"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["opf_t_f","csatpacific"]) then { - #include "f_assignGear_csatPacific.sqf" + #if __has_include("f_assignGear_csatPacific.sqf") + #include "f_assignGear_csatPacific.sqf" + #endif }; // ==================================================================================== @@ -141,7 +165,9 @@ if (_faction in ["opf_t_f","csatpacific"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["opf_r_f","spetsnaz"]) then { - #include "f_assignGear_spetsnaz.sqf" + #if __has_include("f_assignGear_spetsnaz.sqf") + #include "f_assignGear_spetsnaz.sqf" + #endif }; // ==================================================================================== @@ -151,7 +177,9 @@ if (_faction in ["opf_r_f","spetsnaz"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["ind_f","aaf"]) then { - #include "f_assignGear_aaf.sqf" + #if __has_include("f_assignGear_aaf.sqf") + #include "f_assignGear_aaf.sqf" + #endif }; // ==================================================================================== @@ -161,7 +189,9 @@ if (_faction in ["ind_f","aaf"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["blu_g_f","opf_g_f","ind_g_f","fia"]) then { - #include "f_assignGear_fia.sqf" + #if __has_include("f_assignGear_fia.sqf") + #include "f_assignGear_fia.sqf" + #endif }; // ==================================================================================== @@ -171,7 +201,9 @@ if (_faction in ["blu_g_f","opf_g_f","ind_g_f","fia"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["blu_ctrg_f","ctrg"]) then { - #include "f_assignGear_ctrg.sqf" + #if __has_include("f_assignGear_ctrg.sqf") + #include "f_assignGear_ctrg.sqf" + #endif }; // ==================================================================================== @@ -181,7 +213,9 @@ if (_faction in ["blu_ctrg_f","ctrg"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["ind_c_f","syndikat"]) then { - #include "f_assignGear_syndikat.sqf" + #if __has_include("f_assignGear_syndikat.sqf") + #include "f_assignGear_syndikat.sqf" + #endif }; // ==================================================================================== @@ -191,7 +225,9 @@ if (_faction in ["ind_c_f","syndikat"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["ind_e_f","ldf"]) then { - #include "f_assignGear_ldf.sqf" + #if __has_include("f_assignGear_ldf.sqf") + #include "f_assignGear_ldf.sqf" + #endif }; // ==================================================================================== @@ -201,7 +237,9 @@ if (_faction in ["ind_e_f","ldf"]) then { // automatically includes a file which contains the appropriate equipment data. if (_faction in ["ind_l_f","npr"]) then { - #include "f_assignGear_npr.sqf" + #if __has_include("f_assignGear_npr.sqf") + #include "f_assignGear_npr.sqf" + #endif }; // ==================================================================================== @@ -213,7 +251,9 @@ if (_faction in ["ind_l_f","npr"]) then { // with f_fnc_setVirtualFaction; it automatically includes a file which contains the appropriate // equipment data. if (_faction in ["3ifb"]) then { - #include "f_assignGear_3IFB.sqf" + #if __has_include("f_assignGear_3IFB.sqf") + #include "f_assignGear_3IFB.sqf" + #endif }; // ==================================================================================== diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index 92ecdd77a..8e1fee1c7 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -34,14 +34,18 @@ if (f_param_debugMode == 1) then // ==================================================================================== // BRIEFING: CREDITS -#include "f_briefing_credits.sqf" +#if __has_include("f_briefing_credits.sqf") + #include "f_briefing_credits.sqf" +#endif // ==================================================================================== // BRIEFING: ADMIN if (serverCommandAvailable "#kick" || !isMultiplayer) then { - #include "f_briefing_admin.sqf" - ["host"] call _fnc_debug; + #if __has_include("f_briefing_admin.sqf") + #include "f_briefing_admin.sqf" + ["host"] call _fnc_debug; + #endif }; // ==================================================================================== @@ -50,81 +54,107 @@ if (serverCommandAvailable "#kick" || !isMultiplayer) then { // BLUFOR > NATO if (_unitfaction in ["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"]) exitwith { - #include "f_briefing_nato.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_nato.sqf") + #include "f_briefing_nato.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // FIA if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f","fia"]) exitwith { - #include "f_briefing_fia.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_fia.sqf") + #include "f_briefing_fia.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // BLUFOR > GENDARMERIE if (_unitfaction in ["blu_gen_f"]) exitwith { - #include "f_briefing_gendarmerie.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_gendarmerie.sqf") + #include "f_briefing_gendarmerie.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // OPFOR > CSAT if (_unitfaction in ["opf_f","opf_t_f","csat","csatpacific"]) exitwith { - #include "f_briefing_csat.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_csat.sqf") + #include "f_briefing_csat.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // OPFOR > Spetsnaz if (_unitfaction in ["opf_r_f","spetsnaz"]) exitwith { - #include "f_briefing_spetsnaz.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_spetsnaz.sqf") + #include "f_briefing_spetsnaz.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // INDEPENDENT > AAF if (_unitfaction in ["ind_f","aaf"]) exitwith { - #include "f_briefing_aaf.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_aaf.sqf") + #include "f_briefing_aaf.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // INDEPENDENT > LDF if (_unitfaction in ["ind_e_f","ldf"]) exitwith { - #include "f_briefing_ldf.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_ldf.sqf") + #include "f_briefing_ldf.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // INDEPENDENT > SYNDIKAT if (_unitfaction in ["ind_c_f","syndikat"]) exitwith { - #include "f_briefing_syndikat.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_syndikat.sqf") + #include "f_briefing_syndikat.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // INDEPENDENT > NPR (Looters) if (_unitfaction in ["ind_l_f","npr"]) exitwith { - #include "f_briefing_npr.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_npr.sqf") + #include "f_briefing_npr.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // BLUFOR > CTRG if (_unitfaction in ["blu_ctrg_f","ctrg"]) exitwith { - #include "f_briefing_ctrg.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_ctrg.sqf") + #include "f_briefing_ctrg.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // CIVILIAN and IDAP if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { - #include "f_briefing_civ.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_civ.sqf") + #include "f_briefing_civ.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // VIRTUAL FACTION > 3IFB if (_unitfaction in ["3ifb"]) exitwith { - #include "f_briefing_3ifb.sqf" - [_unitfaction] call _fnc_debug; + #if __has_include("f_briefing_3ifb.sqf") + #include "f_briefing_3ifb.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // ZEUS if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { - #include "f_briefing_zeus.sqf" - ["zeus"] call _fnc_debug; + #if __has_include("f_briefing_zeus.sqf") + #include "f_briefing_zeus.sqf" + [_unitfaction] call _fnc_debug; + #endif }; // Virtual Spectator From ac41caa25e36a3099807a3f3dbcbb259e8acf6e9 Mon Sep 17 00:00:00 2001 From: darkChozo Date: Fri, 2 Apr 2021 15:58:12 -0400 Subject: [PATCH 272/407] changed briefing __has_includes to include exitWiths --- f/briefing/fn_createBriefing.sqf | 112 +++++++++++++++---------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index 8e1fee1c7..80e5a563e 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -41,121 +41,121 @@ if (f_param_debugMode == 1) then // ==================================================================================== // BRIEFING: ADMIN -if (serverCommandAvailable "#kick" || !isMultiplayer) then { - #if __has_include("f_briefing_admin.sqf") +#if __has_include("f_briefing_admin.sqf") + if (serverCommandAvailable "#kick" || !isMultiplayer) then { #include "f_briefing_admin.sqf" ["host"] call _fnc_debug; - #endif -}; + }; +#endif // ==================================================================================== // BRIEFING: FACTION SPECIFIC // The following code blocks include faction-specific briefing files. // BLUFOR > NATO -if (_unitfaction in ["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"]) exitwith { - #if __has_include("f_briefing_nato.sqf") +#if __has_include("f_briefing_nato.sqf") + if (_unitfaction in ["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"]) exitwith { #include "f_briefing_nato.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // FIA -if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f","fia"]) exitwith { - #if __has_include("f_briefing_fia.sqf") +#if __has_include("f_briefing_fia.sqf") + if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f","fia"]) exitwith { #include "f_briefing_fia.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // BLUFOR > GENDARMERIE -if (_unitfaction in ["blu_gen_f"]) exitwith { - #if __has_include("f_briefing_gendarmerie.sqf") +#if __has_include("f_briefing_gendarmerie.sqf") + if (_unitfaction in ["blu_gen_f"]) exitwith { #include "f_briefing_gendarmerie.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // OPFOR > CSAT -if (_unitfaction in ["opf_f","opf_t_f","csat","csatpacific"]) exitwith { - #if __has_include("f_briefing_csat.sqf") +#if __has_include("f_briefing_csat.sqf") + if (_unitfaction in ["opf_f","opf_t_f","csat","csatpacific"]) exitwith { #include "f_briefing_csat.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // OPFOR > Spetsnaz -if (_unitfaction in ["opf_r_f","spetsnaz"]) exitwith { - #if __has_include("f_briefing_spetsnaz.sqf") +#if __has_include("f_briefing_spetsnaz.sqf") + if (_unitfaction in ["opf_r_f","spetsnaz"]) exitwith { #include "f_briefing_spetsnaz.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // INDEPENDENT > AAF -if (_unitfaction in ["ind_f","aaf"]) exitwith { - #if __has_include("f_briefing_aaf.sqf") +#if __has_include("f_briefing_aaf.sqf") + if (_unitfaction in ["ind_f","aaf"]) exitwith { #include "f_briefing_aaf.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // INDEPENDENT > LDF -if (_unitfaction in ["ind_e_f","ldf"]) exitwith { - #if __has_include("f_briefing_ldf.sqf") +#if __has_include("f_briefing_ldf.sqf") + if (_unitfaction in ["ind_e_f","ldf"]) exitwith { #include "f_briefing_ldf.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // INDEPENDENT > SYNDIKAT -if (_unitfaction in ["ind_c_f","syndikat"]) exitwith { - #if __has_include("f_briefing_syndikat.sqf") +#if __has_include("f_briefing_syndikat.sqf") + if (_unitfaction in ["ind_c_f","syndikat"]) exitwith { #include "f_briefing_syndikat.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // INDEPENDENT > NPR (Looters) -if (_unitfaction in ["ind_l_f","npr"]) exitwith { - #if __has_include("f_briefing_npr.sqf") +#if __has_include("f_briefing_npr.sqf") + if (_unitfaction in ["ind_l_f","npr"]) exitwith { #include "f_briefing_npr.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // BLUFOR > CTRG -if (_unitfaction in ["blu_ctrg_f","ctrg"]) exitwith { - #if __has_include("f_briefing_ctrg.sqf") +#if __has_include("f_briefing_ctrg.sqf") + if (_unitfaction in ["blu_ctrg_f","ctrg"]) exitwith { #include "f_briefing_ctrg.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // CIVILIAN and IDAP -if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { - #if __has_include("f_briefing_civ.sqf") +#if __has_include("f_briefing_civ.sqf") + if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { #include "f_briefing_civ.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // VIRTUAL FACTION > 3IFB -if (_unitfaction in ["3ifb"]) exitwith { - #if __has_include("f_briefing_3ifb.sqf") +#if __has_include("f_briefing_3ifb.sqf") + if (_unitfaction in ["3ifb"]) exitwith { #include "f_briefing_3ifb.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // ZEUS -if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { - #if __has_include("f_briefing_zeus.sqf") +#if __has_include("f_briefing_zeus.sqf") + if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { #include "f_briefing_zeus.sqf" [_unitfaction] call _fnc_debug; - #endif -}; + }; +#endif // Virtual Spectator if (typeOf player isEqualTo "VirtualSpectator_F") exitwith { From 72f76a98aaf88f43b542a2f4c6dec072d4606f10 Mon Sep 17 00:00:00 2001 From: darkChozo Date: Fri, 2 Apr 2021 17:52:41 -0400 Subject: [PATCH 273/407] fixed zeus briefing debug --- f/briefing/fn_createBriefing.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index 80e5a563e..cec8c1a46 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -153,7 +153,7 @@ if (f_param_debugMode == 1) then #if __has_include("f_briefing_zeus.sqf") if (_unitfaction == "" && ! (typeOf player isEqualTo "VirtualSpectator_F")) exitwith { #include "f_briefing_zeus.sqf" - [_unitfaction] call _fnc_debug; + ["zeus"] call _fnc_debug; }; #endif From d338bb29b1dfacd2e5777f8d66cfda6ac4d81f18 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 10 Apr 2021 18:23:31 +0100 Subject: [PATCH 274/407] Fix slotting order of technical crews --- mission.sqm | 185 +++++++++++++++++++++++++++++----------------------- 1 file changed, 105 insertions(+), 80 deletions(-) diff --git a/mission.sqm b/mission.sqm index 05b2b04f3..923f74218 100644 --- a/mission.sqm +++ b/mission.sqm @@ -1,4 +1,4 @@ -version=53; +version=54; class EditorData { moveGridStep=1; @@ -8,17 +8,18 @@ class EditorData toggles=517; class ItemIDProvider { - nextID=3706; + nextID=3726; }; class Camera { - pos[]={2521.6931,34.724888,919.46991}; - dir[]={-0.76816863,-0.33065769,0.54826856}; - up[]={-0.26914039,0.94374913,0.19209684}; - aside[]={0.58094877,1.6466947e-007,0.81395072}; + pos[]={1429.4276,30,1650.8149}; + dir[]={0,-0.70710683,0.70710683}; + up[]={0,0.70710677,0.70710677}; + aside[]={0.99999994,0,-0}; }; }; binarizationWanted=0; +sourceName="FA3-5-5_release_template"; addons[]= { "A3_Soft_F_Enoch_Truck_02", @@ -81,7 +82,7 @@ class AddonsMetaData class Item0 { className="A3_Soft_F_Enoch"; - name="Arma 3 Enoch - Unarmored Land Vehicles"; + name="Arma 3 Contact Platform - Unarmored Land Vehicles"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; @@ -95,7 +96,7 @@ class AddonsMetaData class Item2 { className="A3_Characters_F_Enoch"; - name="Arma 3 Enoch - Characters and Clothing"; + name="Arma 3 Contact Platform - Characters and Clothing"; author="Bohemia Interactive"; url="https://www.arma3.com"; }; @@ -10395,17 +10396,18 @@ class Mission position[]={2438.377,5.0014391,877.57196}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; - init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; - name="UnitNPR_IFV1_D"; - description="NPR Technical 1 Driver (Repair)"; + rank="CORPORAL"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; + name="UnitNPR_IFV1_G"; + description="NPR Technical 1 Gunner"; isPlayable=1; reportRemoteTargets=1; }; - id=2512; + id=2513; type="O_G_Soldier_F"; class CustomAttributes { @@ -10436,22 +10438,22 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2438.377,5.0014391,877.57196}; + position[]={2438.377,4.932281,877.57068}; }; side="East"; - flags=6; + flags=4; class Attributes { skill=0.60000002; - rank="CORPORAL"; - init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; - name="UnitNPR_IFV1_G"; - description="NPR Technical 1 Gunner"; + init="[this,""npr""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; + name="UnitNPR_IFV1_D"; + description="NPR Technical 1 Driver (Repair)"; isPlayable=1; reportRemoteTargets=1; }; - id=2513; + id=3711; type="O_G_Soldier_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -10493,27 +10495,28 @@ class Mission class Item0 { linkID=0; - item0=2512; + item0=2513; item1=2514; class CustomData { - role=1; + role=2; + turretPath[]={0}; }; }; class Item1 { linkID=1; - item0=2513; + item0=3711; item1=2514; class CustomData { - role=2; - turretPath[]={0}; + role=1; }; }; }; }; id=2511; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -10556,6 +10559,7 @@ class Mission }; id=2514; type="O_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; class Item107 { @@ -10614,7 +10618,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={2473.1011,5.0014391,877.48901}; + position[]={2473.1011,4.932281,877.48773}; }; side="East"; flags=4; @@ -10627,8 +10631,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=2517; + id=3713; type="O_G_Soldier_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -10681,7 +10686,7 @@ class Mission class Item1 { linkID=1; - item0=2517; + item0=3713; item1=2518; class CustomData { @@ -10691,6 +10696,7 @@ class Mission }; }; id=2515; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -10733,6 +10739,7 @@ class Mission }; id=2518; type="O_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; class Item109 { @@ -11875,7 +11882,7 @@ class Mission position[]={2381.1589,7.5568428,1301.319}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -11894,7 +11901,7 @@ class Mission position[]={2423.8579,7.5568428,1301.094}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -11913,7 +11920,7 @@ class Mission position[]={2475.9971,7.5568428,1300.306}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -11932,7 +11939,7 @@ class Mission position[]={2529.116,7.5568428,1300.116}; }; side="East"; - flags=4; + flags=6; class Attributes { skill=0.60000002; @@ -13282,6 +13289,7 @@ class Mission }; id=2636; type="B_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; class Item219 { @@ -13301,6 +13309,7 @@ class Mission }; id=2637; type="B_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; class Item220 { @@ -17086,7 +17095,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=2731; + id=3723; type="B_Soldier_F"; }; class Item5 @@ -17107,7 +17116,7 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=2732; + id=3725; type="B_Soldier_F"; }; }; @@ -36050,17 +36059,18 @@ class Mission position[]={441.642,5.0014391,878.33398}; }; side="West"; - flags=4; + flags=6; class Attributes { skill=0.60000002; - init="[""lvd"",this] call f_fnc_assignGear;"; - name="UnitFIA_IFV1_D"; - description="FIA Technical 1 Driver (Repair)"; + rank="CORPORAL"; + init="[""lvc"",this] call f_fnc_assignGear;"; + name="UnitFIA_IFV1_G"; + description="FIA Technical 1 Gunner"; isPlayable=1; reportRemoteTargets=1; }; - id=3303; + id=3304; type="B_G_Soldier_F"; class CustomAttributes { @@ -36091,22 +36101,22 @@ class Mission dataType="Object"; class PositionInfo { - position[]={441.642,5.0014391,878.33398}; + position[]={441.642,4.932281,878.3327}; }; side="West"; - flags=6; + flags=4; class Attributes { skill=0.60000002; - rank="CORPORAL"; - init="[""lvc"",this] call f_fnc_assignGear;"; - name="UnitFIA_IFV1_G"; - description="FIA Technical 1 Gunner"; + init="[""lvd"",this] call f_fnc_assignGear;"; + name="UnitFIA_IFV1_D"; + description="FIA Technical 1 Driver (Repair)"; isPlayable=1; reportRemoteTargets=1; }; - id=3304; + id=3707; type="B_G_Soldier_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -36148,27 +36158,28 @@ class Mission class Item0 { linkID=0; - item0=3303; + item0=3304; item1=2636; class CustomData { - role=1; + role=2; + turretPath[]={0}; }; }; class Item1 { linkID=1; - item0=3304; + item0=3707; item1=2636; class CustomData { - role=2; - turretPath[]={0}; + role=1; }; }; }; }; id=3302; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -36250,7 +36261,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={476.36499,5.0014391,878.25098}; + position[]={476.36499,4.932281,878.24969}; }; side="West"; flags=4; @@ -36263,8 +36274,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=3307; + id=3709; type="B_G_Soldier_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -36317,7 +36329,7 @@ class Mission class Item1 { linkID=1; - item0=3307; + item0=3709; item1=2637; class CustomData { @@ -36327,6 +36339,7 @@ class Mission }; }; id=3305; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -41722,7 +41735,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1384.7111,5.0014391,872.323}; + position[]={1384.7111,4.932281,872.32172}; }; side="Independent"; flags=4; @@ -41734,8 +41747,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=3439; + id=3719; type="I_C_Soldier_Para_1_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -41788,7 +41802,7 @@ class Mission class Item1 { linkID=1; - item0=3439; + item0=3719; item1=3440; class CustomData { @@ -41798,6 +41812,7 @@ class Mission }; }; id=3437; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -41840,6 +41855,7 @@ class Mission }; id=3440; type="B_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; class Item452 { @@ -41897,7 +41913,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1425.525,5.0014391,875.41602}; + position[]={1425.525,4.932281,875.41473}; }; side="Independent"; flags=4; @@ -41909,8 +41925,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=3443; + id=3721; type="I_C_Soldier_Para_1_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -41963,7 +41980,7 @@ class Mission class Item1 { linkID=1; - item0=3443; + item0=3721; item1=3444; class CustomData { @@ -41973,6 +41990,7 @@ class Mission }; }; id=3441; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -42015,6 +42033,7 @@ class Mission }; id=3444; type="B_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; class Item454 { @@ -50089,17 +50108,18 @@ class Mission position[]={1391.3781,5.0014391,1676.572}; }; side="Independent"; - flags=4; + flags=6; class Attributes { skill=0.60000002; - init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; - name="Unit3IFB_IFV1_D"; - description="3IFB Technical 1 Driver (Repair)"; + rank="CORPORAL"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; + name="Unit3IFB_IFV1_G"; + description="3IFB Technical 1 Gunner"; isPlayable=1; reportRemoteTargets=1; }; - id=3678; + id=3679; type="I_G_Soldier_F"; class CustomAttributes { @@ -50130,22 +50150,22 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1391.3781,5.0014391,1676.572}; + position[]={1391.3781,4.932281,1676.5707}; }; side="Independent"; - flags=6; + flags=4; class Attributes { skill=0.60000002; - rank="CORPORAL"; - init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvc"",this] call f_fnc_assignGear;"; - name="Unit3IFB_IFV1_G"; - description="3IFB Technical 1 Gunner"; + init="[this,""3ifb""] call f_fnc_setVirtualFaction; [""lvd"",this] call f_fnc_assignGear;"; + name="Unit3IFB_IFV1_D"; + description="3IFB Technical 1 Driver (Repair)"; isPlayable=1; reportRemoteTargets=1; }; - id=3679; + id=3715; type="I_G_Soldier_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -50187,27 +50207,28 @@ class Mission class Item0 { linkID=0; - item0=3678; + item0=3679; item1=3704; class CustomData { - role=1; + role=2; + turretPath[]={0}; }; }; class Item1 { linkID=1; - item0=3679; + item0=3715; item1=3704; class CustomData { - role=2; - turretPath[]={0}; + role=1; }; }; }; }; id=3677; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -50289,7 +50310,7 @@ class Mission dataType="Object"; class PositionInfo { - position[]={1426.101,5.0014391,1676.489}; + position[]={1426.101,4.932281,1676.4877}; }; side="Independent"; flags=4; @@ -50302,8 +50323,9 @@ class Mission isPlayable=1; reportRemoteTargets=1; }; - id=3682; + id=3717; type="I_G_Soldier_F"; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -50356,7 +50378,7 @@ class Mission class Item1 { linkID=1; - item0=3682; + item0=3717; item1=3705; class CustomData { @@ -50366,6 +50388,7 @@ class Mission }; }; id=3680; + atlOffset=-0.069158077; class CustomAttributes { class Attribute0 @@ -50971,6 +50994,7 @@ class Mission }; id=3704; type="I_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; class Item592 { @@ -50990,6 +51014,7 @@ class Mission }; id=3705; type="I_G_Offroad_01_armed_F"; + atlOffset=-0.069158077; }; }; class Connections From 0b3d76d21e156419984f91beac2074f1f0fd1460 Mon Sep 17 00:00:00 2001 From: s Date: Sun, 11 Apr 2021 13:20:39 +0200 Subject: [PATCH 275/407] Fix issue #333 --- f/groupMarkers/f_setLocalGroupMarkers.sqf | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index f1d6780c5..44ebee284 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -95,13 +95,16 @@ if (_unitfaction in ["civ_f","civ_idap_f"]) then { // ==================================================================================== { - _x params ["_group", "_icon", "_markerText", "_color", "_id"]; + _x params ["_grpName", "_icon", "_markerText", "_color", "_id"]; if (_icon != "") then { - if (_group find "Unit" >= 0) then { - _x spawn f_fnc_localSpecialistMarker; - } else { + // Note: if a group is defined in the mission file, it exists even when + // no players are in this group yet. + private _grpOrUnit = missionNamespace getVariable [_grpName,objNull]; + if (_grpOrUnit isEqualType grpNull) then { _x spawn f_fnc_localGroupMarker; - }; + } else { + _x spawn f_fnc_localSpecialistMarker; + } }; } forEach _groups; From ae8933f1c7d9b91cae5735a1eb9fa6834d42980a Mon Sep 17 00:00:00 2001 From: s Date: Sun, 11 Apr 2021 14:27:17 +0200 Subject: [PATCH 276/407] Fix #329 --- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 47 ++++++++++-------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index db125247d..f2c29e56f 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -51,19 +51,9 @@ if(_grpstemp isEqualType sideUnknown) then // if the variable is any of the side { { - if(_onlyPlayers) then + if (side _x == _grpstemp) then { - if((side _x == _grpstemp) && (leader _x in playableUnits)) then - { - _grps pushBack _x; // Add group to array - }; - } - else - { - if (side _x == _grpstemp) then - { - _grps pushBack _x; // Add group to array - }; + _grps pushBack _x; // Add group to array }; } forEach allGroups; @@ -106,25 +96,13 @@ if (count _grps == 0) exitWith { // ==================================================================================== -// CREATE STARTING VALUES -// A count is made of units in the groups listed in _grps. - -_started = 0; -{_started = _started + (count (units _x))} forEach _grps; - -// DEBUG -if (f_param_debugMode == 1) then -{ - player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; -}; - -// ==================================================================================== - // CHECK IF CASUALTIES CAP HAS BEEN REACHED OR EXCEEDED // Every 6 seconds the server will check to see if the number of casualties sustained // within the group(s) has reached the percentage specificed in the variable _pc. If // the cap has been reached, the loop will exit to trigger the ending. +_started = 0; + while {true} do { _remaining = 0; @@ -133,9 +111,24 @@ while {true} do { _grp = _x; _alive = {alive _x} count (units _grp); - _remaining = _remaining + _alive; + + // Only count units if leader is a player or if we want to include AI + if( !_onlyPlayers || (leader _grp in playableUnits) ) then { + _remaining = _remaining + _alive; + }; + } forEach _grps; + + if(_started == 0) then { + _started = _remaining; + // DEBUG + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; + }; + } + // DEBUG if (f_param_debugMode == 1) then { From a9fd570501f3e031d3494825955590cc3e7deb5f Mon Sep 17 00:00:00 2001 From: shadow-fa Date: Sun, 11 Apr 2021 17:50:12 +0200 Subject: [PATCH 277/407] Update f/groupMarkers/f_setLocalGroupMarkers.sqf --- f/groupMarkers/f_setLocalGroupMarkers.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index 44ebee284..c4983b0aa 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -104,7 +104,7 @@ if (_unitfaction in ["civ_f","civ_idap_f"]) then { _x spawn f_fnc_localGroupMarker; } else { _x spawn f_fnc_localSpecialistMarker; - } + }; }; } forEach _groups; From 70e07a5c6812bd0ac73e76801b04e4963c905e66 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 12 Apr 2021 17:22:51 +0100 Subject: [PATCH 278/407] Fix CSAT Pacific crew helmet --- f/assignGear/f_assignGear_csatPacific.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 6b0550fc7..5ad7c3c6c 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -316,7 +316,7 @@ _jetGlasses = []; // Crewman _crewUniform = ["U_O_T_Soldier_F"]; -_crewHelmet = ["H_HelmetCrew_O"]; +_crewHelmet = ["H_HelmetCrew_O_ghex_F"]; _crewRig = ["V_HarnessO_ghex_F"]; _crewGlasses = []; From 00742724dfa8ef2a5259969e8f60137cb92aed5b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 23 Apr 2021 23:12:16 +0100 Subject: [PATCH 279/407] Revert "Issue #329: Make CasCap work with reinforcements" --- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 47 ++++++++++++++---------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index f2c29e56f..db125247d 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -51,9 +51,19 @@ if(_grpstemp isEqualType sideUnknown) then // if the variable is any of the side { { - if (side _x == _grpstemp) then + if(_onlyPlayers) then { - _grps pushBack _x; // Add group to array + if((side _x == _grpstemp) && (leader _x in playableUnits)) then + { + _grps pushBack _x; // Add group to array + }; + } + else + { + if (side _x == _grpstemp) then + { + _grps pushBack _x; // Add group to array + }; }; } forEach allGroups; @@ -96,13 +106,25 @@ if (count _grps == 0) exitWith { // ==================================================================================== +// CREATE STARTING VALUES +// A count is made of units in the groups listed in _grps. + +_started = 0; +{_started = _started + (count (units _x))} forEach _grps; + +// DEBUG +if (f_param_debugMode == 1) then +{ + player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; +}; + +// ==================================================================================== + // CHECK IF CASUALTIES CAP HAS BEEN REACHED OR EXCEEDED // Every 6 seconds the server will check to see if the number of casualties sustained // within the group(s) has reached the percentage specificed in the variable _pc. If // the cap has been reached, the loop will exit to trigger the ending. -_started = 0; - while {true} do { _remaining = 0; @@ -111,24 +133,9 @@ while {true} do { _grp = _x; _alive = {alive _x} count (units _grp); - - // Only count units if leader is a player or if we want to include AI - if( !_onlyPlayers || (leader _grp in playableUnits) ) then { - _remaining = _remaining + _alive; - }; - + _remaining = _remaining + _alive; } forEach _grps; - - if(_started == 0) then { - _started = _remaining; - // DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; - }; - } - // DEBUG if (f_param_debugMode == 1) then { From 8ffb2f5c2e9fba7cf3564d6c87715c187ecd5e6d Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 3 May 2021 17:47:38 +0100 Subject: [PATCH 280/407] Implement Lexer's fix option This might get replaced by something else if it doesn't work --- f/zeus/fn_zeusAddAddons.sqf | 10 ---------- f/zeus/fn_zeusInit.sqf | 4 ++-- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/f/zeus/fn_zeusAddAddons.sqf b/f/zeus/fn_zeusAddAddons.sqf index 24f7774df..6453e11ba 100644 --- a/f/zeus/fn_zeusAddAddons.sqf +++ b/f/zeus/fn_zeusAddAddons.sqf @@ -41,7 +41,6 @@ if (isNull _curator || typeOf _curator != "ModuleCurator_F") exitWith { // Decide which addons to add based on passed mode _addons = [""]; -_curator setVariable ["Addons",0,true]; switch (typeName _mode) do { case "ARRAY": {_addons = _mode}; @@ -49,17 +48,8 @@ switch (typeName _mode) do { case "BOOL": { if (_mode) then { _curator setVariable ["Addons",3,true]; - // If true was passed, add all available addons to curator list - _cfgPatches = configfile >> "cfgpatches"; - for "_i" from 0 to (count _cfgPatches - 1) do { - _class = _cfgPatches select _i; - if (isclass _class) then {_addons pushBack (configname _class);}; - }; - _addons call bis_fnc_activateaddons; - removeallcuratoraddons _curator; } else { _curator setVariable ["Addons",0,true]; - removeallcuratoraddons _curator; }; }; }; diff --git a/f/zeus/fn_zeusInit.sqf b/f/zeus/fn_zeusInit.sqf index 72a26dd5c..94cc35ee6 100644 --- a/f/zeus/fn_zeusInit.sqf +++ b/f/zeus/fn_zeusInit.sqf @@ -70,10 +70,10 @@ if (_unitIsCurator) then { }; //Add desired addons -[_curator,_addons] spawn f_fnc_zeusAddAddons; +[_curator,_addons] call f_fnc_zeusAddAddons; //Add desired objects -[_curator,_objects] spawn f_fnc_zeusAddObjects; +[_curator,_objects] call f_fnc_zeusAddObjects; // Reduce costs for all actions _curator setCuratorWaypointCost 0; From 3ff951afe28732981a8bc3a5a128b8b979ba6c7b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 10 May 2021 16:24:40 +0100 Subject: [PATCH 281/407] Add explanatory comments to mode switch --- f/zeus/fn_zeusAddAddons.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/f/zeus/fn_zeusAddAddons.sqf b/f/zeus/fn_zeusAddAddons.sqf index 6453e11ba..6e8adfc30 100644 --- a/f/zeus/fn_zeusAddAddons.sqf +++ b/f/zeus/fn_zeusAddAddons.sqf @@ -47,8 +47,10 @@ switch (typeName _mode) do { case "STRING": {_addons = [_mode]}; case "BOOL": { if (_mode) then { + // If the mode is passed as true, set up the curator module as if its Addons drop-down in the editor was set to "All addons (including unofficial)" _curator setVariable ["Addons",3,true]; } else { + // If the mode is passed as false, set up the curator module as if its Addons drop-down in the editor was set to "No addons" _curator setVariable ["Addons",0,true]; }; }; From 6222e7c8a4177dc0577413cdf94ddfa308082739 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 10 May 2021 16:39:46 +0100 Subject: [PATCH 282/407] Define all clothing classes in gendarmerie assignGear --- f/assignGear/f_assignGear_gendarmerie.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 4164ce930..30de4d164 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -125,8 +125,12 @@ _DMriflemag = "20Rnd_762x51_Mag"; // Define classes. This defines which gear class gets which uniform // "medium" vests are used for all classes if they are not assigned a specific uniform +_diver = []; _pilot = ["pp","pcc","pc"]; +_crew = []; +_ghillie = []; _specOp = ["nf"]; +_jet = []; _vip = []; // Basic clothing From 0e45ec6b1b8988e771be8474b53402a8bc1f938e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 10 May 2021 16:46:16 +0100 Subject: [PATCH 283/407] Change AAF AR to LIM --- f/assignGear/f_assignGear_aaf.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index 0d8c48757..e716af547 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -205,9 +205,9 @@ _bagRadio = "B_RadioBag_01_digi_F"; // UNIQUE, ROLE-SPECIFIC EQUIPMENT // Automatic Rifleman -_AR = "LMG_Mk200_F"; -_ARmag = "200Rnd_65x39_cased_Box"; -_ARmag_tr = "200Rnd_65x39_cased_Box_Tracer"; +_AR = "LMG_03_F"; +_ARmag = "200Rnd_556x45_Box_F"; +_ARmag_tr = "200Rnd_556x45_Box_Tracer_F"; // Medium MG _MMG = "LMG_Zafir_F"; From d2cefeb45678320cd208d947df45c0e34d34df97 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 10 May 2021 16:47:04 +0100 Subject: [PATCH 284/407] Change FIA AR to LIM --- f/assignGear/f_assignGear_fia.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 124f6eddc..6a10ff307 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -206,9 +206,9 @@ _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** // UNIQUE, ROLE-SPECIFIC EQUIPMENT // Automatic Rifleman -_AR = "LMG_Mk200_F"; -_ARmag = "200Rnd_65x39_cased_Box"; -_ARmag_tr = "200Rnd_65x39_cased_Box_Tracer"; +_AR = "LMG_03_F"; +_ARmag = "200Rnd_556x45_Box_Red_F"; +_ARmag_tr = "200Rnd_556x45_Box_Tracer_Red_F"; // Medium MG _MMG = "LMG_Zafir_F"; From f9beab28608e604241df7b62f0d5623fc0a1061a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 10 May 2021 16:50:30 +0100 Subject: [PATCH 285/407] Update mission.sqm --- mission.sqm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mission.sqm b/mission.sqm index 61cea618a..01a7112d9 100644 --- a/mission.sqm +++ b/mission.sqm @@ -19,7 +19,7 @@ class EditorData }; }; binarizationWanted=0; -sourceName="FA3-5-5_release_template"; +sourceName="FA3-5-6_release_template"; addons[]= { "A3_Soft_F_Enoch_Truck_02", @@ -330,7 +330,7 @@ class Mission { class Intel { - briefingName="fa3-5-5"; + briefingName="fa3-5-6"; resistanceWest=0; timeOfChanges=28800; startWeather=0.50001526; From fa4427fea4328bff7991ddf08c156715fd4b62a6 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 10 May 2021 16:50:51 +0100 Subject: [PATCH 286/407] Update description.ext --- description.ext | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/description.ext b/description.ext index fdd32c096..dd751232a 100644 --- a/description.ext +++ b/description.ext @@ -1,4 +1,4 @@ -fa3_version[] = {3,5,5}; // WARNING: DO NOT CHANGE THIS LINE +fa3_version[] = {3,5,6}; // WARNING: DO NOT CHANGE THIS LINE // ============================================================================================ // F3 - Loading Screen From 4f0c4790f44fbb04a6fc88bad9a4efa59eb15d89 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 10 May 2021 16:51:33 +0100 Subject: [PATCH 287/407] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 320ec030f..b543d9a87 100644 --- a/README.md +++ b/README.md @@ -13,5 +13,5 @@ * Numerous feature updates and improvements. See https://github.com/folkarps/F3 for update history. ## Versions ## -* F3 3-5-5 +* F3 3-5-6 * ws_fnc 05/07/2015 (with FA improvements) From b9f0365794b860db201102a168ea7042fb185a8e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 13 Aug 2021 23:44:52 +0100 Subject: [PATCH 288/407] Fix wrong Spetsnaz sniper rifle --- f/assignGear/f_assignGear_spetsnaz.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index e92a144ce..a219b9ed4 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -243,7 +243,7 @@ _HATmag1 = "Vorona_HEAT"; _HATmag2 = "Vorona_HE"; // Sniper -_SNrifle = "srifle_GM6_camo_F"; +_SNrifle = "srifle_GM6_F"; _SNrifleMag = "5Rnd_127x108_Mag"; // Engineer items From 5cf85ba5938d4cccb9895be35723ba765b6f6cd9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 13 Aug 2021 23:46:02 +0100 Subject: [PATCH 289/407] Change Spetsnaz ghillie to Pacific --- f/assignGear/f_assignGear_spetsnaz.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index a219b9ed4..2b0e0fa1d 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -314,7 +314,7 @@ _crewRig = ["V_Chestrig_rgr"]; _crewGlasses = []; // Ghillie -_ghillieUniform = ["U_O_GhillieSuit"]; //DLC alternatives: ["U_O_FullGhillie_lsh","U_O_FullGhillie_ard","U_O_FullGhillie_sard"]; +_ghillieUniform = ["U_O_T_Sniper_F"]; //DLC alternatives: ["U_O_FullGhillie_lsh","U_O_FullGhillie_ard","U_O_FullGhillie_sard"]; _ghillieHelmet = []; _ghillieRig = ["V_Chestrig_rgr"]; _ghillieGlasses = []; From aed2120c43782fb06329341f920deb5c1045c1bf Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 13 Aug 2021 23:51:36 +0100 Subject: [PATCH 290/407] Force add traits to engineers --- f/assignGear/f_assignGear_3IFB_standard.sqf | 4 ++++ f/assignGear/f_assignGear_aaf_standard.sqf | 4 ++++ f/assignGear/f_assignGear_csatPacific_standard.sqf | 4 ++++ f/assignGear/f_assignGear_csat_standard.sqf | 4 ++++ f/assignGear/f_assignGear_ctrg_standard.sqf | 4 ++++ f/assignGear/f_assignGear_fia_standard.sqf | 4 ++++ f/assignGear/f_assignGear_ldf_standard.sqf | 4 ++++ f/assignGear/f_assignGear_natoPacific_standard.sqf | 4 ++++ f/assignGear/f_assignGear_natoWoodland_standard.sqf | 4 ++++ f/assignGear/f_assignGear_nato_standard.sqf | 4 ++++ f/assignGear/f_assignGear_npr_standard.sqf | 4 ++++ f/assignGear/f_assignGear_spetsnaz_standard.sqf | 4 ++++ f/assignGear/f_assignGear_syndikat_standard.sqf | 4 ++++ 13 files changed, 52 insertions(+) diff --git a/f/assignGear/f_assignGear_3IFB_standard.sqf b/f/assignGear/f_assignGear_3IFB_standard.sqf index 54a950def..6fc7bd59f 100644 --- a/f/assignGear/f_assignGear_3IFB_standard.sqf +++ b/f/assignGear/f_assignGear_3IFB_standard.sqf @@ -519,6 +519,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -534,6 +536,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_aaf_standard.sqf b/f/assignGear/f_assignGear_aaf_standard.sqf index c0fc12608..4bc70bde1 100644 --- a/f/assignGear/f_assignGear_aaf_standard.sqf +++ b/f/assignGear/f_assignGear_aaf_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_csatPacific_standard.sqf b/f/assignGear/f_assignGear_csatPacific_standard.sqf index 75763855c..31b5ef786 100644 --- a/f/assignGear/f_assignGear_csatPacific_standard.sqf +++ b/f/assignGear/f_assignGear_csatPacific_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_csat_standard.sqf b/f/assignGear/f_assignGear_csat_standard.sqf index 1ce309b42..8236c5565 100644 --- a/f/assignGear/f_assignGear_csat_standard.sqf +++ b/f/assignGear/f_assignGear_csat_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index e0066c952..84a610f3c 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -517,6 +517,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -532,6 +534,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index 0953cb351..f18cc88f7 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -517,6 +517,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -532,6 +534,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_ldf_standard.sqf b/f/assignGear/f_assignGear_ldf_standard.sqf index 51b414c63..937541629 100644 --- a/f/assignGear/f_assignGear_ldf_standard.sqf +++ b/f/assignGear/f_assignGear_ldf_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_natoPacific_standard.sqf b/f/assignGear/f_assignGear_natoPacific_standard.sqf index e2dbf74b6..734e704e3 100644 --- a/f/assignGear/f_assignGear_natoPacific_standard.sqf +++ b/f/assignGear/f_assignGear_natoPacific_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_natoWoodland_standard.sqf b/f/assignGear/f_assignGear_natoWoodland_standard.sqf index 4438530a7..a0453f85b 100644 --- a/f/assignGear/f_assignGear_natoWoodland_standard.sqf +++ b/f/assignGear/f_assignGear_natoWoodland_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_nato_standard.sqf b/f/assignGear/f_assignGear_nato_standard.sqf index 4e9c5d565..1f448a640 100644 --- a/f/assignGear/f_assignGear_nato_standard.sqf +++ b/f/assignGear/f_assignGear_nato_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_npr_standard.sqf b/f/assignGear/f_assignGear_npr_standard.sqf index 3f8654b68..57e5eacaa 100644 --- a/f/assignGear/f_assignGear_npr_standard.sqf +++ b/f/assignGear/f_assignGear_npr_standard.sqf @@ -520,6 +520,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -535,6 +537,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf index 56802f10d..ef0741899 100644 --- a/f/assignGear/f_assignGear_spetsnaz_standard.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -521,6 +521,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -536,6 +538,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 151f46341..63749a5dd 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -517,6 +517,8 @@ switch (_typeofUnit) do // Engineer (Demo) Loadout: case "eng": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; @@ -532,6 +534,8 @@ switch (_typeofUnit) do // Engineer (Mines) Loadout: case "engm": { + _unit setUnitTrait ["engineer",true]; // Can repair + _unit setUnitTrait ["explosiveSpecialist",true]; // Can defuse explosives _unit addBackpack _bagLarge; _unit addmagazines [_carbinemag, 1]; _unit addweapon _carbine; From 33111c95a3f098131e737895c7ab7eaa089adb2d Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 15 Aug 2021 18:34:41 +0100 Subject: [PATCH 291/407] First stage of Hund radio script --- f/radio/f_radioChannels.sqf | 130 ++++++++++++++++++++++++++++++++++++ init.sqf | 11 +++ 2 files changed, 141 insertions(+) create mode 100644 f/radio/f_radioChannels.sqf diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf new file mode 100644 index 000000000..43eb9b78c --- /dev/null +++ b/f/radio/f_radioChannels.sqf @@ -0,0 +1,130 @@ +// F3 - Folk ARPS Long-Range Radio Module +// Credits and documentation: https://github.com/folkarps/F3/wiki + +/* ======================== +This module is activated in init.sqf. +Example: +[true,false] execVM "f\radio\f_radioChannels.sqf"; + +Arguments: +0. Long-range split mode (boolean). If true, each radio backpack type has a separate channel. If false, all backpacks use one channel. Default false. +1. Require a radio item to use Group channel (boolean). If true, people without a Radio inventory item cannot use Group channel. Default false. +=========================== */ + +params [["_splitMode",false,false],["_groupRadios",false,false]]; + +// Define a list of radio backpacks to recognise +f_longRangeRadioList = [ + "B_RadioBag_01_black_F", + "B_RadioBag_01_digi_F", + "B_RadioBag_01_eaf_F", + "B_RadioBag_01_ghex_F", + "B_RadioBag_01_hex_F", + "B_RadioBag_01_tropic_F", + "B_RadioBag_01_oucamo_F", + "B_RadioBag_01_mtp_F", + "B_RadioBag_01_wdl_F", + "US85_bpPRC77", + "CSLA_bpWpR129", + "gm_gc_backpack_r105m_brn", + "gm_ge_backpack_sem35_oli" +]; + +// Determine whether we are splitting by backpack type or using one channel for all +if (_splitMode) then { + + // On the server, set up all channels for later use + if (isServer) then { + + f_radioChannelList = []; + for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { + _ChannelName = format ["LR CH%1", (_i + 1)]; + _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); + if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; + f_radioChannelList append [_ChannelID]; + }; + publicVariable "f_radioChannelList"; + }; + + // Clients wait for the server to finish with that + waitUntil {!(isNil "f_radioChannelList")}; + + // Add player to the correct channels if they have a backpack + for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack player == (f_longRangeRadioList select _i)) then { + (f_radioChannelList select _i) radioChannelAdd [player]; + ((f_radioChannelList select _i) + 5) enableChannel true; + }; + }; + + // Remove player from channels if they drop a backpack + player addEventHandler ["put", { + params ["_unit"]; + for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack _unit == (f_longRangeRadioList select _i)) then { + (f_radioChannelList select _i) radioChannelAdd [_unit]; + ((f_radioChannelList select _i) + 5) enableChannel true; + } else { + (f_radioChannelList select _i) radioChannelRemove [_unit]; + }; + }; + }]; + + // Add player to channels if they take a backpack + player addEventHandler ["take", { + params ["_unit"]; + for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack _unit == (f_longRangeRadioList select _i)) then { + (f_radioChannelList select _i) radioChannelAdd [_unit]; + ((f_radioChannelList select _i) + 5) enableChannel true; + } else { + (f_radioChannelList select _i) radioChannelRemove [_unit]; + }; + }; + }]; + +} else { + + // If using unified mode, only set up one channel + if (isServer) then { + + f_channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], "Long Range", "%UNIT_NAME", []]); + if (f_channelID == 0) exitWith {diag_log format ["Custom channel '%1' creation failed!", _channelName]}; + publicVariable "f_channelID"; + }; + + waitUntil {!(isNil "f_channelID")}; + + if((backpack player) in f_longRangeRadioList) then { + f_channelID radioChannelAdd [player]; + (f_channelID + 5) enableChannel true; + }; + + player addEventHandler ["put", { + params ["_unit"]; + if(!((backpack player) in f_longRangeRadioList)) then { + f_channelID radioChannelRemove [_unit]; + } else { + f_channelID radioChannelAdd [_unit]; + (f_channelID + 5) enableChannel true; + }; + }]; + + player addEventHandler ["take", { + params ["_unit"]; + if(!((backpack player) in f_longRangeRadioList)) then { + f_channelID radioChannelRemove [_unit]; + } else { + f_channelID radioChannelAdd [_unit]; + (f_channelID + 5) enableChannel true; + }; + }]; + +}; + +// Determine if we are disabling Group channel for people without radios +if (_groupRadios) then { + +// TODO insert code here + +}; \ No newline at end of file diff --git a/init.sqf b/init.sqf index 55fd9d93e..46c455bbb 100644 --- a/init.sqf +++ b/init.sqf @@ -218,3 +218,14 @@ f_var_viewDistance_crewOnly = true; // [[UnitName1, "UnitClass1"]] spawn f_fnc_disableThermals; // ==================================================================================== + +// ==================================================================================== + +// F3 - Radio Channels +// Credits and documentation: https://github.com/folkarps/F3/wiki +// First argument: true to split channels by radio backpack type. Else one channel for all. +// Second argument: true to disable Group channel for anyone without a Radio item. Else no effect. + +// [false,false] execVM "f\radio\f_radioChannels.sqf"; + +// ==================================================================================== From 64665390d8176216f571320dacbe34ed962fb1d3 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 15 Aug 2021 18:40:09 +0100 Subject: [PATCH 292/407] Remove group radio stuff Group channel can't be disabled so that can't be done --- f/radio/f_radioChannels.sqf | 12 ++---------- init.sqf | 5 ++--- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 43eb9b78c..8986cef41 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -4,14 +4,13 @@ /* ======================== This module is activated in init.sqf. Example: -[true,false] execVM "f\radio\f_radioChannels.sqf"; +[true] execVM "f\radio\f_radioChannels.sqf"; Arguments: 0. Long-range split mode (boolean). If true, each radio backpack type has a separate channel. If false, all backpacks use one channel. Default false. -1. Require a radio item to use Group channel (boolean). If true, people without a Radio inventory item cannot use Group channel. Default false. =========================== */ -params [["_splitMode",false,false],["_groupRadios",false,false]]; +params [["_splitMode",false,false]]; // Define a list of radio backpacks to recognise f_longRangeRadioList = [ @@ -120,11 +119,4 @@ if (_splitMode) then { }; }]; -}; - -// Determine if we are disabling Group channel for people without radios -if (_groupRadios) then { - -// TODO insert code here - }; \ No newline at end of file diff --git a/init.sqf b/init.sqf index 46c455bbb..c11060adc 100644 --- a/init.sqf +++ b/init.sqf @@ -223,9 +223,8 @@ f_var_viewDistance_crewOnly = true; // F3 - Radio Channels // Credits and documentation: https://github.com/folkarps/F3/wiki -// First argument: true to split channels by radio backpack type. Else one channel for all. -// Second argument: true to disable Group channel for anyone without a Radio item. Else no effect. +// True to split channels by radio backpack type. Else one channel for all. -// [false,false] execVM "f\radio\f_radioChannels.sqf"; +// [false] execVM "f\radio\f_radioChannels.sqf"; // ==================================================================================== From 6cff92d0c418a39885e5165c5103871bb33ac443 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 15 Aug 2021 18:42:14 +0100 Subject: [PATCH 293/407] Add missed CSLA radio --- f/radio/f_radioChannels.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 8986cef41..4cc3e0559 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -25,6 +25,7 @@ f_longRangeRadioList = [ "B_RadioBag_01_wdl_F", "US85_bpPRC77", "CSLA_bpWpR129", + "CSLA_bpWpRF10", "gm_gc_backpack_r105m_brn", "gm_ge_backpack_sem35_oli" ]; From bb9fb88ab19654b565cb13390515a2628c8d92e0 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 15 Aug 2021 18:47:54 +0100 Subject: [PATCH 294/407] Fix channel overrun with GM items --- f/radio/f_radioChannels.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 4cc3e0559..63e95d529 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -23,12 +23,16 @@ f_longRangeRadioList = [ "B_RadioBag_01_oucamo_F", "B_RadioBag_01_mtp_F", "B_RadioBag_01_wdl_F", +]; + +// There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: +/* "US85_bpPRC77", "CSLA_bpWpR129", "CSLA_bpWpRF10", "gm_gc_backpack_r105m_brn", "gm_ge_backpack_sem35_oli" -]; +*/ // Determine whether we are splitting by backpack type or using one channel for all if (_splitMode) then { From 4fc01536d0954e9b243dfdcff84e415ea395a255 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 15 Aug 2021 18:48:21 +0100 Subject: [PATCH 295/407] Fix extra comma --- f/radio/f_radioChannels.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 63e95d529..c51662312 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -22,7 +22,7 @@ f_longRangeRadioList = [ "B_RadioBag_01_tropic_F", "B_RadioBag_01_oucamo_F", "B_RadioBag_01_mtp_F", - "B_RadioBag_01_wdl_F", + "B_RadioBag_01_wdl_F" ]; // There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: From 11bfdf95dd72ed175e9b15f76e4da0fc582c5fe8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 17 Aug 2021 21:57:05 +0100 Subject: [PATCH 296/407] Fix param default value --- f/radio/f_radioChannels.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index c51662312..036ca8ea6 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -10,7 +10,7 @@ Arguments: 0. Long-range split mode (boolean). If true, each radio backpack type has a separate channel. If false, all backpacks use one channel. Default false. =========================== */ -params [["_splitMode",false,false]]; +params [["_splitMode",false]]; // Define a list of radio backpacks to recognise f_longRangeRadioList = [ @@ -124,4 +124,4 @@ if (_splitMode) then { }; }]; -}; \ No newline at end of file +}; From f4afcd6095c949dd56d1cfb4d1476b7b8fd30cc5 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 18 Aug 2021 18:03:18 +0100 Subject: [PATCH 297/407] Corrected variable naming scheme --- f/radio/f_radioChannels.sqf | 70 ++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 036ca8ea6..179f2b086 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -13,7 +13,7 @@ Arguments: params [["_splitMode",false]]; // Define a list of radio backpacks to recognise -f_longRangeRadioList = [ +f_var_longRangeRadioList = [ "B_RadioBag_01_black_F", "B_RadioBag_01_digi_F", "B_RadioBag_01_eaf_F", @@ -40,36 +40,36 @@ if (_splitMode) then { // On the server, set up all channels for later use if (isServer) then { - f_radioChannelList = []; - for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { + f_var_radioChannelList = []; + for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { _ChannelName = format ["LR CH%1", (_i + 1)]; _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; - f_radioChannelList append [_ChannelID]; + f_var_radioChannelList append [_ChannelID]; }; - publicVariable "f_radioChannelList"; + publicVariable "f_var_radioChannelList"; }; // Clients wait for the server to finish with that - waitUntil {!(isNil "f_radioChannelList")}; + waitUntil {!(isNil "f_var_radioChannelList")}; // Add player to the correct channels if they have a backpack - for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack player == (f_longRangeRadioList select _i)) then { - (f_radioChannelList select _i) radioChannelAdd [player]; - ((f_radioChannelList select _i) + 5) enableChannel true; + for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack player == (f_var_longRangeRadioList select _i)) then { + (f_var_radioChannelList select _i) radioChannelAdd [player]; + ((f_var_radioChannelList select _i) + 5) enableChannel true; }; }; // Remove player from channels if they drop a backpack player addEventHandler ["put", { params ["_unit"]; - for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack _unit == (f_longRangeRadioList select _i)) then { - (f_radioChannelList select _i) radioChannelAdd [_unit]; - ((f_radioChannelList select _i) + 5) enableChannel true; + for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack _unit == (f_var_longRangeRadioList select _i)) then { + (f_var_radioChannelList select _i) radioChannelAdd [_unit]; + ((f_var_radioChannelList select _i) + 5) enableChannel true; } else { - (f_radioChannelList select _i) radioChannelRemove [_unit]; + (f_var_radioChannelList select _i) radioChannelRemove [_unit]; }; }; }]; @@ -77,12 +77,12 @@ if (_splitMode) then { // Add player to channels if they take a backpack player addEventHandler ["take", { params ["_unit"]; - for[{_i=0}, {_i < (count f_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack _unit == (f_longRangeRadioList select _i)) then { - (f_radioChannelList select _i) radioChannelAdd [_unit]; - ((f_radioChannelList select _i) + 5) enableChannel true; + for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack _unit == (f_var_longRangeRadioList select _i)) then { + (f_var_radioChannelList select _i) radioChannelAdd [_unit]; + ((f_var_radioChannelList select _i) + 5) enableChannel true; } else { - (f_radioChannelList select _i) radioChannelRemove [_unit]; + (f_var_radioChannelList select _i) radioChannelRemove [_unit]; }; }; }]; @@ -92,35 +92,35 @@ if (_splitMode) then { // If using unified mode, only set up one channel if (isServer) then { - f_channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], "Long Range", "%UNIT_NAME", []]); - if (f_channelID == 0) exitWith {diag_log format ["Custom channel '%1' creation failed!", _channelName]}; - publicVariable "f_channelID"; + f_var_channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], "Long Range", "%UNIT_NAME", []]); + if (f_var_channelID == 0) exitWith {diag_log format ["Custom channel '%1' creation failed!", _channelName]}; + publicVariable "f_var_channelID"; }; - waitUntil {!(isNil "f_channelID")}; + waitUntil {!(isNil "f_var_channelID")}; - if((backpack player) in f_longRangeRadioList) then { - f_channelID radioChannelAdd [player]; - (f_channelID + 5) enableChannel true; + if((backpack player) in f_var_longRangeRadioList) then { + f_var_channelID radioChannelAdd [player]; + (f_var_channelID + 5) enableChannel true; }; player addEventHandler ["put", { params ["_unit"]; - if(!((backpack player) in f_longRangeRadioList)) then { - f_channelID radioChannelRemove [_unit]; + if(!((backpack player) in f_var_longRangeRadioList)) then { + f_var_channelID radioChannelRemove [_unit]; } else { - f_channelID radioChannelAdd [_unit]; - (f_channelID + 5) enableChannel true; + f_var_channelID radioChannelAdd [_unit]; + (f_var_channelID + 5) enableChannel true; }; }]; player addEventHandler ["take", { params ["_unit"]; - if(!((backpack player) in f_longRangeRadioList)) then { - f_channelID radioChannelRemove [_unit]; + if(!((backpack player) in f_var_longRangeRadioList)) then { + f_var_channelID radioChannelRemove [_unit]; } else { - f_channelID radioChannelAdd [_unit]; - (f_channelID + 5) enableChannel true; + f_var_channelID radioChannelAdd [_unit]; + (f_var_channelID + 5) enableChannel true; }; }]; From 5631f95a05aef903ccb2b8d07d96343631ee10a9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 19 Aug 2021 19:39:12 +0100 Subject: [PATCH 298/407] Add radio backpacks to various factions --- f/assignGear/f_assignGear_aaf.sqf | 2 +- f/assignGear/f_assignGear_csatPacific.sqf | 2 +- f/assignGear/f_assignGear_ctrg.sqf | 1 + f/assignGear/f_assignGear_ctrg_standard.sqf | 3 +++ f/assignGear/f_assignGear_fia.sqf | 1 + f/assignGear/f_assignGear_fia_standard.sqf | 3 +++ f/assignGear/f_assignGear_spetsnaz.sqf | 1 + f/assignGear/f_assignGear_spetsnaz_standard.sqf | 3 +++ f/assignGear/f_assignGear_syndikat.sqf | 1 + f/assignGear/f_assignGear_syndikat_standard.sqf | 3 +++ 10 files changed, 18 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_aaf.sqf b/f/assignGear/f_assignGear_aaf.sqf index e716af547..c6afafbe7 100644 --- a/f/assignGear/f_assignGear_aaf.sqf +++ b/f/assignGear/f_assignGear_aaf.sqf @@ -198,7 +198,7 @@ _bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "I_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "I_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "I_HMG_01_support_F"; // used by Heavy SAM assistant gunner -_bagRadio = "B_RadioBag_01_digi_F"; +_bagRadio = "B_RadioBag_01_digi_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. // ==================================================================================== diff --git a/f/assignGear/f_assignGear_csatPacific.sqf b/f/assignGear/f_assignGear_csatPacific.sqf index 5ad7c3c6c..9a4b3f27a 100644 --- a/f/assignGear/f_assignGear_csatPacific.sqf +++ b/f/assignGear/f_assignGear_csatPacific.sqf @@ -198,7 +198,7 @@ _bagmtrg = "O_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "O_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "O_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "O_HMG_01_support_F"; // used by Heavy SAM assistant gunner -_bagRadio = "B_RadioBag_01_ghex_F"; +_bagRadio = "B_RadioBag_01_ghex_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. // ==================================================================================== diff --git a/f/assignGear/f_assignGear_ctrg.sqf b/f/assignGear/f_assignGear_ctrg.sqf index 4c6a3e07c..c176dbdb7 100644 --- a/f/assignGear/f_assignGear_ctrg.sqf +++ b/f/assignGear/f_assignGear_ctrg.sqf @@ -198,6 +198,7 @@ _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = "B_RadioBag_01_black_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. // ==================================================================================== diff --git a/f/assignGear/f_assignGear_ctrg_standard.sqf b/f/assignGear/f_assignGear_ctrg_standard.sqf index 84a610f3c..ddd866207 100644 --- a/f/assignGear/f_assignGear_ctrg_standard.sqf +++ b/f/assignGear/f_assignGear_ctrg_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_fia.sqf b/f/assignGear/f_assignGear_fia.sqf index 6a10ff307..cf14d1026 100644 --- a/f/assignGear/f_assignGear_fia.sqf +++ b/f/assignGear/f_assignGear_fia.sqf @@ -200,6 +200,7 @@ _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = "B_RadioBag_01_digi_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. // ==================================================================================== diff --git a/f/assignGear/f_assignGear_fia_standard.sqf b/f/assignGear/f_assignGear_fia_standard.sqf index f18cc88f7..4540b07e1 100644 --- a/f/assignGear/f_assignGear_fia_standard.sqf +++ b/f/assignGear/f_assignGear_fia_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; diff --git a/f/assignGear/f_assignGear_spetsnaz.sqf b/f/assignGear/f_assignGear_spetsnaz.sqf index 2b0e0fa1d..11d032a0f 100644 --- a/f/assignGear/f_assignGear_spetsnaz.sqf +++ b/f/assignGear/f_assignGear_spetsnaz.sqf @@ -202,6 +202,7 @@ _bagmtrg = "I_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "I_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "I_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "I_HMG_01_support_F"; // used by Heavy SAM assistant gunner +_bagRadio = "B_RadioBag_01_black_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. // ==================================================================================== diff --git a/f/assignGear/f_assignGear_spetsnaz_standard.sqf b/f/assignGear/f_assignGear_spetsnaz_standard.sqf index ef0741899..101bb5c43 100644 --- a/f/assignGear/f_assignGear_spetsnaz_standard.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_standard.sqf @@ -73,6 +73,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addVest _radioRig; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; @@ -94,6 +95,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addVest _radioRig; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; @@ -115,6 +117,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addVest _radioRig; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; diff --git a/f/assignGear/f_assignGear_syndikat.sqf b/f/assignGear/f_assignGear_syndikat.sqf index b3df7b17a..703880dbc 100644 --- a/f/assignGear/f_assignGear_syndikat.sqf +++ b/f/assignGear/f_assignGear_syndikat.sqf @@ -197,6 +197,7 @@ _bagmtrg = "B_Mortar_01_weapon_F"; // used by Mortar gunner _bagmtrag = "B_Mortar_01_support_F"; // used by Mortar assistant gunner _baghsamg = "B_AA_01_weapon_F"; // used by Heavy SAM gunner _baghsamag = "B_HMG_01_support_F"; // used by Heavy SAM assistant gunner ** +_bagRadio = "B_RadioBag_01_black_F"; // cosmetic, used by COs, DCs, and anybody who might possibly use CC in session. // ==================================================================================== diff --git a/f/assignGear/f_assignGear_syndikat_standard.sqf b/f/assignGear/f_assignGear_syndikat_standard.sqf index 63749a5dd..464a69db6 100644 --- a/f/assignGear/f_assignGear_syndikat_standard.sqf +++ b/f/assignGear/f_assignGear_syndikat_standard.sqf @@ -72,6 +72,7 @@ switch (_typeofUnit) do // Squad Leader / DC Loadout: case "dc": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glmag, 1]; _unit addweapon _glrifle; @@ -92,6 +93,7 @@ switch (_typeofUnit) do // Platoon CO Loadout: case "co": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokewhite, 1]; _unit addweapon _glrifle; @@ -112,6 +114,7 @@ switch (_typeofUnit) do // JTAC Loadout: case "jtac": { + _unit addBackpack _bagRadio; _unit addmagazines [_glriflemag, 1]; _unit addmagazines [_glsmokered, 1]; _unit addweapon _glrifle; From b4df211713c7ee69f0dd7a7dd713a2c55cea9a3a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 28 Aug 2021 14:34:02 +0100 Subject: [PATCH 299/407] Disable Command channel This may need additional work later if it turns out the game can turn on Command by itself during gameplay group leadership changes --- f/radio/f_radioChannels.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 179f2b086..41ecc8901 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -12,6 +12,9 @@ Arguments: params [["_splitMode",false]]; +// Disable the Command channel to avoid cheating +2 enableChannel false; + // Define a list of radio backpacks to recognise f_var_longRangeRadioList = [ "B_RadioBag_01_black_F", From 96b89ab9fc3411864b54095b8eb9cd21f25ee650 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 13 Sep 2021 00:32:41 +0100 Subject: [PATCH 300/407] Refactor to switch to functions and add an update loop --- f/functions.hpp | 6 +++ f/radio/f_radioChannels.sqf | 87 ++++++++++----------------------- f/radio/fn_radioAddHandlers.sqf | 86 ++++++++++++++++++++++++++++++++ f/radio/fn_radioUpdateLoop.sqf | 16 ++++++ 4 files changed, 134 insertions(+), 61 deletions(-) create mode 100644 f/radio/fn_radioAddHandlers.sqf create mode 100644 f/radio/fn_radioUpdateLoop.sqf diff --git a/f/functions.hpp b/f/functions.hpp index e79a8a766..215f758f8 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -129,4 +129,10 @@ class F // Defines the "owner" file = "f\dynamicViewDistance"; class ehSetViewDistance {}; }; + class radio + { + file = "f\radio"; + class radioAddHandlers {}; + class radioUpdateLoop + }; }; diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 41ecc8901..1b230cd00 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -51,44 +51,21 @@ if (_splitMode) then { f_var_radioChannelList append [_ChannelID]; }; publicVariable "f_var_radioChannelList"; - }; - - // Clients wait for the server to finish with that - waitUntil {!(isNil "f_var_radioChannelList")}; - - // Add player to the correct channels if they have a backpack - for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack player == (f_var_longRangeRadioList select _i)) then { - (f_var_radioChannelList select _i) radioChannelAdd [player]; - ((f_var_radioChannelList select _i) + 5) enableChannel true; - }; - }; - - // Remove player from channels if they drop a backpack - player addEventHandler ["put", { - params ["_unit"]; - for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack _unit == (f_var_longRangeRadioList select _i)) then { - (f_var_radioChannelList select _i) radioChannelAdd [_unit]; - ((f_var_radioChannelList select _i) + 5) enableChannel true; - } else { - (f_var_radioChannelList select _i) radioChannelRemove [_unit]; + + // Add a loop that checks for players without handlers every 30 seconds + f_script_radioChannelUpdate = [_splitMode] spawn { + params ["_splitMode"]; + while {true} do { + sleep 30; + [_splitMode] call f_fnc_radioUpdateLoop; }; }; - }]; + }; - // Add player to channels if they take a backpack - player addEventHandler ["take", { - params ["_unit"]; - for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack _unit == (f_var_longRangeRadioList select _i)) then { - (f_var_radioChannelList select _i) radioChannelAdd [_unit]; - ((f_var_radioChannelList select _i) + 5) enableChannel true; - } else { - (f_var_radioChannelList select _i) radioChannelRemove [_unit]; - }; - }; - }]; + // Run clientside stuff + if (hasInterface) then { + [_splitMode] call f_fnc_radioAddHandlers; + }; } else { @@ -97,34 +74,22 @@ if (_splitMode) then { f_var_channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], "Long Range", "%UNIT_NAME", []]); if (f_var_channelID == 0) exitWith {diag_log format ["Custom channel '%1' creation failed!", _channelName]}; - publicVariable "f_var_channelID"; + publicVariable "f_var_channelID"; + + // Add a loop that checks for players without handlers every 30 seconds + f_script_radioChannelUpdate = [_splitMode] spawn { + params ["_splitMode"]; + while {true} do { + sleep 30; + [_splitMode] call f_fnc_radioUpdateLoop; + }; + }; }; - waitUntil {!(isNil "f_var_channelID")}; - - if((backpack player) in f_var_longRangeRadioList) then { - f_var_channelID radioChannelAdd [player]; - (f_var_channelID + 5) enableChannel true; + // Run clientside stuff + if (hasInterface) then { + [_splitMode] call f_fnc_radioAddHandlers; }; - player addEventHandler ["put", { - params ["_unit"]; - if(!((backpack player) in f_var_longRangeRadioList)) then { - f_var_channelID radioChannelRemove [_unit]; - } else { - f_var_channelID radioChannelAdd [_unit]; - (f_var_channelID + 5) enableChannel true; - }; - }]; - - player addEventHandler ["take", { - params ["_unit"]; - if(!((backpack player) in f_var_longRangeRadioList)) then { - f_var_channelID radioChannelRemove [_unit]; - } else { - f_var_channelID radioChannelAdd [_unit]; - (f_var_channelID + 5) enableChannel true; - }; - }]; - }; + diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf new file mode 100644 index 000000000..56bff3fe6 --- /dev/null +++ b/f/radio/fn_radioAddHandlers.sqf @@ -0,0 +1,86 @@ +// F3 - Folk ARPS Long-Range Radio Module +// Credits and documentation: https://github.com/folkarps/F3/wiki + +/* ======================== +This function adds local event handlers to the player which grant radio channels when picking up a backpack. +It's activated by f\radio\f_radioChannels.sqf. +=========================== */ + +params ["_splitMode"]; + +if (_splitMode) then { + + // Clients wait for the server to finish with setup + waitUntil {!(isNil "f_var_radioChannelList")}; + + // Add player to the correct channels if they have a backpack + for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack player == (f_var_longRangeRadioList select _i)) then { + (f_var_radioChannelList select _i) radioChannelAdd [player]; + ((f_var_radioChannelList select _i) + 5) enableChannel true; + }; + }; + + // Remove player from channels if they drop a backpack + player addEventHandler ["put", { + params ["_unit"]; + for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack _unit == (f_var_longRangeRadioList select _i)) then { + (f_var_radioChannelList select _i) radioChannelAdd [_unit]; + ((f_var_radioChannelList select _i) + 5) enableChannel true; + } else { + (f_var_radioChannelList select _i) radioChannelRemove [_unit]; + }; + }; + }]; + + // Add player to channels if they take a backpack + player addEventHandler ["take", { + params ["_unit"]; + for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { + if (backpack _unit == (f_var_longRangeRadioList select _i)) then { + (f_var_radioChannelList select _i) radioChannelAdd [_unit]; + ((f_var_radioChannelList select _i) + 5) enableChannel true; + } else { + (f_var_radioChannelList select _i) radioChannelRemove [_unit]; + }; + }; + }]; + +} else { + + // If using unified mode, only set up one channel + waitUntil {!(isNil "f_var_channelID")}; + + if((backpack player) in f_var_longRangeRadioList) then { + f_var_channelID radioChannelAdd [player]; + (f_var_channelID + 5) enableChannel true; + }; + + player addEventHandler ["put", { + params ["_unit"]; + if(!((backpack player) in f_var_longRangeRadioList)) then { + f_var_channelID radioChannelRemove [_unit]; + } else { + f_var_channelID radioChannelAdd [_unit]; + (f_var_channelID + 5) enableChannel true; + }; + }]; + + player addEventHandler ["take", { + params ["_unit"]; + if(!((backpack player) in f_var_longRangeRadioList)) then { + f_var_channelID radioChannelRemove [_unit]; + } else { + f_var_channelID radioChannelAdd [_unit]; + (f_var_channelID + 5) enableChannel true; + }; + }]; + +}; + +// Just to be sure... +2 enableChannel false; + +// Set a variable on the player to prove they've got handlers +player setVariable ["f_var_radioHandlersAdded",true,true]; \ No newline at end of file diff --git a/f/radio/fn_radioUpdateLoop.sqf b/f/radio/fn_radioUpdateLoop.sqf new file mode 100644 index 000000000..41be80c62 --- /dev/null +++ b/f/radio/fn_radioUpdateLoop.sqf @@ -0,0 +1,16 @@ +// F3 - Folk ARPS Long-Range Radio Module +// Credits and documentation: https://github.com/folkarps/F3/wiki + +/* ======================== +This function updates radio event handlers to take care of JIP players. +=========================== */ + +params ["_splitMode"]; + +// Find which playable units don't have their radio handlers yet +_unitsWithoutHandlers = (playableUnits select {(_x getVariable ["f_var_radioHandlersAdded",false]) == false}); + +// Tell their client to add their handlers +{ + [_splitMode] remoteExec ["f_fnc_radioHandlersAdd",_x]; +} forEach _unitsWithoutHandlers; \ No newline at end of file From b47722918e2870cd5825581ca3a73ee3a806cfed Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 14 Sep 2021 13:42:54 +0100 Subject: [PATCH 301/407] Fix missing brackets --- f/functions.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/functions.hpp b/f/functions.hpp index 215f758f8..e7e84616a 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -133,6 +133,6 @@ class F // Defines the "owner" { file = "f\radio"; class radioAddHandlers {}; - class radioUpdateLoop + class radioUpdateLoop {}; }; }; From c7fc02d02abd7014f22f2fc830c10696a998ff41 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 19 Sep 2021 17:23:50 +0100 Subject: [PATCH 302/407] Fix wrong function name --- f/radio/fn_radioUpdateLoop.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/fn_radioUpdateLoop.sqf b/f/radio/fn_radioUpdateLoop.sqf index 41be80c62..d9cfa0835 100644 --- a/f/radio/fn_radioUpdateLoop.sqf +++ b/f/radio/fn_radioUpdateLoop.sqf @@ -12,5 +12,5 @@ _unitsWithoutHandlers = (playableUnits select {(_x getVariable ["f_var_radioHand // Tell their client to add their handlers { - [_splitMode] remoteExec ["f_fnc_radioHandlersAdd",_x]; + [_splitMode] remoteExec ["f_fnc_radioAddHandlers",_x]; } forEach _unitsWithoutHandlers; \ No newline at end of file From 92d1dc6366f46508ef317dfbccf0356c99757fa8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 00:21:50 +0100 Subject: [PATCH 303/407] Refactor to allow vehicle radios please read my code --- f/functions.hpp | 2 +- f/radio/f_radioChannels.sqf | 147 ++++++++++++++++++------------ f/radio/fn_radioAddHandlers.sqf | 90 +++++------------- f/radio/fn_radioCheckChannels.sqf | 86 +++++++++++++++++ f/radio/fn_radioUpdateLoop.sqf | 16 ---- 5 files changed, 200 insertions(+), 141 deletions(-) create mode 100644 f/radio/fn_radioCheckChannels.sqf delete mode 100644 f/radio/fn_radioUpdateLoop.sqf diff --git a/f/functions.hpp b/f/functions.hpp index e7e84616a..23f405e2e 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -133,6 +133,6 @@ class F // Defines the "owner" { file = "f\radio"; class radioAddHandlers {}; - class radioUpdateLoop {}; + class radioCheckChannels {}; }; }; diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 1b230cd00..79a1f8f67 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -8,6 +8,8 @@ Example: Arguments: 0. Long-range split mode (boolean). If true, each radio backpack type has a separate channel. If false, all backpacks use one channel. Default false. + +This module requires some missionmaker configuration. If you want to enable vehicle radio access, you need to specify vehicle classes or variable names below. =========================== */ params [["_splitMode",false]]; @@ -15,19 +17,6 @@ params [["_splitMode",false]]; // Disable the Command channel to avoid cheating 2 enableChannel false; -// Define a list of radio backpacks to recognise -f_var_longRangeRadioList = [ - "B_RadioBag_01_black_F", - "B_RadioBag_01_digi_F", - "B_RadioBag_01_eaf_F", - "B_RadioBag_01_ghex_F", - "B_RadioBag_01_hex_F", - "B_RadioBag_01_tropic_F", - "B_RadioBag_01_oucamo_F", - "B_RadioBag_01_mtp_F", - "B_RadioBag_01_wdl_F" -]; - // There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: /* "US85_bpPRC77", @@ -37,59 +26,99 @@ f_var_longRangeRadioList = [ "gm_ge_backpack_sem35_oli" */ -// Determine whether we are splitting by backpack type or using one channel for all -if (_splitMode) then { +if (isServer) then { - // On the server, set up all channels for later use - if (isServer) then { - - f_var_radioChannelList = []; - for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { - _ChannelName = format ["LR CH%1", (_i + 1)]; - _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); - if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; - f_var_radioChannelList append [_ChannelID]; - }; - publicVariable "f_var_radioChannelList"; - - // Add a loop that checks for players without handlers every 30 seconds - f_script_radioChannelUpdate = [_splitMode] spawn { - params ["_splitMode"]; - while {true} do { - sleep 30; - [_splitMode] call f_fnc_radioUpdateLoop; - }; - }; - }; + // This will be used later + f_var_radioChannelUnified = []; - // Run clientside stuff - if (hasInterface) then { - [_splitMode] call f_fnc_radioAddHandlers; + // Set up channels to use + for "_i" from 1 to 10 do { + _ChannelName = format ["LR CH%1", (_i + 1)]; + _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); + if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; }; -} else { + // Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) + // BACKPACKS: Must be a classname of a backpack (STRING) + // There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: + /* + "US85_bpPRC77" + "CSLA_bpWpR129" + "CSLA_bpWpRF10" + "gm_gc_backpack_r105m_brn" + "gm_ge_backpack_sem35_oli" + */ + f_var_radioChannelsBackpacks = createHashmap; + // Backpacks for channel 1 + f_var_radioChannelsBackpacks set [1, ["B_RadioBag_01_black_F"]]; + // Backpacks for channel 2 + f_var_radioChannelsBackpacks set [2, ["B_RadioBag_01_digi_F"]]; + // Backpacks for channel 3 + f_var_radioChannelsBackpacks set [3, ["B_RadioBag_01_eaf_F"]]; + // Backpacks for channel 4 + f_var_radioChannelsBackpacks set [4, ["B_RadioBag_01_ghex_F"]]; + // Backpacks for channel 5 + f_var_radioChannelsBackpacks set [5, ["B_RadioBag_01_hex_F"]]; + // Backpacks for channel 6 + f_var_radioChannelsBackpacks set [6, ["B_RadioBag_01_tropic_F"]]; + // Backpacks for channel 7 + f_var_radioChannelsBackpacks set [7, ["B_RadioBag_01_mtp_F"]]; + // Backpacks for channel 8 + f_var_radioChannelsBackpacks set [8, ["B_RadioBag_01_wdl_F"]]; + // Backpacks for channel 9 + f_var_radioChannelsBackpacks set [9, ["B_RadioBag_01_oucamo_F"]]; + // Backpacks for channel 10 + f_var_radioChannelsBackpacks set [10, []]; - // If using unified mode, only set up one channel - if (isServer) then { - - f_var_channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], "Long Range", "%UNIT_NAME", []]); - if (f_var_channelID == 0) exitWith {diag_log format ["Custom channel '%1' creation failed!", _channelName]}; - publicVariable "f_var_channelID"; - - // Add a loop that checks for players without handlers every 30 seconds - f_script_radioChannelUpdate = [_splitMode] spawn { - params ["_splitMode"]; - while {true} do { - sleep 30; - [_splitMode] call f_fnc_radioUpdateLoop; - }; + // VEHICLES: Can be a variable name of a specific vehicle (VARIABLE), or a classname of a vehicle type (STRING) + f_var_radioChannelsVehicles = createHashmap; + // Vehicles for channel 1 + f_var_radioChannelsVehicles set [1, []]; + // Vehicles for channel 2 + f_var_radioChannelsVehicles set [2, []]; + // Vehicles for channel 3 + f_var_radioChannelsVehicles set [3, []]; + // Vehicles for channel 4 + f_var_radioChannelsVehicles set [4, []]; + // Vehicles for channel 5 + f_var_radioChannelsVehicles set [5, []]; + // Vehicles for channel 6 + f_var_radioChannelsVehicles set [6, []]; + // Vehicles for channel 7 + f_var_radioChannelsVehicles set [7, []]; + // Vehicles for channel 8 + f_var_radioChannelsVehicles set [8, []]; + // Vehicles for channel 9 + f_var_radioChannelsVehicles set [9, []]; + // Vehicles for channel 10 + f_var_radioChannelsVehicles set [10, []]; + + // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: + // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; + + // Flatten all these arrays into one single list for potential later use + { + f_var_radioChannelsUnified append (flatten (values _x)); + } forEach [f_var_radioChannelsBackpacks,f_var_radioChannelsVehicles]; + + // Broadcast variables for client use + publicVariable "f_var_radioChannelsBackpacks"; + publicVariable "f_var_radioChannelsVehicles"; + publicVariable "f_var_radioChannelsUnified"; + + // Add server EH for JIP + addMissionEventHandler ["PlayerConnected", + { + params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; + if (_jip) then { + [] remoteExec ["f_fnc_radioAddHandlers",_owner]; }; - }; + }]; - // Run clientside stuff - if (hasInterface) then { - [_splitMode] call f_fnc_radioAddHandlers; - }; +}; +// Run clientside stuff +if (hasInterface) then { + [_splitMode] call f_fnc_radioAddHandlers; }; diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 56bff3fe6..8f9d98229 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -2,82 +2,42 @@ // Credits and documentation: https://github.com/folkarps/F3/wiki /* ======================== -This function adds local event handlers to the player which grant radio channels when picking up a backpack. +This function adds local event handlers to the player which grant radio channels when picking up a backpack or entering a vehicle. It also makes an initial check to see what they've got to begin with. It's activated by f\radio\f_radioChannels.sqf. =========================== */ params ["_splitMode"]; -if (_splitMode) then { +// Add player to the correct channels if they have a backpack +[_splitMode] call f_fnc_radioCheckChannels; - // Clients wait for the server to finish with setup - waitUntil {!(isNil "f_var_radioChannelList")}; +// Now bail if they've already been handled +if (player getVariable ["f_var_radioHandlersAdded",false]) exitWith {}; - // Add player to the correct channels if they have a backpack - for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack player == (f_var_longRangeRadioList select _i)) then { - (f_var_radioChannelList select _i) radioChannelAdd [player]; - ((f_var_radioChannelList select _i) + 5) enableChannel true; - }; - }; +// Update channels if they drop a backpack +player addEventHandler ["put", { + [_splitMode] call f_fnc_radioCheckChannels; +}]; - // Remove player from channels if they drop a backpack - player addEventHandler ["put", { - params ["_unit"]; - for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack _unit == (f_var_longRangeRadioList select _i)) then { - (f_var_radioChannelList select _i) radioChannelAdd [_unit]; - ((f_var_radioChannelList select _i) + 5) enableChannel true; - } else { - (f_var_radioChannelList select _i) radioChannelRemove [_unit]; - }; - }; - }]; - - // Add player to channels if they take a backpack - player addEventHandler ["take", { - params ["_unit"]; - for[{_i=0}, {_i < (count f_var_longRangeRadioList)}, {_i = _i+1}] do { - if (backpack _unit == (f_var_longRangeRadioList select _i)) then { - (f_var_radioChannelList select _i) radioChannelAdd [_unit]; - ((f_var_radioChannelList select _i) + 5) enableChannel true; - } else { - (f_var_radioChannelList select _i) radioChannelRemove [_unit]; - }; - }; - }]; +// Update channels if they take a backpack +player addEventHandler ["take", { + [_splitMode] call f_fnc_radioCheckChannels; +}]; -} else { +// Update channels if they get in a vehicle +player addEventHandler ["getInMan", { + [_splitMode] call f_fnc_radioCheckChannels; +}]; - // If using unified mode, only set up one channel - waitUntil {!(isNil "f_var_channelID")}; +// Update channels if they get out of a vehicle +player addEventHandler ["getOutMan", { + [_splitMode] call f_fnc_radioCheckChannels; +}]; - if((backpack player) in f_var_longRangeRadioList) then { - f_var_channelID radioChannelAdd [player]; - (f_var_channelID + 5) enableChannel true; - }; - - player addEventHandler ["put", { - params ["_unit"]; - if(!((backpack player) in f_var_longRangeRadioList)) then { - f_var_channelID radioChannelRemove [_unit]; - } else { - f_var_channelID radioChannelAdd [_unit]; - (f_var_channelID + 5) enableChannel true; - }; - }]; - - player addEventHandler ["take", { - params ["_unit"]; - if(!((backpack player) in f_var_longRangeRadioList)) then { - f_var_channelID radioChannelRemove [_unit]; - } else { - f_var_channelID radioChannelAdd [_unit]; - (f_var_channelID + 5) enableChannel true; - }; - }]; - -}; +// Update channels if they switch seats in a vehicle +player addEventHandler ["seatSwitchedMan", { + [_splitMode] call f_fnc_radioCheckChannels; +}]; // Just to be sure... 2 enableChannel false; diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf new file mode 100644 index 000000000..bd05fd2d3 --- /dev/null +++ b/f/radio/fn_radioCheckChannels.sqf @@ -0,0 +1,86 @@ +// F3 - Folk ARPS Long-Range Radio Module +// Credits and documentation: https://github.com/folkarps/F3/wiki + +/* ======================== +This function checks what channels a player should have access to. It's called by event handlers set up by fn_radioAddHandlers.sqf. +=========================== */ + +params ["_splitMode"]; + +// Clients wait for the server to finish with setup +waitUntil {!(isNil "f_var_radioChannelsUnified")}; + +_channelsToAddListen = []; +_channelsToAddTalk = []; +_isVehicle = false; + +for "_i" from 1 to 10 do { + + _channelChecked = _i; + // Check against the list of backpacks. If they have a backpack, add the currently checked channel number to the list of channels to add send & receive permissions for. + _channelBackpacks = (f_var_radioChannelsBackpacks get _i); + if ((backpack player) in _channelBackpacks) then { + _channelsToAddListen pushBackUnique _channelChecked; + _channelsToAddTalk pushBackUnique _channelChecked; + }; + + // Check for vehicles. Don't add send permissions unless they're the driver. + _channelVehicles = (f_var_radioChannelsVehicles get _i); + if ((vehicle player) in _channelVehicles) then { + _channelsToAddListen pushBackUnique _channelChecked; + if (player == driver vehicle player) then { + _channelsToAddTalk pushBackUnique _channelChecked; + }; + }; + // Same for vehicle classes. + if ((typeOf vehicle player) in _channelVehicles) then { + _channelsToAddListen pushBackUnique _channelChecked; + _isVehicle = true; + if (player == driver vehicle player) then { + _channelsToAddTalk pushBackUnique _channelChecked; + }; + }; +}; + +// Detect any channels activated by setting a variable on the player or their vehicle +_radioChannelsPlayerSpecific = (player getVariable ["f_var_radioChannelsObjectSpecific",[]]); +if ((count _radioChannelsPlayerSpecific) > 0) then { + { + _channelsToAddListen pushBackUnique _x; + _channelsToAddTalk pushBackUnique _x; + } forEach _radioChannelsObjectSpecific; +}; + +_radioChannelsVehicleSpecific = (vehicle player getVariable ["f_var_radioChannelsObjectSpecific",[]]) +if ((count _radioChannelsPlayerSpecific) > 0) then { + { + _channelsToAddListen pushBackUnique _x; + if (player == driver vehicle player) then { + _channelsToAddTalk pushBackUnique _x; + }; + } forEach _radioChannelsObjectSpecific; +}; + +// If running in unified mode, just compress all numbers down to the one channel if there are any channels to be added. +if (!_splitMode) then { + + if ((count _channelsToAddListen) > 0) then { + _channelsToAddListen = [1]; + }; + if ((count _channelsToAddTalk) > 0) then { + _channelsToAddTalk = [1]; + }; +}; + +// Remove channels player shouldn't have access to +for "_i" from 1 to 10 do { + if !(_i in _channelsToAddListen) then { + _i radioChannelRemove [player]; +}; + +// Disable the Command channel to avoid cheating +2 enableChannel false; + +// Add player to the correct channels if they are eligible +{_x radioChannelAdd [player]} forEach _channelsToAddListen; +{(_x + 5) enableChannel true} forEach _channelsToAddTalk; \ No newline at end of file diff --git a/f/radio/fn_radioUpdateLoop.sqf b/f/radio/fn_radioUpdateLoop.sqf deleted file mode 100644 index d9cfa0835..000000000 --- a/f/radio/fn_radioUpdateLoop.sqf +++ /dev/null @@ -1,16 +0,0 @@ -// F3 - Folk ARPS Long-Range Radio Module -// Credits and documentation: https://github.com/folkarps/F3/wiki - -/* ======================== -This function updates radio event handlers to take care of JIP players. -=========================== */ - -params ["_splitMode"]; - -// Find which playable units don't have their radio handlers yet -_unitsWithoutHandlers = (playableUnits select {(_x getVariable ["f_var_radioHandlersAdded",false]) == false}); - -// Tell their client to add their handlers -{ - [_splitMode] remoteExec ["f_fnc_radioAddHandlers",_x]; -} forEach _unitsWithoutHandlers; \ No newline at end of file From c59a722d13c702d72df4aec8c6721297350cca9c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 20:28:50 +0100 Subject: [PATCH 304/407] Better split mode bool passing --- f/radio/f_radioChannels.sqf | 6 +++++- f/radio/fn_radioAddHandlers.sqf | 15 ++++++++------- f/radio/fn_radioCheckChannels.sqf | 4 ++-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 79a1f8f67..6a48f6569 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -28,6 +28,10 @@ params [["_splitMode",false]]; if (isServer) then { + // Make the split mode something we can reference later + f_var_radioSplitMode = _splitMode; + publicVariable "f_var_radioSplitMode"; + // This will be used later f_var_radioChannelUnified = []; @@ -119,6 +123,6 @@ if (isServer) then { // Run clientside stuff if (hasInterface) then { - [_splitMode] call f_fnc_radioAddHandlers; + [] call f_fnc_radioAddHandlers; }; diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 8f9d98229..a7fa2c0eb 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -5,38 +5,39 @@ This function adds local event handlers to the player which grant radio channels when picking up a backpack or entering a vehicle. It also makes an initial check to see what they've got to begin with. It's activated by f\radio\f_radioChannels.sqf. =========================== */ +waitUntil {!(isNil "f_var_radioChannelsUnified")}; -params ["_splitMode"]; +_splitMode = f_var_radioSplitMode; // Add player to the correct channels if they have a backpack -[_splitMode] call f_fnc_radioCheckChannels; +[] call f_fnc_radioCheckChannels; // Now bail if they've already been handled if (player getVariable ["f_var_radioHandlersAdded",false]) exitWith {}; // Update channels if they drop a backpack player addEventHandler ["put", { - [_splitMode] call f_fnc_radioCheckChannels; + [] call f_fnc_radioCheckChannels; }]; // Update channels if they take a backpack player addEventHandler ["take", { - [_splitMode] call f_fnc_radioCheckChannels; + [] call f_fnc_radioCheckChannels; }]; // Update channels if they get in a vehicle player addEventHandler ["getInMan", { - [_splitMode] call f_fnc_radioCheckChannels; + [] call f_fnc_radioCheckChannels; }]; // Update channels if they get out of a vehicle player addEventHandler ["getOutMan", { - [_splitMode] call f_fnc_radioCheckChannels; + [] call f_fnc_radioCheckChannels; }]; // Update channels if they switch seats in a vehicle player addEventHandler ["seatSwitchedMan", { - [_splitMode] call f_fnc_radioCheckChannels; + [] call f_fnc_radioCheckChannels; }]; // Just to be sure... diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index bd05fd2d3..babc80c63 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -5,11 +5,11 @@ This function checks what channels a player should have access to. It's called by event handlers set up by fn_radioAddHandlers.sqf. =========================== */ -params ["_splitMode"]; - // Clients wait for the server to finish with setup waitUntil {!(isNil "f_var_radioChannelsUnified")}; +_splitMode = f_var_radioSplitMode; + _channelsToAddListen = []; _channelsToAddTalk = []; _isVehicle = false; From 0083af4e0a0b55bccd528c35e4e71d7eeb94b9a6 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 20:42:33 +0100 Subject: [PATCH 305/407] Don't broadcast handlers variable --- f/radio/fn_radioAddHandlers.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index a7fa2c0eb..7ef3c5bcf 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -44,4 +44,4 @@ player addEventHandler ["seatSwitchedMan", { 2 enableChannel false; // Set a variable on the player to prove they've got handlers -player setVariable ["f_var_radioHandlersAdded",true,true]; \ No newline at end of file +player setVariable ["f_var_radioHandlersAdded",true]; \ No newline at end of file From 72ed5b5ce16b080eb06093519f2f7d6020a7d784 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:09:15 +0100 Subject: [PATCH 306/407] Better variable initialisation --- f/radio/fn_radioCheckChannels.sqf | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index babc80c63..a3da47d21 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -10,9 +10,14 @@ waitUntil {!(isNil "f_var_radioChannelsUnified")}; _splitMode = f_var_radioSplitMode; -_channelsToAddListen = []; -_channelsToAddTalk = []; -_isVehicle = false; +// Initialise variables +private _radioChannelsPlayerSpecific = []; +private _radioChannelsVehicleSpecific = []; +private _channelChecked = 0; +private _channelBackpacks = []; +private _channelsToAddListen = []; +private _channelsToAddTalk = []; +private _isVehicle = false; for "_i" from 1 to 10 do { From c5c1597f78a76945dd1180c841e54cbe15f53ae9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:16:37 +0100 Subject: [PATCH 307/407] Remove vestigial vehicle checker --- f/radio/fn_radioCheckChannels.sqf | 2 -- 1 file changed, 2 deletions(-) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index a3da47d21..1ba923e6f 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -17,7 +17,6 @@ private _channelChecked = 0; private _channelBackpacks = []; private _channelsToAddListen = []; private _channelsToAddTalk = []; -private _isVehicle = false; for "_i" from 1 to 10 do { @@ -40,7 +39,6 @@ for "_i" from 1 to 10 do { // Same for vehicle classes. if ((typeOf vehicle player) in _channelVehicles) then { _channelsToAddListen pushBackUnique _channelChecked; - _isVehicle = true; if (player == driver vehicle player) then { _channelsToAddTalk pushBackUnique _channelChecked; }; From 812189451fcc85d5830835055b56ae67957ffcb2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:30:34 +0100 Subject: [PATCH 308/407] Remove extraneous variable --- f/radio/fn_radioCheckChannels.sqf | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 1ba923e6f..d91fd6fe8 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -13,34 +13,32 @@ _splitMode = f_var_radioSplitMode; // Initialise variables private _radioChannelsPlayerSpecific = []; private _radioChannelsVehicleSpecific = []; -private _channelChecked = 0; private _channelBackpacks = []; private _channelsToAddListen = []; private _channelsToAddTalk = []; for "_i" from 1 to 10 do { - _channelChecked = _i; // Check against the list of backpacks. If they have a backpack, add the currently checked channel number to the list of channels to add send & receive permissions for. _channelBackpacks = (f_var_radioChannelsBackpacks get _i); if ((backpack player) in _channelBackpacks) then { - _channelsToAddListen pushBackUnique _channelChecked; - _channelsToAddTalk pushBackUnique _channelChecked; + _channelsToAddListen pushBackUnique _i; + _channelsToAddTalk pushBackUnique _i; }; // Check for vehicles. Don't add send permissions unless they're the driver. _channelVehicles = (f_var_radioChannelsVehicles get _i); if ((vehicle player) in _channelVehicles) then { - _channelsToAddListen pushBackUnique _channelChecked; + _channelsToAddListen pushBackUnique _i; if (player == driver vehicle player) then { - _channelsToAddTalk pushBackUnique _channelChecked; + _channelsToAddTalk pushBackUnique _i; }; }; // Same for vehicle classes. if ((typeOf vehicle player) in _channelVehicles) then { - _channelsToAddListen pushBackUnique _channelChecked; + _channelsToAddListen pushBackUnique _i; if (player == driver vehicle player) then { - _channelsToAddTalk pushBackUnique _channelChecked; + _channelsToAddTalk pushBackUnique _i; }; }; }; From d123420d4bd3ec49c25b80e47bd98bed5008bc1c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:47:17 +0100 Subject: [PATCH 309/407] Fixed variable names --- f/radio/fn_radioCheckChannels.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index d91fd6fe8..c70f34728 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -49,7 +49,7 @@ if ((count _radioChannelsPlayerSpecific) > 0) then { { _channelsToAddListen pushBackUnique _x; _channelsToAddTalk pushBackUnique _x; - } forEach _radioChannelsObjectSpecific; + } forEach _radioChannelsPlayerSpecific; }; _radioChannelsVehicleSpecific = (vehicle player getVariable ["f_var_radioChannelsObjectSpecific",[]]) @@ -59,7 +59,7 @@ if ((count _radioChannelsPlayerSpecific) > 0) then { if (player == driver vehicle player) then { _channelsToAddTalk pushBackUnique _x; }; - } forEach _radioChannelsObjectSpecific; + } forEach _radioChannelsVehicleSpecific; }; // If running in unified mode, just compress all numbers down to the one channel if there are any channels to be added. From faab3f63e656ece51b9b11ed50cd99d105b9503b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:50:26 +0100 Subject: [PATCH 310/407] Optimise object-specific channel check --- f/radio/fn_radioCheckChannels.sqf | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index c70f34728..65ceba68e 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -44,23 +44,17 @@ for "_i" from 1 to 10 do { }; // Detect any channels activated by setting a variable on the player or their vehicle -_radioChannelsPlayerSpecific = (player getVariable ["f_var_radioChannelsObjectSpecific",[]]); -if ((count _radioChannelsPlayerSpecific) > 0) then { - { - _channelsToAddListen pushBackUnique _x; - _channelsToAddTalk pushBackUnique _x; - } forEach _radioChannelsPlayerSpecific; -}; +{ + _channelsToAddListen pushBackUnique _x; + _channelsToAddTalk pushBackUnique _x; +} forEach (player getVariable ["f_var_radioChannelsObjectSpecific",[]]); -_radioChannelsVehicleSpecific = (vehicle player getVariable ["f_var_radioChannelsObjectSpecific",[]]) -if ((count _radioChannelsPlayerSpecific) > 0) then { - { - _channelsToAddListen pushBackUnique _x; - if (player == driver vehicle player) then { - _channelsToAddTalk pushBackUnique _x; - }; - } forEach _radioChannelsVehicleSpecific; -}; +{ + _channelsToAddListen pushBackUnique _x; + if (player == driver vehicle player) then { + _channelsToAddTalk pushBackUnique _x; + }; +} forEach (vehicle player getVariable ["f_var_radioChannelsObjectSpecific",[]]); // If running in unified mode, just compress all numbers down to the one channel if there are any channels to be added. if (!_splitMode) then { From 0af1e595cc64842412df6aad0fed6c8ef43f3be9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:54:46 +0100 Subject: [PATCH 311/407] Safer vehicle variable checking --- f/radio/f_radioChannels.sqf | 2 +- f/radio/fn_radioCheckChannels.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 6a48f6569..6c8fa26f7 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -74,7 +74,7 @@ if (isServer) then { // Backpacks for channel 10 f_var_radioChannelsBackpacks set [10, []]; - // VEHICLES: Can be a variable name of a specific vehicle (VARIABLE), or a classname of a vehicle type (STRING) + // VEHICLES: Can be a variable name of a specific vehicle (STRING), or a classname of a vehicle type (STRING) f_var_radioChannelsVehicles = createHashmap; // Vehicles for channel 1 f_var_radioChannelsVehicles set [1, []]; diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 65ceba68e..52c6da8fe 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -28,7 +28,7 @@ for "_i" from 1 to 10 do { // Check for vehicles. Don't add send permissions unless they're the driver. _channelVehicles = (f_var_radioChannelsVehicles get _i); - if ((vehicle player) in _channelVehicles) then { + if ((str vehicle player) in _channelVehicles) then { _channelsToAddListen pushBackUnique _i; if (player == driver vehicle player) then { _channelsToAddTalk pushBackUnique _i; From 36062c9f87c9e1978645914e07a233a88d3cd09a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 22:02:57 +0100 Subject: [PATCH 312/407] Remove variable not needed in this file --- f/radio/fn_radioAddHandlers.sqf | 2 -- 1 file changed, 2 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 7ef3c5bcf..d4619132d 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -7,8 +7,6 @@ It's activated by f\radio\f_radioChannels.sqf. =========================== */ waitUntil {!(isNil "f_var_radioChannelsUnified")}; -_splitMode = f_var_radioSplitMode; - // Add player to the correct channels if they have a backpack [] call f_fnc_radioCheckChannels; From 06ffe635c93ae4f3ca42d5bd0c66b5f1084b1a9a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 23:13:13 +0100 Subject: [PATCH 313/407] Add custom channel names option --- f/radio/f_radioChannels.sqf | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 6c8fa26f7..fd5948d3c 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -35,9 +35,23 @@ if (isServer) then { // This will be used later f_var_radioChannelUnified = []; + // Define custom names for radio channels if desired. + _channelNameList = [ + "LR Channel 1", + "LR Channel 2", + "LR Channel 3", + "LR Channel 4", + "LR Channel 5", + "LR Channel 6", + "LR Channel 7", + "LR Channel 8", + "LR Channel 9", + "LR Channel 10" + ]; + // Set up channels to use - for "_i" from 1 to 10 do { - _ChannelName = format ["LR CH%1", (_i + 1)]; + for "_i" from 0 to 9 do { + _ChannelName = format ["%1",(_channelNameList select _i)]; _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; }; From a22bd0b0ffcdc050d7762b34f146ff0c507c646b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 20 Sep 2021 23:33:14 +0100 Subject: [PATCH 314/407] Unify backpack and vehicle arrays --- f/radio/f_radioChannels.sqf | 86 ++++++++++++------------------- f/radio/fn_radioCheckChannels.sqf | 13 +++-- 2 files changed, 38 insertions(+), 61 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index fd5948d3c..90efde9be 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -56,72 +56,50 @@ if (isServer) then { if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; }; - // Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) - // BACKPACKS: Must be a classname of a backpack (STRING) - // There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: - /* + /* + Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) + Each channel is defined here by an array of items which can grant channel access. + BACKPACKS (classname, STRING) give the player talk and receive access when worn. + VEHICLES (classname or variable name, STRING) give the player receive access when they are inside, and talk access when they are the driver. + There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: + "US85_bpPRC77" "CSLA_bpWpR129" "CSLA_bpWpRF10" "gm_gc_backpack_r105m_brn" "gm_ge_backpack_sem35_oli" - */ - f_var_radioChannelsBackpacks = createHashmap; - // Backpacks for channel 1 - f_var_radioChannelsBackpacks set [1, ["B_RadioBag_01_black_F"]]; - // Backpacks for channel 2 - f_var_radioChannelsBackpacks set [2, ["B_RadioBag_01_digi_F"]]; - // Backpacks for channel 3 - f_var_radioChannelsBackpacks set [3, ["B_RadioBag_01_eaf_F"]]; - // Backpacks for channel 4 - f_var_radioChannelsBackpacks set [4, ["B_RadioBag_01_ghex_F"]]; - // Backpacks for channel 5 - f_var_radioChannelsBackpacks set [5, ["B_RadioBag_01_hex_F"]]; - // Backpacks for channel 6 - f_var_radioChannelsBackpacks set [6, ["B_RadioBag_01_tropic_F"]]; - // Backpacks for channel 7 - f_var_radioChannelsBackpacks set [7, ["B_RadioBag_01_mtp_F"]]; - // Backpacks for channel 8 - f_var_radioChannelsBackpacks set [8, ["B_RadioBag_01_wdl_F"]]; - // Backpacks for channel 9 - f_var_radioChannelsBackpacks set [9, ["B_RadioBag_01_oucamo_F"]]; - // Backpacks for channel 10 - f_var_radioChannelsBackpacks set [10, []]; - - // VEHICLES: Can be a variable name of a specific vehicle (STRING), or a classname of a vehicle type (STRING) - f_var_radioChannelsVehicles = createHashmap; - // Vehicles for channel 1 - f_var_radioChannelsVehicles set [1, []]; - // Vehicles for channel 2 - f_var_radioChannelsVehicles set [2, []]; - // Vehicles for channel 3 - f_var_radioChannelsVehicles set [3, []]; - // Vehicles for channel 4 - f_var_radioChannelsVehicles set [4, []]; - // Vehicles for channel 5 - f_var_radioChannelsVehicles set [5, []]; - // Vehicles for channel 6 - f_var_radioChannelsVehicles set [6, []]; - // Vehicles for channel 7 - f_var_radioChannelsVehicles set [7, []]; - // Vehicles for channel 8 - f_var_radioChannelsVehicles set [8, []]; - // Vehicles for channel 9 - f_var_radioChannelsVehicles set [9, []]; - // Vehicles for channel 10 - f_var_radioChannelsVehicles set [10, []]; + */ + f_var_radioChannelsObjects = createHashmap; + // Objects for channel 1 + f_var_radioChannelsObjects set [1, ["B_RadioBag_01_black_F"]]; + // Objects for channel 2 + f_var_radioChannelsObjects set [2, ["B_RadioBag_01_digi_F"]]; + // Objects for channel 3 + f_var_radioChannelsObjects set [3, ["B_RadioBag_01_eaf_F"]]; + // Objects for channel 4 + f_var_radioChannelsObjects set [4, ["B_RadioBag_01_ghex_F"]]; + // Objects for channel 5 + f_var_radioChannelsObjects set [5, ["B_RadioBag_01_hex_F"]]; + // Objects for channel 6 + f_var_radioChannelsObjects set [6, ["B_RadioBag_01_tropic_F"]]; + // Objects for channel 7 + f_var_radioChannelsObjects set [7, ["B_RadioBag_01_mtp_F"]]; + // Objects for channel 8 + f_var_radioChannelsObjects set [8, ["B_RadioBag_01_wdl_F"]]; + // Objects for channel 9 + f_var_radioChannelsObjects set [9, ["B_RadioBag_01_oucamo_F"]]; + // Objects for channel 10 + f_var_radioChannelsObjects set [10, []]; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; // Flatten all these arrays into one single list for potential later use - { - f_var_radioChannelsUnified append (flatten (values _x)); - } forEach [f_var_radioChannelsBackpacks,f_var_radioChannelsVehicles]; + f_var_radioChannelsUnified append (flatten (values f_var_radioChannelsObjects)); + // Broadcast variables for client use - publicVariable "f_var_radioChannelsBackpacks"; - publicVariable "f_var_radioChannelsVehicles"; + publicVariable "f_var_radioChannelsObjects"; publicVariable "f_var_radioChannelsUnified"; // Add server EH for JIP diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 52c6da8fe..fdad9eb02 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -13,29 +13,28 @@ _splitMode = f_var_radioSplitMode; // Initialise variables private _radioChannelsPlayerSpecific = []; private _radioChannelsVehicleSpecific = []; -private _channelBackpacks = []; +private _channelObjects = []; private _channelsToAddListen = []; private _channelsToAddTalk = []; for "_i" from 1 to 10 do { - // Check against the list of backpacks. If they have a backpack, add the currently checked channel number to the list of channels to add send & receive permissions for. - _channelBackpacks = (f_var_radioChannelsBackpacks get _i); - if ((backpack player) in _channelBackpacks) then { + // Check against the list of objects. If they have a backpack, add the currently checked channel number to the list of channels to add send & receive permissions for. + _channelObjects = (f_var_radioChannelsObjects get _i); + if ((backpack player) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; _channelsToAddTalk pushBackUnique _i; }; // Check for vehicles. Don't add send permissions unless they're the driver. - _channelVehicles = (f_var_radioChannelsVehicles get _i); - if ((str vehicle player) in _channelVehicles) then { + if ((str vehicle player) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; if (player == driver vehicle player) then { _channelsToAddTalk pushBackUnique _i; }; }; // Same for vehicle classes. - if ((typeOf vehicle player) in _channelVehicles) then { + if ((typeOf vehicle player) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; if (player == driver vehicle player) then { _channelsToAddTalk pushBackUnique _i; From 17b631796460a9630258be9d6cd4946f53ca5813 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 21 Sep 2021 00:03:18 +0100 Subject: [PATCH 315/407] Unify all channel properties into main hashmap --- f/radio/f_radioChannels.sqf | 69 +++++++++++-------------------- f/radio/fn_radioCheckChannels.sqf | 2 +- 2 files changed, 24 insertions(+), 47 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 90efde9be..442a43c2a 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -35,30 +35,10 @@ if (isServer) then { // This will be used later f_var_radioChannelUnified = []; - // Define custom names for radio channels if desired. - _channelNameList = [ - "LR Channel 1", - "LR Channel 2", - "LR Channel 3", - "LR Channel 4", - "LR Channel 5", - "LR Channel 6", - "LR Channel 7", - "LR Channel 8", - "LR Channel 9", - "LR Channel 10" - ]; - - // Set up channels to use - for "_i" from 0 to 9 do { - _ChannelName = format ["%1",(_channelNameList select _i)]; - _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); - if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; - }; - /* Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) - Each channel is defined here by an array of items which can grant channel access. + Each channel is defined here by a channel name and an array of items which can grant channel access. + NAME (STRING) is the title visible to players in the UI. BACKPACKS (classname, STRING) give the player talk and receive access when worn. VEHICLES (classname or variable name, STRING) give the player receive access when they are inside, and talk access when they are the driver. There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: @@ -69,37 +49,34 @@ if (isServer) then { "gm_gc_backpack_r105m_brn" "gm_ge_backpack_sem35_oli" */ - f_var_radioChannelsObjects = createHashmap; - // Objects for channel 1 - f_var_radioChannelsObjects set [1, ["B_RadioBag_01_black_F"]]; - // Objects for channel 2 - f_var_radioChannelsObjects set [2, ["B_RadioBag_01_digi_F"]]; - // Objects for channel 3 - f_var_radioChannelsObjects set [3, ["B_RadioBag_01_eaf_F"]]; - // Objects for channel 4 - f_var_radioChannelsObjects set [4, ["B_RadioBag_01_ghex_F"]]; - // Objects for channel 5 - f_var_radioChannelsObjects set [5, ["B_RadioBag_01_hex_F"]]; - // Objects for channel 6 - f_var_radioChannelsObjects set [6, ["B_RadioBag_01_tropic_F"]]; - // Objects for channel 7 - f_var_radioChannelsObjects set [7, ["B_RadioBag_01_mtp_F"]]; - // Objects for channel 8 - f_var_radioChannelsObjects set [8, ["B_RadioBag_01_wdl_F"]]; - // Objects for channel 9 - f_var_radioChannelsObjects set [9, ["B_RadioBag_01_oucamo_F"]]; - // Objects for channel 10 - f_var_radioChannelsObjects set [10, []]; + f_var_radioChannels = createHashmap; + f_var_radioChannels set [1, ["LR Channel 1", ["B_RadioBag_01_black_F"]]]; + f_var_radioChannels set [2, ["LR Channel 2", ["B_RadioBag_01_digi_F"]]]; + f_var_radioChannels set [3, ["LR Channel 3", ["B_RadioBag_01_eaf_F"]]]; + f_var_radioChannels set [4, ["LR Channel 4", ["B_RadioBag_01_ghex_F"]]]; + f_var_radioChannels set [5, ["LR Channel 5", ["B_RadioBag_01_hex_F"]]]; + f_var_radioChannels set [6, ["LR Channel 6", ["B_RadioBag_01_tropic_F"]]]; + f_var_radioChannels set [7, ["LR Channel 7", ["B_RadioBag_01_mtp_F"]]]; + f_var_radioChannels set [8, ["LR Channel 8", ["B_RadioBag_01_wdl_F"]]]; + f_var_radioChannels set [9, ["LR Channel 9", ["B_RadioBag_01_oucamo_F"]]]; + f_var_radioChannels set [10, ["LR Channel 10",[]]]; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; // Flatten all these arrays into one single list for potential later use - f_var_radioChannelsUnified append (flatten (values f_var_radioChannelsObjects)); - + f_var_radioChannelsUnified append (flatten (values f_var_radioChannels apply {_x select 1})); + f_var_radioChannelsUnified = f_var_radioChannelsUnified arrayIntersect f_var_radioChannelsUnified; + + // Set up channels to use + for "_i" from 0 to 9 do { + _ChannelName = format ["%1",((_channelNameList get _i) select 0)]; + _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); + if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; + }; // Broadcast variables for client use - publicVariable "f_var_radioChannelsObjects"; + publicVariable "f_var_radioChannels"; publicVariable "f_var_radioChannelsUnified"; // Add server EH for JIP diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index fdad9eb02..00301671f 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -20,7 +20,7 @@ private _channelsToAddTalk = []; for "_i" from 1 to 10 do { // Check against the list of objects. If they have a backpack, add the currently checked channel number to the list of channels to add send & receive permissions for. - _channelObjects = (f_var_radioChannelsObjects get _i); + _channelObjects = ((f_var_radioChannels get _i) select 1); if ((backpack player) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; _channelsToAddTalk pushBackUnique _i; From 04224d030239337254cea9a07721f8486e5e0288 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 21 Sep 2021 00:19:07 +0100 Subject: [PATCH 316/407] Allow channel limiting and autolimit when merged --- f/radio/f_radioChannels.sqf | 15 +++++++++++++-- f/radio/fn_radioCheckChannels.sqf | 4 ++-- init.sqf | 4 ++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 442a43c2a..ceb134578 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -8,11 +8,12 @@ Example: Arguments: 0. Long-range split mode (boolean). If true, each radio backpack type has a separate channel. If false, all backpacks use one channel. Default false. +1. Number of channels to create (number, optional). If this is set, the number of channels to be created will be limited to this number. If channels are not split, this will be automatically set to 1. This module requires some missionmaker configuration. If you want to enable vehicle radio access, you need to specify vehicle classes or variable names below. =========================== */ -params [["_splitMode",false]]; +params [["_splitMode",false],["_channelCount",10]]; // Disable the Command channel to avoid cheating 2 enableChannel false; @@ -31,6 +32,10 @@ if (isServer) then { // Make the split mode something we can reference later f_var_radioSplitMode = _splitMode; publicVariable "f_var_radioSplitMode"; + + // Make the channel count something we can reference later + f_var_radioChannelCount = _channelCount; + publicVariable "f_var_radioChannelCount"; // This will be used later f_var_radioChannelUnified = []; @@ -38,6 +43,7 @@ if (isServer) then { /* Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) Each channel is defined here by a channel name and an array of items which can grant channel access. + Channels will be created IN ORDER OF THIS ARRAY. Keep this in mind if limiting the number of possible channels. All radio access items listed here will be used if channels are not split. NAME (STRING) is the title visible to players in the UI. BACKPACKS (classname, STRING) give the player talk and receive access when worn. VEHICLES (classname or variable name, STRING) give the player receive access when they are inside, and talk access when they are the driver. @@ -68,8 +74,13 @@ if (isServer) then { f_var_radioChannelsUnified append (flatten (values f_var_radioChannels apply {_x select 1})); f_var_radioChannelsUnified = f_var_radioChannelsUnified arrayIntersect f_var_radioChannelsUnified; + // If channels are not to be split, only create one. + if (!_splitMode) then { + _channelCount = 1; + }; + // Set up channels to use - for "_i" from 0 to 9 do { + for "_i" from 0 to (_channelCount - 1) do { _ChannelName = format ["%1",((_channelNameList get _i) select 0)]; _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 00301671f..8ad2dbf48 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -17,7 +17,7 @@ private _channelObjects = []; private _channelsToAddListen = []; private _channelsToAddTalk = []; -for "_i" from 1 to 10 do { +for "_i" from 1 to f_var_radioChannelCount do { // Check against the list of objects. If they have a backpack, add the currently checked channel number to the list of channels to add send & receive permissions for. _channelObjects = ((f_var_radioChannels get _i) select 1); @@ -67,7 +67,7 @@ if (!_splitMode) then { }; // Remove channels player shouldn't have access to -for "_i" from 1 to 10 do { +for "_i" from 1 to f_var_radioChannelCount do { if !(_i in _channelsToAddListen) then { _i radioChannelRemove [player]; }; diff --git a/init.sqf b/init.sqf index c11060adc..13581d6d4 100644 --- a/init.sqf +++ b/init.sqf @@ -224,7 +224,11 @@ f_var_viewDistance_crewOnly = true; // F3 - Radio Channels // Credits and documentation: https://github.com/folkarps/F3/wiki // True to split channels by radio backpack type. Else one channel for all. +// Optional second parameter (number): limit the channel count to this number. This frees up space for any other custom channels. Defaults to 10 (max) if not set, or 1 (minimum) if channels not split. // [false] execVM "f\radio\f_radioChannels.sqf"; +// If you are creating other custom channels, you must wait for F3 Radio Channels to finish to avoid conflicts: +// waitUntil {(!isNil f_var_radioChannelsUnified)} + // ==================================================================================== From adae3fea82b31e59d915a36da2361bcee723e8b1 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 21 Sep 2021 00:52:00 +0100 Subject: [PATCH 317/407] Improved safety for nonlinear channel creation Co-authored-by: shadow-fa --- f/radio/f_radioChannels.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index ceb134578..80f584157 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -83,7 +83,7 @@ if (isServer) then { for "_i" from 0 to (_channelCount - 1) do { _ChannelName = format ["%1",((_channelNameList get _i) select 0)]; _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); - if (_ChannelID == 0) exitWith {diag_log format ["channel creation failed", _x]}; + if (_ChannelID != _i + 1) exitWith {diag_log format ["channel creation failed", _x]}; }; // Broadcast variables for client use From 444a82f7ee45f6a68762f9f5b560e9f65aacc3c8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 21 Sep 2021 00:53:51 +0100 Subject: [PATCH 318/407] Fix debug message --- f/radio/f_radioChannels.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 80f584157..8c86e461c 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -83,7 +83,7 @@ if (isServer) then { for "_i" from 0 to (_channelCount - 1) do { _ChannelName = format ["%1",((_channelNameList get _i) select 0)]; _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); - if (_ChannelID != _i + 1) exitWith {diag_log format ["channel creation failed", _x]}; + if (_ChannelID != _i + 1) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf", _channelName]}; }; // Broadcast variables for client use From 3eba809c10ad10b535713274d4b946e2d209e908 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 21 Sep 2021 00:55:00 +0100 Subject: [PATCH 319/407] Fix debug message (2) --- f/radio/f_radioChannels.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 8c86e461c..2f3e9d714 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -83,7 +83,7 @@ if (isServer) then { for "_i" from 0 to (_channelCount - 1) do { _ChannelName = format ["%1",((_channelNameList get _i) select 0)]; _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); - if (_ChannelID != _i + 1) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf", _channelName]}; + if (_ChannelID != _i + 1) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf or too many channels", _channelName]}; }; // Broadcast variables for client use From f0b1b43adc3b539e0fd8d58653de2e413ffc1b40 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 21 Sep 2021 00:58:46 +0100 Subject: [PATCH 320/407] Unify variable case scheme --- f/radio/f_radioChannels.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 2f3e9d714..c5b7f41ec 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -81,9 +81,9 @@ if (isServer) then { // Set up channels to use for "_i" from 0 to (_channelCount - 1) do { - _ChannelName = format ["%1",((_channelNameList get _i) select 0)]; - _ChannelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _ChannelName, "%UNIT_NAME", []]); - if (_ChannelID != _i + 1) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf or too many channels", _channelName]}; + _channelName = format ["%1",((_channelNameList get _i) select 0)]; + _channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _channelName, "%UNIT_NAME", []]); + if (_channelID != _i + 1) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf or too many channels", _channelName]}; }; // Broadcast variables for client use From 0b27d76bf4988139e7d11cdf36f160399db0df1e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 21 Sep 2021 09:38:08 +0100 Subject: [PATCH 321/407] Add debug readouts --- f/radio/fn_radioAddHandlers.sqf | 8 +++++++- f/radio/fn_radioCheckChannels.sqf | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index d4619132d..4aed3c5de 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -42,4 +42,10 @@ player addEventHandler ["seatSwitchedMan", { 2 enableChannel false; // Set a variable on the player to prove they've got handlers -player setVariable ["f_var_radioHandlersAdded",true]; \ No newline at end of file +player setVariable ["f_var_radioHandlersAdded",true]; + +// DEBUG +if (f_param_debugMode == 1) then +{ + systemChat "DEBUG (fn_radioAddHandlers.sqf): added radio event handlers %1"; +}; \ No newline at end of file diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 8ad2dbf48..100ffbd11 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -77,4 +77,10 @@ for "_i" from 1 to f_var_radioChannelCount do { // Add player to the correct channels if they are eligible {_x radioChannelAdd [player]} forEach _channelsToAddListen; -{(_x + 5) enableChannel true} forEach _channelsToAddTalk; \ No newline at end of file +{(_x + 5) enableChannel true} forEach _channelsToAddTalk; + +// DEBUG +if (f_param_debugMode == 1) then +{ + systemChat format ["DEBUG (fn_radioCheckChannels.sqf): added listen channels %1, talk channels %2",_channelsToAddListen,_channelsToAddTalk]; +}; \ No newline at end of file From 1118c30698f32c8382bd4b308f64f5a178f82443 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 22 Sep 2021 11:37:37 +0100 Subject: [PATCH 322/407] Allow any kind of inventory item to be used --- f/radio/f_radioChannels.sqf | 2 +- f/radio/fn_radioCheckChannels.sqf | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index c5b7f41ec..d3e73fc50 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -45,7 +45,7 @@ if (isServer) then { Each channel is defined here by a channel name and an array of items which can grant channel access. Channels will be created IN ORDER OF THIS ARRAY. Keep this in mind if limiting the number of possible channels. All radio access items listed here will be used if channels are not split. NAME (STRING) is the title visible to players in the UI. - BACKPACKS (classname, STRING) give the player talk and receive access when worn. + INVENTORY (classname, STRING) items, such as backpacks or equipment, give the player talk and receive access when carried. Only player inventory is checked, NOT vehicles. VEHICLES (classname or variable name, STRING) give the player receive access when they are inside, and talk access when they are the driver. There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 100ffbd11..8ed854ec5 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -19,12 +19,14 @@ private _channelsToAddTalk = []; for "_i" from 1 to f_var_radioChannelCount do { - // Check against the list of objects. If they have a backpack, add the currently checked channel number to the list of channels to add send & receive permissions for. + // Check against the list of objects. If they have a backpack or other inventory item, add the currently checked channel number to the list of channels to add send & receive permissions for. _channelObjects = ((f_var_radioChannels get _i) select 1); - if ((backpack player) in _channelObjects) then { - _channelsToAddListen pushBackUnique _i; - _channelsToAddTalk pushBackUnique _i; - }; + { + if ([player,_x] call BIS_fnc_hasItem) then { + _channelsToAddListen pushBackUnique _i; + _channelsToAddTalk pushBackUnique _i; + }; + } forEach _channelObjects; // Check for vehicles. Don't add send permissions unless they're the driver. if ((str vehicle player) in _channelObjects) then { From 13a1d2b0c2d3f1754f48df1b9a66e6ac2ae172ea Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 22 Sep 2021 14:02:15 +0100 Subject: [PATCH 323/407] Update comment and defaults --- f/radio/f_radioChannels.sqf | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index d3e73fc50..84fde0008 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -43,10 +43,13 @@ if (isServer) then { /* Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) Each channel is defined here by a channel name and an array of items which can grant channel access. - Channels will be created IN ORDER OF THIS ARRAY. Keep this in mind if limiting the number of possible channels. All radio access items listed here will be used if channels are not split. + Channels will be created IN ORDER OF THIS LIST. Keep this in mind if limiting the number of possible channels. All radio access items listed here will be used if channels are not split. + Do not remove channels from this list. If you need to free up custom channels, use the limiting parameter in init.sqf. + NAME (STRING) is the title visible to players in the UI. INVENTORY (classname, STRING) items, such as backpacks or equipment, give the player talk and receive access when carried. Only player inventory is checked, NOT vehicles. VEHICLES (classname or variable name, STRING) give the player receive access when they are inside, and talk access when they are the driver. + There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: "US85_bpPRC77" @@ -57,14 +60,14 @@ if (isServer) then { */ f_var_radioChannels = createHashmap; f_var_radioChannels set [1, ["LR Channel 1", ["B_RadioBag_01_black_F"]]]; - f_var_radioChannels set [2, ["LR Channel 2", ["B_RadioBag_01_digi_F"]]]; - f_var_radioChannels set [3, ["LR Channel 3", ["B_RadioBag_01_eaf_F"]]]; - f_var_radioChannels set [4, ["LR Channel 4", ["B_RadioBag_01_ghex_F"]]]; - f_var_radioChannels set [5, ["LR Channel 5", ["B_RadioBag_01_hex_F"]]]; - f_var_radioChannels set [6, ["LR Channel 6", ["B_RadioBag_01_tropic_F"]]]; - f_var_radioChannels set [7, ["LR Channel 7", ["B_RadioBag_01_mtp_F"]]]; - f_var_radioChannels set [8, ["LR Channel 8", ["B_RadioBag_01_wdl_F"]]]; - f_var_radioChannels set [9, ["LR Channel 9", ["B_RadioBag_01_oucamo_F"]]]; + f_var_radioChannels set [2, ["LR Channel 2", ["B_RadioBag_01_digi_F","vehAAF_COV"]]]; + f_var_radioChannels set [3, ["LR Channel 3", ["B_RadioBag_01_eaf_F","vehLDF_COV"]]]; + f_var_radioChannels set [4, ["LR Channel 4", ["B_RadioBag_01_ghex_F","vehCSAT_COV"]]]; + f_var_radioChannels set [5, ["LR Channel 5", ["B_RadioBag_01_hex_F","vehCSAT_COV"]]]; + f_var_radioChannels set [6, ["LR Channel 6", ["B_RadioBag_01_oucamo_F","vehCSAT_COV"]]]; + f_var_radioChannels set [7, ["LR Channel 7", ["B_RadioBag_01_mtp_F","vehNATO_COV"]]]; + f_var_radioChannels set [8, ["LR Channel 8", ["B_RadioBag_01_wdl_F","vehNATO_COV"]]]; + f_var_radioChannels set [9, ["LR Channel 9", ["B_RadioBag_01_tropic_F","vehNATO_COV"]]]; f_var_radioChannels set [10, ["LR Channel 10",[]]]; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: From a9818fd4621a68f7297c9a474c5c34b0cf048648 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 22 Sep 2021 19:51:48 +0100 Subject: [PATCH 324/407] Fix radio channel removal --- f/radio/fn_radioCheckChannels.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 8ed854ec5..941142d7b 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -70,8 +70,14 @@ if (!_splitMode) then { // Remove channels player shouldn't have access to for "_i" from 1 to f_var_radioChannelCount do { + + if !(_i in _channelsToAddTalk) then { + (_i + 5) enableChannel false; + }; if !(_i in _channelsToAddListen) then { _i radioChannelRemove [player]; + }; + }; // Disable the Command channel to avoid cheating From f24181b6acdc1160c15b15b87ac1572e1c24b164 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 22 Sep 2021 20:19:43 +0100 Subject: [PATCH 325/407] Fix undefined variable --- f/radio/f_radioChannels.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 84fde0008..8153fcc6a 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -74,6 +74,7 @@ if (isServer) then { // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; // Flatten all these arrays into one single list for potential later use + f_var_radioChannelsUnified = []; f_var_radioChannelsUnified append (flatten (values f_var_radioChannels apply {_x select 1})); f_var_radioChannelsUnified = f_var_radioChannelsUnified arrayIntersect f_var_radioChannelsUnified; From 30e6647d94b3f98ff6848200124eec6742e4bdb9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 22 Sep 2021 20:22:40 +0100 Subject: [PATCH 326/407] Fix variable reference --- f/radio/f_radioChannels.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 8153fcc6a..a6636f26d 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -85,7 +85,7 @@ if (isServer) then { // Set up channels to use for "_i" from 0 to (_channelCount - 1) do { - _channelName = format ["%1",((_channelNameList get _i) select 0)]; + _channelName = format ["%1",((f_var_radioChannels get _i) select 0)]; _channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _channelName, "%UNIT_NAME", []]); if (_channelID != _i + 1) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf or too many channels", _channelName]}; }; From 2b6ad066121dda5b6a054c581bd39d83c88095fe Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 25 Sep 2021 20:36:39 +0100 Subject: [PATCH 327/407] Fixed indexing of channel naming --- f/radio/f_radioChannels.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index a6636f26d..3ac6bcff2 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -84,10 +84,10 @@ if (isServer) then { }; // Set up channels to use - for "_i" from 0 to (_channelCount - 1) do { + for "_i" from 1 to (_channelCount) do { _channelName = format ["%1",((f_var_radioChannels get _i) select 0)]; _channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _channelName, "%UNIT_NAME", []]); - if (_channelID != _i + 1) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf or too many channels", _channelName]}; + if (_channelID != _i) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf or too many channels", _channelName]}; }; // Broadcast variables for client use From 2c889d79ade30053e59b098056b7e1fb5004f17b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 25 Sep 2021 21:25:39 +0100 Subject: [PATCH 328/407] Add delay to JIP handlers --- f/radio/f_radioChannels.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 3ac6bcff2..9b9f2703d 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -99,7 +99,11 @@ if (isServer) then { { params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; if (_jip) then { - [] remoteExec ["f_fnc_radioAddHandlers",_owner]; + [] spawn { + // Wait a little longer to make sure the player is initialised + sleep 1; + [] remoteExec ["f_fnc_radioAddHandlers",_owner]; + }; }; }]; From f9911f293eff939182b5f32747bbbb7ec4f7a48e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 26 Sep 2021 14:10:54 +0100 Subject: [PATCH 329/407] Revise initialisation check --- f/radio/f_radioChannels.sqf | 6 +----- f/radio/fn_radioAddHandlers.sqf | 4 +++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 9b9f2703d..3ac6bcff2 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -99,11 +99,7 @@ if (isServer) then { { params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; if (_jip) then { - [] spawn { - // Wait a little longer to make sure the player is initialised - sleep 1; - [] remoteExec ["f_fnc_radioAddHandlers",_owner]; - }; + [] remoteExec ["f_fnc_radioAddHandlers",_owner]; }; }]; diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 4aed3c5de..21ecf1f82 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -5,7 +5,9 @@ This function adds local event handlers to the player which grant radio channels when picking up a backpack or entering a vehicle. It also makes an initial check to see what they've got to begin with. It's activated by f\radio\f_radioChannels.sqf. =========================== */ -waitUntil {!(isNil "f_var_radioChannelsUnified")}; + +// Wait for player to be properly initialised +waitUntil {!isNull player && {player == player}}; // Add player to the correct channels if they have a backpack [] call f_fnc_radioCheckChannels; From 9d0195c74d7a39ab44e6fccc9b4c583b07c80458 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 26 Sep 2021 16:14:36 +0100 Subject: [PATCH 330/407] Allow different colours for channels Initial values match faction colours of each channel's default backpack --- f/radio/f_radioChannels.sqf | 31 +++++++++++++++++-------------- f/radio/fn_radioCheckChannels.sqf | 2 +- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 3ac6bcff2..15b46dfa2 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -42,13 +42,15 @@ if (isServer) then { /* Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) - Each channel is defined here by a channel name and an array of items which can grant channel access. + Each channel is defined here by a channel name, colour, and an array of items which can grant channel access. Channels will be created IN ORDER OF THIS LIST. Keep this in mind if limiting the number of possible channels. All radio access items listed here will be used if channels are not split. Do not remove channels from this list. If you need to free up custom channels, use the limiting parameter in init.sqf. NAME (STRING) is the title visible to players in the UI. - INVENTORY (classname, STRING) items, such as backpacks or equipment, give the player talk and receive access when carried. Only player inventory is checked, NOT vehicles. - VEHICLES (classname or variable name, STRING) give the player receive access when they are inside, and talk access when they are the driver. + COLOUR (ARRAY OF 4 NUMBERS) is the RGBA colour value of the channel as it appears in the UI. + OBJECTS (ARRAY OF STRINGS): + INVENTORY (classname) items, such as backpacks or equipment, give the player talk and receive access when carried. Only player inventory is checked, NOT vehicles. + VEHICLES (classname or variable name) give the player receive access when they are inside, and talk access when they are the driver. There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: @@ -59,16 +61,16 @@ if (isServer) then { "gm_ge_backpack_sem35_oli" */ f_var_radioChannels = createHashmap; - f_var_radioChannels set [1, ["LR Channel 1", ["B_RadioBag_01_black_F"]]]; - f_var_radioChannels set [2, ["LR Channel 2", ["B_RadioBag_01_digi_F","vehAAF_COV"]]]; - f_var_radioChannels set [3, ["LR Channel 3", ["B_RadioBag_01_eaf_F","vehLDF_COV"]]]; - f_var_radioChannels set [4, ["LR Channel 4", ["B_RadioBag_01_ghex_F","vehCSAT_COV"]]]; - f_var_radioChannels set [5, ["LR Channel 5", ["B_RadioBag_01_hex_F","vehCSAT_COV"]]]; - f_var_radioChannels set [6, ["LR Channel 6", ["B_RadioBag_01_oucamo_F","vehCSAT_COV"]]]; - f_var_radioChannels set [7, ["LR Channel 7", ["B_RadioBag_01_mtp_F","vehNATO_COV"]]]; - f_var_radioChannels set [8, ["LR Channel 8", ["B_RadioBag_01_wdl_F","vehNATO_COV"]]]; - f_var_radioChannels set [9, ["LR Channel 9", ["B_RadioBag_01_tropic_F","vehNATO_COV"]]]; - f_var_radioChannels set [10, ["LR Channel 10",[]]]; + f_var_radioChannels set [1, ["LR Channel 1",[1, 0.3, 0.1, 1], ["B_RadioBag_01_black_F"]]]; + f_var_radioChannels set [2, ["LR Channel 2",[0.06,0.9,0,1], ["B_RadioBag_01_digi_F","vehAAF_COV"]]]; + f_var_radioChannels set [3, ["LR Channel 3",[0.06,0.9,0,1], ["B_RadioBag_01_eaf_F","vehLDF_COV"]]]; + f_var_radioChannels set [4, ["LR Channel 4",[0.9,0,0,1], ["B_RadioBag_01_ghex_F","vehCSAT_COV"]]]; + f_var_radioChannels set [5, ["LR Channel 5",[0.9,0,0,1], ["B_RadioBag_01_hex_F","vehCSAT_COV"]]]; + f_var_radioChannels set [6, ["LR Channel 6",[0.9,0,0,1], ["B_RadioBag_01_oucamo_F","vehCSAT_COV"]]]; + f_var_radioChannels set [7, ["LR Channel 7",[0.1,0.5,1,1], ["B_RadioBag_01_mtp_F","vehNATO_COV"]]]; + f_var_radioChannels set [8, ["LR Channel 8",[0.1,0.5,1,1], ["B_RadioBag_01_wdl_F","vehNATO_COV"]]]; + f_var_radioChannels set [9, ["LR Channel 9",[0.1,0.5,1,1], ["B_RadioBag_01_tropic_F","vehNATO_COV"]]]; + f_var_radioChannels set [10, ["LR Channel 10",[0.9,0.2,0.9,1],[]]]; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; @@ -86,7 +88,8 @@ if (isServer) then { // Set up channels to use for "_i" from 1 to (_channelCount) do { _channelName = format ["%1",((f_var_radioChannels get _i) select 0)]; - _channelID = (radioChannelCreate [[0.96, 0.34, 0.13, 0.8], _channelName, "%UNIT_NAME", []]); + _channelColour = ((f_var_radioChannels get _i) select 1); + _channelID = (radioChannelCreate [_channelColour, _channelName, "%UNIT_NAME", []]); if (_channelID != _i) exitWith {diag_log format ["F3 Radio: Channel %1 creation failed - unacceptable change to channel list in f\radio\f_radioChannels.sqf or too many channels", _channelName]}; }; diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 941142d7b..a92a9303e 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -20,7 +20,7 @@ private _channelsToAddTalk = []; for "_i" from 1 to f_var_radioChannelCount do { // Check against the list of objects. If they have a backpack or other inventory item, add the currently checked channel number to the list of channels to add send & receive permissions for. - _channelObjects = ((f_var_radioChannels get _i) select 1); + _channelObjects = ((f_var_radioChannels get _i) select 2); { if ([player,_x] call BIS_fnc_hasItem) then { _channelsToAddListen pushBackUnique _i; From 7b43298eb347107b3f57e0aa5e910291a9569cae Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 26 Sep 2021 21:14:13 +0100 Subject: [PATCH 331/407] More robust vehicle EH --- f/radio/fn_radioAddHandlers.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 21ecf1f82..94f96770b 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -27,11 +27,15 @@ player addEventHandler ["take", { // Update channels if they get in a vehicle player addEventHandler ["getInMan", { + params ["_unit", "_role", "_vehicle", "_turret"]; + waitUntil {vehicle player == _vehicle}; [] call f_fnc_radioCheckChannels; }]; // Update channels if they get out of a vehicle player addEventHandler ["getOutMan", { + params ["_unit", "_role", "_vehicle", "_turret"]; + waitUntil {vehicle player != _vehicle}; [] call f_fnc_radioCheckChannels; }]; From 651600948bf797b142b2b2571b1cac577217031b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 13 Oct 2021 00:12:12 +0100 Subject: [PATCH 332/407] Make system not case sensitive --- f/radio/f_radioChannels.sqf | 22 ++++++++++++---------- f/radio/fn_radioCheckChannels.sqf | 4 ++-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 15b46dfa2..ea1401d96 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -51,6 +51,7 @@ if (isServer) then { OBJECTS (ARRAY OF STRINGS): INVENTORY (classname) items, such as backpacks or equipment, give the player talk and receive access when carried. Only player inventory is checked, NOT vehicles. VEHICLES (classname or variable name) give the player receive access when they are inside, and talk access when they are the driver. + The channel eligibility array is not case-sensitive. There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: @@ -60,17 +61,18 @@ if (isServer) then { "gm_gc_backpack_r105m_brn" "gm_ge_backpack_sem35_oli" */ + f_var_radioChannels = createHashmap; - f_var_radioChannels set [1, ["LR Channel 1",[1, 0.3, 0.1, 1], ["B_RadioBag_01_black_F"]]]; - f_var_radioChannels set [2, ["LR Channel 2",[0.06,0.9,0,1], ["B_RadioBag_01_digi_F","vehAAF_COV"]]]; - f_var_radioChannels set [3, ["LR Channel 3",[0.06,0.9,0,1], ["B_RadioBag_01_eaf_F","vehLDF_COV"]]]; - f_var_radioChannels set [4, ["LR Channel 4",[0.9,0,0,1], ["B_RadioBag_01_ghex_F","vehCSAT_COV"]]]; - f_var_radioChannels set [5, ["LR Channel 5",[0.9,0,0,1], ["B_RadioBag_01_hex_F","vehCSAT_COV"]]]; - f_var_radioChannels set [6, ["LR Channel 6",[0.9,0,0,1], ["B_RadioBag_01_oucamo_F","vehCSAT_COV"]]]; - f_var_radioChannels set [7, ["LR Channel 7",[0.1,0.5,1,1], ["B_RadioBag_01_mtp_F","vehNATO_COV"]]]; - f_var_radioChannels set [8, ["LR Channel 8",[0.1,0.5,1,1], ["B_RadioBag_01_wdl_F","vehNATO_COV"]]]; - f_var_radioChannels set [9, ["LR Channel 9",[0.1,0.5,1,1], ["B_RadioBag_01_tropic_F","vehNATO_COV"]]]; - f_var_radioChannels set [10, ["LR Channel 10",[0.9,0.2,0.9,1],[]]]; + f_var_radioChannels set [1, ["LR Channel 1",[1, 0.3, 0.1, 1], (["B_RadioBag_01_black_F"] apply {toLower _x})]]; + f_var_radioChannels set [2, ["LR Channel 2",[0.06,0.9,0,1], (["B_RadioBag_01_digi_F","vehAAF_COV"] apply {toLower _x})]]; + f_var_radioChannels set [3, ["LR Channel 3",[0.06,0.9,0,1], (["B_RadioBag_01_eaf_F","vehLDF_COV"] apply {toLower _x})]]; + f_var_radioChannels set [4, ["LR Channel 4",[0.9,0,0,1], (["B_RadioBag_01_ghex_F","vehCSAT_COV"] apply {toLower _x})]]; + f_var_radioChannels set [5, ["LR Channel 5",[0.9,0,0,1], (["B_RadioBag_01_hex_F","vehCSAT_COV"] apply {toLower _x})]]; + f_var_radioChannels set [6, ["LR Channel 6",[0.9,0,0,1], (["B_RadioBag_01_oucamo_F","vehCSAT_COV"] apply {toLower _x})]]; + f_var_radioChannels set [7, ["LR Channel 7",[0.1,0.5,1,1], (["B_RadioBag_01_mtp_F","vehNATO_COV"] apply {toLower _x})]]; + f_var_radioChannels set [8, ["LR Channel 8",[0.1,0.5,1,1], (["B_RadioBag_01_wdl_F","vehNATO_COV"] apply {toLower _x})]]; + f_var_radioChannels set [9, ["LR Channel 9",[0.1,0.5,1,1], (["B_RadioBag_01_tropic_F","vehNATO_COV"] apply {toLower _x})]]; + f_var_radioChannels set [10, ["LR Channel 10",[0.9,0.2,0.9,1],([] apply {toLower _x})]]; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index a92a9303e..4ace48b5b 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -29,14 +29,14 @@ for "_i" from 1 to f_var_radioChannelCount do { } forEach _channelObjects; // Check for vehicles. Don't add send permissions unless they're the driver. - if ((str vehicle player) in _channelObjects) then { + if ((toLower str vehicle player) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; if (player == driver vehicle player) then { _channelsToAddTalk pushBackUnique _i; }; }; // Same for vehicle classes. - if ((typeOf vehicle player) in _channelObjects) then { + if ((toLower typeOf vehicle player) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; if (player == driver vehicle player) then { _channelsToAddTalk pushBackUnique _i; From 858c9d5087a674e9db03d37f4b1884931a96b00a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 3 Nov 2021 20:39:00 +0000 Subject: [PATCH 333/407] Remove duplicate comment --- f/radio/f_radioChannels.sqf | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index ea1401d96..5a9058ceb 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -18,15 +18,6 @@ params [["_splitMode",false],["_channelCount",10]]; // Disable the Command channel to avoid cheating 2 enableChannel false; -// There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: -/* - "US85_bpPRC77", - "CSLA_bpWpR129", - "CSLA_bpWpRF10", - "gm_gc_backpack_r105m_brn", - "gm_ge_backpack_sem35_oli" -*/ - if (isServer) then { // Make the split mode something we can reference later @@ -53,7 +44,7 @@ if (isServer) then { VEHICLES (classname or variable name) give the player receive access when they are inside, and talk access when they are the driver. The channel eligibility array is not case-sensitive. - There is a maximum of 10 channels at any time. Swap in these radios for GM and CSLA missions: + There is a maximum of 10 channels at any time. Add in these radios for GM and CSLA missions: "US85_bpPRC77" "CSLA_bpWpR129" From 8390cb2153eb0939aea80429489232aa3892e62a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 3 Jan 2022 16:18:28 +0000 Subject: [PATCH 334/407] Remove nonfunctional waitUntils --- f/radio/fn_radioAddHandlers.sqf | 2 -- f/radio/fn_radioCheckChannels.sqf | 3 --- 2 files changed, 5 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 94f96770b..7d5d40b36 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -28,14 +28,12 @@ player addEventHandler ["take", { // Update channels if they get in a vehicle player addEventHandler ["getInMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - waitUntil {vehicle player == _vehicle}; [] call f_fnc_radioCheckChannels; }]; // Update channels if they get out of a vehicle player addEventHandler ["getOutMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - waitUntil {vehicle player != _vehicle}; [] call f_fnc_radioCheckChannels; }]; diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 4ace48b5b..af8cc6569 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -5,9 +5,6 @@ This function checks what channels a player should have access to. It's called by event handlers set up by fn_radioAddHandlers.sqf. =========================== */ -// Clients wait for the server to finish with setup -waitUntil {!(isNil "f_var_radioChannelsUnified")}; - _splitMode = f_var_radioSplitMode; // Initialise variables From 72f33d443dec5fc1b9ae18359192265c5caaf311 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 3 Jan 2022 16:23:00 +0000 Subject: [PATCH 335/407] switch from hardcoded player to params --- f/radio/fn_radioAddHandlers.sqf | 15 +++++++++------ f/radio/fn_radioCheckChannels.sqf | 23 ++++++++++++----------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 7d5d40b36..c7fd4a122 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -10,36 +10,39 @@ It's activated by f\radio\f_radioChannels.sqf. waitUntil {!isNull player && {player == player}}; // Add player to the correct channels if they have a backpack -[] call f_fnc_radioCheckChannels; +[player] call f_fnc_radioCheckChannels; // Now bail if they've already been handled if (player getVariable ["f_var_radioHandlersAdded",false]) exitWith {}; // Update channels if they drop a backpack player addEventHandler ["put", { - [] call f_fnc_radioCheckChannels; + params ["_unit", "_container", "_item"]; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they take a backpack player addEventHandler ["take", { - [] call f_fnc_radioCheckChannels; + params ["_unit", "_container", "_item"]; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they get in a vehicle player addEventHandler ["getInMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - [] call f_fnc_radioCheckChannels; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they get out of a vehicle player addEventHandler ["getOutMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - [] call f_fnc_radioCheckChannels; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they switch seats in a vehicle player addEventHandler ["seatSwitchedMan", { - [] call f_fnc_radioCheckChannels; + params ["_unit1", "_unit2", "_vehicle"]; + [_unit1] call f_fnc_radioCheckChannels; }]; // Just to be sure... diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index af8cc6569..21a6682b0 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -4,11 +4,12 @@ /* ======================== This function checks what channels a player should have access to. It's called by event handlers set up by fn_radioAddHandlers.sqf. =========================== */ +params ["_unit"]; _splitMode = f_var_radioSplitMode; // Initialise variables -private _radioChannelsPlayerSpecific = []; +private _radioChannels_unitSpecific = []; private _radioChannelsVehicleSpecific = []; private _channelObjects = []; private _channelsToAddListen = []; @@ -19,23 +20,23 @@ for "_i" from 1 to f_var_radioChannelCount do { // Check against the list of objects. If they have a backpack or other inventory item, add the currently checked channel number to the list of channels to add send & receive permissions for. _channelObjects = ((f_var_radioChannels get _i) select 2); { - if ([player,_x] call BIS_fnc_hasItem) then { + if ([_unit,_x] call BIS_fnc_hasItem) then { _channelsToAddListen pushBackUnique _i; _channelsToAddTalk pushBackUnique _i; }; } forEach _channelObjects; // Check for vehicles. Don't add send permissions unless they're the driver. - if ((toLower str vehicle player) in _channelObjects) then { + if ((toLower str vehicle _unit) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; - if (player == driver vehicle player) then { + if (_unit == driver vehicle _unit) then { _channelsToAddTalk pushBackUnique _i; }; }; // Same for vehicle classes. - if ((toLower typeOf vehicle player) in _channelObjects) then { + if ((toLower typeOf vehicle _unit) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; - if (player == driver vehicle player) then { + if (_unit == driver vehicle _unit) then { _channelsToAddTalk pushBackUnique _i; }; }; @@ -45,14 +46,14 @@ for "_i" from 1 to f_var_radioChannelCount do { { _channelsToAddListen pushBackUnique _x; _channelsToAddTalk pushBackUnique _x; -} forEach (player getVariable ["f_var_radioChannelsObjectSpecific",[]]); +} forEach (_unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); { _channelsToAddListen pushBackUnique _x; - if (player == driver vehicle player) then { + if (_unit == driver vehicle _unit) then { _channelsToAddTalk pushBackUnique _x; }; -} forEach (vehicle player getVariable ["f_var_radioChannelsObjectSpecific",[]]); +} forEach (vehicle _unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); // If running in unified mode, just compress all numbers down to the one channel if there are any channels to be added. if (!_splitMode) then { @@ -72,7 +73,7 @@ for "_i" from 1 to f_var_radioChannelCount do { (_i + 5) enableChannel false; }; if !(_i in _channelsToAddListen) then { - _i radioChannelRemove [player]; + _i radioChannelRemove [_unit]; }; }; @@ -81,7 +82,7 @@ for "_i" from 1 to f_var_radioChannelCount do { 2 enableChannel false; // Add player to the correct channels if they are eligible -{_x radioChannelAdd [player]} forEach _channelsToAddListen; +{_x radioChannelAdd [_unit]} forEach _channelsToAddListen; {(_x + 5) enableChannel true} forEach _channelsToAddTalk; // DEBUG From 761e97e45696644d17c545f98ab16062c0dc5590 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 3 Jan 2022 19:03:13 +0000 Subject: [PATCH 336/407] Replaced one necessary waitUntil --- f/radio/fn_radioAddHandlers.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index c7fd4a122..2f3d9e205 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -7,7 +7,7 @@ It's activated by f\radio\f_radioChannels.sqf. =========================== */ // Wait for player to be properly initialised -waitUntil {!isNull player && {player == player}}; +waitUntil {(!isNull player && {player == player}) && !(isNil "f_var_radioChannelsUnified")}; // Add player to the correct channels if they have a backpack [player] call f_fnc_radioCheckChannels; From d56434fcc934a5cc3d2b8997b567de45bc87241e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:43:05 +0000 Subject: [PATCH 337/407] Change vehicle cargo weapons to ...withAttachments --- f/assignGear/f_assignGear_3IFB_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_aaf_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_csat_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_ctrg_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_fia_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_ldf_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_nato_v.sqf | 11 +++++------ f/assignGear/f_assignGear_npr_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_spetsnaz_v.sqf | 17 ++++++++--------- f/assignGear/f_assignGear_syndikat_v.sqf | 17 ++++++++--------- 10 files changed, 77 insertions(+), 87 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB_v.sqf b/f/assignGear/f_assignGear_3IFB_v.sqf index 52977aad9..b64b44cdf 100644 --- a/f/assignGear/f_assignGear_3IFB_v.sqf +++ b/f/assignGear/f_assignGear_3IFB_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_aaf_v.sqf b/f/assignGear/f_assignGear_aaf_v.sqf index de1c89aad..e697390ef 100644 --- a/f/assignGear/f_assignGear_aaf_v.sqf +++ b/f/assignGear/f_assignGear_aaf_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_csat_v.sqf b/f/assignGear/f_assignGear_csat_v.sqf index d3e8f8f64..f47598df2 100644 --- a/f/assignGear/f_assignGear_csat_v.sqf +++ b/f/assignGear/f_assignGear_csat_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_ctrg_v.sqf b/f/assignGear/f_assignGear_ctrg_v.sqf index 23fb3f848..2cab104f7 100644 --- a/f/assignGear/f_assignGear_ctrg_v.sqf +++ b/f/assignGear/f_assignGear_ctrg_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_fia_v.sqf b/f/assignGear/f_assignGear_fia_v.sqf index 53c48498a..3236916b4 100644 --- a/f/assignGear/f_assignGear_fia_v.sqf +++ b/f/assignGear/f_assignGear_fia_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_ldf_v.sqf b/f/assignGear/f_assignGear_ldf_v.sqf index 96ad6d8d0..deb9c9379 100644 --- a/f/assignGear/f_assignGear_ldf_v.sqf +++ b/f/assignGear/f_assignGear_ldf_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_nato_v.sqf b/f/assignGear/f_assignGear_nato_v.sqf index 6ba75f151..478203610 100644 --- a/f/assignGear/f_assignGear_nato_v.sqf +++ b/f/assignGear/f_assignGear_nato_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; diff --git a/f/assignGear/f_assignGear_npr_v.sqf b/f/assignGear/f_assignGear_npr_v.sqf index 39a125bd6..0a851f6f7 100644 --- a/f/assignGear/f_assignGear_npr_v.sqf +++ b/f/assignGear/f_assignGear_npr_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_spetsnaz_v.sqf b/f/assignGear/f_assignGear_spetsnaz_v.sqf index ed9583090..925e4925f 100644 --- a/f/assignGear/f_assignGear_spetsnaz_v.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; diff --git a/f/assignGear/f_assignGear_syndikat_v.sqf b/f/assignGear/f_assignGear_syndikat_v.sqf index 62b392b57..e71541849 100644 --- a/f/assignGear/f_assignGear_syndikat_v.sqf +++ b/f/assignGear/f_assignGear_syndikat_v.sqf @@ -7,7 +7,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 8]; _unit addMagazineCargoGlobal [_glriflemag, 8]; _unit addMagazineCargoGlobal [_carbinemag, 10]; @@ -28,7 +28,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 4]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],4]; _unit addMagazineCargoGlobal [_riflemag, 20]; _unit addMagazineCargoGlobal [_glriflemag, 20]; _unit addMagazineCargoGlobal [_carbinemag, 20]; @@ -51,7 +51,7 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag, 10]; _unit addMagazineCargoGlobal [_glriflemag, 10]; _unit addMagazineCargoGlobal [_carbinemag, 12]; @@ -108,13 +108,12 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,2]; - _unit addWeaponCargoGlobal [_rat,1]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],1]; _unit addMagazineCargoGlobal [_riflemag,10]; _unit addMagazineCargoGlobal [_glriflemag,10]; _unit addMagazineCargoGlobal [_carbinemag,10]; _unit addMagazineCargoGlobal [_armag,6]; - _unit addMagazineCargoGlobal [_RATmag1,1]; _unit addMagazineCargoGlobal [_grenade,4]; _unit addmagazineCargoGlobal [_mgrenade,4]; _unit addMagazineCargoGlobal [_smokegrenade,8]; @@ -134,13 +133,13 @@ clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_carbine,8]; - _unit addWeaponCargoGlobal [_rat,2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_carbine,"","","",[_carbinemag,500],[],""],8]; + _unit addWeaponWithAttachmentsCargoGlobal [[_rat,"","","",[_RATmag1,500],[],""],2]; _unit addMagazineCargoGlobal [_riflemag,20]; _unit addMagazineCargoGlobal [_glriflemag,20]; _unit addMagazineCargoGlobal [_carbinemag,20]; _unit addMagazineCargoGlobal [_armag,12]; - _unit addMagazineCargoGlobal [_RATmag1,6]; + _unit addMagazineCargoGlobal [_RATmag1,4]; _unit addMagazineCargoGlobal [_grenade,12]; _unit addmagazineCargoGlobal [_mgrenade,12]; _unit addMagazineCargoGlobal [_smokegrenade,12]; From 1850e4d5bca1baaac1e78e4487de4612475e1032 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 10 Mar 2022 17:45:02 +0000 Subject: [PATCH 338/407] Forgot Gendarmes --- f/assignGear/f_assignGear_gendarmerie.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 30de4d164..5282c676b 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -338,7 +338,7 @@ switch (_typeofUnit) do clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_smg, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_smg,"","","",[_smgmag,500],[],""],2]; _unit addMagazineCargoGlobal [_smgmag, 12]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addMagazineCargoGlobal [_chemred,4]; @@ -354,7 +354,7 @@ switch (_typeofUnit) do clearMagazineCargoGlobal _unit; clearItemCargoGlobal _unit; clearBackpackCargoGlobal _unit; - _unit addWeaponCargoGlobal [_smg, 2]; + _unit addWeaponWithAttachmentsCargoGlobal [[_smg,"","","",[_smgmag,500],[],""],2]; _unit addMagazineCargoGlobal [_smgmag, 12]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addMagazineCargoGlobal [_chemred,4]; From 8c0c1332dbe512778879a8df6e8ccbed19a7c030 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 13 Mar 2022 07:36:00 +0000 Subject: [PATCH 339/407] Add more EHs to increase check frequency --- f/radio/fn_radioAddHandlers.sqf | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 2f3d9e205..8acfda955 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -27,6 +27,18 @@ player addEventHandler ["take", { [_unit] call f_fnc_radioCheckChannels; }]; +// Update channels if they open their inventory +player addEventHandler ["inventoryOpened", { + params ["_unit", "_container"]; + [_unit] call f_fnc_radioCheckChannels; +}]; + +// Update channels if they close their inventory +player addEventHandler ["inventoryClosed", { + params ["_unit", "_container"]; + [_unit] call f_fnc_radioCheckChannels; +}]; + // Update channels if they get in a vehicle player addEventHandler ["getInMan", { params ["_unit", "_role", "_vehicle", "_turret"]; From 8f68f456dce62909de9953484cd4ddff31d05391 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 25 Apr 2022 19:44:11 +0100 Subject: [PATCH 340/407] make faction checks not case sensitive --- f/assignGear/fn_assignGear.sqf | 28 +++++++++++------------ f/briefing/fn_createBriefing.sqf | 24 +++++++++---------- f/groupMarkers/f_setLocalGroupMarkers.sqf | 28 +++++++++++------------ 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 4c1697a6d..7fdefc055 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -77,7 +77,7 @@ if (f_param_debugMode == 1) then // The following block of code executes only if the unit belongs to the NATO faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["blu_f","nato"]) then { +if (_faction in (["blu_f","nato"] apply {toLower _x})) then { #if __has_include("f_assignGear_nato.sqf") #include "f_assignGear_nato.sqf" #endif @@ -99,7 +99,7 @@ if (_faction in ["blu_f","nato"]) then { // The following block of code executes only if the unit belongs to the NATO (Pacific) faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["blu_t_f","natopacific"]) then { +if (_faction in (["blu_t_f","natopacific"] apply {toLower _x})) then { #if __has_include("f_assignGear_natoPacific.sqf") #include "f_assignGear_natoPacific.sqf" #endif @@ -111,7 +111,7 @@ if (_faction in ["blu_t_f","natopacific"]) then { // The following block of code executes only if the unit belongs to the NATO (Woodland) faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["blu_w_f","natowoodland"]) then { +if (_faction in (["blu_w_f","natowoodland"] apply {toLower _x})) then { #if __has_include("f_assignGear_natoWoodland.sqf") #include "f_assignGear_natoWoodland.sqf" #endif @@ -123,7 +123,7 @@ if (_faction in ["blu_w_f","natowoodland"]) then { // The following block of code executes only if the unit belongs to the gendarmerie faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["blu_gen_f"]) then { +if (_faction in (["blu_gen_f"] apply {toLower _x})) then { #if __has_include("f_assignGear_gendarmerie.sqf") #include "f_assignGear_gendarmerie.sqf" #endif @@ -135,7 +135,7 @@ if (_faction in ["blu_gen_f"]) then { // The following block of code executes only if the unit belongs to the CSAT faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["opf_f","csat"]) then { +if (_faction in (["opf_f","csat"] apply {toLower _x})) then { #if __has_include("f_assignGear_csat.sqf") #include "f_assignGear_csat.sqf" #endif @@ -152,7 +152,7 @@ if (_faction in ["opf_f","csat"]) then { // The following block of code executes only if the unit belongs to the CSAT (Pacific) faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["opf_t_f","csatpacific"]) then { +if (_faction in (["opf_t_f","csatpacific"] apply {toLower _x})) then { #if __has_include("f_assignGear_csatPacific.sqf") #include "f_assignGear_csatPacific.sqf" #endif @@ -164,7 +164,7 @@ if (_faction in ["opf_t_f","csatpacific"]) then { // The following block of code executes only if the unit belongs to the Spetsnaz faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["opf_r_f","spetsnaz"]) then { +if (_faction in (["opf_r_f","spetsnaz"] apply {toLower _x})) then { #if __has_include("f_assignGear_spetsnaz.sqf") #include "f_assignGear_spetsnaz.sqf" #endif @@ -176,7 +176,7 @@ if (_faction in ["opf_r_f","spetsnaz"]) then { // The following block of code executes only if the unit belongs to the AAF faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["ind_f","aaf"]) then { +if (_faction in (["ind_f","aaf"] apply {toLower _x})) then { #if __has_include("f_assignGear_aaf.sqf") #include "f_assignGear_aaf.sqf" #endif @@ -188,7 +188,7 @@ if (_faction in ["ind_f","aaf"]) then { // The following block of code executes only if the unit belongs to the FIA slot (any side); it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["blu_g_f","opf_g_f","ind_g_f","fia"]) then { +if (_faction in (["blu_g_f","opf_g_f","ind_g_f","fia"] apply {toLower _x})) then { #if __has_include("f_assignGear_fia.sqf") #include "f_assignGear_fia.sqf" #endif @@ -200,7 +200,7 @@ if (_faction in ["blu_g_f","opf_g_f","ind_g_f","fia"]) then { // The following block of code executes only if the unit belongs to the CTRG faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["blu_ctrg_f","ctrg"]) then { +if (_faction in (["blu_ctrg_f","ctrg"] apply {toLower _x})) then { #if __has_include("f_assignGear_ctrg.sqf") #include "f_assignGear_ctrg.sqf" #endif @@ -212,7 +212,7 @@ if (_faction in ["blu_ctrg_f","ctrg"]) then { // The following block of code executes only if the unit is manually assigned the Syndikat faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["ind_c_f","syndikat"]) then { +if (_faction in (["ind_c_f","syndikat"] apply {toLower _x})) then { #if __has_include("f_assignGear_syndikat.sqf") #include "f_assignGear_syndikat.sqf" #endif @@ -224,7 +224,7 @@ if (_faction in ["ind_c_f","syndikat"]) then { // The following block of code executes only if the unit belongs to the LDF faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["ind_e_f","ldf"]) then { +if (_faction in (["ind_e_f","ldf"] apply {toLower _x})) then { #if __has_include("f_assignGear_ldf.sqf") #include "f_assignGear_ldf.sqf" #endif @@ -236,7 +236,7 @@ if (_faction in ["ind_e_f","ldf"]) then { // The following block of code executes only if the unit belongs to the NPR faction; it // automatically includes a file which contains the appropriate equipment data. -if (_faction in ["ind_l_f","npr"]) then { +if (_faction in (["ind_l_f","npr"] apply {toLower _x})) then { #if __has_include("f_assignGear_npr.sqf") #include "f_assignGear_npr.sqf" #endif @@ -250,7 +250,7 @@ if (_faction in ["ind_l_f","npr"]) then { // The following block of code executes only if the unit is assigned to the 3IFB virtual faction // with f_fnc_setVirtualFaction; it automatically includes a file which contains the appropriate // equipment data. -if (_faction in ["3ifb"]) then { +if (_faction in (["3ifb"] apply {toLower _x})) then { #if __has_include("f_assignGear_3IFB.sqf") #include "f_assignGear_3IFB.sqf" #endif diff --git a/f/briefing/fn_createBriefing.sqf b/f/briefing/fn_createBriefing.sqf index cec8c1a46..e1d9ea927 100644 --- a/f/briefing/fn_createBriefing.sqf +++ b/f/briefing/fn_createBriefing.sqf @@ -54,7 +54,7 @@ if (f_param_debugMode == 1) then // BLUFOR > NATO #if __has_include("f_briefing_nato.sqf") - if (_unitfaction in ["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"]) exitwith { + if (_unitfaction in (["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"] apply {toLower _x})) exitwith { #include "f_briefing_nato.sqf" [_unitfaction] call _fnc_debug; }; @@ -62,7 +62,7 @@ if (f_param_debugMode == 1) then // FIA #if __has_include("f_briefing_fia.sqf") - if (_unitfaction in ["blu_g_f","ind_g_f","opf_g_f","fia"]) exitwith { + if (_unitfaction in (["blu_g_f","ind_g_f","opf_g_f","fia"] apply {toLower _x})) exitwith { #include "f_briefing_fia.sqf" [_unitfaction] call _fnc_debug; }; @@ -70,7 +70,7 @@ if (f_param_debugMode == 1) then // BLUFOR > GENDARMERIE #if __has_include("f_briefing_gendarmerie.sqf") - if (_unitfaction in ["blu_gen_f"]) exitwith { + if (_unitfaction in (["blu_gen_f"] apply {toLower _x})) exitwith { #include "f_briefing_gendarmerie.sqf" [_unitfaction] call _fnc_debug; }; @@ -78,7 +78,7 @@ if (f_param_debugMode == 1) then // OPFOR > CSAT #if __has_include("f_briefing_csat.sqf") - if (_unitfaction in ["opf_f","opf_t_f","csat","csatpacific"]) exitwith { + if (_unitfaction in (["opf_f","opf_t_f","csat","csatpacific"] apply {toLower _x})) exitwith { #include "f_briefing_csat.sqf" [_unitfaction] call _fnc_debug; }; @@ -86,7 +86,7 @@ if (f_param_debugMode == 1) then // OPFOR > Spetsnaz #if __has_include("f_briefing_spetsnaz.sqf") - if (_unitfaction in ["opf_r_f","spetsnaz"]) exitwith { + if (_unitfaction in (["opf_r_f","spetsnaz"] apply {toLower _x})) exitwith { #include "f_briefing_spetsnaz.sqf" [_unitfaction] call _fnc_debug; }; @@ -94,7 +94,7 @@ if (f_param_debugMode == 1) then // INDEPENDENT > AAF #if __has_include("f_briefing_aaf.sqf") - if (_unitfaction in ["ind_f","aaf"]) exitwith { + if (_unitfaction in (["ind_f","aaf"] apply {toLower _x})) exitwith { #include "f_briefing_aaf.sqf" [_unitfaction] call _fnc_debug; }; @@ -102,7 +102,7 @@ if (f_param_debugMode == 1) then // INDEPENDENT > LDF #if __has_include("f_briefing_ldf.sqf") - if (_unitfaction in ["ind_e_f","ldf"]) exitwith { + if (_unitfaction in (["ind_e_f","ldf"] apply {toLower _x})) exitwith { #include "f_briefing_ldf.sqf" [_unitfaction] call _fnc_debug; }; @@ -110,7 +110,7 @@ if (f_param_debugMode == 1) then // INDEPENDENT > SYNDIKAT #if __has_include("f_briefing_syndikat.sqf") - if (_unitfaction in ["ind_c_f","syndikat"]) exitwith { + if (_unitfaction in (["ind_c_f","syndikat"] apply {toLower _x})) exitwith { #include "f_briefing_syndikat.sqf" [_unitfaction] call _fnc_debug; }; @@ -118,7 +118,7 @@ if (f_param_debugMode == 1) then // INDEPENDENT > NPR (Looters) #if __has_include("f_briefing_npr.sqf") - if (_unitfaction in ["ind_l_f","npr"]) exitwith { + if (_unitfaction in (["ind_l_f","npr"] apply {toLower _x})) exitwith { #include "f_briefing_npr.sqf" [_unitfaction] call _fnc_debug; }; @@ -127,7 +127,7 @@ if (f_param_debugMode == 1) then // BLUFOR > CTRG #if __has_include("f_briefing_ctrg.sqf") - if (_unitfaction in ["blu_ctrg_f","ctrg"]) exitwith { + if (_unitfaction in (["blu_ctrg_f","ctrg"] apply {toLower _x})) exitwith { #include "f_briefing_ctrg.sqf" [_unitfaction] call _fnc_debug; }; @@ -135,7 +135,7 @@ if (f_param_debugMode == 1) then // CIVILIAN and IDAP #if __has_include("f_briefing_civ.sqf") - if (_unitfaction in ["civ_f", "civ_idap_f"]) exitwith { + if (_unitfaction in (["civ_f", "civ_idap_f"] apply {toLower _x})) exitwith { #include "f_briefing_civ.sqf" [_unitfaction] call _fnc_debug; }; @@ -143,7 +143,7 @@ if (f_param_debugMode == 1) then // VIRTUAL FACTION > 3IFB #if __has_include("f_briefing_3ifb.sqf") - if (_unitfaction in ["3ifb"]) exitwith { + if (_unitfaction in (["3ifb"] apply {toLower _x})) exitwith { #include "f_briefing_3ifb.sqf" [_unitfaction] call _fnc_debug; }; diff --git a/f/groupMarkers/f_setLocalGroupMarkers.sqf b/f/groupMarkers/f_setLocalGroupMarkers.sqf index c4983b0aa..f2bd926d8 100644 --- a/f/groupMarkers/f_setLocalGroupMarkers.sqf +++ b/f/groupMarkers/f_setLocalGroupMarkers.sqf @@ -23,72 +23,72 @@ params [ private _groups = []; // Markers seen by players in NATO, NATO (Pacific) & NATO (Woodland) slots. -if (_unitfaction in ["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"]) then { +if (_unitfaction in (["blu_f","blu_t_f","blu_w_f","nato","natowoodland","natopacific"] apply {toLower _x})) then { _groups = f_var_groupData_blufor_nato; }; // Markers seen by players in FIA slots. Move "fia" to OPFOR FIA or INDFOR FIA if using them. -if (_unitfaction in ["blu_g_f","fia"]) then { +if (_unitfaction in (["blu_g_f","fia"] apply {toLower _x})) then { _groups = f_var_groupData_blufor_fia; }; // Markers seen by players in Gendarmerie slots. -if (_unitfaction in ["blu_gen_f"]) then { +if (_unitfaction in (["blu_gen_f"] apply {toLower _x})) then { _groups = f_var_groupData_blufor_gen; }; // Markers seen by players in CTRG slots. -if (_unitfaction in ["blu_ctrg_f","ctrg"]) then { +if (_unitfaction in (["blu_ctrg_f","ctrg"] apply {toLower _x})) then { _groups = f_var_groupData_blufor_ctrg; }; // Markers seen by players in CSAT & CSAT (Pacific) slots. -if (_unitfaction in ["opf_f","opf_t_f","csat","csatpacific"]) then { +if (_unitfaction in (["opf_f","opf_t_f","csat","csatpacific"] apply {toLower _x})) then { _groups = f_var_groupData_opfor_csat; }; // Markers seen by players in OPFOR-FIA slots. Add "fia" if using "fia" with Virtual Faction, and remove it from BLUFOR FIA. -if (_unitfaction in ["opf_g_f"]) then { +if (_unitfaction in (["opf_g_f"] apply {toLower _x})) then { _groups = f_var_groupData_opfor_fia; }; // Markers seen by players in Spetsnaz slots. -if (_unitfaction in ["opf_r_f","spetsnaz"]) then { +if (_unitfaction in (["opf_r_f","spetsnaz"] apply {toLower _x})) then { _groups = f_var_groupData_opfor_spetsnaz; }; // Markers seen by players in NPR (Looters) slots. -if (_unitfaction in ["ind_l_f","npr"]) then { +if (_unitfaction in (["ind_l_f","npr"] apply {toLower _x})) then { _groups = f_var_groupData_opfor_npr; }; // Markers seen by players in AAF slots. -if (_unitfaction in ["ind_f","aaf"]) then { +if (_unitfaction in (["ind_f","aaf"] apply {toLower _x})) then { _groups = f_var_groupData_indfor_aaf; }; // Markers seen by players in LDF slots. -if (_unitfaction in ["ind_e_f","ldf"]) then { +if (_unitfaction in (["ind_e_f","ldf"] apply {toLower _x})) then { _groups = f_var_groupData_indfor_ldf; }; // Markers seen by players in INDEPENDENT-FIA slots. Add "fia" if using "fia" with Virtual Faction, and remove it from BLUFOR FIA. -if (_unitfaction in ["ind_g_f"]) then { +if (_unitfaction in (["ind_g_f"] apply {toLower _x})) then { _groups = f_var_groupData_indfor_fia; }; // Markers seen by players in SYNDIKAT slots. -if (_unitfaction in ["ind_c_f","syndikat"]) then { +if (_unitfaction in (["ind_c_f","syndikat"] apply {toLower _x})) then { _groups = f_var_groupData_indfor_syn; }; // Markers seen by players in 3IFB (virtual) slots. -if (_unitfaction in ["3ifb"]) then { +if (_unitfaction in (["3ifb"] apply {toLower _x})) then { _groups = f_var_groupData_indfor_3ifb; }; // Markers seen by players in Civilian slots. -if (_unitfaction in ["civ_f","civ_idap_f"]) then { +if (_unitfaction in (["civ_f","civ_idap_f"] apply {toLower _x})) then { _groups = f_var_groupData_civ; }; From f65618a24a2a531626c6c8741e87f814f4ac4b61 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 25 Apr 2022 21:03:46 +0100 Subject: [PATCH 341/407] Add FCS/TC override --- f/fcs/fn_fcsCommanderOverride.sqf | 23 ++++++ f/fcs/fn_fcsFailure.sqf | 44 ++++++++++ f/fcs/fn_fcsInit.sqf | 118 +++++++++++++++++++++++++++ f/fcs/fn_fcsOverrideLocalWarning.sqf | 18 ++++ f/fcs/fn_fcsPersistentEffects.sqf | 52 ++++++++++++ f/functions.hpp | 9 ++ init.sqf | 8 ++ 7 files changed, 272 insertions(+) create mode 100644 f/fcs/fn_fcsCommanderOverride.sqf create mode 100644 f/fcs/fn_fcsFailure.sqf create mode 100644 f/fcs/fn_fcsInit.sqf create mode 100644 f/fcs/fn_fcsOverrideLocalWarning.sqf create mode 100644 f/fcs/fn_fcsPersistentEffects.sqf diff --git a/f/fcs/fn_fcsCommanderOverride.sqf b/f/fcs/fn_fcsCommanderOverride.sqf new file mode 100644 index 000000000..35c0d6635 --- /dev/null +++ b/f/fcs/fn_fcsCommanderOverride.sqf @@ -0,0 +1,23 @@ +// F3 - FCS/Commander's Override system +// Credits and documentation: https://github.com/folkarps/F3/wiki +// Originally from: https://github.com/NikkoJT/njt_fcs (integrated with permission) + +// This function is called when the commander issues a TC override from the action defined in fcs_init + +params ["_vehicle","_caller"]; + +// If there's no valid target under the commander's crosshair, tell them and do nothing else +if (isNull cursorObject) then { + ["NO TARGET",1] remoteExec ["f_fnc_fcsOverrideLocalWarning",commander _vehicle]; +} else { + // Get the position of the centre of the targeted object at the time of the override + _overrideTarget = (cursorObject modelToWorldWorld (boundingCenter cursorObject)); + // Order the gunner to aim their camera at the target position + [_vehicle,[_overrideTarget,_vehicle unitTurret (gunner _vehicle),true]] remoteExec ["lockCameraTo",gunner _vehicle]; + // Display a HUD indicator for the gunner + ["TC OVERRIDE",2] remoteExec ["f_fnc_fcsOverrideLocalWarning",gunner _vehicle]; + // Handle cooldown on override + _vehicle setVariable ["fcsCommanderOverride_cooldown",true,true]; + sleep 3; + _vehicle setVariable ["fcsCommanderOverride_cooldown",false,true]; +}; \ No newline at end of file diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf new file mode 100644 index 000000000..7750c55b8 --- /dev/null +++ b/f/fcs/fn_fcsFailure.sqf @@ -0,0 +1,44 @@ +// F3 - FCS/Commander's Override system +// Credits and documentation: https://github.com/folkarps/F3/wiki +// Originally from: https://github.com/NikkoJT/njt_fcs (integrated with permission) + +// This function is used in the Hit EH defined in fcs_init. It determines whether a given hit causes an FCS failure. + +params ["_target","_projectile","_isDirect"]; + + private _projectileClass = ""; + private _warheadType = ""; + private _randomNumber = 0; + + // Determine whether the projectile is an anti-tank weapon + _projectileClass = typeOf _projectile; + if !(_projectileClass isKindOf ["Default",configFile >> "CfgAmmo"]) exitWith { + //diag_log "FCS: hit by something other than a weapon" + }; + _warheadType = (configProperties [configFile >> "CfgAmmo" >> _projectileClass >> "warheadName"]) select 0; + if !(_warheadType in ["AP","HEAT"]) exitWith { + // diag_log "FCS: projectile not HEAT or AP" + }; + if !(_isDirect) exitWith { + // diag_log "FCS: splash damage only" + }; + + // 5% of qualifying hits should trigger this + _randomNumber = floor (random 20); + if !(_randomNumber == 10) exitWith { + // diag_log "FCS: projectile not randomly selected" + }; + if (_target getVariable ["fcs_failure",false]) exitWith { + // diag_log "FCS: target already has an FCS failure" + }; + + // Hit turns off the stabiliser and sets an appropriate variable on the vehicle + // EXCEPT IT DOESN'T TURN OFF THE STABILISER BECAUSE THAT'S NOT WHAT THE COMMAND DOES + // GOD DAMN IT BI + // Turns off night vision though + [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; + _target disableNVGEquipment true; + _target setVariable ["fcs_failure",true,true]; + + // Spawn ongoing stuff that affects the vehicle until repaired + [_target] spawn f_fnc_fcsPersistentEffects; \ No newline at end of file diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf new file mode 100644 index 000000000..9c2e50890 --- /dev/null +++ b/f/fcs/fn_fcsInit.sqf @@ -0,0 +1,118 @@ +// F3 - FCS/Commander's Override system +// Credits and documentation: https://github.com/folkarps/F3/wiki +// Originally from: https://github.com/NikkoJT/njt_fcs (integrated with permission) + +/* + This component adds three main functions to a vehicle it's called on: + 1. Commander's Override + The Commander's Override allows the commander to automatically point the gun at whatever object they're looking at. + 2. FCS failure simulation + When the vehicle is hit by a high-calibre weapon, there is a small chance of an FCS failure, disabling the TC override, laser rangefinder, and NVDs, and force-setting the gunner's zeroing. + A unit with the repair trait can reset the FCS from the gunner's seat. + (If and when BI adds the ability to disable turret stabilisation by script, it will do that too) + 3. Driver's brake release + The driver can override the vehicle's automatic brakes, allowing it to roll freely at low speed and on slopes. Braking re-engages the autobrakes. + + Execution, all clients: + [_vehicle] call f_fnc_fcsInit; + + Or example (warning: classnames are case sensitive): + _fcsvehicles = vehicles select {typeOf _x in ["I_APC_Wheeled_03_cannon_F","I_APC_tracked_03_cannon_F"]}; + {[_x] call f_fnc_fcsInit} forEach _fcsvehicles; + + An option to activate this component is pre-placed in the F3 init.sqf + +*/ + +// Doesn't need to run on DS +if (isDedicated) exitWith {}; + +params ["_vehicle"]; + +if !(_vehicle isKindOf "LandVehicle") exitWith { diag_log "FCS: tried to run on something that isn't a vehicle" }; + +if (_vehicle getVariable ["fcs_hasEH",false]) exitWith { diag_log "FCS: tried to run on something that already has FCS set up"}; + +// Commander's override action +_vehicle addAction +[ + "Commander's override", + { + params ["_target", "_caller", "_actionId", "_arguments"]; + [_target,_caller] call f_fnc_fcsCommanderOverride; + }, + nil, + 1.5, + false, + true, + "", + "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""fcs_failure"",false])}", + 0, + false, + "", + "" +]; + + +// Hit EH for FCS failure +_vehicle addEventHandler ["HitPart",{ + (_this select 0) params ["_target", "_shooter", "_projectile", "_position", "_velocity", "_selection", "_ammo", "_vector", "_radius", "_surfaceType", "_isDirect"]; + // Call the actual failure evaluator + [_target,_projectile,_isDirect] call f_fnc_fcsFailure; + }]; + +_vehicle setVariable ["fcs_hasEH",true]; + +// Hold action to repair FCS failure +// Players with repair trait in the gunner's seat of a vehicle with failed stabiliser can repair it +[ + _vehicle, // Target + "Reset Fire Control System", // Title + "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Idle icon + "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Progress icon + "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show + "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress + {}, // Code on start + {}, // Code on tick + { + params ["_target", "_caller", "_actionId", "_arguments"]; + _target setVariable ["fcs_failure",false,true]; + [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; + _target disableNVGEquipment false; + }, // Code on completed + {}, // Code on interrupt + [], // Arguments to pass + 10, // Duration + 1, // Priority + false, // Remove on completion + false, // Show when unconscious + true // Show on screen +] call BIS_fnc_holdActionAdd; + +// Action to prevent rangefinder use during FCS failure +_vehicle addAction ["FCS failure - repair required", // Title + { + hint "Someone familiar with maintenance can reset the FCS."; + }, // Code + "", // Arguments + 10, // Priority + false, // Show window + true, // Hide on use + "gunElevAuto", // Shortcut + "(_this == gunner _target) && {_target getVariable [""fcs_failure"",false]}" // Condition +]; + +// Not FCS but I'm putting it in here +_vehicle addAction [ + "Disable automatic brakes (brake to re-engage)", + { + params ["_target", "_caller", "_actionId", "_arguments"]; + [_target,true] remoteExec ["disableBrakes",_target]; + }, + "", + 10, + false, + true, + "", + "(driver _target == _this) && {!brakesDisabled _target}" +]; \ No newline at end of file diff --git a/f/fcs/fn_fcsOverrideLocalWarning.sqf b/f/fcs/fn_fcsOverrideLocalWarning.sqf new file mode 100644 index 000000000..12a85809c --- /dev/null +++ b/f/fcs/fn_fcsOverrideLocalWarning.sqf @@ -0,0 +1,18 @@ +// F3 - FCS/Commander's Override system +// Credits and documentation: https://github.com/folkarps/F3/wiki +// Originally from: https://github.com/NikkoJT/njt_fcs (integrated with permission) + +// This function shows HUD indicators when the commander's override either lacks a target or is in operation. + +params ["_text","_delay"]; + +if (cameraView == "GUNNER") then { + _overrideWarningDisplay = findDisplay 46 ctrlCreate ["RscStructuredText", 4404]; + _overrideWarningDisplay ctrlSetPosition [0.5, 0.7,0.5,0.5]; + _overrideWarningDisplay ctrlSetStructuredText parseText ("" + _text + ""); + _overrideWarningDisplay ctrlSetTextColor [1,0.1,0.1,1]; + _overrideWarningDisplay ctrlSetFont "PuristaBold"; + _overrideWarningDisplay ctrlCommit 0; + sleep _delay; + ctrlDelete _overrideWarningDisplay; +}; \ No newline at end of file diff --git a/f/fcs/fn_fcsPersistentEffects.sqf b/f/fcs/fn_fcsPersistentEffects.sqf new file mode 100644 index 000000000..3576a3623 --- /dev/null +++ b/f/fcs/fn_fcsPersistentEffects.sqf @@ -0,0 +1,52 @@ +// F3 - FCS/Commander's Override system +// Credits and documentation: https://github.com/folkarps/F3/wiki +// Originally from: https://github.com/NikkoJT/njt_fcs (integrated with permission) + +// This component handles the FCS failure symptoms, such as the HUD warning and zeroing overrides. It's launched when an FCS failure is determined by the Hit EH added in fcs_init. + +params ["_target"]; + +// It's all a big loop +while {(_target getVariable ["fcs_failure",false]) && (alive _target)} do { + + // Check whether there is a gunner + if !(isNull (gunner _target)) then { + _currentGunner = gunner _target; + { + // Get the muzzles for every weapon on the main turret and force set their zeroing + private _targetWeapon = _x; + private _targetWeaponMuzzles = getArray (configFile >> "CfgWeapons" >> _x >> "muzzles"); + { + _targetMuzzle = _targetWeapon; + if !(_x == "this") then { + _targetMuzzle = _x; + }; + _zeroCheck = _currentGunner setWeaponZeroing [_targetWeapon,_targetMuzzle,1]; + if !(_zeroCheck) then { + diag_log format ["FCS: Weapon zeroing failure for %1",_targetWeapon] + } else { + // diag_log format ["Zeroing set for %1",_targetWeapon] + }; + } forEach _targetWeaponMuzzles; + } forEach (_target weaponsTurret [0]); + + // Show a visual warning to the gunner - remoteExec'd to be local and only displayed when they are in the optics + [[],{ + + _FCSWarningDisplay = findDisplay 46 ctrlCreate ["RscStructuredText", 4404]; + if (cameraView == "GUNNER") then { + _FCSWarningDisplay ctrlSetPosition [0.5, 0.7,0.5,0.5]; + _FCSWarningDisplay ctrlSetStructuredText parseText "FCS FAILURE"; + _FCSWarningDisplay ctrlSetTextColor [1,0.1,0.1,1]; + _FCSWarningDisplay ctrlSetFont "PuristaBold"; + _FCSWarningDisplay ctrlCommit 0; + sleep 0.5; + }; + ctrlDelete _FCSWarningDisplay; + }] remoteExec ["spawn",_currentGunner,false]; + + }; + + sleep 0.8; + +}; diff --git a/f/functions.hpp b/f/functions.hpp index e79a8a766..c9645165c 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -129,4 +129,13 @@ class F // Defines the "owner" file = "f\dynamicViewDistance"; class ehSetViewDistance {}; }; + class fcs + { + file = "f\fcs"; + class fcsInit{}; + class fcsCommanderOverride{}; + class fcsFailure{}; + class fcsPersistentEffects{}; + class fcsOverrideLocalWarning{}; + }; }; diff --git a/init.sqf b/init.sqf index 55fd9d93e..52f25515e 100644 --- a/init.sqf +++ b/init.sqf @@ -165,6 +165,14 @@ f_var_viewDistance_crewOnly = true; // ==================================================================================== +// F3 - Commander's Override and FCS failure +// Credits and documentation: https://github.com/folkarps/F3/wiki + +// [vehicleName] call f_fnc_fcsInit; +// { _x call f_fnc_fcsInit; } forEach [vehicle1,vehicle2,vehicle3]; + +// ==================================================================================== + // F3 - MapClick Teleport // Credits and documentation: https://github.com/folkarps/F3/wiki From ca134201b7aaadded76b3a4fa32c42d963848fbb Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 2 May 2022 17:29:36 +0100 Subject: [PATCH 342/407] Consider commanders as well as drivers in vic checks --- f/radio/fn_radioCheckChannels.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 21a6682b0..660202ca1 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -29,14 +29,14 @@ for "_i" from 1 to f_var_radioChannelCount do { // Check for vehicles. Don't add send permissions unless they're the driver. if ((toLower str vehicle _unit) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; - if (_unit == driver vehicle _unit) then { + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { _channelsToAddTalk pushBackUnique _i; }; }; // Same for vehicle classes. if ((toLower typeOf vehicle _unit) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; - if (_unit == driver vehicle _unit) then { + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { _channelsToAddTalk pushBackUnique _i; }; }; @@ -50,7 +50,7 @@ for "_i" from 1 to f_var_radioChannelCount do { { _channelsToAddListen pushBackUnique _x; - if (_unit == driver vehicle _unit) then { + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { _channelsToAddTalk pushBackUnique _x; }; } forEach (vehicle _unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); From 253f51829f0d67bda56ab48794c764ec4eada42b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 16 May 2022 04:34:35 +0100 Subject: [PATCH 343/407] Disable direct channel for ghosts --- f/spect/fn_activateSpectator.sqf | 3 +++ f/spect/fn_terminateSpectator.sqf | 3 +++ 2 files changed, 6 insertions(+) diff --git a/f/spect/fn_activateSpectator.sqf b/f/spect/fn_activateSpectator.sqf index a4644b0cc..a5e4cbf11 100644 --- a/f/spect/fn_activateSpectator.sqf +++ b/f/spect/fn_activateSpectator.sqf @@ -17,3 +17,6 @@ _cameraUnit enableSimulation false; selectPlayer _cameraUnit; ["Initialize", [player, [], true, true, true, false, true, true, true, true]] call BIS_fnc_EGSpectator; + +// Disable direct chat to prevent ghosts interacting with the living +5 enableChannel false; \ No newline at end of file diff --git a/f/spect/fn_terminateSpectator.sqf b/f/spect/fn_terminateSpectator.sqf index 0e788acc5..3d4b0110a 100644 --- a/f/spect/fn_terminateSpectator.sqf +++ b/f/spect/fn_terminateSpectator.sqf @@ -1,2 +1,5 @@ ["Terminate"] call BIS_fnc_EGSpectator; + +// Enable direct chat since it's been disabled in activateSpectator +5 enableChannel true; From 4b11061a7c8713f128727238fde6510b7f4fa1a4 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 16 May 2022 06:00:09 +0100 Subject: [PATCH 344/407] Double up channel checks to improve reliability --- f/radio/fn_radioAddHandlers.sqf | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 8acfda955..e08a3b58a 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -19,42 +19,56 @@ if (player getVariable ["f_var_radioHandlersAdded",false]) exitWith {}; player addEventHandler ["put", { params ["_unit", "_container", "_item"]; [_unit] call f_fnc_radioCheckChannels; + sleep 1; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they take a backpack player addEventHandler ["take", { params ["_unit", "_container", "_item"]; [_unit] call f_fnc_radioCheckChannels; + sleep 1; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they open their inventory player addEventHandler ["inventoryOpened", { params ["_unit", "_container"]; - [_unit] call f_fnc_radioCheckChannels; + [_unit] call f_fnc_radioCheckChannels; + sleep 1; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they close their inventory player addEventHandler ["inventoryClosed", { params ["_unit", "_container"]; - [_unit] call f_fnc_radioCheckChannels; + [_unit] call f_fnc_radioCheckChannels; + sleep 1; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they get in a vehicle player addEventHandler ["getInMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - [_unit] call f_fnc_radioCheckChannels; + [_unit] call f_fnc_radioCheckChannels; + sleep 1; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they get out of a vehicle player addEventHandler ["getOutMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - [_unit] call f_fnc_radioCheckChannels; + [_unit] call f_fnc_radioCheckChannels; + sleep 1; + [_unit] call f_fnc_radioCheckChannels; }]; // Update channels if they switch seats in a vehicle player addEventHandler ["seatSwitchedMan", { params ["_unit1", "_unit2", "_vehicle"]; - [_unit1] call f_fnc_radioCheckChannels; + [_unit1] call f_fnc_radioCheckChannels; + sleep 1; + [_unit] call f_fnc_radioCheckChannels; }]; // Just to be sure... @@ -67,4 +81,7 @@ player setVariable ["f_var_radioHandlersAdded",true]; if (f_param_debugMode == 1) then { systemChat "DEBUG (fn_radioAddHandlers.sqf): added radio event handlers %1"; -}; \ No newline at end of file +}; + +sleep 1; +[player] call f_fnc_radioCheckChannels; \ No newline at end of file From fe0675bd1686beaf1e442f854f2d82f3769abe4b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 16 May 2022 06:30:10 +0100 Subject: [PATCH 345/407] Fix bad sleep --- f/radio/fn_radioAddHandlers.sqf | 42 ++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index e08a3b58a..2367dff87 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -19,56 +19,70 @@ if (player getVariable ["f_var_radioHandlersAdded",false]) exitWith {}; player addEventHandler ["put", { params ["_unit", "_container", "_item"]; [_unit] call f_fnc_radioCheckChannels; - sleep 1; - [_unit] call f_fnc_radioCheckChannels; + [_unit] spawn { + sleep 1; + [_this select 0] call f_fnc_radioCheckChannels; + }; }]; // Update channels if they take a backpack player addEventHandler ["take", { params ["_unit", "_container", "_item"]; [_unit] call f_fnc_radioCheckChannels; - sleep 1; - [_unit] call f_fnc_radioCheckChannels; + [_unit] spawn { + sleep 1; + [_this select 0] call f_fnc_radioCheckChannels; + }; }]; // Update channels if they open their inventory player addEventHandler ["inventoryOpened", { params ["_unit", "_container"]; [_unit] call f_fnc_radioCheckChannels; - sleep 1; - [_unit] call f_fnc_radioCheckChannels; + [_unit] spawn { + sleep 1; + [_this select 0] call f_fnc_radioCheckChannels; + }; }]; // Update channels if they close their inventory player addEventHandler ["inventoryClosed", { params ["_unit", "_container"]; [_unit] call f_fnc_radioCheckChannels; - sleep 1; - [_unit] call f_fnc_radioCheckChannels; + [_unit] spawn { + sleep 1; + [_this select 0] call f_fnc_radioCheckChannels; + }; }]; // Update channels if they get in a vehicle player addEventHandler ["getInMan", { params ["_unit", "_role", "_vehicle", "_turret"]; [_unit] call f_fnc_radioCheckChannels; - sleep 1; - [_unit] call f_fnc_radioCheckChannels; + [_unit] spawn { + sleep 1; + [_this select 0] call f_fnc_radioCheckChannels; + }; }]; // Update channels if they get out of a vehicle player addEventHandler ["getOutMan", { params ["_unit", "_role", "_vehicle", "_turret"]; [_unit] call f_fnc_radioCheckChannels; - sleep 1; - [_unit] call f_fnc_radioCheckChannels; + [_unit] spawn { + sleep 1; + [_this select 0] call f_fnc_radioCheckChannels; + }; }]; // Update channels if they switch seats in a vehicle player addEventHandler ["seatSwitchedMan", { params ["_unit1", "_unit2", "_vehicle"]; [_unit1] call f_fnc_radioCheckChannels; - sleep 1; - [_unit] call f_fnc_radioCheckChannels; + [_unit1] spawn { + sleep 1; + [_this select 0] call f_fnc_radioCheckChannels; + }; }]; // Just to be sure... From 3d7767fc196a565f50007d90c6f17a08a2ab817a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 13 Jun 2022 20:02:25 +0100 Subject: [PATCH 346/407] Activate in unified mode by default --- init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.sqf b/init.sqf index 13581d6d4..e2c7fc225 100644 --- a/init.sqf +++ b/init.sqf @@ -226,7 +226,7 @@ f_var_viewDistance_crewOnly = true; // True to split channels by radio backpack type. Else one channel for all. // Optional second parameter (number): limit the channel count to this number. This frees up space for any other custom channels. Defaults to 10 (max) if not set, or 1 (minimum) if channels not split. -// [false] execVM "f\radio\f_radioChannels.sqf"; +[false] execVM "f\radio\f_radioChannels.sqf"; // If you are creating other custom channels, you must wait for F3 Radio Channels to finish to avoid conflicts: // waitUntil {(!isNil f_var_radioChannelsUnified)} From 617e8669144f8058a9b43d69743c23cc2059cb06 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 13 Jun 2022 20:12:00 +0100 Subject: [PATCH 347/407] Enable for major faction template vehicles by default --- f/radio/f_radioChannels.sqf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index 5a9058ceb..b3f79bf22 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -55,14 +55,14 @@ if (isServer) then { f_var_radioChannels = createHashmap; f_var_radioChannels set [1, ["LR Channel 1",[1, 0.3, 0.1, 1], (["B_RadioBag_01_black_F"] apply {toLower _x})]]; - f_var_radioChannels set [2, ["LR Channel 2",[0.06,0.9,0,1], (["B_RadioBag_01_digi_F","vehAAF_COV"] apply {toLower _x})]]; - f_var_radioChannels set [3, ["LR Channel 3",[0.06,0.9,0,1], (["B_RadioBag_01_eaf_F","vehLDF_COV"] apply {toLower _x})]]; - f_var_radioChannels set [4, ["LR Channel 4",[0.9,0,0,1], (["B_RadioBag_01_ghex_F","vehCSAT_COV"] apply {toLower _x})]]; - f_var_radioChannels set [5, ["LR Channel 5",[0.9,0,0,1], (["B_RadioBag_01_hex_F","vehCSAT_COV"] apply {toLower _x})]]; - f_var_radioChannels set [6, ["LR Channel 6",[0.9,0,0,1], (["B_RadioBag_01_oucamo_F","vehCSAT_COV"] apply {toLower _x})]]; - f_var_radioChannels set [7, ["LR Channel 7",[0.1,0.5,1,1], (["B_RadioBag_01_mtp_F","vehNATO_COV"] apply {toLower _x})]]; - f_var_radioChannels set [8, ["LR Channel 8",[0.1,0.5,1,1], (["B_RadioBag_01_wdl_F","vehNATO_COV"] apply {toLower _x})]]; - f_var_radioChannels set [9, ["LR Channel 9",[0.1,0.5,1,1], (["B_RadioBag_01_tropic_F","vehNATO_COV"] apply {toLower _x})]]; + f_var_radioChannels set [2, ["LR Channel 2",[0.06,0.9,0,1], (["B_RadioBag_01_digi_F","vehAAF_COV","vehAAF_IFV1","vehAAF_IFV2","vehAAF_AV","vehAAF_BV","vehAAF_CV","vehAAF_TNK1","vehAAF_TH1","vehAAF_TH2","vehAAF_TH3","vehAAF_TH4","vehAAF_TH5","vehAAF_TH6","vehAAF_TH7","vehAAF_TH8","vehAAF_AH1","vehAAF_CAS1"] apply {toLower _x})]]; + f_var_radioChannels set [3, ["LR Channel 3",[0.06,0.9,0,1], (["B_RadioBag_01_eaf_F","vehLDF_COV","vehLDF_IFV1","vehLDF_IFV2","vehLDF_AV","vehLDF_BV","vehLDF_CV","vehLDF_TNK1","vehLDF_TH1","vehLDF_TH2","vehLDF_TH3","vehLDF_TH4","vehLDF_TH5","vehLDF_TH6","vehLDF_TH7","vehLDF_TH8","vehLDF_AH1","vehLDF_CAS1"] apply {toLower _x})]]; + f_var_radioChannels set [4, ["LR Channel 4",[0.9,0,0,1], (["B_RadioBag_01_ghex_F","vehCSAT_COV","vehCSAT_IFV1","vehCSAT_IFV2","vehCSAT_AV","vehCSAT_BV","vehCSAT_CV","vehCSAT_TNK1","vehCSAT_TH1","vehCSAT_TH2","vehCSAT_TH3","vehCSAT_TH4","vehCSAT_TH5","vehCSAT_TH6","vehCSAT_TH7","vehCSAT_TH8","vehCSAT_AH1","vehCSAT_CAS1"] apply {toLower _x})]]; + f_var_radioChannels set [5, ["LR Channel 5",[0.9,0,0,1], (["B_RadioBag_01_hex_F","vehCSAT_COV","vehCSAT_IFV1","vehCSAT_IFV2","vehCSAT_AV","vehCSAT_BV","vehCSAT_CV","vehCSAT_TNK1","vehCSAT_TH1","vehCSAT_TH2","vehCSAT_TH3","vehCSAT_TH4","vehCSAT_TH5","vehCSAT_TH6","vehCSAT_TH7","vehCSAT_TH8","vehCSAT_AH1","vehCSAT_CAS1"] apply {toLower _x})]]; + f_var_radioChannels set [6, ["LR Channel 6",[0.9,0,0,1], (["B_RadioBag_01_oucamo_F","vehCSAT_COV","vehCSAT_IFV1","vehCSAT_IFV2","vehCSAT_AV","vehCSAT_BV","vehCSAT_CV","vehCSAT_TNK1","vehCSAT_TH1","vehCSAT_TH2","vehCSAT_TH3","vehCSAT_TH4","vehCSAT_TH5","vehCSAT_TH6","vehCSAT_TH7","vehCSAT_TH8","vehCSAT_AH1","vehCSAT_CAS1"] apply {toLower _x})]]; + f_var_radioChannels set [7, ["LR Channel 7",[0.1,0.5,1,1], (["B_RadioBag_01_mtp_F","vehNATO_COV","vehNATO_IFV1","vehNATO_IFV2","vehNATO_AV","vehNATO_BV","vehNATO_CV","vehNATO_TNK1","vehNATO_TH1","vehNATO_TH2","vehNATO_TH3","vehNATO_TH4","vehNATO_TH5","vehNATO_TH6","vehNATO_TH7","vehNATO_TH8","vehNATO_AH1","vehNATO_CAS1"] apply {toLower _x})]]; + f_var_radioChannels set [8, ["LR Channel 8",[0.1,0.5,1,1], (["B_RadioBag_01_wdl_F","vehNATO_COV","vehNATO_IFV1","vehNATO_IFV2","vehNATO_AV","vehNATO_BV","vehNATO_CV","vehNATO_TNK1","vehNATO_TH1","vehNATO_TH2","vehNATO_TH3","vehNATO_TH4","vehNATO_TH5","vehNATO_TH6","vehNATO_TH7","vehNATO_TH8","vehNATO_AH1","vehNATO_CAS1"] apply {toLower _x})]]; + f_var_radioChannels set [9, ["LR Channel 9",[0.1,0.5,1,1], (["B_RadioBag_01_tropic_F","vehNATO_COV","vehNATO_IFV1","vehNATO_IFV2","vehNATO_AV","vehNATO_BV","vehNATO_CV","vehNATO_TNK1","vehNATO_TH1","vehNATO_TH2","vehNATO_TH3","vehNATO_TH4","vehNATO_TH5","vehNATO_TH6","vehNATO_TH7","vehNATO_TH8","vehNATO_AH1","vehNATO_CAS1"] apply {toLower _x})]]; f_var_radioChannels set [10, ["LR Channel 10",[0.9,0.2,0.9,1],([] apply {toLower _x})]]; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: From 446178d2e9b3ad409a959574593999031518df7a Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Mon, 27 Jun 2022 15:55:58 +0100 Subject: [PATCH 348/407] [329][CasCap] Fix CamelCase --- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index db125247d..be60f5c37 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -86,11 +86,11 @@ else sleep 1; { _Tgrp = call compile format ["%1",_x]; - if(!isnil "_Tgrp") then + if(!isNil "_Tgrp") then { _grps pushBack _Tgrp; }; - } foreach _grpstemp; + } forEach _grpstemp; }; // ==================================================================================== @@ -101,7 +101,7 @@ else sleep 10; if (count _grps == 0) exitWith { - player GlobalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): No groups found, _grpstemp = %1, _grps = %2",_grpstemp,_grps]; + player globalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): No groups found, _grpstemp = %1, _grps = %2",_grpstemp,_grps]; }; // ==================================================================================== @@ -136,7 +136,7 @@ while {true} do _remaining = _remaining + _alive; } forEach _grps; -// DEBUG + // DEBUG if (f_param_debugMode == 1) then { player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _remaining = %1",_remaining]; @@ -160,4 +160,4 @@ if (_end isEqualType {}) exitWith { _end remoteExec ["bis_fnc_spawn", 0]; }; -player GlobalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; +player globalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; From 084e9fd0d585910c62c75dba7a13517d5796cfec Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Mon, 27 Jun 2022 15:56:50 +0100 Subject: [PATCH 349/407] [329][CasCap] Change counting to use `count` and `apply` for clarity --- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index be60f5c37..ffbcd1a89 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -107,10 +107,8 @@ if (count _grps == 0) exitWith { // ==================================================================================== // CREATE STARTING VALUES -// A count is made of units in the groups listed in _grps. - -_started = 0; -{_started = _started + (count (units _x))} forEach _grps; +// A initial count is made of units in the groups listed in _grps. +_started = count (_grps apply {units _x}); // DEBUG if (f_param_debugMode == 1) then @@ -129,12 +127,8 @@ while {true} do { _remaining = 0; - // Calculate how many units in the groups are still alive - { - _grp = _x; - _alive = {alive _x} count (units _grp); - _remaining = _remaining + _alive; - } forEach _grps; + // Calculate how many units in the groups are still alive + _remaining = {alive _x} count (_grps apply {units _x}); // DEBUG if (f_param_debugMode == 1) then From 61983cf692f5dda51582a6a3944f0273fe69667a Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Mon, 27 Jun 2022 15:58:40 +0100 Subject: [PATCH 350/407] [329][CasCap] Extract group collecting into local function and call while checking threshold for JIP-safety --- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 108 +++++++++++------------ 1 file changed, 51 insertions(+), 57 deletions(-) diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index ffbcd1a89..bfd6f2c52 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -27,17 +27,17 @@ private ["_grps","_started","_remaining","_alive","_grp", "_Tgrp"]; // Up to 5 variables are passed to the script: // The last two variables are optional, and may not be passed to the script. // 0: = Side (e.g. BLUFOR), or group name(s) as string array (e.g. ["mrGroup1","myGroup2"]) -// 1: = What % of units must be dead before the ending is triggered +// 1: = What % of the initial *number* of units must be dead before the ending is triggered. Takes JIP players into account // 2: = What ending will be executed. Can also be code. // 3: = If only groups with a playable leader slot will be included (default is true) // 4: = What faction(s) to filter for if the first variable is a side (e.g. ["blu_f"]) params [ - ["_grpstemp", sideUnknown, [sideUnknown,[]]], - ["_pc", 100, [0]], - ["_end", 1, [0,{}]], - ["_onlyPlayers", true, [true]], - ["_faction",[], [[]]] + ["_grpstemp", sideUnknown, [sideUnknown,[]]], + ["_pc", 100, [0]], + ["_end", 1, [0,{}]], + ["_onlyPlayers", true, [true]], + ["_faction",[], [[]]] ]; // ==================================================================================== @@ -47,50 +47,40 @@ params [ _grps = []; +// Local function to collect groups to consider for CasCap in a JIP-safe manner +private _collectSideGroups = { + params [ + ["_side", sideUnknown, [sideUnknown]], + ["_onlyPlayable", true, [true]], + ["_factions",[], [[]]] + ]; + // Do all checks in one loop through array to help performance since this is run multiple times + // Select all the groups where: + // * The group's side == _side + // AND + // * _onlyPlayable -> the group's leader is a playable unit (logical implication) + // AND + // * length _factions != 0 -> the group's leader is in _factions (logical implication) + allGroups select {side _x == _side && + ((not _onlyPlayable) || (leader _x in playableUnits)) && + ((count _factions == 0) || (([leader _x] call f_fnc_virtualFaction) in _factions)) + }; +}; + if(_grpstemp isEqualType sideUnknown) then // if the variable is any of the side variables use it to consturct a list of groups in that faction. { - - { - if(_onlyPlayers) then - { - if((side _x == _grpstemp) && (leader _x in playableUnits)) then - { - _grps pushBack _x; // Add group to array - }; - } - else - { - if (side _x == _grpstemp) then - { - _grps pushBack _x; // Add group to array - }; - }; - - } forEach allGroups; - - // Filter the created group array for the factions - - if(count _faction > 0) then - { - { - private _leaderFaction = [leader _x] call f_fnc_virtualFaction; - if !(_leaderFaction in _faction) then - { - _grps = _grps - [_x]; - }; - } forEach _grps; - }; + _grps = [_grpstemp, _onlyPlayers, _faction] call _collectSideGroups; } else { - sleep 1; - { - _Tgrp = call compile format ["%1",_x]; - if(!isNil "_Tgrp") then - { - _grps pushBack _Tgrp; - }; - } forEach _grpstemp; + sleep 1; + { + _Tgrp = call compile format ["%1",_x]; + if(!isNil "_Tgrp") then + { + _grps pushBack _Tgrp; + }; + } forEach _grpstemp; }; // ==================================================================================== @@ -101,7 +91,7 @@ else sleep 10; if (count _grps == 0) exitWith { - player globalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): No groups found, _grpstemp = %1, _grps = %2",_grpstemp,_grps]; + player globalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): No groups found, _grpstemp = %1, _grps = %2",_grpstemp,_grps]; }; // ==================================================================================== @@ -113,7 +103,7 @@ _started = count (_grps apply {units _x}); // DEBUG if (f_param_debugMode == 1) then { - player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; + player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; }; // ==================================================================================== @@ -125,20 +115,24 @@ if (f_param_debugMode == 1) then while {true} do { - _remaining = 0; + // Update the list of groups to account for JIP players + if(_grpstemp isEqualType sideUnknown) then + { + _grps = [_grpstemp, _onlyPlayers, _faction] call _collectSideGroups; + }; // Calculate how many units in the groups are still alive - _remaining = {alive _x} count (_grps apply {units _x}); + _remaining = {alive _x} count (_grps apply {units _x}); // DEBUG - if (f_param_debugMode == 1) then - { - player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _remaining = %1",_remaining]; - }; + if (f_param_debugMode == 1) then + { + player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _remaining = %1",_remaining]; + }; - if (_remaining == 0 || ((_started - _remaining) / _started) >= (_pc / 100)) exitWith {}; + if (_remaining == 0 || ((_started - _remaining) / _started) >= (_pc / 100)) exitWith {}; - sleep 6; + sleep 6; }; // ==================================================================================== @@ -147,11 +141,11 @@ while {true} do // Depending on input, either MPEnd or the parsed code itself is called if (_end isEqualType 0) exitWith { - [_end] call f_fnc_mpEnd; + [_end] call f_fnc_mpEnd; }; if (_end isEqualType {}) exitWith { - _end remoteExec ["bis_fnc_spawn", 0]; + _end remoteExec ["bis_fnc_spawn", 0]; }; player globalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; From 9233c6f5b1e8376d28d8b9043e9d2e307645db7a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 27 Jun 2022 18:30:24 +0100 Subject: [PATCH 351/407] Move existing failure check to first --- f/fcs/fn_fcsFailure.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index 7750c55b8..c08224a8c 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -9,6 +9,10 @@ params ["_target","_projectile","_isDirect"]; private _projectileClass = ""; private _warheadType = ""; private _randomNumber = 0; + + if (_target getVariable ["fcs_failure",false]) exitWith { + // diag_log "FCS: target already has an FCS failure" + }; // Determine whether the projectile is an anti-tank weapon _projectileClass = typeOf _projectile; @@ -28,9 +32,6 @@ params ["_target","_projectile","_isDirect"]; if !(_randomNumber == 10) exitWith { // diag_log "FCS: projectile not randomly selected" }; - if (_target getVariable ["fcs_failure",false]) exitWith { - // diag_log "FCS: target already has an FCS failure" - }; // Hit turns off the stabiliser and sets an appropriate variable on the vehicle // EXCEPT IT DOESN'T TURN OFF THE STABILISER BECAUSE THAT'S NOT WHAT THE COMMAND DOES From d8042e5990dc373c79ccdf0b1fdcd374b6d7ec92 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 27 Jun 2022 18:37:38 +0100 Subject: [PATCH 352/407] Use localWarning for all text displays --- f/fcs/fn_fcsCommanderOverride.sqf | 4 ++-- ...rideLocalWarning.sqf => fn_fcsLocalWarning.sqf} | 0 f/fcs/fn_fcsPersistentEffects.sqf | 14 +------------- f/functions.hpp | 2 +- 4 files changed, 4 insertions(+), 16 deletions(-) rename f/fcs/{fn_fcsOverrideLocalWarning.sqf => fn_fcsLocalWarning.sqf} (100%) diff --git a/f/fcs/fn_fcsCommanderOverride.sqf b/f/fcs/fn_fcsCommanderOverride.sqf index 35c0d6635..7131fe557 100644 --- a/f/fcs/fn_fcsCommanderOverride.sqf +++ b/f/fcs/fn_fcsCommanderOverride.sqf @@ -8,14 +8,14 @@ params ["_vehicle","_caller"]; // If there's no valid target under the commander's crosshair, tell them and do nothing else if (isNull cursorObject) then { - ["NO TARGET",1] remoteExec ["f_fnc_fcsOverrideLocalWarning",commander _vehicle]; + ["NO TARGET",1] remoteExec ["f_fnc_fcsLocalWarning",commander _vehicle]; } else { // Get the position of the centre of the targeted object at the time of the override _overrideTarget = (cursorObject modelToWorldWorld (boundingCenter cursorObject)); // Order the gunner to aim their camera at the target position [_vehicle,[_overrideTarget,_vehicle unitTurret (gunner _vehicle),true]] remoteExec ["lockCameraTo",gunner _vehicle]; // Display a HUD indicator for the gunner - ["TC OVERRIDE",2] remoteExec ["f_fnc_fcsOverrideLocalWarning",gunner _vehicle]; + ["TC OVERRIDE",2] remoteExec ["f_fnc_fcsLocalWarning",gunner _vehicle]; // Handle cooldown on override _vehicle setVariable ["fcsCommanderOverride_cooldown",true,true]; sleep 3; diff --git a/f/fcs/fn_fcsOverrideLocalWarning.sqf b/f/fcs/fn_fcsLocalWarning.sqf similarity index 100% rename from f/fcs/fn_fcsOverrideLocalWarning.sqf rename to f/fcs/fn_fcsLocalWarning.sqf diff --git a/f/fcs/fn_fcsPersistentEffects.sqf b/f/fcs/fn_fcsPersistentEffects.sqf index 3576a3623..d2420144b 100644 --- a/f/fcs/fn_fcsPersistentEffects.sqf +++ b/f/fcs/fn_fcsPersistentEffects.sqf @@ -31,19 +31,7 @@ while {(_target getVariable ["fcs_failure",false]) && (alive _target)} do { } forEach (_target weaponsTurret [0]); // Show a visual warning to the gunner - remoteExec'd to be local and only displayed when they are in the optics - [[],{ - - _FCSWarningDisplay = findDisplay 46 ctrlCreate ["RscStructuredText", 4404]; - if (cameraView == "GUNNER") then { - _FCSWarningDisplay ctrlSetPosition [0.5, 0.7,0.5,0.5]; - _FCSWarningDisplay ctrlSetStructuredText parseText "FCS FAILURE"; - _FCSWarningDisplay ctrlSetTextColor [1,0.1,0.1,1]; - _FCSWarningDisplay ctrlSetFont "PuristaBold"; - _FCSWarningDisplay ctrlCommit 0; - sleep 0.5; - }; - ctrlDelete _FCSWarningDisplay; - }] remoteExec ["spawn",_currentGunner,false]; + ["FCS FAILURE",0.5] remoteExec ["f_fnc_fcsLocalWarning",_currentGunner,false]; }; diff --git a/f/functions.hpp b/f/functions.hpp index c9645165c..e89078f07 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -136,6 +136,6 @@ class F // Defines the "owner" class fcsCommanderOverride{}; class fcsFailure{}; class fcsPersistentEffects{}; - class fcsOverrideLocalWarning{}; + class fcsLocalWarning{}; }; }; From f991f78ce71c2ee9b7abdcb9d22481cc98b794f6 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 27 Jun 2022 18:38:39 +0100 Subject: [PATCH 353/407] Change DS check to HC/DS --- f/fcs/fn_fcsInit.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index 9c2e50890..83bbf1a3e 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -24,8 +24,8 @@ */ -// Doesn't need to run on DS -if (isDedicated) exitWith {}; +// Doesn't need to run on DS or HC +if !(hasInterface) exitWith {}; params ["_vehicle"]; From eae258f69a033da22d0ac97534b0bc73b5139976 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 15 Aug 2022 12:00:41 +0100 Subject: [PATCH 354/407] Remove backpacks from TH loadouts --- f/assignGear/f_assignGear_3IFB_v.sqf | 3 --- f/assignGear/f_assignGear_aaf_v.sqf | 3 --- f/assignGear/f_assignGear_csat_v.sqf | 3 --- f/assignGear/f_assignGear_ctrg_v.sqf | 3 --- f/assignGear/f_assignGear_fia_v.sqf | 3 --- f/assignGear/f_assignGear_gendarmerie.sqf | 1 - f/assignGear/f_assignGear_ldf_v.sqf | 3 --- f/assignGear/f_assignGear_nato_v.sqf | 3 --- f/assignGear/f_assignGear_npr_v.sqf | 3 --- f/assignGear/f_assignGear_spetsnaz_v.sqf | 3 --- f/assignGear/f_assignGear_syndikat_v.sqf | 3 --- 11 files changed, 31 deletions(-) diff --git a/f/assignGear/f_assignGear_3IFB_v.sqf b/f/assignGear/f_assignGear_3IFB_v.sqf index 52977aad9..d5d14207e 100644 --- a/f/assignGear/f_assignGear_3IFB_v.sqf +++ b/f/assignGear/f_assignGear_3IFB_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_aaf_v.sqf b/f/assignGear/f_assignGear_aaf_v.sqf index de1c89aad..aed5e3a9e 100644 --- a/f/assignGear/f_assignGear_aaf_v.sqf +++ b/f/assignGear/f_assignGear_aaf_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_csat_v.sqf b/f/assignGear/f_assignGear_csat_v.sqf index d3e8f8f64..39b187eb3 100644 --- a/f/assignGear/f_assignGear_csat_v.sqf +++ b/f/assignGear/f_assignGear_csat_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_ctrg_v.sqf b/f/assignGear/f_assignGear_ctrg_v.sqf index 23fb3f848..b78c42d03 100644 --- a/f/assignGear/f_assignGear_ctrg_v.sqf +++ b/f/assignGear/f_assignGear_ctrg_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_fia_v.sqf b/f/assignGear/f_assignGear_fia_v.sqf index 53c48498a..a385e1df1 100644 --- a/f/assignGear/f_assignGear_fia_v.sqf +++ b/f/assignGear/f_assignGear_fia_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_gendarmerie.sqf b/f/assignGear/f_assignGear_gendarmerie.sqf index 30de4d164..777eff8b8 100644 --- a/f/assignGear/f_assignGear_gendarmerie.sqf +++ b/f/assignGear/f_assignGear_gendarmerie.sqf @@ -360,7 +360,6 @@ switch (_typeofUnit) do _unit addMagazineCargoGlobal [_chemred,4]; _unit addMagazineCargoGlobal [_chemyellow,4]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; _unit addItemCargoGlobal [_firstaid,4]; _unit addItemCargoGlobal [_medkit,1]; diff --git a/f/assignGear/f_assignGear_ldf_v.sqf b/f/assignGear/f_assignGear_ldf_v.sqf index 96ad6d8d0..26aef8242 100644 --- a/f/assignGear/f_assignGear_ldf_v.sqf +++ b/f/assignGear/f_assignGear_ldf_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_nato_v.sqf b/f/assignGear/f_assignGear_nato_v.sqf index 6ba75f151..fa167e1e7 100644 --- a/f/assignGear/f_assignGear_nato_v.sqf +++ b/f/assignGear/f_assignGear_nato_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_npr_v.sqf b/f/assignGear/f_assignGear_npr_v.sqf index 39a125bd6..025f8c1cc 100644 --- a/f/assignGear/f_assignGear_npr_v.sqf +++ b/f/assignGear/f_assignGear_npr_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_spetsnaz_v.sqf b/f/assignGear/f_assignGear_spetsnaz_v.sqf index ed9583090..81fb554db 100644 --- a/f/assignGear/f_assignGear_spetsnaz_v.sqf +++ b/f/assignGear/f_assignGear_spetsnaz_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; diff --git a/f/assignGear/f_assignGear_syndikat_v.sqf b/f/assignGear/f_assignGear_syndikat_v.sqf index 62b392b57..856f49e55 100644 --- a/f/assignGear/f_assignGear_syndikat_v.sqf +++ b/f/assignGear/f_assignGear_syndikat_v.sqf @@ -97,7 +97,6 @@ _unit addMagazineCargoGlobal [_smokegrenadegreen,2]; _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addItemCargoGlobal [_firstaid,2]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -123,7 +122,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,2]; _unit addItemCargoGlobal [_firstaid,4]; - _unit addBackpackCargoGlobal ["B_Parachute",2]; _unit addItemCargoGlobal ["Toolkit",1]; }; @@ -150,7 +148,6 @@ _unit addMagazineCargoGlobal [_chemgreen,4]; _unit addBackpackCargoGlobal [_bag,4]; _unit addItemCargoGlobal [_firstaid,6]; - _unit addBackpackCargoGlobal ["B_Parachute",4]; _unit addItemCargoGlobal ["Toolkit",1]; }; From 31d2d43184d67c6d3f03873a21d04b4725dbb259 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 05:03:10 +0100 Subject: [PATCH 355/407] Unlock FCS after 4 seconds Commander's override now lasts 4 seconds at maximum to prevent automated pixelhunting from locking out the gunner. --- f/fcs/fn_fcsCommanderOverride.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsCommanderOverride.sqf b/f/fcs/fn_fcsCommanderOverride.sqf index 7131fe557..46b3a4962 100644 --- a/f/fcs/fn_fcsCommanderOverride.sqf +++ b/f/fcs/fn_fcsCommanderOverride.sqf @@ -18,6 +18,7 @@ if (isNull cursorObject) then { ["TC OVERRIDE",2] remoteExec ["f_fnc_fcsLocalWarning",gunner _vehicle]; // Handle cooldown on override _vehicle setVariable ["fcsCommanderOverride_cooldown",true,true]; - sleep 3; + sleep 4; + [_vehicle,[objNull,_vehicle unitTurret (gunner _vehicle),true]] remoteExec ["lockCameraTo",gunner _vehicle]; _vehicle setVariable ["fcsCommanderOverride_cooldown",false,true]; }; \ No newline at end of file From cbdfc779fb3d91a78b5c74d28b7c4db1d120f589 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 05:09:30 +0100 Subject: [PATCH 356/407] Add light mode The FCS system can now be flagged to only add the driver's brake override action and skip the rest. --- f/fcs/fn_fcsInit.sqf | 135 ++++++++++++++++++++++--------------------- init.sqf | 2 + 2 files changed, 72 insertions(+), 65 deletions(-) diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index 83bbf1a3e..3414ac776 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -27,80 +27,85 @@ // Doesn't need to run on DS or HC if !(hasInterface) exitWith {}; -params ["_vehicle"]; +params ["_vehicle",["_mode",true]]; if !(_vehicle isKindOf "LandVehicle") exitWith { diag_log "FCS: tried to run on something that isn't a vehicle" }; if (_vehicle getVariable ["fcs_hasEH",false]) exitWith { diag_log "FCS: tried to run on something that already has FCS set up"}; -// Commander's override action -_vehicle addAction -[ - "Commander's override", - { - params ["_target", "_caller", "_actionId", "_arguments"]; - [_target,_caller] call f_fnc_fcsCommanderOverride; - }, - nil, - 1.5, - false, - true, - "", - "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""fcs_failure"",false])}", - 0, - false, - "", - "" -]; +// Only do this part in the default mode. If in the alternate mode, skip this and only add the driver action. +if (_mode) then { + // Commander's override action + _vehicle addAction + [ + "Commander's override", + { + params ["_target", "_caller", "_actionId", "_arguments"]; + [_target,_caller] call f_fnc_fcsCommanderOverride; + }, + nil, + 1.5, + false, + true, + "", + "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""fcs_failure"",false])}", + 0, + false, + "", + "" + ]; -// Hit EH for FCS failure -_vehicle addEventHandler ["HitPart",{ - (_this select 0) params ["_target", "_shooter", "_projectile", "_position", "_velocity", "_selection", "_ammo", "_vector", "_radius", "_surfaceType", "_isDirect"]; - // Call the actual failure evaluator - [_target,_projectile,_isDirect] call f_fnc_fcsFailure; - }]; - -_vehicle setVariable ["fcs_hasEH",true]; + // Hit EH for FCS failure + _vehicle addEventHandler ["HitPart",{ + (_this select 0) params ["_target", "_shooter", "_projectile", "_position", "_velocity", "_selection", "_ammo", "_vector", "_radius", "_surfaceType", "_isDirect"]; + // Call the actual failure evaluator + [_target,_projectile,_isDirect] call f_fnc_fcsFailure; + }]; + + _vehicle setVariable ["fcs_hasEH",true]; + + // Hold action to repair FCS failure + // Players with repair trait in the gunner's seat of a vehicle with failed stabiliser can repair it + [ + _vehicle, // Target + "Reset Fire Control System", // Title + "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Idle icon + "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Progress icon + "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show + "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress + {}, // Code on start + {}, // Code on tick + { + params ["_target", "_caller", "_actionId", "_arguments"]; + _target setVariable ["fcs_failure",false,true]; + [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; + _target disableNVGEquipment false; + }, // Code on completed + {}, // Code on interrupt + [], // Arguments to pass + 10, // Duration + 1, // Priority + false, // Remove on completion + false, // Show when unconscious + true // Show on screen + ] call BIS_fnc_holdActionAdd; -// Hold action to repair FCS failure -// Players with repair trait in the gunner's seat of a vehicle with failed stabiliser can repair it -[ - _vehicle, // Target - "Reset Fire Control System", // Title - "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Idle icon - "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Progress icon - "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show - "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress - {}, // Code on start - {}, // Code on tick - { - params ["_target", "_caller", "_actionId", "_arguments"]; - _target setVariable ["fcs_failure",false,true]; - [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; - _target disableNVGEquipment false; - }, // Code on completed - {}, // Code on interrupt - [], // Arguments to pass - 10, // Duration - 1, // Priority - false, // Remove on completion - false, // Show when unconscious - true // Show on screen -] call BIS_fnc_holdActionAdd; + // Action to prevent rangefinder use during FCS failure + _vehicle addAction ["FCS failure - repair required", // Title + { + hint "Someone familiar with maintenance can reset the FCS."; + }, // Code + "", // Arguments + 10, // Priority + false, // Show window + true, // Hide on use + "gunElevAuto", // Shortcut + "(_this == gunner _target) && {_target getVariable [""fcs_failure"",false]}" // Condition + ]; +}; -// Action to prevent rangefinder use during FCS failure -_vehicle addAction ["FCS failure - repair required", // Title - { - hint "Someone familiar with maintenance can reset the FCS."; - }, // Code - "", // Arguments - 10, // Priority - false, // Show window - true, // Hide on use - "gunElevAuto", // Shortcut - "(_this == gunner _target) && {_target getVariable [""fcs_failure"",false]}" // Condition -]; +if (_vehicle getVariable ["fcs_hasDriverAction",false]) exitWith { diag_log "FCS: tried to add driver action on something that already has it"}; // Not FCS but I'm putting it in here _vehicle addAction [ diff --git a/init.sqf b/init.sqf index 52f25515e..f2f19e5a3 100644 --- a/init.sqf +++ b/init.sqf @@ -167,8 +167,10 @@ f_var_viewDistance_crewOnly = true; // F3 - Commander's Override and FCS failure // Credits and documentation: https://github.com/folkarps/F3/wiki +// Pass false as a second parameter to only add the brake override action and not the rest of the FCS, for vehicles that don't plausibly have hunter-killer systems or advanced FCS but benefit from better brake control // [vehicleName] call f_fnc_fcsInit; +// [vehicleName,false] call f_fnc_fcsInit; // { _x call f_fnc_fcsInit; } forEach [vehicle1,vehicle2,vehicle3]; // ==================================================================================== From 93aac8b0a6c126f6774ca2dfc816136092bfa660 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 07:29:08 +0100 Subject: [PATCH 357/407] Fix missing setVariable --- f/fcs/fn_fcsInit.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index 3414ac776..a4cded5ea 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -120,4 +120,5 @@ _vehicle addAction [ true, "", "(driver _target == _this) && {!brakesDisabled _target}" -]; \ No newline at end of file +]; +_vehicle setVariable ["fcs_hasDriverAction",true]; \ No newline at end of file From 7802760d7403d20f38a062bdba3c25fc5f1f335f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 08:02:58 +0100 Subject: [PATCH 358/407] Add briefing tab generator --- f/fcs/fn_fcsBriefing.sqf | 34 ++++++++++++++++++++++++++++++++++ f/fcs/fn_fcsInit.sqf | 5 +++++ f/functions.hpp | 1 + 3 files changed, 40 insertions(+) create mode 100644 f/fcs/fn_fcsBriefing.sqf diff --git a/f/fcs/fn_fcsBriefing.sqf b/f/fcs/fn_fcsBriefing.sqf new file mode 100644 index 000000000..ef1555593 --- /dev/null +++ b/f/fcs/fn_fcsBriefing.sqf @@ -0,0 +1,34 @@ +// F3 - FCS Component Briefing Generator +// Credits and documentation: https://github.com/folkarps/F3/wiki +/* +This function generates a briefing tab describing the operation of the F3 FCS. It is called from f_fnc_fcsInit, if the tab has not already been generated by a previous call. +*/ +// ==================================================================================== + +if (!hasInterface) exitWith {}; // Exit if not a player. + +_fcs = player createDiaryRecord ["diary", ["F3 Enhanced FCS"," +
+Some vehicles in this mission are fitted with enhanced fire control systems. This adds some extra functionality relating to gunnery and targeting. +
+Note: this briefing tab will appear even if the vehicles in this mission are only equipped with the Driver's Override function. +

+COMMANDER'S OVERRIDE +
+The enhanced FCS allows the commander to automatically point the main gun at a target of their choosing. When the commander selects the Commander's Override from the action menu, the main gun will automatically traverse and elevate until it is pointing at the centre of the targeted object. +
+The commander must be aiming directly at an object to activate the override. Open ground or sky won't work. There must also be a gunner present for the override to work. +

+DRIVER'S OVERRIDE +
+The driver can select the Brake Override from the action menu to disable the vehicle's automatic brakes. This allows the vehicle to roll at low speeds or on hills without automatically stopping. The auto-brakes can be re-engaged by manually braking. +

+FCS DAMAGE +
+When the vehicle is struck by high-calibre weapons, there's a chance the FCS will suffer damage. If the FCS is damaged, the Commander's Override will be disabled, as well as the gun zeroing and auto-leading functions and all night vision equipment. +
+The FCS can be repaired by a player with engineering training (for example, an F3 vehicle driver) when they are in the gunner's seat. +"]]; + +// Set a variable so this won't be generated again by subsequent inits +fcs_briefingDone = true; \ No newline at end of file diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index a4cded5ea..d9b7d1bb3 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -33,6 +33,11 @@ if !(_vehicle isKindOf "LandVehicle") exitWith { diag_log "FCS: tried to run on if (_vehicle getVariable ["fcs_hasEH",false]) exitWith { diag_log "FCS: tried to run on something that already has FCS set up"}; +// If the FCS briefing tab hasn't been added already, add it. +if (isNil "fcs_briefingDone") then { + [] call f_fnc_fcsBriefing; +}; + // Only do this part in the default mode. If in the alternate mode, skip this and only add the driver action. if (_mode) then { // Commander's override action diff --git a/f/functions.hpp b/f/functions.hpp index e89078f07..2d232363a 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -137,5 +137,6 @@ class F // Defines the "owner" class fcsFailure{}; class fcsPersistentEffects{}; class fcsLocalWarning{}; + class fcsBriefing{}; }; }; From acf4336604a2532f9f1368cca761fd2f1b42b72e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 08:03:37 +0100 Subject: [PATCH 359/407] Clarify briefing --- f/fcs/fn_fcsBriefing.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsBriefing.sqf b/f/fcs/fn_fcsBriefing.sqf index ef1555593..667828508 100644 --- a/f/fcs/fn_fcsBriefing.sqf +++ b/f/fcs/fn_fcsBriefing.sqf @@ -17,7 +17,7 @@ Note: this briefing tab will appear even if the vehicles in this mission are onl
The enhanced FCS allows the commander to automatically point the main gun at a target of their choosing. When the commander selects the Commander's Override from the action menu, the main gun will automatically traverse and elevate until it is pointing at the centre of the targeted object.
-The commander must be aiming directly at an object to activate the override. Open ground or sky won't work. There must also be a gunner present for the override to work. +The commander must be aiming directly at an object to activate the override. Open ground or sky won't work. There must also be a gunner present for the override to work. The override will engage for a maximum of 4 seconds before releasing control.

DRIVER'S OVERRIDE
From 34f50bacacc0b23a3ca66a6f08afefa4fec6dcd8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 08:06:30 +0100 Subject: [PATCH 360/407] F3-ify variable names --- f/fcs/fn_fcsBriefing.sqf | 2 +- f/fcs/fn_fcsCommanderOverride.sqf | 4 ++-- f/fcs/fn_fcsFailure.sqf | 2 +- f/fcs/fn_fcsInit.sqf | 18 +++++++++--------- f/fcs/fn_fcsPersistentEffects.sqf | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/f/fcs/fn_fcsBriefing.sqf b/f/fcs/fn_fcsBriefing.sqf index 667828508..51d654d60 100644 --- a/f/fcs/fn_fcsBriefing.sqf +++ b/f/fcs/fn_fcsBriefing.sqf @@ -31,4 +31,4 @@ The FCS can be repaired by a player with engineering training (for example, an F "]]; // Set a variable so this won't be generated again by subsequent inits -fcs_briefingDone = true; \ No newline at end of file +f3_fcs_briefingDone = true; \ No newline at end of file diff --git a/f/fcs/fn_fcsCommanderOverride.sqf b/f/fcs/fn_fcsCommanderOverride.sqf index 46b3a4962..2fc987ccb 100644 --- a/f/fcs/fn_fcsCommanderOverride.sqf +++ b/f/fcs/fn_fcsCommanderOverride.sqf @@ -17,8 +17,8 @@ if (isNull cursorObject) then { // Display a HUD indicator for the gunner ["TC OVERRIDE",2] remoteExec ["f_fnc_fcsLocalWarning",gunner _vehicle]; // Handle cooldown on override - _vehicle setVariable ["fcsCommanderOverride_cooldown",true,true]; + _vehicle setVariable ["f3_fcsCommanderOverride_cooldown",true,true]; sleep 4; [_vehicle,[objNull,_vehicle unitTurret (gunner _vehicle),true]] remoteExec ["lockCameraTo",gunner _vehicle]; - _vehicle setVariable ["fcsCommanderOverride_cooldown",false,true]; + _vehicle setVariable ["f3_fcsCommanderOverride_cooldown",false,true]; }; \ No newline at end of file diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index c08224a8c..49bb8a035 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -39,7 +39,7 @@ params ["_target","_projectile","_isDirect"]; // Turns off night vision though [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; _target disableNVGEquipment true; - _target setVariable ["fcs_failure",true,true]; + _target setVariable ["f3_fcs_failure",true,true]; // Spawn ongoing stuff that affects the vehicle until repaired [_target] spawn f_fnc_fcsPersistentEffects; \ No newline at end of file diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index d9b7d1bb3..9870af505 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -31,10 +31,10 @@ params ["_vehicle",["_mode",true]]; if !(_vehicle isKindOf "LandVehicle") exitWith { diag_log "FCS: tried to run on something that isn't a vehicle" }; -if (_vehicle getVariable ["fcs_hasEH",false]) exitWith { diag_log "FCS: tried to run on something that already has FCS set up"}; +if (_vehicle getVariable ["f3_fcs_hasEH",false]) exitWith { diag_log "FCS: tried to run on something that already has FCS set up"}; // If the FCS briefing tab hasn't been added already, add it. -if (isNil "fcs_briefingDone") then { +if (isNil "f3_fcs_briefingDone") then { [] call f_fnc_fcsBriefing; }; @@ -53,7 +53,7 @@ if (_mode) then { false, true, "", - "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""fcs_failure"",false])}", + "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""f3_fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""f3_fcs_failure"",false])}", 0, false, "", @@ -77,13 +77,13 @@ if (_mode) then { "Reset Fire Control System", // Title "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Idle icon "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Progress icon - "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show - "(_target getVariable [""fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress + "(_target getVariable [""f3_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show + "(_target getVariable [""f3_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress {}, // Code on start {}, // Code on tick { params ["_target", "_caller", "_actionId", "_arguments"]; - _target setVariable ["fcs_failure",false,true]; + _target setVariable ["f3_fcs_failure",false,true]; [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; _target disableNVGEquipment false; }, // Code on completed @@ -106,11 +106,11 @@ if (_mode) then { false, // Show window true, // Hide on use "gunElevAuto", // Shortcut - "(_this == gunner _target) && {_target getVariable [""fcs_failure"",false]}" // Condition + "(_this == gunner _target) && {_target getVariable [""f3_fcs_failure"",false]}" // Condition ]; }; -if (_vehicle getVariable ["fcs_hasDriverAction",false]) exitWith { diag_log "FCS: tried to add driver action on something that already has it"}; +if (_vehicle getVariable ["f3_fcs_hasDriverAction",false]) exitWith { diag_log "FCS: tried to add driver action on something that already has it"}; // Not FCS but I'm putting it in here _vehicle addAction [ @@ -126,4 +126,4 @@ _vehicle addAction [ "", "(driver _target == _this) && {!brakesDisabled _target}" ]; -_vehicle setVariable ["fcs_hasDriverAction",true]; \ No newline at end of file +_vehicle setVariable ["f3_fcs_hasDriverAction",true]; \ No newline at end of file diff --git a/f/fcs/fn_fcsPersistentEffects.sqf b/f/fcs/fn_fcsPersistentEffects.sqf index d2420144b..90d258860 100644 --- a/f/fcs/fn_fcsPersistentEffects.sqf +++ b/f/fcs/fn_fcsPersistentEffects.sqf @@ -7,7 +7,7 @@ params ["_target"]; // It's all a big loop -while {(_target getVariable ["fcs_failure",false]) && (alive _target)} do { +while {(_target getVariable ["f3_fcs_failure",false]) && (alive _target)} do { // Check whether there is a gunner if !(isNull (gunner _target)) then { From df8ac7ffed96834ca496818c52b86e6e8498abc2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 08:40:40 +0100 Subject: [PATCH 361/407] Functionise and optimise radioChannels.sqf --- f/functions.hpp | 1 + f/radio/f_channelsList.sqf | 229 ++++++++++++++++++++++++++++++++ f/radio/f_radioChannels.sqf | 47 ++----- f/radio/fn_radioAddHandlers.sqf | 2 +- init.sqf | 2 +- 5 files changed, 246 insertions(+), 35 deletions(-) create mode 100644 f/radio/f_channelsList.sqf diff --git a/f/functions.hpp b/f/functions.hpp index 23f405e2e..3adca0e77 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -132,6 +132,7 @@ class F // Defines the "owner" class radio { file = "f\radio"; + class radioChannels{}; class radioAddHandlers {}; class radioCheckChannels {}; }; diff --git a/f/radio/f_channelsList.sqf b/f/radio/f_channelsList.sqf new file mode 100644 index 000000000..7b502c1b8 --- /dev/null +++ b/f/radio/f_channelsList.sqf @@ -0,0 +1,229 @@ +// F3 - Folk ARPS Long-Range Radio Module +// Credits and documentation: https://github.com/folkarps/F3/wiki + +/* +Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) +Each channel is defined here by a channel name, colour, and an array of items which can grant channel access. +Channels will be created IN ORDER OF THIS LIST. Keep this in mind if limiting the number of possible channels. All radio access items listed here will be used if channels are not split. +Do not remove channels from this list. If you need to free up custom channels, use the limiting parameter in init.sqf. + +NAME (STRING) is the title visible to players in the UI. +COLOUR (ARRAY OF 4 NUMBERS) is the RGBA colour value of the channel as it appears in the UI. +OBJECTS (ARRAY OF STRINGS): +INVENTORY (classname) items, such as backpacks or equipment, give the player talk and receive access when carried. Only player inventory is checked, NOT vehicles. +VEHICLES (classname or variable name) give the player receive access when they are inside, and talk access when they are the driver. +The channel eligibility array is not case-sensitive. + +There is a maximum of 10 channels at any time. Add in these radios for GM and CSLA missions: + + "US85_bpPRC77" + "CSLA_bpWpR129" + "CSLA_bpWpRF10" + "gm_gc_backpack_r105m_brn" + "gm_ge_backpack_sem35_oli" +*/ + +// Channel 1 (default: generic) +_channelName1 = "LR Channel 1"; +_channelColour1 = [1, 0.3, 0.1, 1]; +_channelList1 = [ + "B_RadioBag_01_black_F" +]; + +// Channel 2 (default: AAF) +_channelName2 = "LR Channel 2"; +_channelColour2 = [0.06,0.9,0,1]; +_channelList2 = [ + "B_RadioBag_01_digi_F", + "vehAAF_COV", + "vehAAF_IFV1", + "vehAAF_IFV2", + "vehAAF_AV", + "vehAAF_BV", + "vehAAF_CV", + "vehAAF_TNK1", + "vehAAF_TH1", + "vehAAF_TH2", + "vehAAF_TH3", + "vehAAF_TH4", + "vehAAF_TH5", + "vehAAF_TH6", + "vehAAF_TH7", + "vehAAF_TH8", + "vehAAF_AH1", + "vehAAF_CAS1" +]; + +// Channel 3 (default: LDF) +_channelName3 = "LR Channel 3"; +_channelColour3 = [0.06,0.9,0,1]; +_channelList3 = [ + "B_RadioBag_01_eaf_F", + "vehLDF_COV", + "vehLDF_IFV1", + "vehLDF_IFV2", + "vehLDF_AV", + "vehLDF_BV", + "vehLDF_CV", + "vehLDF_TNK1", + "vehLDF_TH1", + "vehLDF_TH2", + "vehLDF_TH3", + "vehLDF_TH4", + "vehLDF_TH5", + "vehLDF_TH6", + "vehLDF_TH7", + "vehLDF_TH8", + "vehLDF_AH1", + "vehLDF_CAS1" +]; + +// Channel 4 (default: CSAT Pacific) +_channelName4 = "LR Channel 4"; +_channelColour4 = [0.9,0,0,1]; +_channelList4 = [ + "B_RadioBag_01_ghex_F", + "vehCSAT_COV", + "vehCSAT_IFV1", + "vehCSAT_IFV2", + "vehCSAT_AV", + "vehCSAT_BV", + "vehCSAT_CV", + "vehCSAT_TNK1", + "vehCSAT_TH1", + "vehCSAT_TH2", + "vehCSAT_TH3", + "vehCSAT_TH4", + "vehCSAT_TH5", + "vehCSAT_TH6", + "vehCSAT_TH7", + "vehCSAT_TH8", + "vehCSAT_AH1", + "vehCSAT_CAS1" +]; + +// Channel 5 (default: CSAT Mediterranean) +_channelName5 = "LR Channel 5"; +_channelColour5 = [0.9,0,0,1]; +_channelList5 = [ + "B_RadioBag_01_hex_F", + "vehCSAT_COV", + "vehCSAT_IFV1", + "vehCSAT_IFV2", + "vehCSAT_AV", + "vehCSAT_BV", + "vehCSAT_CV", + "vehCSAT_TNK1", + "vehCSAT_TH1", + "vehCSAT_TH2", + "vehCSAT_TH3", + "vehCSAT_TH4", + "vehCSAT_TH5", + "vehCSAT_TH6", + "vehCSAT_TH7", + "vehCSAT_TH8", + "vehCSAT_AH1", + "vehCSAT_CAS1" +]; + +// Channel 6 (default: CSAT Urban) +_channelName6 = "LR Channel 6"; +_channelColour6 = [0.9,0,0,1]; +_channelList6 = [ + "B_RadioBag_01_oucamo_F", + "vehCSAT_COV", + "vehCSAT_IFV1", + "vehCSAT_IFV2", + "vehCSAT_AV", + "vehCSAT_BV", + "vehCSAT_CV", + "vehCSAT_TNK1", + "vehCSAT_TH1", + "vehCSAT_TH2", + "vehCSAT_TH3", + "vehCSAT_TH4", + "vehCSAT_TH5", + "vehCSAT_TH6", + "vehCSAT_TH7", + "vehCSAT_TH8", + "vehCSAT_AH1", + "vehCSAT_CAS1" +]; + +// Channel 7 (default: NATO Mediterranean) +_channelName7 = "LR Channel 7"; +_channelColour7 = [0.1,0.5,1,1]; +_channelList7 = [ + "B_RadioBag_01_mtp_F", + "vehNATO_COV", + "vehNATO_IFV1", + "vehNATO_IFV2", + "vehNATO_AV", + "vehNATO_BV", + "vehNATO_CV", + "vehNATO_TNK1", + "vehNATO_TH1", + "vehNATO_TH2", + "vehNATO_TH3", + "vehNATO_TH4", + "vehNATO_TH5", + "vehNATO_TH6", + "vehNATO_TH7", + "vehNATO_TH8", + "vehNATO_AH1", + "vehNATO_CAS1" +]; + +// Channel 8 (default: NATO Woodland) +_channelName8 = "LR Channel 8"; +_channelColour8 = [0.1,0.5,1,1]; +_channelList8 = "B_RadioBag_01_wdl_F", + "vehNATO_COV", + "vehNATO_IFV1", + "vehNATO_IFV2", + "vehNATO_AV", + "vehNATO_BV", + "vehNATO_CV", + "vehNATO_TNK1", + "vehNATO_TH1", + "vehNATO_TH2", + "vehNATO_TH3", + "vehNATO_TH4", + "vehNATO_TH5", + "vehNATO_TH6", + "vehNATO_TH7", + "vehNATO_TH8", + "vehNATO_AH1", + "vehNATO_CAS1" +]; + +// Channel 9 (default: NATO Pacific) +_channelName9 = "LR Channel 9"; +_channelColour9 = [0.1,0.5,1,1]; +_channelList9 = [ + "B_RadioBag_01_tropic_F", + "vehNATO_COV", + "vehNATO_IFV1", + "vehNATO_IFV2", + "vehNATO_AV", + "vehNATO_BV", + "vehNATO_CV", + "vehNATO_TNK1", + "vehNATO_TH1", + "vehNATO_TH2", + "vehNATO_TH3", + "vehNATO_TH4", + "vehNATO_TH5", + "vehNATO_TH6", + "vehNATO_TH7", + "vehNATO_TH8", + "vehNATO_AH1", + "vehNATO_CAS1" +]; + +// Channel 10 (default: unused) +_channelName10 = "LR Channel 10"; +_channelColour10 = [0.9,0.2,0.9,1]; +_channelList10 = [ + "Your stuff here!" +]; \ No newline at end of file diff --git a/f/radio/f_radioChannels.sqf b/f/radio/f_radioChannels.sqf index b3f79bf22..23bd7e357 100644 --- a/f/radio/f_radioChannels.sqf +++ b/f/radio/f_radioChannels.sqf @@ -4,13 +4,13 @@ /* ======================== This module is activated in init.sqf. Example: -[true] execVM "f\radio\f_radioChannels.sqf"; +[true] spawn f_fnc_radioChannels; Arguments: 0. Long-range split mode (boolean). If true, each radio backpack type has a separate channel. If false, all backpacks use one channel. Default false. 1. Number of channels to create (number, optional). If this is set, the number of channels to be created will be limited to this number. If channels are not split, this will be automatically set to 1. -This module requires some missionmaker configuration. If you want to enable vehicle radio access, you need to specify vehicle classes or variable names below. +This module requires some missionmaker configuration. If you want to enable vehicle radio access, you need to specify vehicle classes or variable names in "f\radio\f_channelsList.sqf". =========================== */ params [["_splitMode",false],["_channelCount",10]]; @@ -31,39 +31,20 @@ if (isServer) then { // This will be used later f_var_radioChannelUnified = []; - /* - Set up radio channel candidate lists (MISSIONMAKER INPUT REQUIRED) - Each channel is defined here by a channel name, colour, and an array of items which can grant channel access. - Channels will be created IN ORDER OF THIS LIST. Keep this in mind if limiting the number of possible channels. All radio access items listed here will be used if channels are not split. - Do not remove channels from this list. If you need to free up custom channels, use the limiting parameter in init.sqf. - - NAME (STRING) is the title visible to players in the UI. - COLOUR (ARRAY OF 4 NUMBERS) is the RGBA colour value of the channel as it appears in the UI. - OBJECTS (ARRAY OF STRINGS): - INVENTORY (classname) items, such as backpacks or equipment, give the player talk and receive access when carried. Only player inventory is checked, NOT vehicles. - VEHICLES (classname or variable name) give the player receive access when they are inside, and talk access when they are the driver. - The channel eligibility array is not case-sensitive. - - There is a maximum of 10 channels at any time. Add in these radios for GM and CSLA missions: - - "US85_bpPRC77" - "CSLA_bpWpR129" - "CSLA_bpWpRF10" - "gm_gc_backpack_r105m_brn" - "gm_ge_backpack_sem35_oli" - */ + // Define the list of channel properties. Go to this file to change which items and vehicles grant radio access. + #include "f_channelsList.sqf"; f_var_radioChannels = createHashmap; - f_var_radioChannels set [1, ["LR Channel 1",[1, 0.3, 0.1, 1], (["B_RadioBag_01_black_F"] apply {toLower _x})]]; - f_var_radioChannels set [2, ["LR Channel 2",[0.06,0.9,0,1], (["B_RadioBag_01_digi_F","vehAAF_COV","vehAAF_IFV1","vehAAF_IFV2","vehAAF_AV","vehAAF_BV","vehAAF_CV","vehAAF_TNK1","vehAAF_TH1","vehAAF_TH2","vehAAF_TH3","vehAAF_TH4","vehAAF_TH5","vehAAF_TH6","vehAAF_TH7","vehAAF_TH8","vehAAF_AH1","vehAAF_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [3, ["LR Channel 3",[0.06,0.9,0,1], (["B_RadioBag_01_eaf_F","vehLDF_COV","vehLDF_IFV1","vehLDF_IFV2","vehLDF_AV","vehLDF_BV","vehLDF_CV","vehLDF_TNK1","vehLDF_TH1","vehLDF_TH2","vehLDF_TH3","vehLDF_TH4","vehLDF_TH5","vehLDF_TH6","vehLDF_TH7","vehLDF_TH8","vehLDF_AH1","vehLDF_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [4, ["LR Channel 4",[0.9,0,0,1], (["B_RadioBag_01_ghex_F","vehCSAT_COV","vehCSAT_IFV1","vehCSAT_IFV2","vehCSAT_AV","vehCSAT_BV","vehCSAT_CV","vehCSAT_TNK1","vehCSAT_TH1","vehCSAT_TH2","vehCSAT_TH3","vehCSAT_TH4","vehCSAT_TH5","vehCSAT_TH6","vehCSAT_TH7","vehCSAT_TH8","vehCSAT_AH1","vehCSAT_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [5, ["LR Channel 5",[0.9,0,0,1], (["B_RadioBag_01_hex_F","vehCSAT_COV","vehCSAT_IFV1","vehCSAT_IFV2","vehCSAT_AV","vehCSAT_BV","vehCSAT_CV","vehCSAT_TNK1","vehCSAT_TH1","vehCSAT_TH2","vehCSAT_TH3","vehCSAT_TH4","vehCSAT_TH5","vehCSAT_TH6","vehCSAT_TH7","vehCSAT_TH8","vehCSAT_AH1","vehCSAT_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [6, ["LR Channel 6",[0.9,0,0,1], (["B_RadioBag_01_oucamo_F","vehCSAT_COV","vehCSAT_IFV1","vehCSAT_IFV2","vehCSAT_AV","vehCSAT_BV","vehCSAT_CV","vehCSAT_TNK1","vehCSAT_TH1","vehCSAT_TH2","vehCSAT_TH3","vehCSAT_TH4","vehCSAT_TH5","vehCSAT_TH6","vehCSAT_TH7","vehCSAT_TH8","vehCSAT_AH1","vehCSAT_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [7, ["LR Channel 7",[0.1,0.5,1,1], (["B_RadioBag_01_mtp_F","vehNATO_COV","vehNATO_IFV1","vehNATO_IFV2","vehNATO_AV","vehNATO_BV","vehNATO_CV","vehNATO_TNK1","vehNATO_TH1","vehNATO_TH2","vehNATO_TH3","vehNATO_TH4","vehNATO_TH5","vehNATO_TH6","vehNATO_TH7","vehNATO_TH8","vehNATO_AH1","vehNATO_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [8, ["LR Channel 8",[0.1,0.5,1,1], (["B_RadioBag_01_wdl_F","vehNATO_COV","vehNATO_IFV1","vehNATO_IFV2","vehNATO_AV","vehNATO_BV","vehNATO_CV","vehNATO_TNK1","vehNATO_TH1","vehNATO_TH2","vehNATO_TH3","vehNATO_TH4","vehNATO_TH5","vehNATO_TH6","vehNATO_TH7","vehNATO_TH8","vehNATO_AH1","vehNATO_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [9, ["LR Channel 9",[0.1,0.5,1,1], (["B_RadioBag_01_tropic_F","vehNATO_COV","vehNATO_IFV1","vehNATO_IFV2","vehNATO_AV","vehNATO_BV","vehNATO_CV","vehNATO_TNK1","vehNATO_TH1","vehNATO_TH2","vehNATO_TH3","vehNATO_TH4","vehNATO_TH5","vehNATO_TH6","vehNATO_TH7","vehNATO_TH8","vehNATO_AH1","vehNATO_CAS1"] apply {toLower _x})]]; - f_var_radioChannels set [10, ["LR Channel 10",[0.9,0.2,0.9,1],([] apply {toLower _x})]]; + f_var_radioChannels set [1, [_channelName1,_channelColour1, (_channelList1 apply {toLower _x})]]; + f_var_radioChannels set [2, [_channelName2,_channelColour2, (_channelList2 apply {toLower _x})]]; + f_var_radioChannels set [3, [_channelName3,_channelColour3, (_channelList3 apply {toLower _x})]]; + f_var_radioChannels set [4, [_channelName4,_channelColour4, (_channelList4 apply {toLower _x})]]; + f_var_radioChannels set [5, [_channelName5,_channelColour5, (_channelList5 apply {toLower _x})]]; + f_var_radioChannels set [6, [_channelName6,_channelColour6, (_channelList6 apply {toLower _x})]]; + f_var_radioChannels set [7, [_channelName7,_channelColour7, (_channelList7 apply {toLower _x})]]; + f_var_radioChannels set [8, [_channelName8,_channelColour8, (_channelList8 apply {toLower _x})]]; + f_var_radioChannels set [9, [_channelName9,_channelColour9, (_channelList9 apply {toLower _x})]]; + f_var_radioChannels set [10, [_channelName10,_channelColour10,(_channelList10 apply {toLower _x})]]; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 2367dff87..88fed66b7 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -3,7 +3,7 @@ /* ======================== This function adds local event handlers to the player which grant radio channels when picking up a backpack or entering a vehicle. It also makes an initial check to see what they've got to begin with. -It's activated by f\radio\f_radioChannels.sqf. +It's activated by f\radio\fn_radioChannels.sqf. =========================== */ // Wait for player to be properly initialised diff --git a/init.sqf b/init.sqf index e2c7fc225..bd9009c3a 100644 --- a/init.sqf +++ b/init.sqf @@ -226,7 +226,7 @@ f_var_viewDistance_crewOnly = true; // True to split channels by radio backpack type. Else one channel for all. // Optional second parameter (number): limit the channel count to this number. This frees up space for any other custom channels. Defaults to 10 (max) if not set, or 1 (minimum) if channels not split. -[false] execVM "f\radio\f_radioChannels.sqf"; +[false] spawn f_fnc_radioChannels; // If you are creating other custom channels, you must wait for F3 Radio Channels to finish to avoid conflicts: // waitUntil {(!isNil f_var_radioChannelsUnified)} From 9b6110f621ccebc28bae36b04743f9477d1b7ce2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 08:56:33 +0100 Subject: [PATCH 362/407] Now actually functionise it... --- f/radio/{f_radioChannels.sqf => fn_radioChannels.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename f/radio/{f_radioChannels.sqf => fn_radioChannels.sqf} (100%) diff --git a/f/radio/f_radioChannels.sqf b/f/radio/fn_radioChannels.sqf similarity index 100% rename from f/radio/f_radioChannels.sqf rename to f/radio/fn_radioChannels.sqf From c7f8bb57c5ce2aeccf43b656265eec81bc35e396 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 7 Sep 2022 08:59:44 +0100 Subject: [PATCH 363/407] Fix broken array --- f/radio/f_channelsList.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/f/radio/f_channelsList.sqf b/f/radio/f_channelsList.sqf index 7b502c1b8..45f6a6bb1 100644 --- a/f/radio/f_channelsList.sqf +++ b/f/radio/f_channelsList.sqf @@ -177,7 +177,8 @@ _channelList7 = [ // Channel 8 (default: NATO Woodland) _channelName8 = "LR Channel 8"; _channelColour8 = [0.1,0.5,1,1]; -_channelList8 = "B_RadioBag_01_wdl_F", +_channelList8 = [ + "B_RadioBag_01_wdl_F", "vehNATO_COV", "vehNATO_IFV1", "vehNATO_IFV2", From c1e31cb9da8c196ec8ceafc2a65942485374efd8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 10 Sep 2022 23:04:22 +0100 Subject: [PATCH 364/407] Update f/fcs/fn_fcsFailure.sqf Co-authored-by: Euan Hunter --- f/fcs/fn_fcsFailure.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index 49bb8a035..d56840869 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -10,7 +10,7 @@ params ["_target","_projectile","_isDirect"]; private _warheadType = ""; private _randomNumber = 0; - if (_target getVariable ["fcs_failure",false]) exitWith { + if (_target getVariable ["f3_fcs_failure",false]) exitWith { // diag_log "FCS: target already has an FCS failure" }; From 392fe4962549233d9e02cf7cae3b902d3ffbb2c4 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 11 Sep 2022 03:12:42 +0100 Subject: [PATCH 365/407] Rename vars to standard --- f/fcs/fn_fcsBriefing.sqf | 2 +- f/fcs/fn_fcsCommanderOverride.sqf | 4 ++-- f/fcs/fn_fcsFailure.sqf | 4 ++-- f/fcs/fn_fcsInit.sqf | 18 +++++++++--------- f/fcs/fn_fcsPersistentEffects.sqf | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/f/fcs/fn_fcsBriefing.sqf b/f/fcs/fn_fcsBriefing.sqf index 51d654d60..8bcf45544 100644 --- a/f/fcs/fn_fcsBriefing.sqf +++ b/f/fcs/fn_fcsBriefing.sqf @@ -31,4 +31,4 @@ The FCS can be repaired by a player with engineering training (for example, an F "]]; // Set a variable so this won't be generated again by subsequent inits -f3_fcs_briefingDone = true; \ No newline at end of file +f_var_fcs_briefingDone = true; \ No newline at end of file diff --git a/f/fcs/fn_fcsCommanderOverride.sqf b/f/fcs/fn_fcsCommanderOverride.sqf index 2fc987ccb..c63a23a26 100644 --- a/f/fcs/fn_fcsCommanderOverride.sqf +++ b/f/fcs/fn_fcsCommanderOverride.sqf @@ -17,8 +17,8 @@ if (isNull cursorObject) then { // Display a HUD indicator for the gunner ["TC OVERRIDE",2] remoteExec ["f_fnc_fcsLocalWarning",gunner _vehicle]; // Handle cooldown on override - _vehicle setVariable ["f3_fcsCommanderOverride_cooldown",true,true]; + _vehicle setVariable ["f_var_fcsCommanderOverride_cooldown",true,true]; sleep 4; [_vehicle,[objNull,_vehicle unitTurret (gunner _vehicle),true]] remoteExec ["lockCameraTo",gunner _vehicle]; - _vehicle setVariable ["f3_fcsCommanderOverride_cooldown",false,true]; + _vehicle setVariable ["f_var_fcsCommanderOverride_cooldown",false,true]; }; \ No newline at end of file diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index d56840869..bc460edd3 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -10,7 +10,7 @@ params ["_target","_projectile","_isDirect"]; private _warheadType = ""; private _randomNumber = 0; - if (_target getVariable ["f3_fcs_failure",false]) exitWith { + if (_target getVariable ["f_var_fcs_failure",false]) exitWith { // diag_log "FCS: target already has an FCS failure" }; @@ -39,7 +39,7 @@ params ["_target","_projectile","_isDirect"]; // Turns off night vision though [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; _target disableNVGEquipment true; - _target setVariable ["f3_fcs_failure",true,true]; + _target setVariable ["f_var_fcs_failure",true,true]; // Spawn ongoing stuff that affects the vehicle until repaired [_target] spawn f_fnc_fcsPersistentEffects; \ No newline at end of file diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index 9870af505..c314f5188 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -31,10 +31,10 @@ params ["_vehicle",["_mode",true]]; if !(_vehicle isKindOf "LandVehicle") exitWith { diag_log "FCS: tried to run on something that isn't a vehicle" }; -if (_vehicle getVariable ["f3_fcs_hasEH",false]) exitWith { diag_log "FCS: tried to run on something that already has FCS set up"}; +if (_vehicle getVariable ["f_var_fcs_hasEH",false]) exitWith { diag_log "FCS: tried to run on something that already has FCS set up"}; // If the FCS briefing tab hasn't been added already, add it. -if (isNil "f3_fcs_briefingDone") then { +if (isNil "f_var_fcs_briefingDone") then { [] call f_fnc_fcsBriefing; }; @@ -53,7 +53,7 @@ if (_mode) then { false, true, "", - "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""f3_fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""f3_fcs_failure"",false])}", + "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""f_var_fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""f_var_fcs_failure"",false])}", 0, false, "", @@ -77,13 +77,13 @@ if (_mode) then { "Reset Fire Control System", // Title "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Idle icon "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Progress icon - "(_target getVariable [""f3_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show - "(_target getVariable [""f3_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress + "(_target getVariable [""f_var_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show + "(_target getVariable [""f_var_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress {}, // Code on start {}, // Code on tick { params ["_target", "_caller", "_actionId", "_arguments"]; - _target setVariable ["f3_fcs_failure",false,true]; + _target setVariable ["f_var_fcs_failure",false,true]; [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; _target disableNVGEquipment false; }, // Code on completed @@ -106,11 +106,11 @@ if (_mode) then { false, // Show window true, // Hide on use "gunElevAuto", // Shortcut - "(_this == gunner _target) && {_target getVariable [""f3_fcs_failure"",false]}" // Condition + "(_this == gunner _target) && {_target getVariable [""f_var_fcs_failure"",false]}" // Condition ]; }; -if (_vehicle getVariable ["f3_fcs_hasDriverAction",false]) exitWith { diag_log "FCS: tried to add driver action on something that already has it"}; +if (_vehicle getVariable ["f_var_fcs_hasDriverAction",false]) exitWith { diag_log "FCS: tried to add driver action on something that already has it"}; // Not FCS but I'm putting it in here _vehicle addAction [ @@ -126,4 +126,4 @@ _vehicle addAction [ "", "(driver _target == _this) && {!brakesDisabled _target}" ]; -_vehicle setVariable ["f3_fcs_hasDriverAction",true]; \ No newline at end of file +_vehicle setVariable ["f_var_fcs_hasDriverAction",true]; \ No newline at end of file diff --git a/f/fcs/fn_fcsPersistentEffects.sqf b/f/fcs/fn_fcsPersistentEffects.sqf index 90d258860..ad1a69d7f 100644 --- a/f/fcs/fn_fcsPersistentEffects.sqf +++ b/f/fcs/fn_fcsPersistentEffects.sqf @@ -7,7 +7,7 @@ params ["_target"]; // It's all a big loop -while {(_target getVariable ["f3_fcs_failure",false]) && (alive _target)} do { +while {(_target getVariable ["f_var_fcs_failure",false]) && (alive _target)} do { // Check whether there is a gunner if !(isNull (gunner _target)) then { From 188251ca5f5bd9baf5ff24cc684901bc9c74ee2e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 11 Sep 2022 03:25:06 +0100 Subject: [PATCH 366/407] Move brakes to separate component --- f/brakeOverride/fn_brakeOverride.sqf | 26 +++++ f/fcs/fn_fcsBriefing.sqf | 6 -- f/fcs/fn_fcsInit.sqf | 153 ++++++++++++--------------- f/functions.hpp | 5 + init.sqf | 11 +- 5 files changed, 104 insertions(+), 97 deletions(-) create mode 100644 f/brakeOverride/fn_brakeOverride.sqf diff --git a/f/brakeOverride/fn_brakeOverride.sqf b/f/brakeOverride/fn_brakeOverride.sqf new file mode 100644 index 000000000..877e848ea --- /dev/null +++ b/f/brakeOverride/fn_brakeOverride.sqf @@ -0,0 +1,26 @@ +// F3 - Driver's Brake Override system +// Credits and documentation: https://github.com/folkarps/F3/wiki +/* +This component allows players to disable the automatic brakes of any ground vehicle they're driving. It is enabled by default in init.sqf. +*/ + +// Don't add the action if it's already got one +if (player getVariable ["f_var_hasDriverAction",false]) exitWith { diag_log "brakeOverride: tried to add driver action on something that already has it"}; + +// Add the action +player addAction [ + "Disable automatic brakes (brake to re-engage)", + { + params ["_target", "_caller", "_actionId", "_arguments"]; + [_target,true] remoteExec ["disableBrakes",_target]; + }, + "", + 10, + false, + true, + "", + "(driver _this == _this) && {(!brakesDisabled vehicle _this) && ((vehicle _this) isKindOf 'LandVehicle') && !((vehicle _this) isKindOf 'StaticWeapon')}" +]; + +// Add the variable to prove it's already done +player setVariable ["f_var_hasDriverAction",true]; \ No newline at end of file diff --git a/f/fcs/fn_fcsBriefing.sqf b/f/fcs/fn_fcsBriefing.sqf index 8bcf45544..c26d926bb 100644 --- a/f/fcs/fn_fcsBriefing.sqf +++ b/f/fcs/fn_fcsBriefing.sqf @@ -10,8 +10,6 @@ if (!hasInterface) exitWith {}; // Exit if not a player. _fcs = player createDiaryRecord ["diary", ["F3 Enhanced FCS","
Some vehicles in this mission are fitted with enhanced fire control systems. This adds some extra functionality relating to gunnery and targeting. -
-Note: this briefing tab will appear even if the vehicles in this mission are only equipped with the Driver's Override function.

COMMANDER'S OVERRIDE
@@ -19,10 +17,6 @@ The enhanced FCS allows the commander to automatically point the main gun at a t
The commander must be aiming directly at an object to activate the override. Open ground or sky won't work. There must also be a gunner present for the override to work. The override will engage for a maximum of 4 seconds before releasing control.

-DRIVER'S OVERRIDE -
-The driver can select the Brake Override from the action menu to disable the vehicle's automatic brakes. This allows the vehicle to roll at low speeds or on hills without automatically stopping. The auto-brakes can be re-engaged by manually braking. -

FCS DAMAGE
When the vehicle is struck by high-calibre weapons, there's a chance the FCS will suffer damage. If the FCS is damaged, the Commander's Override will be disabled, as well as the gun zeroing and auto-leading functions and all night vision equipment. diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index c314f5188..87a582ea2 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -3,15 +3,13 @@ // Originally from: https://github.com/NikkoJT/njt_fcs (integrated with permission) /* - This component adds three main functions to a vehicle it's called on: + This component adds two main functions to a vehicle it's called on: 1. Commander's Override The Commander's Override allows the commander to automatically point the gun at whatever object they're looking at. 2. FCS failure simulation When the vehicle is hit by a high-calibre weapon, there is a small chance of an FCS failure, disabling the TC override, laser rangefinder, and NVDs, and force-setting the gunner's zeroing. A unit with the repair trait can reset the FCS from the gunner's seat. (If and when BI adds the ability to disable turret stabilisation by script, it will do that too) - 3. Driver's brake release - The driver can override the vehicle's automatic brakes, allowing it to roll freely at low speed and on slopes. Braking re-engages the autobrakes. Execution, all clients: [_vehicle] call f_fnc_fcsInit; @@ -38,92 +36,71 @@ if (isNil "f_var_fcs_briefingDone") then { [] call f_fnc_fcsBriefing; }; -// Only do this part in the default mode. If in the alternate mode, skip this and only add the driver action. -if (_mode) then { - // Commander's override action - _vehicle addAction - [ - "Commander's override", - { - params ["_target", "_caller", "_actionId", "_arguments"]; - [_target,_caller] call f_fnc_fcsCommanderOverride; - }, - nil, - 1.5, - false, - true, - "", - "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""f_var_fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""f_var_fcs_failure"",false])}", - 0, - false, - "", - "" - ]; - - - // Hit EH for FCS failure - _vehicle addEventHandler ["HitPart",{ - (_this select 0) params ["_target", "_shooter", "_projectile", "_position", "_velocity", "_selection", "_ammo", "_vector", "_radius", "_surfaceType", "_isDirect"]; - // Call the actual failure evaluator - [_target,_projectile,_isDirect] call f_fnc_fcsFailure; - }]; - - _vehicle setVariable ["fcs_hasEH",true]; +// Commander's override action +_vehicle addAction +[ + "Commander's override", + { + params ["_target", "_caller", "_actionId", "_arguments"]; + [_target,_caller] call f_fnc_fcsCommanderOverride; + }, + nil, + 1.5, + false, + true, + "", + "(_this == commander _target) && {!(isNull gunner _target) && !(_target getVariable [""f_var_fcsCommanderOverride_cooldown"",false]) && !(_target getVariable [""f_var_fcs_failure"",false])}", + 0, + false, + "", + "" +]; - // Hold action to repair FCS failure - // Players with repair trait in the gunner's seat of a vehicle with failed stabiliser can repair it - [ - _vehicle, // Target - "Reset Fire Control System", // Title - "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Idle icon - "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Progress icon - "(_target getVariable [""f_var_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show - "(_target getVariable [""f_var_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress - {}, // Code on start - {}, // Code on tick - { - params ["_target", "_caller", "_actionId", "_arguments"]; - _target setVariable ["f_var_fcs_failure",false,true]; - [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; - _target disableNVGEquipment false; - }, // Code on completed - {}, // Code on interrupt - [], // Arguments to pass - 10, // Duration - 1, // Priority - false, // Remove on completion - false, // Show when unconscious - true // Show on screen - ] call BIS_fnc_holdActionAdd; - // Action to prevent rangefinder use during FCS failure - _vehicle addAction ["FCS failure - repair required", // Title - { - hint "Someone familiar with maintenance can reset the FCS."; - }, // Code - "", // Arguments - 10, // Priority - false, // Show window - true, // Hide on use - "gunElevAuto", // Shortcut - "(_this == gunner _target) && {_target getVariable [""f_var_fcs_failure"",false]}" // Condition - ]; -}; +// Hit EH for FCS failure +_vehicle addEventHandler ["HitPart",{ + (_this select 0) params ["_target", "_shooter", "_projectile", "_position", "_velocity", "_selection", "_ammo", "_vector", "_radius", "_surfaceType", "_isDirect"]; + // Call the actual failure evaluator + [_target,_projectile,_isDirect] call f_fnc_fcsFailure; + }]; + +_vehicle setVariable ["fcs_hasEH",true]; -if (_vehicle getVariable ["f_var_fcs_hasDriverAction",false]) exitWith { diag_log "FCS: tried to add driver action on something that already has it"}; +// Hold action to repair FCS failure +// Players with repair trait in the gunner's seat of a vehicle with failed stabiliser can repair it +[ + _vehicle, // Target + "Reset Fire Control System", // Title + "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Idle icon + "\a3\ui_f_oldman\data\IGUI\Cfg\holdactions\repair_ca.paa", // Progress icon + "(_target getVariable [""f_var_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to show + "(_target getVariable [""f_var_fcs_failure"",false]) && (gunner _target == _this) && (_this getUnitTrait ""engineer"")", // Condition to progress + {}, // Code on start + {}, // Code on tick + { + params ["_target", "_caller", "_actionId", "_arguments"]; + _target setVariable ["f_var_fcs_failure",false,true]; + [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; + _target disableNVGEquipment false; + }, // Code on completed + {}, // Code on interrupt + [], // Arguments to pass + 10, // Duration + 1, // Priority + false, // Remove on completion + false, // Show when unconscious + true // Show on screen +] call BIS_fnc_holdActionAdd; -// Not FCS but I'm putting it in here -_vehicle addAction [ - "Disable automatic brakes (brake to re-engage)", - { - params ["_target", "_caller", "_actionId", "_arguments"]; - [_target,true] remoteExec ["disableBrakes",_target]; - }, - "", - 10, - false, - true, - "", - "(driver _target == _this) && {!brakesDisabled _target}" -]; -_vehicle setVariable ["f_var_fcs_hasDriverAction",true]; \ No newline at end of file +// Action to prevent rangefinder use during FCS failure +_vehicle addAction ["FCS failure - repair required", // Title + { + hint "Someone familiar with maintenance can reset the FCS."; + }, // Code + "", // Arguments + 10, // Priority + false, // Show window + true, // Hide on use + "gunElevAuto", // Shortcut + "(_this == gunner _target) && {_target getVariable [""f_var_fcs_failure"",false]}" // Condition +]; \ No newline at end of file diff --git a/f/functions.hpp b/f/functions.hpp index 2d232363a..9e3088a4a 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -139,4 +139,9 @@ class F // Defines the "owner" class fcsLocalWarning{}; class fcsBriefing{}; }; + class brakeOverride + { + file = "f\brakeOverride"; + class brakeOverride{}; + }; }; diff --git a/init.sqf b/init.sqf index f2f19e5a3..70b85f67f 100644 --- a/init.sqf +++ b/init.sqf @@ -167,14 +167,19 @@ f_var_viewDistance_crewOnly = true; // F3 - Commander's Override and FCS failure // Credits and documentation: https://github.com/folkarps/F3/wiki -// Pass false as a second parameter to only add the brake override action and not the rest of the FCS, for vehicles that don't plausibly have hunter-killer systems or advanced FCS but benefit from better brake control // [vehicleName] call f_fnc_fcsInit; -// [vehicleName,false] call f_fnc_fcsInit; // { _x call f_fnc_fcsInit; } forEach [vehicle1,vehicle2,vehicle3]; // ==================================================================================== +// F3 - Driver's Brake Override +// Credits and documentation: https://github.com/folkarps/F3/wiki + +[] spawn f_fnc_brakeOverride; + +// ==================================================================================== + // F3 - MapClick Teleport // Credits and documentation: https://github.com/folkarps/F3/wiki @@ -227,4 +232,4 @@ f_var_viewDistance_crewOnly = true; [] spawn f_fnc_disableThermals; // [[UnitName1, "UnitClass1"]] spawn f_fnc_disableThermals; -// ==================================================================================== +// ==================================================================================== \ No newline at end of file From 7b7b5cca2de2ae9bb153e9ab8679359d178adb7f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 11 Sep 2022 03:41:24 +0100 Subject: [PATCH 367/407] Add F3 thermals handling --- f/disableThermals/fn_disableThermals.sqf | 2 ++ f/fcs/fn_fcsFailure.sqf | 7 ++----- f/fcs/fn_fcsInit.sqf | 6 +++++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/f/disableThermals/fn_disableThermals.sqf b/f/disableThermals/fn_disableThermals.sqf index 6dee88df8..8209d4912 100644 --- a/f/disableThermals/fn_disableThermals.sqf +++ b/f/disableThermals/fn_disableThermals.sqf @@ -33,6 +33,7 @@ if (isServer) then { // This is an allowed vehicle, ignore it } else { _vehicleToCheck disableTIEquipment true; + _vehicleToCheck setVariable ["f_var_TIDisabled",true,true]; } } foreach vehicles; }; @@ -49,6 +50,7 @@ if (hasinterface && isNil "f_eh_disableThermals") then { if ({_assembled isKindOf _x} count f_var_disableThermals_allowedTypes == 0) then { _assembled disableTIEquipment true; + _vehicleToCheck setVariable ["f_var_TIDisabled",true,true]; } }]; }; diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index bc460edd3..8554ee9d6 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -33,12 +33,9 @@ params ["_target","_projectile","_isDirect"]; // diag_log "FCS: projectile not randomly selected" }; - // Hit turns off the stabiliser and sets an appropriate variable on the vehicle - // EXCEPT IT DOESN'T TURN OFF THE STABILISER BECAUSE THAT'S NOT WHAT THE COMMAND DOES - // GOD DAMN IT BI - // Turns off night vision though - [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; + // Hit turns off the NV and TI and sets an appropriate variable on the vehicle. Hopefully later it will also turn off stabilisation (BI blocked) _target disableNVGEquipment true; + _target disableTIEquipment true; _target setVariable ["f_var_fcs_failure",true,true]; // Spawn ongoing stuff that affects the vehicle until repaired diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index 87a582ea2..c8b57d3a1 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -79,9 +79,13 @@ _vehicle setVariable ["fcs_hasEH",true]; {}, // Code on tick { params ["_target", "_caller", "_actionId", "_arguments"]; + // Clear failure states _target setVariable ["f_var_fcs_failure",false,true]; - [_target,[false,[0]]] remoteExec ["enableDirectionStabilization",0,_target]; _target disableNVGEquipment false; + // Re-enable TI unless F3 says we shouldn't + if !(_target getVariable ["f_var_TIDisabled",false]) then { + _target disableTIEquipment false; + }; }, // Code on completed {}, // Code on interrupt [], // Arguments to pass From 38dd4c49cc9569ccba4e6d5b920e4ecb0fd84710 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 11 Sep 2022 07:18:03 +0100 Subject: [PATCH 368/407] Fix wrong command target --- f/brakeOverride/fn_brakeOverride.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/brakeOverride/fn_brakeOverride.sqf b/f/brakeOverride/fn_brakeOverride.sqf index 877e848ea..884841180 100644 --- a/f/brakeOverride/fn_brakeOverride.sqf +++ b/f/brakeOverride/fn_brakeOverride.sqf @@ -12,7 +12,7 @@ player addAction [ "Disable automatic brakes (brake to re-engage)", { params ["_target", "_caller", "_actionId", "_arguments"]; - [_target,true] remoteExec ["disableBrakes",_target]; + [vehicle _target,true] remoteExec ["disableBrakes",vehicle _target]; }, "", 10, @@ -23,4 +23,4 @@ player addAction [ ]; // Add the variable to prove it's already done -player setVariable ["f_var_hasDriverAction",true]; \ No newline at end of file +player setVariable ["f_var_hasDriverAction",true]; From e56f31574c03cd6edb71e29f00b99dcdb9b961f4 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 19 Sep 2022 14:17:06 +0100 Subject: [PATCH 369/407] Fix brake action condition --- f/brakeOverride/fn_brakeOverride.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/brakeOverride/fn_brakeOverride.sqf b/f/brakeOverride/fn_brakeOverride.sqf index 884841180..9a9e3c63e 100644 --- a/f/brakeOverride/fn_brakeOverride.sqf +++ b/f/brakeOverride/fn_brakeOverride.sqf @@ -19,7 +19,7 @@ player addAction [ false, true, "", - "(driver _this == _this) && {(!brakesDisabled vehicle _this) && ((vehicle _this) isKindOf 'LandVehicle') && !((vehicle _this) isKindOf 'StaticWeapon')}" + "(driver (vehicle _this) == _this) && {(!brakesDisabled vehicle _this) && ((vehicle _this) isKindOf 'LandVehicle') && !((vehicle _this) isKindOf 'StaticWeapon')}" ]; // Add the variable to prove it's already done From 4f771a15bc88c041e738e9bbfc1031541f5c870a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:41:51 +0100 Subject: [PATCH 370/407] Mention variable tag option in more places --- f/radio/f_channelsList.sqf | 3 +++ init.sqf | 2 ++ 2 files changed, 5 insertions(+) diff --git a/f/radio/f_channelsList.sqf b/f/radio/f_channelsList.sqf index 45f6a6bb1..b534c2450 100644 --- a/f/radio/f_channelsList.sqf +++ b/f/radio/f_channelsList.sqf @@ -14,6 +14,9 @@ INVENTORY (classname) items, such as backpacks or equipment, give the player tal VEHICLES (classname or variable name) give the player receive access when they are inside, and talk access when they are the driver. The channel eligibility array is not case-sensitive. +You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: +_unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; + There is a maximum of 10 channels at any time. Add in these radios for GM and CSLA missions: "US85_bpPRC77" diff --git a/init.sqf b/init.sqf index bd9009c3a..b43d1e31f 100644 --- a/init.sqf +++ b/init.sqf @@ -225,6 +225,8 @@ f_var_viewDistance_crewOnly = true; // Credits and documentation: https://github.com/folkarps/F3/wiki // True to split channels by radio backpack type. Else one channel for all. // Optional second parameter (number): limit the channel count to this number. This frees up space for any other custom channels. Defaults to 10 (max) if not set, or 1 (minimum) if channels not split. +// You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: +// _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; [false] spawn f_fnc_radioChannels; From c5782df450304ba141fc556c1cdb4e230712a7c6 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:44:40 +0100 Subject: [PATCH 371/407] fix variable name Co-authored-by: Euan Hunter --- f/fcs/fn_fcsInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index c8b57d3a1..45e965a1c 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -64,7 +64,7 @@ _vehicle addEventHandler ["HitPart",{ [_target,_projectile,_isDirect] call f_fnc_fcsFailure; }]; -_vehicle setVariable ["fcs_hasEH",true]; +_vehicle setVariable ["f_var_fcs_hasEH",true]; // Hold action to repair FCS failure // Players with repair trait in the gunner's seat of a vehicle with failed stabiliser can repair it From 37056d976a793a7c2e0cc847f55f454a82fa9db2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:45:00 +0100 Subject: [PATCH 372/407] Remove mode switch vestiges Co-authored-by: Euan Hunter --- f/fcs/fn_fcsInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index 45e965a1c..6024b586b 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -25,7 +25,7 @@ // Doesn't need to run on DS or HC if !(hasInterface) exitWith {}; -params ["_vehicle",["_mode",true]]; +params ["_vehicle"]; if !(_vehicle isKindOf "LandVehicle") exitWith { diag_log "FCS: tried to run on something that isn't a vehicle" }; From 221c7e6114471f51fb39198505bae01dbc6fe366 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 24 Sep 2022 22:49:05 +0100 Subject: [PATCH 373/407] Disable serialization for UI things --- f/fcs/fn_fcsLocalWarning.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsLocalWarning.sqf b/f/fcs/fn_fcsLocalWarning.sqf index 12a85809c..fca478273 100644 --- a/f/fcs/fn_fcsLocalWarning.sqf +++ b/f/fcs/fn_fcsLocalWarning.sqf @@ -6,8 +6,10 @@ params ["_text","_delay"]; +disableSerialization; + if (cameraView == "GUNNER") then { - _overrideWarningDisplay = findDisplay 46 ctrlCreate ["RscStructuredText", 4404]; + private _overrideWarningDisplay = findDisplay 46 ctrlCreate ["RscStructuredText", 4404]; _overrideWarningDisplay ctrlSetPosition [0.5, 0.7,0.5,0.5]; _overrideWarningDisplay ctrlSetStructuredText parseText ("" + _text + ""); _overrideWarningDisplay ctrlSetTextColor [1,0.1,0.1,1]; From 7b9f3261f48f5a5b976027a8b8e3b6d309e70006 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 9 Oct 2022 15:32:59 +0100 Subject: [PATCH 374/407] Channel checker now inherently checks twice --- f/radio/fn_radioAddHandlers.sqf | 46 +++-------- f/radio/fn_radioCheckChannels.sqf | 126 ++++++++++++++++-------------- 2 files changed, 76 insertions(+), 96 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 88fed66b7..65d029216 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -10,7 +10,7 @@ It's activated by f\radio\fn_radioChannels.sqf. waitUntil {(!isNull player && {player == player}) && !(isNil "f_var_radioChannelsUnified")}; // Add player to the correct channels if they have a backpack -[player] call f_fnc_radioCheckChannels; +[player] spawn f_fnc_radioCheckChannels; // Now bail if they've already been handled if (player getVariable ["f_var_radioHandlersAdded",false]) exitWith {}; @@ -18,71 +18,43 @@ if (player getVariable ["f_var_radioHandlersAdded",false]) exitWith {}; // Update channels if they drop a backpack player addEventHandler ["put", { params ["_unit", "_container", "_item"]; - [_unit] call f_fnc_radioCheckChannels; - [_unit] spawn { - sleep 1; - [_this select 0] call f_fnc_radioCheckChannels; - }; + [_unit] spawn f_fnc_radioCheckChannels; }]; // Update channels if they take a backpack player addEventHandler ["take", { params ["_unit", "_container", "_item"]; - [_unit] call f_fnc_radioCheckChannels; - [_unit] spawn { - sleep 1; - [_this select 0] call f_fnc_radioCheckChannels; - }; + [_unit] spawn f_fnc_radioCheckChannels; }]; // Update channels if they open their inventory player addEventHandler ["inventoryOpened", { params ["_unit", "_container"]; - [_unit] call f_fnc_radioCheckChannels; - [_unit] spawn { - sleep 1; - [_this select 0] call f_fnc_radioCheckChannels; - }; + [_unit] spawn f_fnc_radioCheckChannels; }]; // Update channels if they close their inventory player addEventHandler ["inventoryClosed", { params ["_unit", "_container"]; - [_unit] call f_fnc_radioCheckChannels; - [_unit] spawn { - sleep 1; - [_this select 0] call f_fnc_radioCheckChannels; - }; + [_unit] spawn f_fnc_radioCheckChannels; }]; // Update channels if they get in a vehicle player addEventHandler ["getInMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - [_unit] call f_fnc_radioCheckChannels; - [_unit] spawn { - sleep 1; - [_this select 0] call f_fnc_radioCheckChannels; - }; + [_unit] spawn f_fnc_radioCheckChannels; }]; // Update channels if they get out of a vehicle player addEventHandler ["getOutMan", { params ["_unit", "_role", "_vehicle", "_turret"]; - [_unit] call f_fnc_radioCheckChannels; - [_unit] spawn { - sleep 1; - [_this select 0] call f_fnc_radioCheckChannels; - }; + [_unit] spawn f_fnc_radioCheckChannels; }]; // Update channels if they switch seats in a vehicle player addEventHandler ["seatSwitchedMan", { params ["_unit1", "_unit2", "_vehicle"]; - [_unit1] call f_fnc_radioCheckChannels; - [_unit1] spawn { - sleep 1; - [_this select 0] call f_fnc_radioCheckChannels; - }; + [_unit1] spawn f_fnc_radioCheckChannels; }]; // Just to be sure... @@ -98,4 +70,4 @@ if (f_param_debugMode == 1) then }; sleep 1; -[player] call f_fnc_radioCheckChannels; \ No newline at end of file +[player] spawn f_fnc_radioCheckChannels; \ No newline at end of file diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 660202ca1..4771590dd 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -15,78 +15,86 @@ private _channelObjects = []; private _channelsToAddListen = []; private _channelsToAddTalk = []; -for "_i" from 1 to f_var_radioChannelCount do { +// Do all this twice to make sure it happens +for "_i" from 1 to 2 do { - // Check against the list of objects. If they have a backpack or other inventory item, add the currently checked channel number to the list of channels to add send & receive permissions for. - _channelObjects = ((f_var_radioChannels get _i) select 2); - { - if ([_unit,_x] call BIS_fnc_hasItem) then { + // Iterate through the whole list of channels + for "_i" from 1 to f_var_radioChannelCount do { + + // Check against the list of objects. If they have a backpack or other inventory item, add the currently checked channel number to the list of channels to add send & receive permissions for. + _channelObjects = ((f_var_radioChannels get _i) select 2); + { + if ([_unit,_x] call BIS_fnc_hasItem) then { + _channelsToAddListen pushBackUnique _i; + _channelsToAddTalk pushBackUnique _i; + }; + } forEach _channelObjects; + + // Check for vehicles. Don't add send permissions unless they're the driver. + if ((toLower str vehicle _unit) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; - _channelsToAddTalk pushBackUnique _i; + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + _channelsToAddTalk pushBackUnique _i; + }; }; - } forEach _channelObjects; - - // Check for vehicles. Don't add send permissions unless they're the driver. - if ((toLower str vehicle _unit) in _channelObjects) then { - _channelsToAddListen pushBackUnique _i; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { - _channelsToAddTalk pushBackUnique _i; - }; - }; - // Same for vehicle classes. - if ((toLower typeOf vehicle _unit) in _channelObjects) then { - _channelsToAddListen pushBackUnique _i; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { - _channelsToAddTalk pushBackUnique _i; + // Same for vehicle classes. + if ((toLower typeOf vehicle _unit) in _channelObjects) then { + _channelsToAddListen pushBackUnique _i; + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + _channelsToAddTalk pushBackUnique _i; + }; }; }; -}; - -// Detect any channels activated by setting a variable on the player or their vehicle -{ - _channelsToAddListen pushBackUnique _x; - _channelsToAddTalk pushBackUnique _x; -} forEach (_unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); -{ - _channelsToAddListen pushBackUnique _x; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + // Detect any channels activated by setting a variable on the player or their vehicle + { + _channelsToAddListen pushBackUnique _x; _channelsToAddTalk pushBackUnique _x; - }; -} forEach (vehicle _unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); + } forEach (_unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); + + { + _channelsToAddListen pushBackUnique _x; + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + _channelsToAddTalk pushBackUnique _x; + }; + } forEach (vehicle _unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); -// If running in unified mode, just compress all numbers down to the one channel if there are any channels to be added. -if (!_splitMode) then { + // If running in unified mode, just compress all numbers down to the one channel if there are any channels to be added. + if (!_splitMode) then { - if ((count _channelsToAddListen) > 0) then { - _channelsToAddListen = [1]; - }; - if ((count _channelsToAddTalk) > 0) then { - _channelsToAddTalk = [1]; + if ((count _channelsToAddListen) > 0) then { + _channelsToAddListen = [1]; + }; + if ((count _channelsToAddTalk) > 0) then { + _channelsToAddTalk = [1]; + }; }; -}; - -// Remove channels player shouldn't have access to -for "_i" from 1 to f_var_radioChannelCount do { + + // Remove channels player shouldn't have access to + for "_i" from 1 to f_var_radioChannelCount do { - if !(_i in _channelsToAddTalk) then { - (_i + 5) enableChannel false; - }; - if !(_i in _channelsToAddListen) then { - _i radioChannelRemove [_unit]; + if !(_i in _channelsToAddTalk) then { + (_i + 5) enableChannel false; + }; + if !(_i in _channelsToAddListen) then { + _i radioChannelRemove [_unit]; + }; + }; - -}; -// Disable the Command channel to avoid cheating -2 enableChannel false; + // Disable the Command channel to avoid cheating + 2 enableChannel false; -// Add player to the correct channels if they are eligible -{_x radioChannelAdd [_unit]} forEach _channelsToAddListen; -{(_x + 5) enableChannel true} forEach _channelsToAddTalk; + // Add player to the correct channels if they are eligible + {_x radioChannelAdd [_unit]} forEach _channelsToAddListen; + {(_x + 5) enableChannel true} forEach _channelsToAddTalk; -// DEBUG -if (f_param_debugMode == 1) then -{ - systemChat format ["DEBUG (fn_radioCheckChannels.sqf): added listen channels %1, talk channels %2",_channelsToAddListen,_channelsToAddTalk]; + // DEBUG + if (f_param_debugMode == 1) then + { + systemChat format ["DEBUG (fn_radioCheckChannels.sqf): added listen channels %1, talk channels %2",_channelsToAddListen,_channelsToAddTalk]; + }; + + // Delay between the two check cycles + sleep 1; }; \ No newline at end of file From 4bbd5a4067256227981671397e339749d6d25db8 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 5 Nov 2022 21:07:20 +0000 Subject: [PATCH 375/407] Fix debug message format --- f/assignGear/fn_assignGear.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/fn_assignGear.sqf b/f/assignGear/fn_assignGear.sqf index 4c1697a6d..b0821b989 100644 --- a/f/assignGear/fn_assignGear.sqf +++ b/f/assignGear/fn_assignGear.sqf @@ -295,7 +295,7 @@ if (isNil "_carbine") then { //_carbine should exist unless no faction has been player globalchat format ["DEBUG (assignGear.sqf): Faction %1 is not defined.",_faction]; } else { if (f_param_debugMode == 1) then { - player sideChat format ["DEBUG (assignGear.sqf): Gear for %1: %1 slot selected.",_unit,_faction,_typeofUnit]; + player sideChat format ["DEBUG (assignGear.sqf): Gear for %1: faction %2, role %3",_unit,_faction,_typeofUnit]; }; }; From 43a4045345a49a0cb5cc2d085f7f8197611c132e Mon Sep 17 00:00:00 2001 From: Ciaran Date: Tue, 8 Nov 2022 00:15:35 +0000 Subject: [PATCH 376/407] Add snow, cold breath; stop Mission Conditions resetting date --- description.ext | 20 ++--- f/functions.hpp | 1 + .../f_setMissionConditions.sqf | 6 ++ f/missionConditions/fn_ColdBreath.sqf | 21 +++++ f/missionConditions/fn_SetTime.sqf | 12 +-- f/missionConditions/fn_SetWeather.sqf | 76 ++++++++++++++++++- stringtable.xml | 28 +++---- 7 files changed, 130 insertions(+), 34 deletions(-) create mode 100644 f/missionConditions/fn_ColdBreath.sqf diff --git a/description.ext b/description.ext index dd751232a..218ef2fd9 100644 --- a/description.ext +++ b/description.ext @@ -12,16 +12,16 @@ onLoadName = "*** Insert Mission Name Here. ***"; //Corpses corpseManagerMode = 1; //0 = None, 1 = All, 2 = None_But_Respawned, 3 = All_But_Respawned -corpseLimit = 30; // Corpse limit before which ( <= ) corpseRemovalMaxTime applies and after which ( > ) corpseRemovalMinTime applies. -corpseRemovalMinTime = 180; // Remove all bodies that have been dead longer than corpseRemovalMinTime when corpseLimit is breached. -corpseRemovalMaxTime = 600; // Maximum time a corpse can remain on the ground (if total number of corpses is equal or under corpseLimit). -minPlayerDistance = 500; // The minimum distance between corpse or wreck and nearest player before the corpse or wreck is allowed to be removed by the garbage collector. +corpseLimit = 30; // Corpse limit before which ( <= ) corpseRemovalMaxTime applies and after which ( > ) corpseRemovalMinTime applies. +corpseRemovalMinTime = 180; // Remove all bodies that have been dead longer than corpseRemovalMinTime when corpseLimit is breached. +corpseRemovalMaxTime = 600; // Maximum time a corpse can remain on the ground (if total number of corpses is equal or under corpseLimit). +minPlayerDistance = 500; // The minimum distance between corpse or wreck and nearest player before the corpse or wreck is allowed to be removed by the garbage collector. //Wrecks //wreckManagerMode = 1; //0 = None, 1 = All, 2 = None_But_Respawned, 3 = All_But_Respawned -//wreckLimit = 20; //Vehicle wreck limit before which ( <= ) wreckRemovalMaxTime applies and after which ( > ) wreckRemovalMinTime applies. -//wreckRemovalMinTime = 180; // Remove all wrecks that have existed longer than wreckRemovalMinTime when wreckLimit is breached. -//wreckRemovalMaxTime = 3600; // Maximum time a wreck can remain on the ground (if total number of wrecks is equal or under wreckLimit). +//wreckLimit = 20; //Vehicle wreck limit before which ( <= ) wreckRemovalMaxTime applies and after which ( > ) wreckRemovalMinTime applies. +//wreckRemovalMinTime = 180; // Remove all wrecks that have existed longer than wreckRemovalMinTime when wreckLimit is breached. +//wreckRemovalMaxTime = 3600; // Maximum time a wreck can remain on the ground (if total number of wrecks is equal or under wreckLimit). // ============================================================================================ @@ -180,9 +180,9 @@ class Params class f_param_weather { title = "$STR_f_param_weather"; - values[] = {0,1,2,3,4,5,6,7,8,9}; - texts[] = {$STR_f_param_weather_Option0,$STR_f_param_weather_Option1,$STR_f_param_weather_Option2,$STR_f_param_weather_Option3,$STR_f_param_weather_Option4,$STR_f_param_weather_Option5,$STR_f_param_weather_Option6,$STR_f_param_weather_Option7,$STR_f_param_weather_Option8,$STR_f_param_weather_Option11}; - default = 9; + values[] = {0,1,2,3,4,5,6,7,8,9,10,11}; + texts[] = {$STR_f_param_weather_Option0,$STR_f_param_weather_Option1,$STR_f_param_weather_Option2,$STR_f_param_weather_Option3,$STR_f_param_weather_Option4,$STR_f_param_weather_Option5,$STR_f_param_weather_Option6,$STR_f_param_weather_Option7,$STR_f_param_weather_Option8,$STR_f_param_weather_Option9,$STR_f_param_weather_Option10,$STR_f_param_weather_Option11}; + default = 11; }; class f_param_fog diff --git a/f/functions.hpp b/f/functions.hpp index e79a8a766..5885dda03 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -39,6 +39,7 @@ class F // Defines the "owner" class SetFog{}; class SetWeather{}; class SetWind{}; + class ColdBreath{}; }; class cache { diff --git a/f/missionConditions/f_setMissionConditions.sqf b/f/missionConditions/f_setMissionConditions.sqf index ca691cb85..bfd9d39c8 100644 --- a/f/missionConditions/f_setMissionConditions.sqf +++ b/f/missionConditions/f_setMissionConditions.sqf @@ -14,6 +14,12 @@ if (isServer) then { f_var_conditions_params = [date] + _weatherParams; }; + // COLD BREATH + // Cold breath particle spawner for if it's snowing, or in low ambient temperatures + if (f_param_weather == 9 || f_param_weather == 10 || (ambientTemperature select 0) < 8) then { + remoteExec ["f_fnc_coldBreath",0,true]; + }; + // Fix for date sometimes returning wrong minute f_var_conditions_params#0 set [3,floor (dayTime + (.5/60))]; f_var_conditions_params#0 set [4,floor ((dayTime%1)*60+.5)]; diff --git a/f/missionConditions/fn_ColdBreath.sqf b/f/missionConditions/fn_ColdBreath.sqf new file mode 100644 index 000000000..bb7675d89 --- /dev/null +++ b/f/missionConditions/fn_ColdBreath.sqf @@ -0,0 +1,21 @@ +// F3 - Cold Breath +// Credits and documentation: https://github.com/folkarps/F3/wiki +// ==================================================================================== + +if !(hasInterface) exitWith {}; + +{ + _x spawn { + while {alive _this} do { + sleep (4*(1 - getFatigue _this) + random 1); + drop [["\A3\data_f\ParticleEffects\Universal\Universal", 16, 12, 8,1], "", "Billboard", 1, + (1-((vectorMagnitude velocity _this) / 35)) *.75 max .05, + _this selectionPosition "Head" vectorAdd [0,.02,0], + velocityModelSpace _this vectorAdd [0, .1, 0], 1, 1.3, 1, .01, [.1,.25,.33,.4], [[1, 1, 1, 0.25],[1, 1, 1, 0]], [1], 1, 0, "", "", _this]; + drop [["\A3\data_f\ParticleEffects\Universal\Universal", 16, 12, 8,1], "", "Billboard", 1, + (1-((vectorMagnitude velocity _this) / 35)) *.75 max .05, + _this selectionPosition "Head" vectorAdd [0,.02,0], + velocityModelSpace _this vectorAdd [0, .15, 0], 1, 1.3, 1, .01, [.1,.22,.3,.35], [[1, 1, 1, 0.25],[1, 1, 1, 0]], [1], 1, 0, "", "", _this]; + }; + }; +} forEach allUnits; diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index 54f21377e..f5e5f1a11 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -25,14 +25,10 @@ if ( _timeOfDay == 8 ) exitWith {}; // ==================================================================================== -// SET DEFAULT VALUES -// The default values that together form the in-game date are set. - -_year = 2030; -_month = 6; -_day = 16; -_hour = 0; -_minute = 0; +// GET DEFAULT VALUES +// Grab the mission's current date and time. + +date params ["_year", "_month", "_day", "_hour", "_minute"]; // ==================================================================================== diff --git a/f/missionConditions/fn_SetWeather.sqf b/f/missionConditions/fn_SetWeather.sqf index f8fd86a40..3890e64d3 100644 --- a/f/missionConditions/fn_SetWeather.sqf +++ b/f/missionConditions/fn_SetWeather.sqf @@ -12,10 +12,10 @@ private ["_missionOvercast","_MissionRain","_MissionRainbow","_MissionLightnings // We interpret the values parsed to the script. If the function was called from the parameters those values are used. // _setFog can be a Number for legacy calls -params [["_weather",9,[0]],["_setFog",true,[true,0]],["_setWind",true,[true]],["_transition",0,[0]]]; +params [["_weather",11,[0]],["_setFog",true,[true,0]],["_setWind",true,[true]],["_transition",0,[0]]]; // Exit when using mission settings -if ( _weather == 9 ) exitWith {}; +if (_weather == 11) exitWith {}; // Support for legacy transition call if (_setFog isEqualType 0) then { @@ -167,6 +167,78 @@ switch (_weather) do _MissionFogDecay = 0.002; _MissionFogBase = 0; }; +// Light Snow + case 9: + { + _MissionOvercast = 0.8; + _MissionRain = 0.5; + _MissionRainbow = 0; + _MissionLightnings = 0; + _MissionWindStr = 0.05; + _MissionWindGusts = 0.05; + _MissionWaves = 0.1; + _MissionFogStrength = 0.15; + _MissionFogDecay = 0.002; + _MissionFogBase = 0; + [ + "a3\data_f\snowflake16_ca.paa", // rainDropTexture + 16, // texDropCount + 0.01, // minRainDensity + 40, // effectRadius - decreases density as turned up + 0.5, // windCoef + 2.1, // dropSpeed + 0.5, // rndSpeed + 0.5, // rndDir + 0.06, // dropWidth + 0.06, // dropHeight + [1, 1, 1, 1.25], // dropColor + 0.1, // lumSunFront + 0.2, // lumSunBack + 0.5, // refractCoef + 0.5, // refractSaturation + true, // snow + false // dropColorStrong + ] + call BIS_fnc_setRain; + setHumidity 0.9; // no dust clouds, has to be set manually because snow-flagged rain doesn't automatically increase humidity + enableEnvironment [false, true]; // remove wildlife + }; +// Heavy Snow + case 10: + { + _MissionOvercast = 1; + _MissionRain = 1; + _MissionRainbow = 0; + _MissionLightnings = 0; + _MissionWindStr = 0.15; + _MissionWindGusts = 0.1; + _MissionWaves = 0.2; + _MissionFogStrength = 0.3; + _MissionFogDecay = 0.002; + _MissionFogBase = 0; + [ + "a3\data_f\snowflake16_ca.paa", // rainDropTexture + 16, // texDropCount + 0.01, // minRainDensity + 30, // effectRadius - decreases density as turned up + 0.5, // windCoef + 2.1, // dropSpeed + 0.5, // rndSpeed + 0.5, // rndDir + 0.065, // dropWidth + 0.065, // dropHeight + [1, 1, 1, 1.25], // dropColor + 0.1, // lumSunFront + 0.2, // lumSunBack + 0.5, // refractCoef + 0.5, // refractSaturation + true, // snow + false // dropColorStrong + ] + call BIS_fnc_setRain; + setHumidity 0.9; // no dust clouds, has to be set manually because snow-flagged rain doesn't automatically increase humidity + enableEnvironment [false, true]; // remove wildlife + }; }; // ==================================================================================== diff --git a/stringtable.xml b/stringtable.xml index 45ccd1ffd..6835a90d5 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -123,10 +123,22 @@ Tormenta Averse
+ + Light Snow + + + Heavy Snow + Use mission setting - + + Override Fog + + + No Fog + + Light Fog Slabá mlha Leichter Nebel @@ -135,7 +147,7 @@ Bruma Brume - + Heavy Fog Hustá mlha Dichter Nebel @@ -144,18 +156,6 @@ Niebla Brouillard - - Override Fog - - - No Fog - - - Light Fog - - - Heavy Fog - Use mission setting From 2c381cee87e89e772f8d0b3b8380d1cacba0d064 Mon Sep 17 00:00:00 2001 From: Ciaran Date: Tue, 29 Nov 2022 20:09:06 +0000 Subject: [PATCH 377/407] Rework coldBreath call, update mission conditions, add season parameter --- description.ext | 8 +++ f/functions.hpp | 1 - .../{fn_ColdBreath.sqf => f_ColdBreath.sqf} | 2 - f/missionConditions/f_conditionNotes.sqf | 8 +-- .../f_setMissionConditions.sqf | 30 ++++++--- f/missionConditions/fn_SetTime.sqf | 63 ++++++++++++++++++- stringtable.xml | 20 +++++- 7 files changed, 109 insertions(+), 23 deletions(-) rename f/missionConditions/{fn_ColdBreath.sqf => f_ColdBreath.sqf} (96%) diff --git a/description.ext b/description.ext index 218ef2fd9..602bb082c 100644 --- a/description.ext +++ b/description.ext @@ -209,6 +209,14 @@ class Params default = 8; }; + class f_param_timeOfYear + { + title = "$STR_f_param_timeOfYear"; + values[] = {0,1,2,3,4}; + texts[] = {$STR_f_param_timeOfYear_Option0,$STR_f_param_timeOfYear_Option1,$STR_f_param_timeOfYear_Option2,$STR_f_param_timeOfYear_Option3,$STR_f_param_timeOfYear_Option4}; + default = 4; + }; + // ============================================================================================ // F3 - AI Skill Selector diff --git a/f/functions.hpp b/f/functions.hpp index 5885dda03..e79a8a766 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -39,7 +39,6 @@ class F // Defines the "owner" class SetFog{}; class SetWeather{}; class SetWind{}; - class ColdBreath{}; }; class cache { diff --git a/f/missionConditions/fn_ColdBreath.sqf b/f/missionConditions/f_ColdBreath.sqf similarity index 96% rename from f/missionConditions/fn_ColdBreath.sqf rename to f/missionConditions/f_ColdBreath.sqf index bb7675d89..26b06e7ac 100644 --- a/f/missionConditions/fn_ColdBreath.sqf +++ b/f/missionConditions/f_ColdBreath.sqf @@ -2,8 +2,6 @@ // Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== -if !(hasInterface) exitWith {}; - { _x spawn { while {alive _this} do { diff --git a/f/missionConditions/f_conditionNotes.sqf b/f/missionConditions/f_conditionNotes.sqf index f53d4158f..8958a26d1 100644 --- a/f/missionConditions/f_conditionNotes.sqf +++ b/f/missionConditions/f_conditionNotes.sqf @@ -1,12 +1,7 @@ // F3 - Mission Condition briefing notes -// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/) +// Credits and documentation: https://github.com/folkarps/F3/wiki // ==================================================================================== -if (!hasInterface) exitWith {}; //Exit if not a player. - -// Wait until server publishes the mission conditions -waitUntil { !isNil "f_var_conditions_params" }; - f_var_conditions_params params ["_date","_overcast","_rain","_lightnings","_waves","_wind","_fogParams"]; private _diaryText = ""; @@ -32,6 +27,7 @@ private _rainText = "Heavy Rain"; if (_rain < .65) then { _rainText = "Rain" }; if (_rain < .3) then { _rainText = "Light Rain" }; if (_rain < .01 || _overcast < .5) then { _rainText = "No Precipitation" }; // rain doesn't do anything below .5 overcast +if (rainParams select 15 && {_rain > 0 && _overcast >= .5}) then {_rainText = "Snow"}; _diaryText = _diaryText + format ["Weather
%1 | %2
",_overCastText,_rainText]; diff --git a/f/missionConditions/f_setMissionConditions.sqf b/f/missionConditions/f_setMissionConditions.sqf index bfd9d39c8..25567a5f2 100644 --- a/f/missionConditions/f_setMissionConditions.sqf +++ b/f/missionConditions/f_setMissionConditions.sqf @@ -14,12 +14,6 @@ if (isServer) then { f_var_conditions_params = [date] + _weatherParams; }; - // COLD BREATH - // Cold breath particle spawner for if it's snowing, or in low ambient temperatures - if (f_param_weather == 9 || f_param_weather == 10 || (ambientTemperature select 0) < 8) then { - remoteExec ["f_fnc_coldBreath",0,true]; - }; - // Fix for date sometimes returning wrong minute f_var_conditions_params#0 set [3,floor (dayTime + (.5/60))]; f_var_conditions_params#0 set [4,floor ((dayTime%1)*60+.5)]; @@ -34,7 +28,7 @@ if (isServer) then { f_var_conditions_params set [5,_windParams]; }; - private _dateParams = [f_param_timeOfDay] call f_fnc_setTime; + private _dateParams = [f_param_timeOfDay,f_param_timeOfYear] call f_fnc_setTime; if (!isNil "_dateParams") then { f_var_conditions_params set [0,_dateParams]; }; @@ -47,6 +41,22 @@ if (isServer) then { // ==================================================================================== -// GENERATE CONDITION NOTES -// Adds a briefing entry that summarizes the mission conditions -[] execVM "f\missionConditions\f_conditionNotes.sqf"; + +// RUN CONDITIONS BRIEFING AND COLD BREATH ON CLIENTS ONLY +if (hasInterface) then { + // Wait until server publishes the mission conditions + waitUntil {!isNil "f_var_conditions_params"}; + + // GENERATE CONDITION NOTES + // Adds a briefing entry that summarizes the mission conditions + [] execVM "f\missionConditions\f_conditionNotes.sqf"; + + // Wait until the mission has started - ambient temperature takes a tick to update + sleep 0.1; + + // COLD BREATH + // Cold breath particle spawner for if it's snowing, or in low ambient temperatures + if (rainParams select 15 || (ambientTemperature select 0) < 6) then { + [] execVM "f\missionConditions\f_coldBreath.sqf"; + }; +}; diff --git a/f/missionConditions/fn_SetTime.sqf b/f/missionConditions/fn_SetTime.sqf index f5e5f1a11..701fad7a1 100644 --- a/f/missionConditions/fn_SetTime.sqf +++ b/f/missionConditions/fn_SetTime.sqf @@ -8,7 +8,7 @@ if !(isServer) exitWith {}; // DECLARE VARIABLES AND FUNCTIONS -private ["_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time","_date"]; +private ["_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise","_sunriseSunsetExists","_sunrise","_sunset","_addTime","_time","_date","_utmZone","_hemisphere"]; // ==================================================================================== @@ -16,11 +16,12 @@ private ["_year","_month","_day","_hour","_minute","_transition","_sunsetSunrise // We interpret the values parsed to the script. If the function was called from the parameters those values are used. params [ - ["_timeOfDay", 8, [0]] + ["_timeOfDay", 8, [0]], + ["_timeOfYear", 4, [0]] ]; // Exit when using mission settings -if ( _timeOfDay == 8 ) exitWith {}; +if (_timeOfDay == 8 && _timeOfYear == 4) exitWith {}; // ==================================================================================== @@ -32,6 +33,62 @@ date params ["_year", "_month", "_day", "_hour", "_minute"]; // ==================================================================================== +// GET HEMISPHERE SO WE CAN SET THE CORRECT MONTH FOR EACH SEASON +_utmZone = ((getarray (configfile >> "cfgworlds" >> worldname >> "mapArea")) call bis_fnc_posDegToUTM) select 2; +// If UTM is negative, we're in the southern hemisphere +_hemisphere = (_utmZone < 0); + +// SELECT MISSION TIME OF YEAR +// Using the value of _timeOfYear, we define new values for _month and _day. Values set based on in-game solstices/exquinoxes + +switch (_timeOfYear) do +{ +// Spring + case 0: + { + if (_hemisphere) then { + _day = 21; + _month = 9; + } else { + _day = 23; + _month = 3; + }; + }; +// Summer + case 1: + { + _day = 21; + if (_hemisphere) then { + _month = 12; + } else { + _month = 6; + }; + }; +// Autumn + case 2: + { + if (_hemisphere) then { + _day = 23; + _month = 3; + } else { + _day = 21; + _month = 9; + }; + }; +// Winter + case 3: + { + _day = 21; + if (_hemisphere) then { + _month = 6; + } else { + _month = 12; + }; + }; +}; + +// ==================================================================================== + // CALCULATE SUNSET/SUNRISE // Ensure dawn and dusk don't happen in the dark during different seasons and at different latitudes diff --git a/stringtable.xml b/stringtable.xml index 6835a90d5..e92a97afd 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -17,7 +17,7 @@
Time of Day - Heure de la journée + Heure de la journée Dawn @@ -86,6 +86,24 @@ Use mission setting + + Time of Year + + + Spring + + + Summer + + + Autumn + + + Winter + + + Use mission setting + Weather Météo From 6cbc6f66c33a9f3a7cf668ece7a403a2b6beb090 Mon Sep 17 00:00:00 2001 From: Ciaran Date: Wed, 30 Nov 2022 10:43:11 +0000 Subject: [PATCH 378/407] Move coldBreath back to being a function --- f/functions.hpp | 1 + f/missionConditions/f_setMissionConditions.sqf | 2 +- f/missionConditions/{f_ColdBreath.sqf => fn_ColdBreath.sqf} | 0 3 files changed, 2 insertions(+), 1 deletion(-) rename f/missionConditions/{f_ColdBreath.sqf => fn_ColdBreath.sqf} (100%) diff --git a/f/functions.hpp b/f/functions.hpp index e79a8a766..5885dda03 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -39,6 +39,7 @@ class F // Defines the "owner" class SetFog{}; class SetWeather{}; class SetWind{}; + class ColdBreath{}; }; class cache { diff --git a/f/missionConditions/f_setMissionConditions.sqf b/f/missionConditions/f_setMissionConditions.sqf index 25567a5f2..bbb8bdccd 100644 --- a/f/missionConditions/f_setMissionConditions.sqf +++ b/f/missionConditions/f_setMissionConditions.sqf @@ -57,6 +57,6 @@ if (hasInterface) then { // COLD BREATH // Cold breath particle spawner for if it's snowing, or in low ambient temperatures if (rainParams select 15 || (ambientTemperature select 0) < 6) then { - [] execVM "f\missionConditions\f_coldBreath.sqf"; + [] spawn f_fnc_coldBreath; }; }; diff --git a/f/missionConditions/f_ColdBreath.sqf b/f/missionConditions/fn_ColdBreath.sqf similarity index 100% rename from f/missionConditions/f_ColdBreath.sqf rename to f/missionConditions/fn_ColdBreath.sqf From 471ef91bfb539dc2b864b08d3bd7799ca9722f78 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 3 Dec 2022 14:00:14 +0000 Subject: [PATCH 379/407] Account for spectator direct chat disabling --- f/radio/fn_radioAddHandlers.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 65d029216..586037257 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -59,6 +59,10 @@ player addEventHandler ["seatSwitchedMan", { // Just to be sure... 2 enableChannel false; +// Force enable direct chat, mostly in case they're a reslot - F3 Spectator turns off direct chat +if (typeOf player != "VirtualSpectator_F") then { + 5 enableChannel true; +}; // Set a variable on the player to prove they've got handlers player setVariable ["f_var_radioHandlersAdded",true]; From db55028122f02c1402e474fb6ff594a34fa929de Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 3 Dec 2022 18:47:15 +0000 Subject: [PATCH 380/407] Update comments --- init.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/init.sqf b/init.sqf index b43d1e31f..3e833a72d 100644 --- a/init.sqf +++ b/init.sqf @@ -228,6 +228,8 @@ f_var_viewDistance_crewOnly = true; // You can also tag a specific unit or vehicle for access to specific channels by setting a variable on them: // _unit setVariable ["f_var_radioChannelsObjectSpecific",[1,2,3],true]; +// This component is enabled by default and it's recommended to leave it enabled. The default configuration provides an in-game CC-like function and prevents issues with reslotted players and the Direct channel. + [false] spawn f_fnc_radioChannels; // If you are creating other custom channels, you must wait for F3 Radio Channels to finish to avoid conflicts: From cc0ff015cb3e113495ab5c55ffb184c27ec7296a Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 3 Dec 2022 21:51:46 +0000 Subject: [PATCH 381/407] fix system not counting Tandem HEAT warheads --- f/fcs/fn_fcsFailure.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index 8554ee9d6..9605603c0 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -20,7 +20,7 @@ params ["_target","_projectile","_isDirect"]; //diag_log "FCS: hit by something other than a weapon" }; _warheadType = (configProperties [configFile >> "CfgAmmo" >> _projectileClass >> "warheadName"]) select 0; - if !(_warheadType in ["AP","HEAT"]) exitWith { + if !(_warheadType in ["AP","HEAT","TandemHEAT"]) exitWith { // diag_log "FCS: projectile not HEAT or AP" }; if !(_isDirect) exitWith { From ad312a35e4f1d36f7870082fd89c90959e0d51c1 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 24 Sep 2022 14:43:23 +0100 Subject: [PATCH 382/407] Update versioning --- README.md | 3 +-- description.ext | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b543d9a87..a3be03b7f 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,8 @@ * Automatic Body Removal * Safe Start default set to 1 minute * Set AI Skill for all factions - Missionmakers can remove the cases they do not need - * Pre-configured endings 1 -3 with generic titles and texts * Numerous feature updates and improvements. See https://github.com/folkarps/F3 for update history. ## Versions ## -* F3 3-5-6 +* F3 3-5-7 * ws_fnc 05/07/2015 (with FA improvements) diff --git a/description.ext b/description.ext index 602bb082c..a5c77bfcb 100644 --- a/description.ext +++ b/description.ext @@ -1,4 +1,4 @@ -fa3_version[] = {3,5,6}; // WARNING: DO NOT CHANGE THIS LINE +fa3_version[] = {3,5,7}; // WARNING: DO NOT CHANGE THIS LINE // ============================================================================================ // F3 - Loading Screen From 67d455c6442dc4da6c2dba913b580e745d8fcbdf Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 9 Dec 2022 00:27:34 +0000 Subject: [PATCH 383/407] Add special effects --- description.ext | 26 +++++++++++++++++ f/skulls/f_skullsSounds.hpp | 9 ++++++ f/skulls/fn_gruntBirthdayParty.sqf | 45 +++++++++++++++++++++++++++++ f/skulls/fn_skullsInit.sqf | 16 ++++++++++ f/skulls/gruntBirthdayParty.ogg | Bin 0 -> 23310 bytes init.sqf | 7 +++++ 6 files changed, 103 insertions(+) create mode 100644 f/skulls/f_skullsSounds.hpp create mode 100644 f/skulls/fn_gruntBirthdayParty.sqf create mode 100644 f/skulls/fn_skullsInit.sqf create mode 100644 f/skulls/gruntBirthdayParty.ogg diff --git a/description.ext b/description.ext index 602bb082c..e24c8dba0 100644 --- a/description.ext +++ b/description.ext @@ -123,6 +123,19 @@ class cfgNotifications // ============================================================================================ +// F3 - Custom sounds configuration + +class CfgSounds +{ + sounds[] = {}; + #if __has_include("f\skulls\f_skullsSounds.hpp") + #include "f\skulls\f_skullsSounds.hpp" + #endif + // You can add custom sound classes after this line +}; + +// ============================================================================================ + // F3 - Start of Params code blocks. // WARNING: DO NOT DELETE OR COMMENT OUT THIS CODE BLOCK @@ -248,6 +261,19 @@ class Params // ============================================================================================ +// F3 - Special Effects Parameters +// Credits and documentation: https://github.com/folkarps/F3/wiki + + class f_param_gruntBirthdayParty + { + title = "Grunt Birthday Party"; + values[] = {0,1,2}; + texts[] = {"Off","Player deaths only","All"}; + default = 0; + }; + +// ============================================================================================ + // F3 - Caching // Credits and documentation: https://github.com/folkarps/F3/wiki diff --git a/f/skulls/f_skullsSounds.hpp b/f/skulls/f_skullsSounds.hpp new file mode 100644 index 000000000..ea4c040b7 --- /dev/null +++ b/f/skulls/f_skullsSounds.hpp @@ -0,0 +1,9 @@ +// FA3 - Skulls module - sounds config included in description.ext +class f_gruntBirthdayParty +{ + // how the sound is referred to in the editor (e.g. trigger effects) + name = "Grunt Birthday Party"; + // filename, volume, pitch, distance (optional) + sound[] = { "f\skulls\gruntBirthdayParty.ogg", 1, 1, 100 }; + titles[] = {}; +}; \ No newline at end of file diff --git a/f/skulls/fn_gruntBirthdayParty.sqf b/f/skulls/fn_gruntBirthdayParty.sqf new file mode 100644 index 000000000..86aa7faff --- /dev/null +++ b/f/skulls/fn_gruntBirthdayParty.sqf @@ -0,0 +1,45 @@ +// FA3 - Skulls module (Grunt Birthday Party) +// Credits and documentation: https://github.com/folkarps/F3/wiki +// This component creates a colourful celebration of a late unit's life. And death. +// ==================================================================================== + +params ["_unit"]; + +// basic setup +private _pos = getPosATL _unit; +private _soundSource = "#particlesource" createVehicleLocal _pos; + +// create a particle source +private _particleSource1 = "#particlesource" createVehicleLocal _pos; +// attach it to the head of the victim +_particleSource1 attachTo [_unit,[0,0,0],"Head",true]; +// fancy particles! I don't remember how this works +_particleSource1 setParticleClass "TestEmitterEffect"; +_particleSource1 setParticleParams [["\A3\Data_f\cl_basic.p3d",16,7,48,1],"","Billboard",1,5,[0,0,0],[0,0,0.5],0,0.5,0.01,0.1,[0.1],[[1,0,0,1]],[1],0.01,1,"","","",0,false,0,[[0,0,0,0]]]; +_particlesource1 setParticleRandom [0,[0,0,0],[0.1,0.1,0.1],0,0,[0,0,0,1],0,0.1,1,0]; +_particleSource1 setDropInterval 0.01; + +private _particleSource2 = "#particlesource" createVehicleLocal _pos; +_particleSource2 attachTo [_unit,[0,0,0],"Head",true]; +_particleSource2 setParticleClass "TestEmitterEffect"; +_particleSource2 setParticleParams [["\A3\Data_f\cl_basic.p3d",16,7,48,1],"","Billboard",1,5,[0,0,0],[0,0,0.5],0,0.5,0.01,0.1,[0.1],[[0,1,0,1]],[1],0.01,1,"","","",0,false,0,[[0,0,0,0]]]; +_particlesource2 setParticleRandom [0,[0,0,0],[0,0,0],0,0,[1,0.954608,0,0],0,0,1,0]; +_particleSource2 setDropInterval 0.01; + +private _particleSource3 = "#particlesource" createVehicleLocal _pos; +_particleSource3 attachTo [_unit,[0,0,0],"Head",true]; +_particleSource3 setParticleClass "TestEmitterEffect"; +_particleSource3 setParticleParams [["\A3\Data_f\cl_basic.p3d",16,7,48,1],"","Billboard",1,5,[0,0,0],[0,0,0.5],0,0.5,0.01,0.1,[0.1],[[1,0.716538,0,1]],[1],0.01,1,"","","",0,false,0,[[0,0,0,0]]]; +_particlesource3 setParticleRandom [0,[0,0,0],[0,0,0],0,0,[1,0.954608,0,0],0,0,1,0]; +_particleSource3 setDropInterval 0.01; + +// yaaay! +_soundSource say3D "f_gruntBirthdayParty"; + +sleep 0.75; +deleteVehicle _particleSource1; +deleteVehicle _particleSource2; +deleteVehicle _particleSource3; + +sleep 2; +deleteVehicle _soundSource; diff --git a/f/skulls/fn_skullsInit.sqf b/f/skulls/fn_skullsInit.sqf new file mode 100644 index 000000000..b028e7d26 --- /dev/null +++ b/f/skulls/fn_skullsInit.sqf @@ -0,0 +1,16 @@ +// FA3 - Skulls module +// Credits and documentation: https://github.com/folkarps/F3/wiki +// This component initialises various special effects if they're turned on by a mission parameter. +// ==================================================================================== + +// Grunt Birthday Party - yaaaayyyy! +if (f_param_gruntBirthdayParty > 0) then { + f_var_gruntBirthdayPartyEH = addMissionEventHandler ["EntityKilled",{ + params ["_unit", "_killer", "_instigator", "_useEffects"]; + if (_unit isKindOf "CAManBase") then { + // If running in Players Only mode and this isn't a player, do nothing. + if (!(isPlayer [_unit]) && (f_param_gruntBirthdayParty == 1)) exitWith {}; + [_unit] spawn f_fnc_gruntBirthdayParty; + }; + }]; +}; diff --git a/f/skulls/gruntBirthdayParty.ogg b/f/skulls/gruntBirthdayParty.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a4a73ed306b1f0220e30f09f3ef3cd7e8d3f1e5a GIT binary patch literal 23310 zcmeFYXIN8B6fQbx5FlWHfT0>Xp-Bly6GNy8y-E?KHvws4*HEQ{^e(-lG*Q74dJ&M` zK|Vzg5F3cy?*{$OJ?H+qKhF7epF7WFXZGybGi%C?0Kfot2*dxRvAQXR4H3aeZRUwj&ExmRK zz`9xE^>ZyJC~-U?84CKju4$CGiYRW9VPOcyszzBHle zdXPdJk;Ote)Flet(2nHJnVho;+HL$%ta+Bk_?`^QcoLGwDiPnCVM!q|iiNVNuk%|a zQzW$?6ok~>%gS;~s0mG@Y>2uWlMM0EX%xl^D^rr8a@LF`ULeHM(pUQpy-89VE{Zi` zEY;?KP8t!-+sq8i0YJx>VB?`tG4)WO2mriTGWn%svWQxm8=3o05jyy20BC_2@-56@ zlc>>zjM1d7h0V2T6&suV^G>q|5l3+6I;fRsSe0ABi|azUW09=(2!NwQq%YZphW!tC zfUBfhta$7C)sW;!Pc?6;-u2Kx;pug9fYkbWLCC0@M1Dx0>PA6Ge6Xj2H@#dz2uGwR z{%@+NXI=Yj?Ll6jT2*9_K9*iCuXSD9S7nBt$K6_~<}24rPYJ(XC;Q7y(^I2r^df&Q zwTG)h0!u2p}D%r?hygu7r>d^8RPJzwpretBqBO397;w-YyHr>c#pDlrt`u zb&GnVf|+X!%F1q8Zs9Vl`^fmhzdc6+AQXkMG!%;d?-DB%gLNIiR~1AsOVyN@#w!lV zvUCX?2BCqwm?TlMBMOlCt(=0k1l?>X7G`OnYz zpULun@#Wh863+|#>7pS3Zw!;m4dcrVlV7Q(i9$+*>Hy$5kS59aGS%c)hH0YYta5VE zYx`19-%78`wbjr+MTiGQ4uWLfOMK-^eCbQIQV~k2heK(l?;Xkf=I!=7|8G(5kASBF zFm{W7@D@K^z{&Ikb{usQy&C(9KF>#dvO> z)Yq4&Uh&k8xc?s0dqi*O|4>{1C+PkE>-hgN0#v$Y1dQ|_OUYO&7lc>tp)^DT@O)n`KPcKGS_wD)s(Ta;qJ! zcaUjqLpK?4|7G1_(H$q4*w{Fo%nFyxtE9iXJ)|iAUm<&joXT3d79Ub1+R%**`g8@U zt*yNy{j3=kcwl$XCl)~0@y&jVbPd7APgmH9#p#Js360}XEQb#I0HsROLBv*KtcK*p zh04*qeWFnql9*UU2Bij9ZfS|FiE%EqFW)i+4(;9%ea2Wj;ZSFll z0k}heiqpmSVM9zQH5fO#ky2qDudq>&ZmHOp6EaH1^SBMGZIovu9#|Wel)eLd0$=gR zsGv{e^gL4vUM%Y1wTuaR5l#TCSLyS*bJ@T;TtquMrXCI~Apn)^W={v8$SXe2-6wB@ z4rN}YIGGM~kwkpu;I5__MsJ*8lYa2v0As0HF8VzkIh$sg_)_mYIxv4=J9*wIrxH(R z!H}H$`~m(RJZ=7YwOj4YDC?7S6tlwXYHR%#=%V@o&IpR3e6|LvcwQEn1DQ#s8*u1| zR7+-|3Ji&YkIJw_(#0Da2mn&P1cl*k<^YCtIYHf`n%;Xmszj9RQw@FrXX3S|?I~NkVWRKtRU?muNx3|Kali+ZERN z>Bcp(BqL3szaa9!c*?L;T>q02i#m{pNH!9Zp0eC32stPhWlq5thS2kb=qXCgL7q?) znl2+1Q)={g>9=%r|K!mxnQ4{>Pf3y$8P;^h95hrxuZn_?MpF(dIADM!h3TLIdJ03& zqgQaikH2|_HRTzWWE@&JE4(^-hnxc;1HUf1449-5Z-wSZAS%aAHE=f6hdkvU4sBZbagd~ujpbo zXFypvWy`YF{6ry8)t1k?jO~<(SGrgqwACMYfgum zbDw*QR6L(}DKyJaFr;RmJ*4K2v&k6$H&%5nKaKDHv4UgIublCZ*%gEp49!25%k;pO z)I$|(&t2QENxu5|c<7V&69qO;u+gjq!}FfE4~pm^ge!YY7q;8gn-ts6+)7Llys~xL zhEEBSG1Q=E>X~EYZyP?%`+Lnw!KmqRK4wT{@4{S*L;Z~2xwh&wP%zL2v3fn$mH(h6 z!$#Blm$zz8bNaImUs$QtZ=>I_6^exQB>U%}d_ZMPR?%;l*|XQ_z4}hsdyH4mueDae zdh1`}A7^GB1sN{mS{U9Ad1!wb_UK$`bAT+B#N3p{OUGvn$@5Pnmg$QL)m%MfVs!HT z!|^n2uk0|ni3gt`sAsj2T3OGeF8_M>j;b^jSo`l+|5TQ-(3~|Ha%pj#__aLu6PK4i z`SnszIxz|rL#zO!Q^h5x^VTTf%L94%)Q2w@Ua=mICYd?qI;9xCeEMV}U)JPA=|FXe zPn8Q+so@=$%n56v5<%@{&B)DYf`nCt*D$8NZhm*!U;5#!!@qSyRkUAEmoCW>UZGnO zTu>!OGTgx3!hK*X&iL%2Z*(nBgXHC_2?otds8_0}7-B~&8tpDM{A-+RNO=|$Z zE`r4%**f>9OgHsqLK-VNDo%S!&0K(E;;y3ffQRs}i;qk91zOoItSr4fLB3@Yo8hli zrn2q&d}0p`u5tbldu_T34@|%mPLhHj>3&9(LYRrxu!0UKOXf5iI>5A0B_G9LDAZ=3 z+uk}RdO=fSMZat3wZU8OrIz%qPc6&e-cmefnM*v6O3KOaAknSQRNuvw^);W7p6`Mp zs}6et(O0SWxA~z@SY|#fq&)BxO3A(!WWjTxGjC;!yJK@C!6IYdG$-*&#m`f@HSp*y7~aV(-eNEse++|qogt8ogqVT z$($%Cb-y5kBNxW(=%R+Nx*WMfEcifjM9iPg0-(y}W& zZq(P=%Ag>BQf&OuHwn%;y{W7c#RPfvkH zimUVSC0qlkBsG>2YH^yR7xYjPFKTlcqoypoY#ozzZIG<6%^wsbt^6*)ypy`QC9iSH zfwRukY4pLPgnU7i@V(9l9@xPkt7Ax+m2dk__P#IC03}TXkp`YxL3P=mCDEkl(14U(5 ze8z6EuN%*&$)Egb@#Q1yff^4HrT%pZy^IjgS8!FqeO9KZKsZ5fFbj(Mku3s1tyvJ6 zb`ehz6N;W`)=igjJ5tpk7R%&+QS^{e`BoYH!=w{)^*w2inUysr)6CZ(Dng2cIKI2+N<$Z;uO8%b5A* z`;f5w_9Cr#!cYYF$v&3d8-)Wy&1hP6T99dgpveSb#3`dZb5KV9NkTU@Sz^5R(z=s4 z6s_GLuz%D55H*?0`?xKq{V&P!04kwHWKlTan1X6Q_Bh9GpiTM3ARe2KNyhti_l%dG zh7Uh>8X_#^-cxdxv33vg3BDP#8rchVA>(0^fmGD}%YB3iOgS$=ojb3xGBi?}vh~vE zShsJ3`}d%lMa>0*#Ya^_wvFCoM~HS8jG@6KLdsl10i?PBNUl2n7&JpnD^m z$Mmu~Y_Mxq8%p0U|tXlhuI+ z4cjs;bVrMvH>2%pYaUhG_|3mkw+BHl)4tdKk#`tBHcev_kuheGE3V3A&cM4_DU2;Q z#JZ+B<0}^ta(bI}+3Z-&PJYL4Y?8^+!a4EZd+rI{%fE6I3Pb$#kX-#%DcXi93NZld z9)HR|N-rd2@Fk(pUQJSsvogLfH=)eiI^?dP^c&Cj6rcx1pX4TnzXX!DIB%2Rm^!FJ z{Y>Skf;m9%3c^XCTuoll&PMqr6qhAn12xg{49HT!#6FYwjZGLtlSG0A)PQGTJwyPN+~TYgxLZEk&)ciXQN{A8BY1N6%quuWOnk=x4yfYfPkdCT;+-e&&N(6^St~SH0=GX)yn5h?T@WL; zB2XAc0#h0!a6L!pP}tMn@+=hvENq`0@E5VLeV(;jznDGt@PWo`BkQwY44#uGE4Jlo z%FON?O)59C1g}=*=v7dB5^w#}kA))a5c_+uy z+Q=<9o^v_dW%gsW;Q*&~rvc<0hCYho_`wHgYVzlxaNzppWLUHL*B(69Fl|}Y!ZXI5 zYJ2gc7Ftde{e3s>{}$9Ku07<#kL9A0FcKxaH1;Rs;mhf+CI4Z|{SieHMIt>6g)% z6RFGjj_StKKH1p|a>rTDXQNGG9>Hi-9j0(!Z6AIe)J-%%UqHhg+k~5Un&qZmVoY&~ zZAx{Q6x!|i&VOt)*;j~sM_^4GoDnD~moAgcV*r+|W!8-5^=Ym`@Q|5WZ8jn?q@5E2 z(%u&=5gg5>Ot=xcNok@ra<@9C;KFw~$CFVw9d7beqc}yIsx|O>>!iqYdvo-{bGjV9Wv4^KM5JBg;#g z5bbN>%kY}IbP;ACub(K&tuAgRW!dg~Q@;4Yzo*g?bvSvUAr-RV%}FILh@f`yx^ONw z`j@Bb=W93^+MEVXYm82h6a-8@{h)Z{+z3++j|88 z(~TNTvAi`&+JJ#5HxwjRLjNTojTfs)^-IkN;6q$oAEl3=j%{BG-T2sgQ!u3pw&8*d zd49Zc8Ip<#t?j#L;}emEVC4$i;@y>oD-!#!8Z^XgJ0)u# zuQ&QvuJ~W9T-97@PZySgNQ`sWC+Ey^Tw?yeog-cFiRrw0qm_-F~UGn0q z4Z?L0AX0XbX2WnejT;cHr37TOWlD7I$6%+xP%)6Zg+ZQhE`TyIu%VD+;QE!(X_Jmh zlMBVyuAjddZd=}=ys=m*&|jIZzVpi9_nN^*6F6~PDh`9WNnbjV01R+M^w5NY?dUF) zTta2P1TW#nhq?Lf4#tPe_jeeZCQr{?I6~18uFM|hV2=|aDrLUakikdJOX98b{wWn@ z^gfP1Wyjp>P$|oSFv0Kf(W>5@grs_Qop;$E6a91uo#!t1!|E5S$oB%wKHeI1t#T}1 zW@Hql!sx^DN&aZh7rTX(nzrK^Q%-S)U1M_U`75ttKbzk3uP_x9)ny3Nj#u`<9Cwl8 zHFBXZ-ssel$UN*4XtTEilk?b6;-G`w)PSyzyWP!y8qdX=giY)u{AiYq5;tj)j*UgS zYkN$pYO5GPP<{6K`=JS@XK@w$uJ6WxUzxKCTN_mfh$k9BqR{>_4YqfOB_G-B%cyxn zRvnbQlyHquUGU_}Xwq}Jy^A-;rZVL^Pj)prg@i4vIlTP3zA%+7myU}e7ak*5P{(;Op#(dIjIc9I0Tjrg^&fTVt#bU$8b2qE?Gvzh$+;zOaW8H~$ z-QMCc0w(N4D-(0Iy2|d`IcYsb;1EO1ED`efJ_MPjx9bAEj$~vUi&Ryi%YdByL_&x_~c#?Axo(3wBEp?pUM!Tk~Nd1II^@ z8;!&ANz`O9fqnN_$%v0WqE*D^6!xYQJoxJP25L~0f*}ie`u6T^NY*;*G@IeRVZ>T% z{Mo`(no&8tsN3-VkLC;>0253QjL(0N_-OwP<^Db|cfKIy%dNq)W?WSaX~%WgPI$Z) zN~6%72M1xT5~k#%B$m!Oa%5e6obCFh%k!Px&bIu8?M}mYB=SaHjds9p9Z{G~CX1^J zd9<`&(B)AoPj6u{!N7y~yKCaciEp>Y%64phxfr`g5j< zX8Sug!u)V|@poJMJrSeRdN)v@=iCEQIjt#N&Qa6@o#`1aw^E#ehRt#k^=&}cowc^VQ`Qy-OSiR%y z1EC%}jrCF%u-6{k}s3GIbE4*%_B6KQ`)_~Xc+`Q*HskMR9EB{ zm)^demzQ6fmXnv8pPO?%VYJVr-uDitZ;M5MksXDd=ac)I{=dIS8u7-uIm&HN8{zWGI{GV|IiYW^b z@*GjB=Bk(kH?5#eTuWSJ=y=nhflFYN6DYB9gKrO>&}L#24vquzlk^_U|yT- zDCn3J5B+_XZR3jDBG>FX2XWiJXC(f#^WO~l?hnk6FC2;mw-G#Jf_emZo zE!T~-)E~BH@Qf($5iHl*of^imYtPYXN^;TG=1;rJPSwBl!xFp^g{EgiXf_p;n_+Vb zOO@=hpop$5^X=@e{7S5tz#ORyCf`0gnv~Ktu-$K2`PCeH+3XyIu|lUJ^?cVKRSs6| zT%lChRt0Z?!(~E{47Z6aU+(x@zQZFIo>b2nk-F9GGqUx10taVE9KlFtJ!$ds3L0#( zGcb56I^@$AjanJKe$N^NDH_~KSMOc3=80qN!->cW0}}^^d-ksKlEq^0NUOHZ1nZ@g zzNRoR7o|~WZYJT*nM665c#LQBb~PPeG^V^eGxa8HWd72tgz)i}^9?`#xpN35$TU&O zBQ9l8vhf#5Bqx#>HN*-3rCXKFlj7I278-9+?>v}$(mgHKU8_=3dLuw=W8=w4b>inK z4)a26DOu5O&-|t?iMR#4Rl|`3PNqx?#~NqM*nxI(G%ubC_Z68e{^V87{@YiagGV3F z{3TL2^`e5qS2*G)Rme&yL>&Q&5=JXcu(=n1-+RIz^e^<`rr$!8OYi3!avpKdlrCNX zbGb#4Ii?d$r00L-5q&742k7KT#Lj(`Wc|kP8;egQ98)>|b?BpbjjoW&y`Of%t`~+E z#9V|pO2=y^V&oH*sBwG{^A_f*bG`QtoAN^O;!h0Yxx!Ne73VBf^PZ2>?E+pVb9l2D zF(Ty?1K46v)HnNn`vU!-%u2%Ol*z!G=Nhkhjly_CAHOzUjB@=ju2f6t?Wfk)tE=c? z)H9e0tN+4>73ERYv+lJEQy+2HYj&^7KW$d=u!#(D(oL?Alnm=zh zEA37K^CB!y!Kzkm;gpyaXBAebQ8alxEc$5r^|L2)-_CcOEgj_+XS6HUP}yU+MNZ^B z${jDBRH2=GVm7@Q835c+giEJ}J2KFvj+W9cVmJVqjK1IJb)V%ND zuLnyhO|4rWgz(4bo~kfaMg5_bIga~is?1w?zp$X2oFS7+h7u+!8aq4h67gE9`T5W$ zo{m{}jO$avqJF<~e<~SEiSg$NAAT?FaGIsrJiLI7d9gb#;u@+I+-k)78$-Axxkb*0 zm$_wd`>RNOUrnEA6VqTCD<+m5_4cTLc3Mjqq zw8@_zv3w_1L{ua{Dx{XW6tSkV=?&{L7rJ8q(1~V|p(P`aA?D}zu6Ef;3%IB@#U?MQBjCEkxyx_WAL~}xr-PH(1%Uiv&V;CeotT6 zY{$f8qIOEVgWo?q{clECdqFtY`67fW#$#Q(W%I8*Hgc3f>*d2QVq1L(C9pJdElm)={f!8OpkXOH|9!sC*m)=9Bu*3IihZ!?F<_##RckC+~KiPYS>2u z3JJ^IHLV~?xRQ+@yXz&3B?>}1T?|MXlQG|(g?YBvFoBi2wk`2@k*aMK_G(Bn@0K2; z2j{5vZF0JgW-m`@cqd}9SU!K8)B5gT%BrPKhLwkEI!u?+w^j@IUblSVCsz8L_8u0# zE0i=-JyHOXXRL;$Eqfj_SE){=c2}_bAwxcEDxvtAqb1LWYgI0vWEtN^5L=G=EQW5l z?C{q2vQgfud!9=5FN1d7V*=l{nmsRkq%av|7^Y;GEN=e~y;|eZD7&OF|xV^8W?mam$Y_D2}=dU69|7>qC!I_Ae#uEZup< z_|*N$iytaU0TujS@$e#6G#kZBth)1=C4C6v=%g`1IASEZMrJnWc+K*U1yKk6Yx*|5 zc*H_gRrve1e1H5n+9E4+^D#6pzbhw7k0NKn&~3iJMm&G&+FB3uC!cL8qE>3tXTX@p zmS%$yJ`Z#v*oE`bsestJ7kd#J!~}aVaOhvStiaslf@7mGKe-c9bcL<2gDZ98;>jFA z!FcFH@3TvA7VvGU$m7yQ^?3E?a;xT2kyUL~e~+@DMeXLI#3hr2z2-N|J4}bzOh#Fg zXp)t+NRnRYQ27;m4$H)*CL3nGvIuv*CT=VhwT>K-19u`@k3q8J#T)imUmw9^{NAWB z>TMlk0@?pG`IZbgWAsHA$f7e}>A(;1>vSxU@M>mCvDD zwrvRUB(s?&_0!!Tr2P>@iNmG~>HveG>u8PF0`H(FU&=dw7MAiuB1<9cIt45yQpgWz zH2zq>77gD7xhzy!{tx+iiNr z*Q;CEKaSXKE8Wu;}64)&vAz&u3Qj$#UlH55T%jnXPKj))@@v&<^l70!}FjNeXv ziS~ARqxdN(VioSD?$vt9h{2mF%ZA-e#stD_;l`k963?@(*NHoS%}@KPUJ}*)?E|~R zTZtWuRlijgPjRUnQ=@O+ z0y;(IFor^?F30XSsW6vU*MbL}lQEM~fvN3@Qs#=TG|TY^mzv!V4gY zd!=J{bQFm|a^Cjmi9Xc8-`O z>F^VPT&#PlrN2m=if-8XD*9>CcO1ng?WZ_mV`YU`gw~(?SK|!EnJ(X00b}oi)$dj% zeU8UT(e}nPmK4+9)QOiYa+5M?Xlc*SDESTr=Sr=(2{|Dqs$K0_L^W^B&SqG?uT6ym z&wI!dBf1T>b@Ju6GbA>-gLMiey%(UaVqt7W)}*UV@=i(zosD0mmyY4zSi^ zSncq$X?d=qHArN_$A`?zkKC6%-MW%hn_9sGK#Gn@n$&y*jhlO7(?X)a zLftusYEKwB16R1)pr3etaj0yTo7Nln?&v=w%$&g_oes7}5(p;FD3th9M3QFkMNg?Ua<0R9}3H51)=|JB(gjbgFL3jDkLt)xk(GR(Cz)o zGYrd%qeu%RbpHach#B7qee&+HtL}Y0FWUEBot&7FE1en{DWv7$z8lILZAaC;70zH~ zA6+RSz~w<+*OU8?IcEMj)p+D>jWhE5-14<3;pF(crlpO;8-<&tbq%EozYotbr^zH{ib+?ZwO+I3 zAFZ9d0M%WF^8{;SpDw~nbnQxW@@bM&k>T+)&5MYr2yNVp$EN6Vp(6kt-A*+H#4pQf z#GT`J7i3uXS<^Vqfo6X5jEBlyZpXJclMvv)LlBaG4WENU5C@9>GUVl!6@ePDlg=p`psXWor9x{p)3Nb0tqhL zze)v-+h&cPPTh9&O+Gen7HIDz_pAM@TFt$_{!r%M)+vIkhO)|shLF*cf2Rl+(Zm5~ z@75&0)>&2A8(rQX-WqykZn;EjzjIAuv2cynC`B0N0}F3&-ov7vrDK^QUzttGwcJpm zwsCd2KsqffM>a$QH)C(Eu4H5YA$Rv2_Vp269gbS$dcB3tz-#>6+FfE zCFywdH+%%bN z9Y#bThhR}QzJiq@%75evG*y=>rZpzv#^h~qjaD0dq(oG^#+gJj)KJ$Z=k_g7KE_b_ z;n?2J$+4^E)r!>KGS(667^0JL+CB1x9$w+NOKIgUD?rEDIV7Fq&ARBcZ*Nmi>g)UY@cc*^BSrd3Fu1_R zG!`TC$(>G^GhNj&b)|tCQi)Deur)uF^l-vBZ7m=xcVi^j(mB8+88=u;WVPYXl^5kP zoxzvvgP%T0gSwEwOp>r+MjE0ZRei^R$kffkyp;E>*8}E!1Q(fP{*a+>-Cf~knd}1l zHhIE2#yemau!@4;(zaP00>s~%(JK8PC3iL2vP@c`pB_ewOIYY}q-Z(UDQ_xSt?JU% z30>;ZLFI&4+W2KdUCP^m{0;rzp;3K}pRYcXajKT=l@Dtm8dJDp$9`iti5~e;q-Gd( z1YQMhQVTdGuk7kffL(?g4*4*JF9P%{4FJSD!^@9kKslb>#uIG?PqNWOQ36}pUG)>axWjsPICP82Awspbj@iGZphz(w5GrBa!>=K%;>KwQOB9;-@GbPF{Q7Y*|O-? z8vnmhDm>NKnaur<35iukB^#&5Gs-sM2sN>W`I)k>#e~67Y!;O;dgF|dZC;{)7 zxlbl3Jo&||>s9i_U9->>gR@s5_R5s%yoEdczG#cs>Zd9kL&YF&awhrZ33>~!p;DhH zoFUG;FIuuwMbGywbXp%e#(v^)7p=!YcjC15n{3SvhelOuS^3_$ z_r>p?!DGT~`udVptybX$2XJ}SyH5Dx0~F_9)e3sWRfH2KRYzG+gRn)ZL4MpvD)SsHFf-*_L*z z)cef2)-jyHA1?NcaB=^jcs>k)(&x!alb!6B7g?N+n!O42@?4g;FFa=QG;Pw#`~J|T zao$N__yJ9wWR9QN%gLdWC=Ulcd5*2A?)CDt>Iq6(g%OQ6f{>4Zd-QNE%fyR9eOEQn zsNFUyL+JaGXiJ6f5KAr?Zd-|KzI-PeRS*5qmgGl>Iqc&=z}-^8Qjwd#R@Q{i3I1EQ zSpPou9WP=6NYeIx-?t7}AI|Ab&3%Hm1O*VV^5fpDiNNf`BFpRqTcwt7sK+i>R;(F8 z|KgkG2`$g$3w5*#a2cR3?L=MmsSwx9OYlid^YQ#-J%u;f+A`0 zXOqm%cW?Ob-Rg)O=rn(qb2i@Ke&+yF zO@zBx$aG9iuySDurB`3hB49?VuHsgU z!)ZK$jS2u-B)wi`;sy~taeZkgL|g!F7&5r@)diw?`-$o7+reml_vcVexH+D=uy!!$ z6{H92if$5y8g%m~DHv#fwt|G|;6GR0%FV|HR}Lug2X`{nzECXzBzdT|8oY+OIKXPI zTHpW!5AnR-U8F}c5wLq`bOD%KhCYNLp^S442%_a?%~giEpMC|t)JB@aW8PeIQGH^3 z_5#49BytcTmnCaylJklnBD?^^>wp#B(Ue0*;NKs2dmgr9 zSKzBcz`%^@vYWoEA?QJaF?57EdZDCDm;JB^%OGp|<$G!FiU|`-KbORw6%3ddyw!2k zY-E73-$oC!40?=3+LoxF6hS8BucA2SyxDT5t;=)gj=ZUS=6R;nhe5KcMwVef`C|~% z+=ZuC_SnS?62reyBVn$AoRF?JuU78EsR2%R;f+U#NT3Q<_}VHB9?NO<`$_f3VP3B^ zO&_Z{Gr6I{*A*%(HZKCXX%$-uSEhfTDNi5s{Smr+BG1CRd#(n|cdD?Gb&IpJ*{hvS ziWI&lSiPRImlrS{W;SFoxITr1FUaje*xA2GMTSu2(3tR3`V4FWGX-0r$d{?ylA(Tz zayOyAs;nRUUpYv6kgqpF6wzr7U8`4OehM9-LVg?3{n^1FXFSC+*%v7uvMsI-cHW$w zEs&~S@rU_E$VyVIjHmGQ@j|Dn)|HP#7Er9uVuUY!n6Ip?uA@bq4q{+!a{lN-X!~)O z%oD771~7d_bOt-^y?XYhwpaZ^wiNroS@%UlHleY%W!f3E!ve5nl7=pcafaO)tqeY# z7*a*?GV1xx60wp@(gm5;0w;X+l-P+dEsfEg{I}4`**!m&We+p=n$h@{?MYVTp{k+K zL=nTnvKd{I&a$A`Lm4|KcqK3D%WnEzgbn5^d?l|#r@;nBnI8y?;l_XI=`8r zTMvZgAF7LG=2EWIo?GSs$qXy%g2vB-ruDmhP{+?7(I6?-Piy29xozJrAylTfJ^xsI zNz{3=th&5nj{dES8y&V1F6H>e1`9Oa$18G8bQ0!<^lATTXFng{sP=o?{(@U6Cv~4W zhKv>xNpCThmheht$O-A$GVjhz=!Y}>P$ogfLIZ*cXi_N`#|<{5Kvr%>m++I?<_3Ib z+F_$XklR_Uou#Fn60*BgQTkjc zU0F4$pL{8PqWpLVwE@jlW**-Zl-y0Hv-G1p#7zhNEN%K$*vmUs$z9eJc8Wc^ucX(1 zm$`&uWjKg(c6>+EEJ7*V$n4w%d0_G;=oIIs3;bNJ{P!yFl%I}{%{?)1dh}y+` z|9SM}SBBh=n*`@4IqS#h1g=+itr3b@?Pe{^sORBRqSJ>RU7dwOTq~sRySbf#rA2uY4QcqgYolzrvG#jt0`+M>x&8_s1IZKOKK+_ zY1&Z0$o8KjA@P4Y5)NEbn~|H97RJnXsR$RBeP!pwuKH_!G7=~A~)E80dRjx&R5_q_YA18v-ENzRE z%(y2jaU;oabECGcWk^O-Rnr1R#-eXhGoM<n$r`uD}wZ|lKc1`1cjZ``j2x-@q=o*0g7d--~1e(WzDLh%z)MW5xK`RtWsAK}YU zn5(2?*cGmu`!qG7Q(783e4OOY^GXAE3LP@v^>e>YJGr_gux-e&ibJs6iN5p9#>~uz zGolUhM0&l?Bn)Em{Nvq1o>fhuWkmX`NdzIO@~NCHRSSLb9&n(|L?xTolw`dTX#hLywU2Lj)~ZjOIw#{|4iWzB zEr#l@!9}%{JG~#TcI(NTKw}tk1BC_0+gOOUE>dN!RAs~d8Qw+3YbEwalPPv>ogB~8X8Y!>w zVxT+k1o_&wE9b)3o(KFZ6?Vvwu<6xnyNJ;k`)A?zv2F4pW8{bkIFv|pn~VB5u3kd_ zI4TwbsLhm&AmV6SIGR$jTztieu8LKxW%Q5EqxPjTbNcFq`vcC931~!buxT$Aoy9+nHZqtaRk*szN%uTXO+^xHokW zc3Q)Bq0#|l_D`PaDEJP9v>U{BU;9IrPQCwl_nPr9IIiXr-0tS2cuCz7{Eyc&LKQk- zE|&;rs)_C^U9=u8)kQ7jKX*_g<+c^{ejmVsHwBdE58ONcp1|ej(?|WyemA z;TmP5n-Zael)Y<>?^ci}lc`bG~N4D$kXphU$j`WOD{?pwav#&WlqyPLesH}>E(y=$XB z%#bk%H58%+vi9xHe4?+qW43Q{N%k);OIM;OaM2xs$zT4At|?W^(q6?VhWQr%#x@mv zsdZ>9O1N8yPOYIF8_ikRms#Pg-?{6*sZ#1uaY4RYj%qG@Grx9$d7)7FJ4SuR9?#K$ zw=Xz&(ZSaRQB6jRb8LLfRX$Uku~guCUZIL>{v>2I@m118^GMaPcj+pnI52Ew^Ree5r=J0Dxer;^~FOH2#)+qkv-|gjh z#N`#=L{Q62#Lk&MXLL?f=)+P|k$VruUzQ^P}q7hPu}32|v>pCD68J1*Z{6 z3#gqM22NzSQl?fXMGcEqr@B*78_=oN51A^h6dXrf@yiS(lIfp;nyb#hzA6_isC>C_ zFA?p|ts0&jaVT;?F|`dqRB@1G7!{5^Exo>O#uyk>@Zql0UIijPk+lxNxqA~9C8+W1 zeP)YIKyj(zgnYk6uC94hvIpD^CDena{?umlM3V^;vSigfVF7u5Lb`Z#aVD8jEz)Aj z*YmL-1g;!Di9%O_Mz0pz?Q&+_`5Rw~OjzJuH#^ZXMu=hO>T?-#b&DActg1->Uf@Yw z(^-^GK*f&yOmQP}j$*?J=}9TVkG@E3OP_lH2W+YT#zPq;0W;DWXlaPgnz$i)gI;zh zfAjT4Ec@kXYBdz^&3&FvzU#?)t7$aorWWCv5X&>vCkU2=gn-D1?|~Dk&jt#Py}{)c z`-`|n#JskBL~v>KQ>2{*Yn+8Ua+ z9!{`$Rz(hh=R@!hlb@lg^G74cLdb?9|5pGd6WZ)A4bgy)SBe+OIowa=)hf6e%;xm$ zUw{E%kd~yoN(u_#IDiAd03Hh_j}JQtap~{o&b2PehGN0o`C$jHm;TvM-DMa98s;Jv z+@jwCk117@Fek_$gAikk0Wi_lnV`RHP6-SUhL}j}r>79QJD3}T9aJN-CI%wq2XleI zg>L|?0WguQtZ4w+?gmK}A|y~nXp?aQ&JiRK0*yD`7=1ecMRyZmi<(U!kmMYILddy6 z;KE@+mq1J2jB|MaKx^${2%v8pK|l`R00ng*5CBL3UMp7C&8XL7J?pnR&N&sbvSGDj zW!;S8D%LZtpb%ovbOmT73vD(l zXO>)=JUw8p5lDwYRHq1i%hTEc)(lyungJ*ZXl@4JqGk%5HQS~Da7*iSn@noZ&_QI3 zz7iEoNkToGDqwm)n*#WI?G#mfWwy8}GM83S25w0Kz`+5)0RaTQO3u#T{X(>ReGC5U zf1xnAO3qB1F}B{`>#fB9^L_bJHt4ux0(1sF9h$KW1BfAp004jkq~>@MnZ$n7>A*n- zLdg>2&CGY#vdf3jm_|19GnFXBjHGn{<^;hZ00-xDn+5>54git0 z_|beZFb+f-ckTzkrfmoPIjWCgV0kalg*jeixjWs!hjVX4QxquPWp^{^6i!p3416IM=6#zyc$^_00Z7S z4*O>6m!dj*;ZJAM3$0b08GntfC}a6A#UJ-byU-kW7E4M=D4lUC3}yoWKpJ=G@LCSA z2cwSsK_WyNjhtvBBGVOPK!g;q6(Bm{LPH2pRf7~b%^(9@NRUhmpl)I~&<0X;@QqT> z2mqE2X~!8+R5F|lMU+A|6&ZZug1QijdOHB0p!*<}Xej!m(k4yBF3=bND2{xQ9FS0; zxWjk>uQkX0)suN55d>0Do(j&)KjXSqOHb-sXF3Uk>D(zeyKE*qfOgB`bZ?!jJDH1) zJ6!`w5oStq04DTt1t4=f0FW^Sm49m^ z!1mGfcwPs9tO8Jw8o(5?6cjLUA4G=jk%F?+Uh(Y@^h_BwtTqv(^@+2A%-&b`$H~{CkE&u$H zI1$!75^y(wf;1gL1ywTu4?_$w4r3@3cGMExEWWKoBw2(4GP#i#k#q_PLa(cbf@(`q zBrOUVz*vArCm{k65X8w50MG)G+d#ktrx_q(kHMgE2q3{XAOUU)XW@Yi+jCloa4LW_ z&5+oI`p&^hrvVL|!-fA!0g!Okp`#zbIWl~{m%{)IR)8HOXaF2Osq{X@UX%dY>`?x%Dv1yfXXCBTybaJ-a?P9V-W2-yk55T=EWM~u=q0^FKt z4U<(5WdJQ+en}8*8bq3Q;=QW7&`CyN-l8&;uz}Ak_Wdr7cf`XL|tmEid zo(I9uG%G2f1|anS08*$63IGLaJIP8$L(zp``2oOdJ_|qsZPUrd(uk-C-`{U=#SR{U zNwi>B>dawnf&u!C5{@STDw8TvqS*iepNA07vWr92TsBY%aGDo`2qKasiRe_B3Qbkp z6DJ=0O*SD^LlhA*jDgk>0C(1s1%RMfmf?8-;A~PPrv?lWZ&e(5!*;t6k*jG403iuT zT>wpRF@X_o#$hJ&6lu~JUi38(P&ImPXfA)z&fm~qU6uVN?{{zG^6u2jqQ1pUD1OyNu0e)Il zroVM-+ugmT_!fO8wo|m)*KN3F2Gu)N@~G`9^>Idh^kOUgE=HhHd``z z>KR%wS~R_6I$1dkD-T=2_{1G=dSa|o0h|IR7Y=dl08Uj5$XEc_RSQT!F{%I*Z*Y#{ zc1RM6z*5rz%MMBEs6{nkBjOhm4qpKf2%`_Fp-t_EmwU7u`@t5sQcg4>C~BqYs=$juH1CZUUm z%$DhdbZoYyEjT@yiCh;zQam#7VMLk-cyC?L$so;EMY}x$0H#v}jnB*~0H;yQU+kzd z{>S}j;%bO6HQlV8en(bEL(A6L%1s5>f zF~GFRbY|v2hCjwq;M7WS5CmD>GSCUKET){slQcg}o{);^1+m+;p7^jQtgEVgVm>Hp zLTX$%wnKm-(r3j%Z-L<_)YLWNFJJCZUH^EQL(qLG!7Q~|{p^`01T z3{78Ftc8;R1Sl|K?hTDO00fs3xG)V?-+bk!z^Q0_RG8xM|6y26tp;E$l`#vD zRjFPZYe<>Ke4)B1Dt3N!pAW|)IqIWP4CXP|_mKj~m;%Vba%LCIQMA>GOBw(Gkg*7> zEiFYuU=EQ%etUOqr4fXri1(%-fW1W)i0ui0V);L^g7o*jrfman@1?Sx1O#Y~ICZwz zd+hFah+8^#)`-T=2SqfZYk(9`ARyoX-bl^Fe=H2igOQ%rl^6u^V>R^uC2f{vI^}15 z8L1K@k>ewTV<~`EAuWuQ#uErX#sUx4(*5avUT*0^E|Mm>u_#?OQcXiomzpr?vL)j; z0%`;Rr-osmIeK?g02LXIOaT4HVmNsgP!s^g3IKXvKa3DXAhLF6@Ueb!b^8W0-qU6T zpaK-81&)9Q;$55t0-zW-0RX`DsVfR7fCHR|dX9l;#l!DNq1JTozET9#!=SM@7I9FD zXSfX%0P3o|CIAS)hmc?xS9Fs6QX$0GMr|$C@_mYnSVu?)3LJ1W1^_-;CH;TZT$HmE zb8g8Ijz}t({uXvy&f1ju)V6)9W2-e3Q;RB`{c${T^3+O%;V?fm86rkv;6#QoTZl+z zJ61exx)BW|k=?dA1puOHc2b%I07C8h6aX!jKm)6QHVm8XIjC#^AbV#40Fb*+2cT=9 z3D!Uw5cD*)Ld=!*vhTJ{NdP#KLFhaZxa?d1Zp#=coHIlQ{NE`+IEADFBp($e2jRp3 zo%wSX=eKTWD3I1*9&;G5f;0{QK3EOt=3VpfT!S!<%Za2@A=MIphmYa824!xS$RX$K zk&xUOpi-eiCML2Bhd-`)7zcxbG=WIeQYZTC9;6tcjSeyBq+z3rlg(j`o%0X?v~yo~ zLjizzPu2wh{R2-nqy)vHga!bUqfT(tN{*?10DyW(E_biD$(SGnf_YC(p{)RWQv|@y zpE7_nwoX8a^AF=PKsg_xgM#Dq=wRo-)N>VZ!OA^*^~I`@z)}x2h7ub9lQ3`qURbrv ze?x6JYa$F+yF*ea6jD{Q`4HBfs|aa0)FCNK9tpTJK%11-8K=pg#F%IhF@dc_96;tW z-k$vogaM*CIwqZ3iFDVQ-F+||^8ku!tfrvPa$sLUs#IENvP7f}>`ONx03e_vXb8~V z0Y0$BK&POI8-Sqf^l23gFs~5+NVg)ulRO22e8JE&Hdy}L;S2$Kaka99;0RT1(i+d| zGYpakJ9yi6m+-||+mb2*@CO4p%mK*(4Zc^k%q^$?;1Pny=1oCQv8POs%X-_Qx!;H^91)ng| zh3HoqLx`8iHG%5(`i= zpDUYFrA?cj%3n3ze!3d*U7|Uom!;{LlScwpDHMc^6z%_^tsul$fTKZXVCF=!wQB2% zZ7a9sJ=oFt#j5wOm?FoCNf-OuSoigEs{2Z)*RDMkLE;kW=+a!p#KkXCTHqNO0{k4AW1n2Ld0LbQsv^+ zSye>p0ure+Y2~y92Lw6fauGQjr!MEn;Y94b4Y?{daN+JT*=)_mS7KyK$#fv~uC$eb zpf{JJ*WY0gdYfdqF0k=>qhTv#e7EIe-K(rGn~c#l>RD>#uR$M}G5^A(l8`rKOVcoI zqjWhe8iieK#y@hiu)|Q4&;}p?4FLeYNB!?CUzz|8ut)vxEMH0h2VfXRV*oLP00Mw9 vgaCkeY|4NDOaQQ8!xIN{`8@AAZFA0X&cZ_3<~ Date: Fri, 9 Dec 2022 00:30:34 +0000 Subject: [PATCH 384/407] fix whitespaces --- description.ext | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/description.ext b/description.ext index e24c8dba0..d52736c69 100644 --- a/description.ext +++ b/description.ext @@ -129,8 +129,8 @@ class CfgSounds { sounds[] = {}; #if __has_include("f\skulls\f_skullsSounds.hpp") - #include "f\skulls\f_skullsSounds.hpp" - #endif + #include "f\skulls\f_skullsSounds.hpp" + #endif // You can add custom sound classes after this line }; From aa092522860a554923e3ad578b73d1e14e07593b Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 9 Dec 2022 13:31:02 +0000 Subject: [PATCH 385/407] fix missing functions config --- f/functions.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/f/functions.hpp b/f/functions.hpp index aaf841f8b..6e5e471f5 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -151,4 +151,10 @@ class F // Defines the "owner" class radioAddHandlers {}; class radioCheckChannels {}; }; + class skulls + { + file = "f\skulls"; + class skullsInit{}; + class gruntBirthdayParty{}; + }; }; From addc1776a9c8ccce225e0de2e80aab574468012f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 14 Dec 2022 17:28:36 +0000 Subject: [PATCH 386/407] Optimise FCS warhead config check --- f/fcs/fn_fcsFailure.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index 9605603c0..d5a4b7b3f 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -19,7 +19,7 @@ params ["_target","_projectile","_isDirect"]; if !(_projectileClass isKindOf ["Default",configFile >> "CfgAmmo"]) exitWith { //diag_log "FCS: hit by something other than a weapon" }; - _warheadType = (configProperties [configFile >> "CfgAmmo" >> _projectileClass >> "warheadName"]) select 0; + _warheadType = getText (configFile >> "CfgAmmo" >> _projectileClass >> "warheadName"); if !(_warheadType in ["AP","HEAT","TandemHEAT"]) exitWith { // diag_log "FCS: projectile not HEAT or AP" }; From adccf4fb6b795487397ca8b4d2585ee9e3e683d5 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 14 Dec 2022 23:44:16 +0000 Subject: [PATCH 387/407] Fix missing } in cfgFunctions --- f/functions.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/f/functions.hpp b/f/functions.hpp index 6e5e471f5..de0bb58bc 100644 --- a/f/functions.hpp +++ b/f/functions.hpp @@ -144,6 +144,7 @@ class F // Defines the "owner" { file = "f\brakeOverride"; class brakeOverride{}; + }; class radio { file = "f\radio"; From e558bba6168341400b508c3d06ca524e4017e62f Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Fri, 16 Dec 2022 18:54:54 +0000 Subject: [PATCH 388/407] Allow localWarning to display in different positions --- f/fcs/fn_fcsLocalWarning.sqf | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/f/fcs/fn_fcsLocalWarning.sqf b/f/fcs/fn_fcsLocalWarning.sqf index fca478273..18643b7f4 100644 --- a/f/fcs/fn_fcsLocalWarning.sqf +++ b/f/fcs/fn_fcsLocalWarning.sqf @@ -4,14 +4,20 @@ // This function shows HUD indicators when the commander's override either lacks a target or is in operation. -params ["_text","_delay"]; +params ["_text","_delay",["_position",0]]; disableSerialization; +private _coords = [ +[0.5, 0.7,0.5,0.5], // Default below centre +[0.5, 0.77,0.5,0.5], // Lower below centre +[0.55, 0.4,0.5,0.5] // Right of reticle +] select _position; + if (cameraView == "GUNNER") then { private _overrideWarningDisplay = findDisplay 46 ctrlCreate ["RscStructuredText", 4404]; - _overrideWarningDisplay ctrlSetPosition [0.5, 0.7,0.5,0.5]; - _overrideWarningDisplay ctrlSetStructuredText parseText ("" + _text + ""); + _overrideWarningDisplay ctrlSetPosition _coords; + _overrideWarningDisplay ctrlSetStructuredText parseText ("" + _text + ""); _overrideWarningDisplay ctrlSetTextColor [1,0.1,0.1,1]; _overrideWarningDisplay ctrlSetFont "PuristaBold"; _overrideWarningDisplay ctrlCommit 0; From cce2d23345f4b97af50f6401dee4c03b61e68791 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 28 Dec 2022 03:41:30 +0000 Subject: [PATCH 389/407] Add reslot safety for brake override --- f/brakeOverride/fn_brakeOverride.sqf | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/f/brakeOverride/fn_brakeOverride.sqf b/f/brakeOverride/fn_brakeOverride.sqf index 9a9e3c63e..b0868b6ab 100644 --- a/f/brakeOverride/fn_brakeOverride.sqf +++ b/f/brakeOverride/fn_brakeOverride.sqf @@ -24,3 +24,14 @@ player addAction [ // Add the variable to prove it's already done player setVariable ["f_var_hasDriverAction",true]; + +// Add an event handler to the server that can catch JIP/reslots +if isServer then { + addMissionEventHandler ["PlayerConnected", + { + params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; + if (_jip) then { + [] remoteExec ["f_fnc_brakeOverride",_owner]; + }; + }]; +}; \ No newline at end of file From aa91852b3ea6a92cac8ebae5bb09386272dd3e2e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 28 Dec 2022 03:43:49 +0000 Subject: [PATCH 390/407] remoteExec zeroing in FCS failure --- f/fcs/fn_fcsPersistentEffects.sqf | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/f/fcs/fn_fcsPersistentEffects.sqf b/f/fcs/fn_fcsPersistentEffects.sqf index ad1a69d7f..282cbed36 100644 --- a/f/fcs/fn_fcsPersistentEffects.sqf +++ b/f/fcs/fn_fcsPersistentEffects.sqf @@ -21,12 +21,7 @@ while {(_target getVariable ["f_var_fcs_failure",false]) && (alive _target)} do if !(_x == "this") then { _targetMuzzle = _x; }; - _zeroCheck = _currentGunner setWeaponZeroing [_targetWeapon,_targetMuzzle,1]; - if !(_zeroCheck) then { - diag_log format ["FCS: Weapon zeroing failure for %1",_targetWeapon] - } else { - // diag_log format ["Zeroing set for %1",_targetWeapon] - }; + [_currentGunner,[_targetWeapon,_targetMuzzle,1]] remoteExec ["setWeaponZeroing",_currentGunner]; } forEach _targetWeaponMuzzles; } forEach (_target weaponsTurret [0]); From 60138bacc999203258cf2807753f6c6d5ef023b2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 31 Dec 2022 13:25:29 +0000 Subject: [PATCH 391/407] Add player check --- f/radio/fn_radioCheckChannels.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 4771590dd..edeedb364 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -6,6 +6,9 @@ This function checks what channels a player should have access to. It's called b =========================== */ params ["_unit"]; +// Skip if the unit is an AI, so formerly-player AI units can't break the radio channels of players they're local to. +if !(isPlayer _unit) exitWith {}; + _splitMode = f_var_radioSplitMode; // Initialise variables From 793632f27a7dfaa24e3c04cb7ab85044d6bfa7be Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Wed, 11 Jan 2023 16:57:11 +0000 Subject: [PATCH 392/407] Account for TanksDLC RATs in assignGear AI --- f/assignGear/f_assignGear_AI.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/f/assignGear/f_assignGear_AI.sqf b/f/assignGear/f_assignGear_AI.sqf index 82f115db1..412b0e892 100644 --- a/f/assignGear/f_assignGear_AI.sqf +++ b/f/assignGear/f_assignGear_AI.sqf @@ -35,6 +35,7 @@ private _unitClasses = [ ["_aar_" , "aar" ], ["_a_" , "aar" ], ["_lat_" , "rat" ], + ["_lat2_" , "rat" ], ["_medic_" , "m" ], ["_gl_" , "gren" ], ["_exp_" , "eng" ], From 25561f07b24047cee608691b277a3479e0d6c552 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:20:10 +0000 Subject: [PATCH 393/407] Add a local toggle for vehicle radios --- f/radio/fn_radioAddHandlers.sqf | 33 ++++++++++++++++++++++++ f/radio/fn_radioCheckChannels.sqf | 43 +++++++++++++++++++------------ 2 files changed, 59 insertions(+), 17 deletions(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 586037257..6b58b73c0 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -57,6 +57,39 @@ player addEventHandler ["seatSwitchedMan", { [_unit1] spawn f_fnc_radioCheckChannels; }]; +// Players can manually toggle the radio of the vehicle they're in (for themselves only). This is persistent and per-vehicle. The unit's own channels (from items and variables) aren't affected. +player addAction [ + "Turn off vehicle radio", + { + params ["_target", "_caller", "_actionId", "_arguments"]; + private _radioOn = (vehicle _caller) getVariable ["f_var_radioIsOn",true]; + (vehicle _caller) setVariable ["f_var_radioIsOn",!_radioOn]; + [_caller] spawn f_fnc_radioCheckChannels; + }, + nil, + 0, + false, + true, + "", + "vehicle _this != _this && {vehicle _this getVariable ['f_var_radioIsOn',true]}" +]; + +player addAction [ + "Turn on vehicle radio", + { + params ["_target", "_caller", "_actionId", "_arguments"]; + private _radioOn = (vehicle _caller) getVariable ["f_var_radioIsOn",true]; + (vehicle _caller) setVariable ["f_var_radioIsOn",!_radioOn]; + [_caller] spawn f_fnc_radioCheckChannels; + }, + nil, + 0, + false, + true, + "", + "vehicle _this != _this && {!(vehicle _this getVariable ['f_var_radioIsOn',true])}" +]; + // Just to be sure... 2 enableChannel false; // Force enable direct chat, mostly in case they're a reslot - F3 Spectator turns off direct chat diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index edeedb364..05019e9c1 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -21,6 +21,9 @@ private _channelsToAddTalk = []; // Do all this twice to make sure it happens for "_i" from 1 to 2 do { + // Check whether the user has turned off the radio in this vehicle. + private _vicRadioOn = vehicle _unit getVariable ["f_var_radioIsOn",true]; + // Iterate through the whole list of channels for "_i" from 1 to f_var_radioChannelCount do { @@ -33,18 +36,21 @@ for "_i" from 1 to 2 do { }; } forEach _channelObjects; - // Check for vehicles. Don't add send permissions unless they're the driver. - if ((toLower str vehicle _unit) in _channelObjects) then { - _channelsToAddListen pushBackUnique _i; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { - _channelsToAddTalk pushBackUnique _i; + // If the vehicle radio is turned off, don't check for vehicle-provided channels. + if _vicRadioOn then { + // Check for vehicles. Don't add send permissions unless they're the driver. + if ((toLower str vehicle _unit) in _channelObjects) then { + _channelsToAddListen pushBackUnique _i; + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + _channelsToAddTalk pushBackUnique _i; + }; }; - }; - // Same for vehicle classes. - if ((toLower typeOf vehicle _unit) in _channelObjects) then { - _channelsToAddListen pushBackUnique _i; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { - _channelsToAddTalk pushBackUnique _i; + // Same for vehicle classes. + if ((toLower typeOf vehicle _unit) in _channelObjects) then { + _channelsToAddListen pushBackUnique _i; + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + _channelsToAddTalk pushBackUnique _i; + }; }; }; }; @@ -55,12 +61,15 @@ for "_i" from 1 to 2 do { _channelsToAddTalk pushBackUnique _x; } forEach (_unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); - { - _channelsToAddListen pushBackUnique _x; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { - _channelsToAddTalk pushBackUnique _x; - }; - } forEach (vehicle _unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); + // If the vehicle radio is turned off, don't check for vehicle-provided channels. + if _vicRadioOn then { + { + _channelsToAddListen pushBackUnique _x; + if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + _channelsToAddTalk pushBackUnique _x; + }; + } forEach (vehicle _unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); + }; // If running in unified mode, just compress all numbers down to the one channel if there are any channels to be added. if (!_splitMode) then { From 7e418c2977a0e88ecdacc17eeffa27449241bf2e Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 22 Jan 2023 15:22:15 +0000 Subject: [PATCH 394/407] Gunners can have radio now it's toggleable --- f/radio/fn_radioCheckChannels.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/f/radio/fn_radioCheckChannels.sqf b/f/radio/fn_radioCheckChannels.sqf index 05019e9c1..8ea2195b8 100644 --- a/f/radio/fn_radioCheckChannels.sqf +++ b/f/radio/fn_radioCheckChannels.sqf @@ -41,14 +41,14 @@ for "_i" from 1 to 2 do { // Check for vehicles. Don't add send permissions unless they're the driver. if ((toLower str vehicle _unit) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + if (_unit in [driver vehicle _unit,commander vehicle _unit,gunner vehicle _unit]) then { _channelsToAddTalk pushBackUnique _i; }; }; // Same for vehicle classes. if ((toLower typeOf vehicle _unit) in _channelObjects) then { _channelsToAddListen pushBackUnique _i; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + if (_unit in [driver vehicle _unit,commander vehicle _unit,gunner vehicle _unit]) then { _channelsToAddTalk pushBackUnique _i; }; }; @@ -65,7 +65,7 @@ for "_i" from 1 to 2 do { if _vicRadioOn then { { _channelsToAddListen pushBackUnique _x; - if ((_unit == driver vehicle _unit) or (_unit == commander vehicle _unit)) then { + if (_unit in [driver vehicle _unit,commander vehicle _unit,gunner vehicle _unit]) then { _channelsToAddTalk pushBackUnique _x; }; } forEach (vehicle _unit getVariable ["f_var_radioChannelsObjectSpecific",[]]); From 21aa2ef17face6fb831a6f5f23102413847f31ba Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Tue, 28 Feb 2023 13:45:01 +0000 Subject: [PATCH 395/407] Use new TI/NV equip state command Leaving the F3 disableThermals flag in, it's potentially useful as an API thing --- f/fcs/fn_fcsFailure.sqf | 1 + f/fcs/fn_fcsInit.sqf | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index d5a4b7b3f..b11112a7d 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -36,6 +36,7 @@ params ["_target","_projectile","_isDirect"]; // Hit turns off the NV and TI and sets an appropriate variable on the vehicle. Hopefully later it will also turn off stabilisation (BI blocked) _target disableNVGEquipment true; _target disableTIEquipment true; + _target setVariable ["f_var_fcs_equipInfo",(equipmentDisabled _target),true]; _target setVariable ["f_var_fcs_failure",true,true]; // Spawn ongoing stuff that affects the vehicle until repaired diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index 6024b586b..f411ba930 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -81,9 +81,13 @@ _vehicle setVariable ["f_var_fcs_hasEH",true]; params ["_target", "_caller", "_actionId", "_arguments"]; // Clear failure states _target setVariable ["f_var_fcs_failure",false,true]; - _target disableNVGEquipment false; + // Retrieve saved info on the previous TI/NV equipment state + private _equipInfo = _target getVariable ["f_var_fcs_equipInfo",[false,false]]; + if !(_equipInfo#0) then { + _target disableNVGEquipment false; + }; // Re-enable TI unless F3 says we shouldn't - if !(_target getVariable ["f_var_TIDisabled",false]) then { + if (!(_target getVariable ["f_var_TIDisabled",false]) && !(_equipInfo#1)) then { _target disableTIEquipment false; }; }, // Code on completed From 20706d7e15c70714b886e483c45b15c5b148ccb2 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 5 Mar 2023 15:42:46 +0000 Subject: [PATCH 396/407] Use bool directly Co-authored-by: Euan Hunter --- f/fcs/fn_fcsInit.sqf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index f411ba930..ca75b1d88 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -83,9 +83,7 @@ _vehicle setVariable ["f_var_fcs_hasEH",true]; _target setVariable ["f_var_fcs_failure",false,true]; // Retrieve saved info on the previous TI/NV equipment state private _equipInfo = _target getVariable ["f_var_fcs_equipInfo",[false,false]]; - if !(_equipInfo#0) then { - _target disableNVGEquipment false; - }; + _target disableNVGEquipment (_equipInfo#0); // Re-enable TI unless F3 says we shouldn't if (!(_target getVariable ["f_var_TIDisabled",false]) && !(_equipInfo#1)) then { _target disableTIEquipment false; From e0de8c7f839d4f124a0fd42bf9efeea5671d0e85 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sun, 5 Mar 2023 15:42:56 +0000 Subject: [PATCH 397/407] Use bool directly Co-authored-by: Euan Hunter --- f/fcs/fn_fcsInit.sqf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/f/fcs/fn_fcsInit.sqf b/f/fcs/fn_fcsInit.sqf index ca75b1d88..beb7bf0c0 100644 --- a/f/fcs/fn_fcsInit.sqf +++ b/f/fcs/fn_fcsInit.sqf @@ -85,9 +85,7 @@ _vehicle setVariable ["f_var_fcs_hasEH",true]; private _equipInfo = _target getVariable ["f_var_fcs_equipInfo",[false,false]]; _target disableNVGEquipment (_equipInfo#0); // Re-enable TI unless F3 says we shouldn't - if (!(_target getVariable ["f_var_TIDisabled",false]) && !(_equipInfo#1)) then { - _target disableTIEquipment false; - }; + _target disableTIEquipment ((_equipInfo#1) || (_target getVariable ["f_var_TIDisabled",false])); }, // Code on completed {}, // Code on interrupt [], // Arguments to pass From 692c1007c2ae2f6d20cb6648e2332a631164bd1e Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Sun, 12 Mar 2023 16:16:34 +0000 Subject: [PATCH 398/407] [329] Fix script error and wrong _started count (#390) --- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index bfd6f2c52..c143b71ff 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -98,7 +98,7 @@ if (count _grps == 0) exitWith { // CREATE STARTING VALUES // A initial count is made of units in the groups listed in _grps. -_started = count (_grps apply {units _x}); +_started = count (flatten (_grps apply {units _x})); // DEBUG if (f_param_debugMode == 1) then @@ -122,7 +122,7 @@ while {true} do }; // Calculate how many units in the groups are still alive - _remaining = {alive _x} count (_grps apply {units _x}); + _remaining = {alive _x} count (flatten (_grps apply {units _x})); // DEBUG if (f_param_debugMode == 1) then From 7f9d221f58aa551c06fa2a7b74c8805f4bbf59c9 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 25 Mar 2023 19:54:21 +0000 Subject: [PATCH 399/407] Fix FCS optic failure being backwards --- f/fcs/fn_fcsFailure.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/f/fcs/fn_fcsFailure.sqf b/f/fcs/fn_fcsFailure.sqf index b11112a7d..8d96ff74d 100644 --- a/f/fcs/fn_fcsFailure.sqf +++ b/f/fcs/fn_fcsFailure.sqf @@ -34,10 +34,10 @@ params ["_target","_projectile","_isDirect"]; }; // Hit turns off the NV and TI and sets an appropriate variable on the vehicle. Hopefully later it will also turn off stabilisation (BI blocked) - _target disableNVGEquipment true; - _target disableTIEquipment true; _target setVariable ["f_var_fcs_equipInfo",(equipmentDisabled _target),true]; _target setVariable ["f_var_fcs_failure",true,true]; + _target disableNVGEquipment true; + _target disableTIEquipment true; // Spawn ongoing stuff that affects the vehicle until repaired [_target] spawn f_fnc_fcsPersistentEffects; \ No newline at end of file From 3af615509c730f15a6e35610e66dd9b716aaedf7 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 25 Mar 2023 19:56:43 +0000 Subject: [PATCH 400/407] Fix unused %1 in debug message --- f/radio/fn_radioAddHandlers.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/radio/fn_radioAddHandlers.sqf b/f/radio/fn_radioAddHandlers.sqf index 6b58b73c0..b11b40164 100644 --- a/f/radio/fn_radioAddHandlers.sqf +++ b/f/radio/fn_radioAddHandlers.sqf @@ -103,7 +103,7 @@ player setVariable ["f_var_radioHandlersAdded",true]; // DEBUG if (f_param_debugMode == 1) then { - systemChat "DEBUG (fn_radioAddHandlers.sqf): added radio event handlers %1"; + systemChat "DEBUG (fn_radioAddHandlers.sqf): added radio event handlers to local player"; }; sleep 1; From 144cc1b0f8558e5cfbbdab0f19a63f9082850a2c Mon Sep 17 00:00:00 2001 From: Euan Hunter Date: Sat, 1 Apr 2023 19:27:00 +0100 Subject: [PATCH 401/407] [329] Rewrite CasCap logic to be less group-centric for readability and to remove leader stability issue (#392) --- f/casualtiesCap/f_CasualtiesCapCheck.sqf | 120 ++++++++++++----------- 1 file changed, 63 insertions(+), 57 deletions(-) diff --git a/f/casualtiesCap/f_CasualtiesCapCheck.sqf b/f/casualtiesCap/f_CasualtiesCapCheck.sqf index c143b71ff..da9d21c14 100644 --- a/f/casualtiesCap/f_CasualtiesCapCheck.sqf +++ b/f/casualtiesCap/f_CasualtiesCapCheck.sqf @@ -18,7 +18,7 @@ sleep 0.1; // DECLARE PRIVATE VARIABLES -private ["_grps","_started","_remaining","_alive","_grp", "_Tgrp"]; +private ["_grps", "_side", "_factionsOnly", "_countAliveUnits", "_started", "_remaining"]; // ==================================================================================== @@ -29,105 +29,111 @@ private ["_grps","_started","_remaining","_alive","_grp", "_Tgrp"]; // 0: = Side (e.g. BLUFOR), or group name(s) as string array (e.g. ["mrGroup1","myGroup2"]) // 1: = What % of the initial *number* of units must be dead before the ending is triggered. Takes JIP players into account // 2: = What ending will be executed. Can also be code. -// 3: = If only groups with a playable leader slot will be included (default is true) -// 4: = What faction(s) to filter for if the first variable is a side (e.g. ["blu_f"]) +// 3: = If in side mode, only playable units will be included (default is true) +// 4: = If in side mode, only units from these faction(s) will be included (e.g. ["blu_f"]) params [ - ["_grpstemp", sideUnknown, [sideUnknown,[]]], + ["_sideorgrps", sideUnknown, [sideUnknown,[]]], ["_pc", 100, [0]], ["_end", 1, [0,{}]], - ["_onlyPlayers", true, [true]], - ["_faction",[], [[]]] + ["_onlyPlayable", true, [true]], + ["_factions",[], [[]]] ]; // ==================================================================================== -// COLLECT GROUPS TO CHECK -// If a side variable was passed we collect all relevant groups - -_grps = []; - -// Local function to collect groups to consider for CasCap in a JIP-safe manner -private _collectSideGroups = { - params [ - ["_side", sideUnknown, [sideUnknown]], - ["_onlyPlayable", true, [true]], - ["_factions",[], [[]]] - ]; - // Do all checks in one loop through array to help performance since this is run multiple times - // Select all the groups where: - // * The group's side == _side - // AND - // * _onlyPlayable -> the group's leader is a playable unit (logical implication) - // AND - // * length _factions != 0 -> the group's leader is in _factions (logical implication) - allGroups select {side _x == _side && - ((not _onlyPlayable) || (leader _x in playableUnits)) && - ((count _factions == 0) || (([leader _x] call f_fnc_virtualFaction) in _factions)) - }; -}; +// DEFINE LOCAL FUNCTIONS +// Define local functions to count the current units based on the mode: 'side' if a side was passed as the first argument, 'group' if a static list of groups was passed -if(_grpstemp isEqualType sideUnknown) then // if the variable is any of the side variables use it to consturct a list of groups in that faction. +if(_sideorgrps isEqualType sideUnknown) then { - _grps = [_grpstemp, _onlyPlayers, _faction] call _collectSideGroups; + // SIDE MODE + + _side = _sideorgrps; + _factionsOnly = count _factions > 0; + _countAliveUnits = { + private _eligibleUnits = if(_onlyPlayable) then {playableUnits} else {allUnits}; + private _filteredUnits = if(_factionsOnly) then + { + _eligibleUnits select {(side _x == _side) && (([_x] call f_fnc_virtualFaction) in _factions)}; + } + else + { + _eligibleUnits select {side _x == _side}; + }; + {alive _x} count _filteredUnits; + }; + + // DEBUG + if (f_param_debugMode == 1) then + { + systemChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): CasCap operating in SIDE mode. _side = %1, _onlyPlayable = %2, _factionsOnly = %3, _factions = %4",_side,_onlyPlayable,_factionsOnly,_factions]; + }; } else { + // GROUP MODE + + // COLLECT GROUPS TO CHECK + // If a groups variable was passed we collect all relevant groups + + _grps = []; + sleep 1; { - _Tgrp = call compile format ["%1",_x]; + private _Tgrp = call compile format ["%1",_x]; if(!isNil "_Tgrp") then { - _grps pushBack _Tgrp; + _grps pushBackUnique _Tgrp; }; - } forEach _grpstemp; -}; - -// ==================================================================================== - -// FAULT CHECK -// 10 seconds into the mission we check if any groups were found. If not, exit with an error message + } forEach _sideorgrps; + + // FAULT CHECK + // Check if any groups were found. If not, exit with an error message -sleep 10; + if (count _grps == 0) exitWith { + systemChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): No groups found, _sideorgrps = %1, _grps = %2",_sideorgrps,_grps]; + }; -if (count _grps == 0) exitWith { - player globalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): No groups found, _grpstemp = %1, _grps = %2",_grpstemp,_grps]; + _countAliveUnits = { + {alive _x} count (flatten (_grps apply {units _x})); + }; + + // DEBUG + if (f_param_debugMode == 1) then + { + systemChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): CasCap operating in GROUP mode. _grps = %1",_grps]; + }; }; // ==================================================================================== // CREATE STARTING VALUES // A initial count is made of units in the groups listed in _grps. -_started = count (flatten (_grps apply {units _x})); +_started = [] call _countAliveUnits; // DEBUG if (f_param_debugMode == 1) then { - player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; + systemChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _started = %1",_started]; }; // ==================================================================================== // CHECK IF CASUALTIES CAP HAS BEEN REACHED OR EXCEEDED // Every 6 seconds the server will check to see if the number of casualties sustained -// within the group(s) has reached the percentage specificed in the variable _pc. If +// has reached the percentage specificed in the variable _pc. If // the cap has been reached, the loop will exit to trigger the ending. while {true} do { - // Update the list of groups to account for JIP players - if(_grpstemp isEqualType sideUnknown) then - { - _grps = [_grpstemp, _onlyPlayers, _faction] call _collectSideGroups; - }; - - // Calculate how many units in the groups are still alive - _remaining = {alive _x} count (flatten (_grps apply {units _x})); + // Call the local function to determine how many units are still alive + _remaining = [] call _countAliveUnits; // DEBUG if (f_param_debugMode == 1) then { - player sideChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _remaining = %1",_remaining]; + systemChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): _remaining = %1",_remaining]; }; if (_remaining == 0 || ((_started - _remaining) / _started) >= (_pc / 100)) exitWith {}; @@ -148,4 +154,4 @@ if (_end isEqualType {}) exitWith { _end remoteExec ["bis_fnc_spawn", 0]; }; -player globalChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; +systemChat format ["DEBUG (f\casualtiesCap\f_CasualtiesCapCheck.sqf): Ending didn't fire, should either be code or scalar. _end = %1, typeName _end: %2",_end,typeName _end]; From 6853cc8e4509085cdc001e15e94a6ceeaba35194 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Sat, 1 Apr 2023 19:30:50 +0100 Subject: [PATCH 402/407] more version updates --- mission.sqm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mission.sqm b/mission.sqm index 01a7112d9..0aeed6392 100644 --- a/mission.sqm +++ b/mission.sqm @@ -19,7 +19,7 @@ class EditorData }; }; binarizationWanted=0; -sourceName="FA3-5-6_release_template"; +sourceName="FA3-5-7_release_template"; addons[]= { "A3_Soft_F_Enoch_Truck_02", @@ -330,7 +330,7 @@ class Mission { class Intel { - briefingName="fa3-5-6"; + briefingName="fa3-5-7"; resistanceWest=0; timeOfChanges=28800; startWeather=0.50001526; From 43a37fdb48710333164579bddef9e20c01e5bc6b Mon Sep 17 00:00:00 2001 From: costno Date: Mon, 18 Sep 2023 17:56:03 -0400 Subject: [PATCH 403/407] Update f_assignGear_clothes.sqf --- f/assignGear/f_assignGear_clothes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 80f4a75c0..05baeaaf0 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -105,7 +105,7 @@ if(count _rig > 0) then _unit addVest (selectRandom _rig); }; -if(count _glasses > 0) then +if(count _glasses > 0 && {!(goggles _unit in _glasses)}) then { removeGoggles _unit; _unit addGoggles (selectRandom _glasses); From d1f72f3ce442ff7125873a59c58524a1f6205e72 Mon Sep 17 00:00:00 2001 From: costno Date: Mon, 2 Oct 2023 09:45:46 -0400 Subject: [PATCH 404/407] ToLower For case sensitivity --- f/assignGear/f_assignGear_clothes.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 05baeaaf0..169a9eddb 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -105,7 +105,8 @@ if(count _rig > 0) then _unit addVest (selectRandom _rig); }; -if(count _glasses > 0 && {!(goggles _unit in _glasses)}) then +{toLower _x} foreach _glasses; +if(count _glasses > 0 && {!((toLower goggles _unit) in _glasses)}) then { removeGoggles _unit; _unit addGoggles (selectRandom _glasses); From 1406f65114f8a667a4489c675df7ceaad766279c Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 2 Oct 2023 15:20:43 +0100 Subject: [PATCH 405/407] toLower but correct --- f/assignGear/f_assignGear_clothes.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 169a9eddb..84bd42709 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -105,8 +105,7 @@ if(count _rig > 0) then _unit addVest (selectRandom _rig); }; -{toLower _x} foreach _glasses; -if(count _glasses > 0 && {!((toLower goggles _unit) in _glasses)}) then +if(count _glasses > 0 && {!((toLower goggles _unit) in (_glasses apply {toLower _x}))}) then { removeGoggles _unit; _unit addGoggles (selectRandom _glasses); From b57fa9e4876826e4f38b65c22aadfcffcc1ee418 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Thu, 7 Dec 2023 18:57:29 +0000 Subject: [PATCH 406/407] toLowerANSI toLowerANSI is faster than toLower --- f/assignGear/f_assignGear_clothes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 84bd42709..6c2c556f0 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -105,7 +105,7 @@ if(count _rig > 0) then _unit addVest (selectRandom _rig); }; -if(count _glasses > 0 && {!((toLower goggles _unit) in (_glasses apply {toLower _x}))}) then +if(count _glasses > 0 && {!((toLowerANSI goggles _unit) in (_glasses apply {toLowerANSI _x}))}) then { removeGoggles _unit; _unit addGoggles (selectRandom _glasses); From 4ee1bdb82ec3e0ce9f62ab82cedd621b34f01373 Mon Sep 17 00:00:00 2001 From: NikkoJT <35894105+NikkoJT@users.noreply.github.com> Date: Mon, 1 Apr 2024 15:51:29 +0100 Subject: [PATCH 407/407] Update f/assignGear/f_assignGear_clothes.sqf Co-authored-by: Euan Hunter --- f/assignGear/f_assignGear_clothes.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/f/assignGear/f_assignGear_clothes.sqf b/f/assignGear/f_assignGear_clothes.sqf index 6c2c556f0..6b6b5449c 100644 --- a/f/assignGear/f_assignGear_clothes.sqf +++ b/f/assignGear/f_assignGear_clothes.sqf @@ -105,7 +105,7 @@ if(count _rig > 0) then _unit addVest (selectRandom _rig); }; -if(count _glasses > 0 && {!((toLowerANSI goggles _unit) in (_glasses apply {toLowerANSI _x}))}) then +if(count _glasses > 0 && (_glasses findIf {_x == goggles _unit}) == -1) then { removeGoggles _unit; _unit addGoggles (selectRandom _glasses);