diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index bdb0cab..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,17 +0,0 @@
-# Auto detect text files and perform LF normalization
-* text=auto
-
-# Custom for Visual Studio
-*.cs diff=csharp
-
-# Standard to msysgit
-*.doc diff=astextplain
-*.DOC diff=astextplain
-*.docx diff=astextplain
-*.DOCX diff=astextplain
-*.dot diff=astextplain
-*.DOT diff=astextplain
-*.pdf diff=astextplain
-*.PDF diff=astextplain
-*.rtf diff=astextplain
-*.RTF diff=astextplain
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index cd2946a..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,47 +0,0 @@
-# Windows image file caches
-Thumbs.db
-ehthumbs.db
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
-# =========================
-# Operating System Files
-# =========================
-
-# OSX
-# =========================
-
-.DS_Store
-.AppleDouble
-.LSOverride
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
diff --git a/README.md b/README.md
index c5c94d2..0089fab 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,8 @@
-## Game of Guns (WIP)
-Tacticoolized version of GunGame.
+# TvT Game of Guns
+A Gungame clone.
+
+## Building
+To build use `bash build.sh`.
+
+## Maintenance
+To blacklist weapons, locally host the mission and type `#blacklistUtility`. In the following dialog, activate the checkboxes of all weapons you want to blacklist, then hit *export*. Note that weapons that are already in the blacklist will be preselected. Add your clipboard to `cfgMission >> weaponBlacklist`.
diff --git a/SHK_pos/shk_pos_fnc_findclosestposition.sqf b/SHK_pos/shk_pos_fnc_findclosestposition.sqf
deleted file mode 100644
index 43018b9..0000000
--- a/SHK_pos/shk_pos_fnc_findclosestposition.sqf
+++ /dev/null
@@ -1,19 +0,0 @@
-// Return the closest position from array to the positionA.
-// In: [positionA,[array of positions]]
-// Out: positionB
-private ["_pA","_ps","_p1","_p2"];
-_pA = _this select 0;
-_ps = _this select 1;
-
-_p1 = _ps select 0;
-
-if (count _ps > 1) then {
- for "_i" from 1 to (count _ps - 1) do {
- _p2 = _ps select _i;
- if ((_p2 distance _pA) < (_p1 distance _pA)) then {
- _p1 = _p2;
- };
- };
-};
-
-_p1
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_getmarkercorners.sqf b/SHK_pos/shk_pos_fnc_getmarkercorners.sqf
deleted file mode 100644
index 1cac68b..0000000
--- a/SHK_pos/shk_pos_fnc_getmarkercorners.sqf
+++ /dev/null
@@ -1,59 +0,0 @@
-// In: marker
-// Out: array of positions
-private ["_area","_corners"];
-_area = _this;
-_corners = [];
-
-// Center point
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _area;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-// Direction and make sure it's between 0 and 360.
-private ["_dir","_dirCos","_dirSin"];
-_dir = (markerDir _area) * -1;
-_dir = _dir % 360;
-_dirCos = cos _dir;
-_dirSin = sin _dir;
-
-// Size
-private ["_size","_sizeX","_sizeY"];
-_size = getMarkerSize _area;
-_sizeX = _size select 0;
-_sizeY = _size select 1;
-
-
-private ["_cosX","_sinX","_cosY","_sinY","_addX","_addY","_subX","_subY"];
-_cosX = _dirCos * _sizeX;
-_sinX = _dirSin * _sizeX;
-_cosY = _dirCos * _sizeY;
-_sinY = _dirSin * _sizeY;
-
-_addX = _cosX + _sinY;
-_addY = _sinX + _cosY;
-_subX = _cosX - _sinY;
-_subY = _sinX - _cosY;
-
-private ["_posX","_posY"];
-// Bottom Left
-_posX = _centerX - _subX;
-_posY = _centerY - _addY;
-_corners set [0,[_posX,_posY]];
-
-// Top Left
-_posX = _centerX - _addX;
-_posY = _centerY - _subY;
-_corners set [1,[_posX,_posY]];
-
-// Top Right
-_posX = _centerX + _subX;
-_posY = _centerY + _addY;
-_corners set [2,[_posX,_posY]];
-
-// Bottom Right
-_posX = _centerX + _addX;
-_posY = _centerY + _subY;
-_corners set [3,[_posX,_posY]];
-
-_corners
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_getmarkershape.sqf b/SHK_pos/shk_pos_fnc_getmarkershape.sqf
deleted file mode 100644
index e397c5e..0000000
--- a/SHK_pos/shk_pos_fnc_getmarkershape.sqf
+++ /dev/null
@@ -1,30 +0,0 @@
-// In: marker
-// Out: string (marker shape)
-
-private ["_size","_x","_y","_ret"];
-_size = markersize _this;
-_x = _size select 0;
-_y = _size select 1;
-
-_ret = "";
-
-switch (tolower(markershape _this)) do {
- case "rectangle": {
- if (_x == _y) then {
- _ret = "SQUARE";
- } else {
- _ret = "RECTANGLE";
- };
- };
- case "ellipse": {
- if (_x == _y) then {
- _ret = "CIRCLE";
- } else {
- _ret = "ELLIPSE";
- };
- };
- case "icon": {
- _ret = "ICON";
- };
-};
-_ret
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_getpos.sqf b/SHK_pos/shk_pos_fnc_getpos.sqf
deleted file mode 100644
index d5c5fb4..0000000
--- a/SHK_pos/shk_pos_fnc_getpos.sqf
+++ /dev/null
@@ -1,13 +0,0 @@
-// In: [position,distance,direction]
-// Out: position
-private ["_pos","_dst","_dir","_orgX","_orgY","_posX","_posY"];
-_pos = _this select 0;
-_dst = _this select 1;
-_dir = _this select 2;
-
-_orgX = _pos select 0;
-_orgY = _pos select 1;
-_posX = _orgX + (_dst * sin _dir);
-_posY = _orgY + (_dst * cos _dir);
-
-[_posX,_posY,0]
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_getposfromcircle.sqf b/SHK_pos/shk_pos_fnc_getposfromcircle.sqf
deleted file mode 100644
index 87269f8..0000000
--- a/SHK_pos/shk_pos_fnc_getposfromcircle.sqf
+++ /dev/null
@@ -1,26 +0,0 @@
-// In: marker
-// Out: position
-
-// Center point
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _this;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-// Size
-private ["_size"];
-_size = getMarkerSize _this;
-_size = _size select 0;
-
-// Randomly pick a direction,
-private ["_dir","_posX","_posY","_rand","_pos"];
-_dir = random 360;
-_rand = sqrt random 1;
-_posX = (_size * (cos _dir)) * _rand;
-_posY = (_size * (sin _dir)) * _rand;
-_pos = [_posX,_posY];
-
-_posX = _centerX + (_pos select 0);
-_posY = _centerY + (_pos select 1);
-
-[_posX,_posY,0]
diff --git a/SHK_pos/shk_pos_fnc_getposfromellipse.sqf b/SHK_pos/shk_pos_fnc_getposfromellipse.sqf
deleted file mode 100644
index 7201fbc..0000000
--- a/SHK_pos/shk_pos_fnc_getposfromellipse.sqf
+++ /dev/null
@@ -1,43 +0,0 @@
-// In: ellipseMarker
-// Out: position
-
-// Center point
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _this;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-// Direction and make sure it's between 0 and 360.
-private ["_dirMrk"];
-_dirMrk = (markerDir _this) * -1;
-_dirMrk = _dirMrk % 360;
-
-// Size
-private ["_size","_sizeX","_sizeY"];
-_size = getMarkerSize _this;
-_sizeX = _size select 0;
-_sizeY = _size select 1;
-
-// If B axis is longer than A, switch them and fix direction.
-if (_sizeX < _sizeY) then {
- _sizeX = _size select 1;
- _sizeY = _size select 0;
- _dirMrk = _dirMrk + 90;
-};
-
-// Randomly pick a direction,
-private ["_dir","_posX","_posY","_rand","_pos"];
-_dir = random 360;
-_rand = sqrt random 1;
-_posX = (_sizeX * (cos _dir)) * _rand;
-_posY = (_sizeY * (sin _dir)) * _rand;
-_pos = [_posX,_posY];
-
-if (_dirMrk != 0) then {
- _pos = [_pos,_dirMrk] call SHK_pos_fnc_rotatePosition;
-};
-
-_posX = _centerX + (_pos select 0);
-_posY = _centerY + (_pos select 1);
-
-[_posX,_posY,0]
diff --git a/SHK_pos/shk_pos_fnc_getposfromrectangle.sqf b/SHK_pos/shk_pos_fnc_getposfromrectangle.sqf
deleted file mode 100644
index 76ebd7d..0000000
--- a/SHK_pos/shk_pos_fnc_getposfromrectangle.sqf
+++ /dev/null
@@ -1,37 +0,0 @@
-// In: marker
-// Out: position
-
-// Center point
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _this;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-// Size
-private ["_size","_sizeX","_sizeY"];
-_size = getMarkerSize _this;
-_sizeX = _size select 0;
-_sizeY = _size select 1;
-
-// Direction and make sure it's between 0 and 360.
-private ["_dir","_dirCos","_dirSin"];
-_dir = (markerDir _this) * -1;
-_dir = _dir % 360;
-_dirCos = cos _dir;
-_dirSin = sin _dir;
-
-private ["_rndX","_rndY","_posX","_posY"];
-// Select random X and Y
-_rndX = (random (_sizeX * 2)) - _sizeX;
-_rndY = (random (_sizeY * 2)) - _sizeY;
-
-// If area is angled, shift X and Y
-if (_dir != 0) then {
- _posX = _centerX + (_dirCos * _rndX - _dirSin * _rndY);
- _posY = _centerY + (_dirSin * _rndX + _dirCos * _rndY);
-} else {
- _posX = _centerX + _rndX;
- _posY = _centerY + _rndY;
-};
-
-[_posX,_posY,0]
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_getposfromsquare.sqf b/SHK_pos/shk_pos_fnc_getposfromsquare.sqf
deleted file mode 100644
index c47df5b..0000000
--- a/SHK_pos/shk_pos_fnc_getposfromsquare.sqf
+++ /dev/null
@@ -1,36 +0,0 @@
-// In: marker
-// Out: position
-
-// Center point
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _this;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-// Size
-private ["_size"];
-_size = getMarkerSize _this;
-_size = _size select 0;
-
-// Direction and make sure it's between 0 and 360.
-private ["_dir","_dirCos","_dirSin"];
-_dir = (markerDir _this) * -1;
-_dir = _dir % 360;
-_dirCos = cos _dir;
-_dirSin = sin _dir;
-
-private ["_rndX","_rndY","_posX","_posY"];
-// Select random X and Y
-_rndX = (random (_size * 2)) - _size;
-_rndY = (random (_size * 2)) - _size;
-
-// If area is angled, shift X and Y
-if (_dir != 0) then {
- _posX = _centerX + (_dirCos * _rndX - _dirSin * _rndY);
- _posY = _centerY + (_dirSin * _rndX + _dirCos * _rndY);
-} else {
- _posX = _centerX + _rndX;
- _posY = _centerY + _rndY;
-};
-
-[_posX,_posY,0]
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_isblacklisted.sqf b/SHK_pos/shk_pos_fnc_isblacklisted.sqf
deleted file mode 100644
index 00a74b4..0000000
--- a/SHK_pos/shk_pos_fnc_isblacklisted.sqf
+++ /dev/null
@@ -1,85 +0,0 @@
-// In: [position,blackListMarker]
-// Out: boolean
-
-private ["_pos","_area","_return"];
-_pos = _this select 0;
-_area = _this select 1;
-_return = false;
-
-// Find corner positions of the rectangle
-private ["_dir"];
-_dir = markerDir _area;
-_dir = _dir % 360;
-
-// Center point
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _area;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-private ["_shape"];
-_shape = _area call SHK_pos_fnc_getMarkerShape;
-
-if (_shape == "ICON") then {
- // Icon has only one position, so if it equals to the given position, then it's blacklisted.
- if ([_pos,_center] call SHK_pos_fnc_isSamePosition) then {
- _return = true;
- };
-
-// Markers that have an area.
-} else {
- if (_shape in ["RECTANGLE","SQUARE"]) then {
- private ["_corners"];
- _corners = _area call SHK_pos_fnc_getMarkerCorners;
-
- // If rectangle is not axis-aligned.
- if (_dir % 90 != 0) then {
- // Add the point position to the array to have it shifted by the FOR below
- _corners set [4,_pos];
-
- // Rotate each corner position so that the rectangle is aligned with x and y axises
- // Use origo as center while rotating, but for comparison shift positions back
- private ["_posCor","_posNew","_orgX","_orgY","_shiftedX","_shiftedY","_newX","_newY"];
- for "_i" from 0 to (count _corners - 1) do {
- _posCor = _corners select _i;
-
- // Original coordinates
- _orgX = _posCor select 0;
- _orgY = _posCor select 1;
-
- // Subtract the marker center coordinates from corner coordinates.
- // Rotation is done using origo (0,0) as anchor/centerpoint.
- _shiftedX = _orgX - _centerX;
- _shiftedY = _orgY - _centerY;
-
- // Axis-aligned corner position
- _posNew = [[_shiftedX,_shiftedY],_dir] call SHK_pos_fnc_rotatePosition;
-
- // Shift the aligned corner position back near to the original marker location.
- _newX = _posNew select 0;
- _newY = _posNew select 1;
- _newX = _newX + _centerX;
- _newY = _newY + _centerY;
-
- _posCor = [_newX,_newY];
-
- _corners set [_i,_posCor];
- };
-
- // Point position
- _pos = _corners select 4;
- };
-
- // Check if the position is within the marker area.
- _return = [_pos,_corners] call SHK_pos_fnc_isInRectangle;
- } else {
- if (_shape == "CIRCLE") then {
- _return = [_pos,_area] call SHK_pos_fnc_isInCircle;
- } else {
- _return = [_pos,_area] call SHK_pos_fnc_isInEllipse;
- };
- };
-};
-
-
-_return
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_isincircle.sqf b/SHK_pos/shk_pos_fnc_isincircle.sqf
deleted file mode 100644
index 39616d9..0000000
--- a/SHK_pos/shk_pos_fnc_isincircle.sqf
+++ /dev/null
@@ -1,36 +0,0 @@
-// In: [position,marker]
-// Out: boolean
-
-private ["_pos","_area","_posX","_posY"];
-_pos = _this select 0;
-_area = _this select 1;
-
-_posX = _pos select 0;
-_posY = _pos select 1;
-
-// Center point
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _area;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-// Size
-private ["_size"];
-_size = getMarkerSize _area;
-_size = _size select 0;
-
-// Difference in coordinates
-private ["_difX","_difY"];
-_difX = _posX - _centerX;
-_difY = _posY - _centerY;
-
-private ["_return"];
-_return = false;
-
-// If distance from center of marker to the given position is
-// smaller than the radius of the circle, then position is inside.
-if (sqrt((_difX * _difX) + (_difY * _difY)) < _size) then {
- _return = true;
-};
-
-_return
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_isinellipse.sqf b/SHK_pos/shk_pos_fnc_isinellipse.sqf
deleted file mode 100644
index 535e7cf..0000000
--- a/SHK_pos/shk_pos_fnc_isinellipse.sqf
+++ /dev/null
@@ -1,54 +0,0 @@
-// In: [position,ellipseMarker]
-// Out: boolean
-
-private ["_pos","_area","_return"];
-_pos = _this select 0;
-_area = _this select 1;
-_return = false;
-
-// Ellipse size
-private ["_size","_sizeX","_sizeY"];
-_size = getMarkerSize _area;
-_sizeX = _size select 0;
-_sizeY = _size select 1;
-
-// Direction and make sure it's between 0 and 360.
-private ["_dir"];
-_dir = markerDir _area;
-_dir = _dir % 360;
-
-// Ellipse center position
-private ["_center","_centerX","_centerY"];
-_center = getMarkerPos _area;
-_centerX = _center select 0;
-_centerY = _center select 1;
-
-// If marker is not axis-aligned, rotate the dot position.
-if (_dir % 90 != 0) then {
- private ["_orgX","_orgY","_shiftedX","_shiftedY"];
- _orgX = _pos select 0;
- _orgY = _pos select 1;
- _shiftedX = _orgX - _centerX;
- _shiftedY = _orgY - _centerY;
- _pos = [[_shiftedX,_shiftedY],_dir] call SHK_pos_fnc_rotatePosition;
- _pos set [0,(_pos select 0) + _centerX];
- _pos set [1,(_pos select 1) + _centerY];
-};
-// Dot position
-private ["_posX","_posY"];
-_posX = _pos select 0;
-_posY = _pos select 1;
-
-// Distance between dot and ellipse center
-private ["_dstX","_dstY"];
-_dstX = abs(_posX - _centerX);
-_dstY = abs(_posY - _centerY);
-
-private ["_sum"];
-_sum = ((_dstX * _dstX)/(_sizeX * _sizeX)) + ((_dstY * _dstY)/(_sizeY * _sizeY));
-
-if (_sum <= 1) then {
- _return = true;
-};
-
-_return
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_isinrectangle.sqf b/SHK_pos/shk_pos_fnc_isinrectangle.sqf
deleted file mode 100644
index 43d7d36..0000000
--- a/SHK_pos/shk_pos_fnc_isinrectangle.sqf
+++ /dev/null
@@ -1,26 +0,0 @@
-// In: [pointPosition,corners]
-// Out: boolean
-private ["_pos","_corners","_return"];
-_pos = _this select 0;
-_corners = _this select 1;
-_return = false;
-
-private ["_dotX","_dotY","_bottomLeft","_left","_bottom","_topRight","_right","_top"];
-_dotX = _pos select 0;
-_dotY = _pos select 1;
-
-_bottomLeft = _corners select 0;
-_left = _bottomLeft select 0;
-_bottom = _bottomLeft select 1;
-
-_topRight = _corners select 2;
-_right = _topRight select 0;
-_top = _topRight select 1;
-
-// x is between left and right
-// y is between bottom and top
-if (_dotX >= _left && _dotX < _right && _dotY >= _bottom && _dotY < _top) then {
- _return = true;
-};
-
-_return
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_issameposition.sqf b/SHK_pos/shk_pos_fnc_issameposition.sqf
deleted file mode 100644
index 32dbf4c..0000000
--- a/SHK_pos/shk_pos_fnc_issameposition.sqf
+++ /dev/null
@@ -1,16 +0,0 @@
-// In: [array1,array2]
-// Out: boolean
-
-private ["_p1","_p2","_return"];
-_p1 = _this select 0;
-_p2 = _this select 1;
-_return = true;
-
-// Only compare X and Y coordinates, ignore Z.
-for "_i" from 0 to 1 do {
- if ((_p1 select _i) != (_p2 select _i)) exitwith {
- _return = false;
- };
-};
-
-_return
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_fnc_rotateposition.sqf b/SHK_pos/shk_pos_fnc_rotateposition.sqf
deleted file mode 100644
index c0afaae..0000000
--- a/SHK_pos/shk_pos_fnc_rotateposition.sqf
+++ /dev/null
@@ -1,13 +0,0 @@
-// In: [position,direction]
-// Out: position
-private ["_pos","_dir","_orgX","_orgY","_newX","_newY"];
-_pos = _this select 0;
-_dir = _this select 1;
-
-_orgX = _pos select 0;
-_orgY = _pos select 1;
-
-_newX = (_orgX * (cos _dir)) - (_orgY * (sin _dir));
-_newY = (_orgX * (sin _dir)) + (_orgY * (cos _dir));
-
-[_newX,_newY]
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_getpos.sqf b/SHK_pos/shk_pos_getpos.sqf
deleted file mode 100644
index b63dcbd..0000000
--- a/SHK_pos/shk_pos_getpos.sqf
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Select a random position based on anchor position, direction and distance.
- In: [position,distance,direction,water,road,emptySpace]
- Out: position
-*/
-private ["_org","_dst","_dir","_pos","_water","_road","_empty"];
-_org = _this select 0;
-_dst = _this select 1;
-_dir = if (count _this > 2) then {_this select 2} else {random 360};
-_water = if (count _this > 3) then {_this select 3} else {0};
-_road = if (count _this > 4) then {_this select 4} else {[0,200]};
-_empty = if (count _this > 5) then {_this select 5} else {[]};
-
-// Object instead of position array given
-if (typename _org == "OBJECT") then {_org = getpos _org};
-
-// Distance given as an array of min and max. Pick a random between them.
-if (typename _dst == "ARRAY") then {
- private ["_min","_max"];
- _min = _dst select 0;
- _max = _dst select 1;
- _dst = (_min + random(_max - _min));
-};
-
-// Direction given as an array of min and max. Pick a random dir between them.
-if (typename _dir == "ARRAY") then {
- private ["_min","_max","_ang"];
- _min = _dir select 0;
- _max = _dir select 1;
-
- _ang = _max - _min;
-
- // Min bigger than max, can happen with directions around north
- if (_ang < 0) then { _ang = _ang + 360 };
-
- _dir = (_min + random _ang);
-};
-
-_pos = [_org,_dst,_dir] call SHK_pos_fnc_getPos;
-
-// Water position
-if (typeName _water == "SCALAR") then {
- switch _water do {
- case 0: { // Water not allowed
- if (surfaceIsWater _pos) then {
- private ["_p","_d","_l"];
- _d = 0; _l = true;
-
- // Search for a land position starting from the randomly picked position and
- // then going outwards from it in full circles in 20m steps.
- while {_d = _d + 20; _l && _d < 5000} do {
- for "_i" from 0 to 340 step 20 do {
- _p = [_pos,_d,_i] call SHK_pos_fnc_getpos;
- if (!surfaceIsWater _p) exitwith {_l = false};
- };
- };
- _pos = _p;
- };
- };
- case 1: { // Water allowed
-
- };
- case 2: { // Only water allowed
- if !(surfaceIsWater _pos) then {
- private ["_p","_d","_l"];
- _d = 0; _l = true;
-
- // Search for a water position starting from the randomly picked position and
- // then going outwards from it in full circles in 20m steps.
- while {_d = _d + 20; _l && _d < 5000} do {
- for "_i" from 0 to 340 step 20 do {
- _p = [_pos,_d,_i] call SHK_pos_fnc_getpos;
- if (surfaceIsWater _p) exitwith {_l = false};
- };
- };
- _pos = _p;
- };
- };
- };
-} else { // For backward compatibility
- // Water position is not allowed
- if !_water then {
- if (surfaceIsWater _pos) then {
- private ["_p","_d","_l"];
- _d = 0; _l = true;
-
- // Search for a land position starting from the randomly picked position and
- // then going outwards from it in full circles in 20m steps.
- while {_d = _d + 20; _l && _d < 5000} do {
- for "_i" from 0 to 340 step 20 do {
- _p = [_pos,_d,_i] call SHK_pos_fnc_getpos;
- if (!surfaceIsWater _p) exitwith {_l = false};
- };
- };
- _pos = _p;
- };
- };
-};
-
-// Road position.
-if (count _road > 0) then {
- if ((_road select 0) > 0) then {
- private ["_mode","_range","_roads","_cnt","_p","_p2"];
- _mode = _road select 0;
- _range = _road select 1;
- _roads = _pos nearroads _range;
- _cnt = count _roads;
- _p = [];
-
- // Road position(s) found.
- if (_cnt > 0) then {
- _p = getpos (_roads select 0);
-
- // Found more than one road position, return closest.
- if (_cnt > 1) then {
- for "_i" from 1 to (_cnt - 1) do {
- _p2 = getpos (_roads select _i);
- if ((_p2 distance _pos) < (_p distance _pos)) then {
- _p = _p2;
- };
- };
- };
- };
-
- switch _mode do {
- // Road position preferred but not forced.
- case 1: {
- if (count _p > 0) then {
- _pos = _p;
- };
- };
- // Only accept road position, return empty array if none found.
- case 2: {
- if (count _p > 0) then {
- _pos = _p;
- } else {
- _pos resize 0;
- };
- };
- };
- };
-};
-
-// Find empty position
-private ["_dst","_veh","_p"];
-
-_dst = 200;
-_veh = "";
-switch (typename _empty) do {
- case "OBJECT": { _veh = typeof _empty }; // Only vehicle given, use default distance
- case "SCALAR": {_dst = _empty;};
- case "ARRAY": {
- if (count _empty > 0) then {
- _dst = _empty select 0;
- _veh = _empty select 1;
- if (typename _veh == typename objNull) then { _veh = typeof _veh };
- };
- };
-};
-
-_p = [];
-if (count _pos > 0) then {_p = _pos findEmptyPosition [0,_dst,_veh];};
-
-
-// If an empty position is found, use it. Otherwise, return the original position.
-if (count _p > 0) then {
- _pos = _p;
-};
-
-// Return position
-_pos
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_getposmarker.sqf b/SHK_pos/shk_pos_getposmarker.sqf
deleted file mode 100644
index 1672daa..0000000
--- a/SHK_pos/shk_pos_getposmarker.sqf
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Select a random position from an area defined by a marker.
- In: [marker,water,blacklist,emptySpace]
- Out: position
-*/
-private ["_area","_water","_blist","_pos","_empty"];
-_area = _this select 0;
-_water = if (count _this > 1) then {_this select 1} else {0};
-_blist = if (count _this > 2) then {_this select 2} else {[]};
-_empty = if (count _this > 3) then {_this select 3} else {[]};
-_pos = [];
-
-if (typename _blist == "STRING") then {_blist = [_blist]};
-
-private ["_shape"];
-_shape = _area call SHK_pos_fnc_getMarkerShape;
-
-// Limited loop so the script won't get stuck
-private ["_i","_exit"];
-_exit = false;
-for [{_i = 0}, {_i < 1000 && !_exit}, {_i = _i + 1}] do {
-
- // Rectangle or Ellipse marker given?
- if (_shape in ["SQUARE","RECTANGLE"]) then {
- _pos = _area call SHK_pos_fnc_getPosFromRectangle;
- } else {
- _pos = _area call SHK_pos_fnc_getPosFromEllipse;
- };
-
- // Find empty position
- private ["_dst","_veh","_p"];
-
- _dst = 200;
- _veh = "";
- switch (typename _empty) do {
- case (typename objNull): { _veh = typeof _empty }; // Only vehicle given, use default distance
- case ("STRING"): { _veh = _empty };
- case (typename []): {
- if (count _empty > 0) then {
- _dst = _empty select 0;
- _veh = _empty select 1;
- if (typename _veh == typename objNull) then { _veh = typeof _veh };
- };
- };
- };
-
- _p = _pos findEmptyPosition [0,_dst,_veh];
-
- // If an empty position is found, use it. Otherwise, return the original position.
- if (count _p > 0) then {
- _pos = _p;
- };
-
- // Water position
- if (typeName _water == "SCALAR") then {
- switch _water do {
-
- case 0: { // Water position is not allowed
- // Position is on land, try to exit script.
- if !(surfaceIsWater _pos) then {
- _exit = true;
- };
- };
-
- case 1: { // Doesn't matter if position is on water or land.
- _exit = true;
- };
-
- case 2: { // Only water position is allowed
- // Position is on water, try to exit script.
- if (surfaceIsWater _pos) then {
- _exit = true;
- };
- };
- };
- } else { // For backward compatibility
- // Water position is not allowed
- if !_water then {
- // Position is on land, try to exit script.
- if !(surfaceIsWater _pos) then {
- _exit = true;
- };
- // Doesn't matter if position is on water or land.
- } else {
- _exit = true;
- };
- };
-
- // Position is not allowed in blacklisted areas
- if (count _blist > 0 && _exit) then {
- // Check each blacklist marker
- {
- // If blacklisted, jump out of blacklist check and continue main loop.
- if ([_pos,_x] call SHK_pos_fnc_isBlacklisted) exitwith {
- _exit = false;
- };
- } foreach _blist;
- };
-};
-
-// Return position
-_pos
\ No newline at end of file
diff --git a/SHK_pos/shk_pos_init.sqf b/SHK_pos/shk_pos_init.sqf
deleted file mode 100644
index c26338f..0000000
--- a/SHK_pos/shk_pos_init.sqf
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- SHK_pos
-
- Version 0.24
- Author: Shuko (shuko@quakenet, miika@miikajarvinen.fi)
- Contributors: Cool=Azroul13, Hatifnat
-
- Forum: http://forums.bistudio.com/showthread.php?162695-SHK_pos
-
- Marker Based Selection
- Required Parameters:
- 0 String Area marker's name.
-
- Optional Parameters:
- 1 Number Water position. Default is only land positions allowed.
- 0 Find closest land. Search outwards 360 degrees (20 degree steps) and 20m steps.
- 1 Allow water positions.
- 2 Find only water positions.
- 2 Array or String One or multiple blacklist area markers which are excluded from the main marker area.
- 3 Array, Number, Object or Vehicle Type Force finding large enough empty position.
- 0 Max range from the selection position to look for empty space. Default is 200.
- 1 Vehicle or vehicle type to fit into an empty space.
-
- Examples:
- [...,[300,heli]] Array with distance and vehicle object.
- [...,350] Only distance given
- [...,(typeof heli)] Only vehicle type given
- [...,heli] Only vehicle object given
-
- Position Based Selection
- Required Parameters:
- 0 Object or Position Anchor point from where the relative position is calculated from.
- 1 Array or Number Distance from anchor.
-
- Optional Parameters:
- 2 Array of Number Direction from anchor. Default is random between 0 and 360.
- 3 Number Water position. Default is only land positions allowed.
- 0 Find closest land. Search outwards 360 degrees (20 degree steps) and 20m steps.
- 1 Allow water positions.
- 2 Find only water positions.
- 4 Array Road positions.
- 0 Number Road position forcing. Default is 0.
- 0 Do not search for road positions.
- 1 Find closest road position. Return the generated random position if none found.
- 2 Find closest road position. Return empty array if none found.
- 1 Number Road search range. Default is 200m.
- 5 Array, Number, Object or Vehicle Type Force finding large enough empty position.
- 0 Max range from the selection position to look for empty space. Default is 200.
- 1 Vehicle or vehicle type to fit into an empty space.
-
- Examples:
- [...,[300,heli]] Array with distance and vehicle object.
- [...,350] Only distance given
- [...,(typeof heli)] Only vehicle type given
- [...,heli] Only vehicle object given
-
- Usage:
- Preprocess the file in init.sqf:
- call compile preprocessfile "SHK_pos\shk_pos_init.sqf";
-
- Actually getting the position:
- pos = [parameters] call SHK_pos;
-*/
-// Functions
-SHK_pos_getPos = compile preprocessfilelinenumbers "shk_pos\shk_pos_getpos.sqf";
-SHK_pos_getPosMarker = compile preprocessfilelinenumbers "shk_pos\shk_pos_getposmarker.sqf";
-
-// Sub functions
-SHK_pos_fnc_findClosestPosition = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_findclosestposition.sqf";
-SHK_pos_fnc_getMarkerCorners = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_getmarkercorners.sqf";
-SHK_pos_fnc_getMarkerShape = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_getmarkershape.sqf";
-SHK_pos_fnc_getPos = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_getpos.sqf";
-SHK_pos_fnc_getPosFromCircle = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_getposfromcircle.sqf";
-SHK_pos_fnc_getPosFromEllipse = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_getposfromellipse.sqf";
-SHK_pos_fnc_getPosFromRectangle = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_getposfromrectangle.sqf";
-SHK_pos_fnc_getPosFromSquare = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_getposfromsquare.sqf";
-SHK_pos_fnc_isBlacklisted = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_isblacklisted.sqf";
-SHK_pos_fnc_isInCircle = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_isincircle.sqf";
-SHK_pos_fnc_isInEllipse = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_isinellipse.sqf";
-SHK_pos_fnc_isInRectangle = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_isinrectangle.sqf";
-SHK_pos_fnc_isSamePosition = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_issameposition.sqf";
-SHK_pos_fnc_rotatePosition = compile preprocessfilelinenumbers "shk_pos\shk_pos_fnc_rotateposition.sqf";
-
-// Wrapper function
-// Decide which function to call based on parameters.
-SHK_pos = {
- private ["_pos"];
- _pos = [];
-
- // Only marker is given as parameter
- if (typename _this == "STRING") then {
- _pos = [_this] call SHK_pos_getPosMarker;
-
- // Parameter array
- } else {
- if (typename (_this select 0) == "STRING") then {
- _pos = _this call SHK_pos_getPosMarker;
- } else {
- _pos = _this call SHK_pos_getPos;
- };
- };
-
- // Return position
- _pos
-};
\ No newline at end of file
diff --git a/addUniformHelper.sqf b/addUniformHelper.sqf
deleted file mode 100644
index efec8fe..0000000
--- a/addUniformHelper.sqf
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Manually executed to help with adding uniforms to the config
-*
-*/
-
-doit = false;
-sleep 1.5;
-
-player sideChat "addUniformHelper now running.";
-doit = true;
-
-/*newUniforms = [];
-newVests = [];
-
-while {doit} do {
- _uniform = uniform player;
- _vest = vest player;
-
- if (_uniform != "" && newUniforms find _uniform == -1) then {
- newUniforms pushBack _uniform;
- };
-
- if (_vest != "" && newVests find _vest == -1) then {
- newVests pushBack _vest;
- };
-
- sleep 0.5;
-};*/
-
-
-while {doit} do {
- _uniform = uniform player;
- _vest = vest player;
- copyToClipboard format ["['%1', '%2']", _uniform, _vest];
-};
diff --git a/addWeaponsHelper.sqf b/addWeaponsHelper.sqf
deleted file mode 100644
index 806f9a8..0000000
--- a/addWeaponsHelper.sqf
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Manually executed to help with adding weapons to the config
-*
-*/
-
-doit = false;
-sleep 1.5;
-
-player sideChat "addWeaponsHelper now running.";
-doit = true;
-
-newWeapons = [];
-newHandguns = [];
-newScopes = [];
-newHGScopes = [];
-
-while {doit} do {
- _primaryWeapon = primaryWeapon player;
- _handgun = handgunWeapon player;
- _scope = (primaryWeaponItems player) select 2;
- _hgScope = (handgunItems player) select 2;
-
- if (_primaryWeapon != "" && newWeapons find _primaryWeapon == -1) then {
- newWeapons pushBack _primaryWeapon;
- };
-
- if (_handgun != "" && newHandguns find _handgun == -1) then {
- newHandguns pushBack _handgun;
- };
-
- if (_scope != "" && newScopes find _scope == -1) then {
- newScopes pushBack _scope;
- };
-
- if (_hgScope != "" && newHGScopes find _hgScope == -1) then {
- newHGScopes pushBack _hgScope;
- };
-
- sleep 0.5;
-};
diff --git a/build.sh b/build.sh
index 1f5121b..b29bae0 100644
--- a/build.sh
+++ b/build.sh
@@ -4,24 +4,8 @@
cpbo_path="$1"
missionname="TvT_GameOfGuns"
-islands=(
- Altis
- Beketov
- Chernarus
- Desert_Island
- fallujah
- fata
- lythium
- Malden
- mbg_celle2
- Porto
- Sara_dbe1
- Stratis
- Takistan
- Tanoa
- utes
- Zargabad
-)
+islands=($(curl -k https://raw.githubusercontent.com/gruppe-adler/grad-islandconfig/master/islands.txt))
+islands=("${islands[@]%%:*}")
### AS AS USER, DONT EDIT BELOW THIS LINE ###
diff --git a/cfgFunctions.hpp b/cfgFunctions.hpp
new file mode 100644
index 0000000..65bc49b
--- /dev/null
+++ b/cfgFunctions.hpp
@@ -0,0 +1,11 @@
+class CfgFunctions {
+ #include "functions\chatCommands\cfgFunctions.hpp"
+ #include "functions\chooseUniform\cfgFunctions.hpp"
+ #include "functions\common\cfgFunctions.hpp"
+ #include "functions\events\cfgFunctions.hpp"
+ #include "functions\missionSetup\cfgFunctions.hpp"
+ #include "functions\selectWeapons\cfgFunctions.hpp"
+ #include "functions\votePlayzone\cfgFunctions.hpp"
+
+ #include "node_modules\grad-scoreboard\cfgFunctions.hpp"
+};
diff --git a/cfgMission.hpp b/cfgMission.hpp
new file mode 100644
index 0000000..0a8429f
--- /dev/null
+++ b/cfgMission.hpp
@@ -0,0 +1,129 @@
+class cfgMission {
+ votingTime = 60;
+ playAreaMinSize = 80;
+ playAreaMaxSize = 2000;
+ muzzleAttachmentProbability = 40;
+ scopesProbability = 40;
+
+ spawnGroupMinDist = 50;
+
+ weaponBlacklist[] = {
+ arifle_Katiba_C_F,
+ arifle_Katiba_GL_F,
+ arifle_Mk20C_F,
+ arifle_Mk20_GL_F,
+ arifle_MXC_F,
+ arifle_MX_GL_F,
+ arifle_TRG21_GL_F,
+ gm_mpikms72_brn,
+ gm_mpiak74n_brn,
+ gm_mpiaks74n_brn,
+ gm_mpiaks74nk_brn,
+ SMG_03C_TR_black,
+ SMG_03_black,
+ arifle_CTAR_GL_blk_F,
+ arifle_SPAR_01_GL_blk_F,
+ arifle_MSBS65_GL_F,
+ rhs_weap_ak74m_npz,
+ rhs_weap_ak74m_gp25,
+ rhs_weap_ak74m_gp25_npz,
+ rhs_weap_ak74m_zenitco01_npz,
+ rhs_weap_ak74m_zenitco01_b33,
+ rhs_weap_ak74mr,
+ rhs_weap_ak74mr_gp25,
+ rhs_weap_ak105_zenitco01,
+ rhs_weap_ak105_zenitco01_npz,
+ rhs_weap_ak105_npz,
+ rhs_weap_ak105_zenitco01_b33,
+ rhs_weap_akm_gp25,
+ rhs_weap_akmn,
+ rhs_weap_akmn_gp25,
+ rhs_weap_akmn_npz,
+ rhs_weap_akmn_gp25_npz,
+ rhs_weap_akm_zenitco01_b33,
+ rhs_weap_akms_gp25,
+ rhs_weap_ak104,
+ rhs_weap_ak104_npz,
+ rhs_weap_ak104_zenitco01,
+ rhs_weap_ak104_zenitco01_npz,
+ rhs_weap_ak104_zenitco01_b33,
+ rhs_weap_ak103_npz,
+ rhs_weap_ak103_zenitco01,
+ rhs_weap_ak103_zenitco01_npz,
+ rhs_weap_ak103_zenitco01_b33,
+ rhs_weap_ak103_gp25,
+ rhs_weap_ak103_gp25_npz,
+ rhs_weap_ak74,
+ rhs_weap_ak74_gp25,
+ rhs_weap_ak74n,
+ rhs_weap_ak74n_gp25,
+ rhs_weap_ak74n_npz,
+ rhs_weap_ak74n_gp25_npz,
+ rhs_weap_ak74_2,
+ rhs_weap_ak74n_2,
+ rhs_weap_ak74n_2_npz,
+ rhs_weap_ak74n_2_gp25,
+ rhs_weap_ak74n_2_gp25_npz,
+ rhs_weap_aks74,
+ rhs_weap_aks74_2,
+ rhs_weap_aks74_gp25,
+ rhs_weap_aks74n,
+ rhs_weap_aks74n_npz,
+ rhs_weap_aks74n_2,
+ rhs_weap_aks74n_2_npz,
+ rhs_weap_aks74n_gp25,
+ rhs_weap_aks74n_gp25_npz,
+ rhs_weap_aks74u,
+ rhs_weap_asval_grip,
+ rhs_weap_asval_grip_npz,
+ rhs_weap_vss_grip,
+ rhs_weap_vss_grip_npz,
+ rhs_weap_svdp,
+ rhs_weap_svdp_wd,
+ rhs_weap_m4,
+ rhs_weap_m4_carryhandle,
+ rhs_weap_m4_carryhandle_mstock,
+ rhs_weap_m4_m320,
+ rhs_weap_m4_m203,
+ rhs_weap_m4_m203S,
+ rhs_weap_m4_carryhandle_m203,
+ rhs_weap_m4_carryhandle_m203S,
+ rhs_weap_m4a1_blockII_KAC,
+ rhs_weap_m4a1_blockII_M203,
+ rhs_weap_mk18,
+ rhs_weap_mk18_m320,
+ rhs_weap_m16a4_carryhandle,
+ rhs_weap_m16a4_carryhandle_M203,
+ rhs_weap_m16a4_imod_M203,
+ rhs_weap_hk416d10_LMT,
+ rhs_weap_hk416d10_m320,
+ rhs_weap_hk416d145_m320,
+ rhs_weap_m249_pip_S,
+ rhs_weap_m249_pip_S_para,
+ rhs_weap_m249_light_S,
+ rhs_weap_m249_pip_ris,
+ rhs_weap_m249_pip_L,
+ rhs_weap_m249_pip_L_para,
+ rhs_weap_m249_light_L,
+ rhs_weap_mk17_LB,
+ rhs_weap_SCARH_USA_LB,
+ hlc_rifle_PSG1A1_RIS,
+ hlc_rifle_g3a3ris,
+ hlc_rifle_g3a3vris,
+ HLC_Rifle_g3ka4_GL,
+ hlc_rifle_hk33a2RIS,
+ hlc_rifle_hk33a2RIS_GL,
+ hlc_lmg_mg42_bakelite,
+ hlc_lmg_mg42_bakelite_100rnd,
+ hlc_lmg_MG42KWS_t_100rnd,
+ hlc_lmg_MG3_100rnd,
+ hlc_lmg_MG3_optic,
+ hlc_lmg_MG3KWS,
+ rhs_weap_m21s,
+ rhs_weap_savz58p,
+ rhs_weap_savz58p_rail,
+ rhs_weap_savz58v_ris,
+ rhs_weap_g36kv_ag36,
+ rhs_weap_SCARH_LB
+ };
+};
diff --git a/cfgParams.hpp b/cfgParams.hpp
index 2bd6528..b101df7 100644
--- a/cfgParams.hpp
+++ b/cfgParams.hpp
@@ -1,89 +1,43 @@
class Params {
- class WeatherSetting
- {
- title = "Weather";
- values[] = {-1,0,25,50,75,100};
- texts[] = {"Random","Clear","Cloudy","Overcast","Rainy","Stormy"};
- default = -1;
- };
-
- class TimeOfDay
- {
+ class TimeOfDay {
title = "Time of Day";
values[] = {7,8,9,10,11,12,13,14,15,16,17,1000};
texts[] = {"07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "Random"};
default = 1000;
};
- class SoloRespawnTime
- {
- title = "Solo Respawn Time (Seconds)";
- values[] = {5,10,20,30,40,50,60,70,80,90,100,110,120};
- texts[] = {"5","10","20","30","40","50","60","70","80","90","100","110","120"};
- default = 20;
+ class WeatherSetting {
+ title = "Weather";
+ values[] = {-1,0,25,50,75,100};
+ texts[] = {"Random","Clear","Cloudy","Overcast","Rainy","Stormy"};
+ default = -1;
};
- class TeamRespawnTime
- {
- title = "Team Respawn Time (Seconds)";
+ class KillsForWin {
+ title = "Kills Needed To Win (Per Team)";
+ values[] = {1,3,5,10,15,20,30,40,50,60};
+ texts[] = {"1","3","5","10","15","20","30","40","50","60"};
+ default = 15;
+ };
+
+ class RespawnTime {
+ title = "Respawn Time (Seconds)";
values[] = {5,10,20,30,40,50,60,70,80,90,100,110,120};
texts[] = {"5","10","20","30","40","50","60","70","80","90","100","110","120"};
default = 10;
};
- class CampProtection
- {
- title = "Camping Protection (Seconds)";
- values[] = {-1, 30, 60, 90, 120, 180, 240, 300};
- texts[] = {"Off", "30", "60", "90", "120", "180", "240", "300"};
- default = 120;
- };
-
- class KillsForWin
- {
- title = "Kills Needed To Win (Per Team)";
- values[] = {10,20,30,40,50,60};
- texts[] = {"10","20","30","40","50","60"};
- default = 20;
- };
-
- class GameMode
- {
+ class GameMode {
title = "Game Mode";
values[] = {0,1,2};
texts[] = {"Standard (Strong Weapons First)", "Reverse (Weak Weapons First)", "Random (Random Weapon Order)"};
default = 0;
};
- class RandomTeams
- {
- title = "Random Teams";
- values[] = {true, false};
- texts[] = {"On", "Off"};
- default = true;
- };
-
- class TeamSize
- {
- title = "Random Teams - Size";
- values[] = {1,2,3,4,5};
- texts[] = {"1","2","3","4","5"};
- default = 1;
- };
-
- class SameAltChannel
- {
- title = "Set alternative channel to same frequency for all teams.";
- values[] = {true, false};
- texts[] = {"On", "Off"};
- default = true;
- };
-
- class RankedMode
- {
+ class RankedMode {
title = "Ranked Mode";
values[] = {1,0};
- texts[] = {"On","Off"};
+ texts[] = {"On", "Off"};
default = 1;
};
};
diff --git a/customMap/Desert_Island.sqf b/customMap/Desert_Island.sqf
deleted file mode 100644
index f48bdbc..0000000
--- a/customMap/Desert_Island.sqf
+++ /dev/null
@@ -1,2580 +0,0 @@
-_newObject = createVehicle ['Land_Cargo_Tower_V3_F', [9913.95,2298.56,-0.0316792], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9915.53,2298.98,17.4321];
-_newObject setVectorDirAndUp [[-0.898288,-0.439408,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V3_F', [9964.44,2278.31,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9963.3,2277.81,18.6335];
-_newObject setVectorDirAndUp [[-0.913188,-0.407539,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9966.66,2281.92,-0.089407], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9967.61,2279.92,18.1094];
-_newObject setVectorDirAndUp [[0.914239,0.395469,-0.0881602], [0.0636832,0.0746288,0.995176]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9968.52,2276.35,-0.194311], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9967.98,2274.25,18.4073];
-_newObject setVectorDirAndUp [[0.963399,-0.264837,-0.0415246], [0.0636784,0.0756182,0.995102]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9961.81,2285.34,0.0398712], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9963.77,2284.2,18.164];
-_newObject setVectorDirAndUp [[0.527322,0.844106,-0.0970442], [0.0636832,0.0746288,0.995176]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [9926.08,2298.88,0.0196972], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9926.21,2299.02,17.8559];
-_newObject setVectorDirAndUp [[0.862651,0.499181,-0.0815499], [0.0278025,0.114189,0.99307]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [9911.45,2310.24,-0.0242882], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9911.43,2310.38,16.8804];
-_newObject setVectorDirAndUp [[-0.374411,0.926255,-0.0432128], [-0.0139851,0.0409565,0.999063]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [9921.31,2306.89,0.00597572], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9921.23,2306.97,17.2222];
-_newObject setVectorDirAndUp [[-0.818484,-0.572037,0.0534482], [0.00797196,0.081713,0.996624]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [9903.39,2306.84,0.00107193], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9903.31,2306.92,16.8185];
-_newObject setVectorDirAndUp [[-0.37638,0.92634,-0.0151995], [-0.0648517,-0.00997708,0.997845]];
-_newObject = createVehicle ['Land_Cargo_Tower_V3_F', [10185.2,2180.82,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10186.5,2179.93,9.65057];
-_newObject setVectorDirAndUp [[-0.931279,0.364307,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10194.9,2170.05,0.0160141], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10195.1,2169.96,8.81709];
-_newObject setVectorDirAndUp [[0.93077,-0.354263,-0.090357], [0.0906028,-0.0159301,0.99576]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10193.3,2188.53,0.0261202], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10193.5,2188.65,8.84519];
-_newObject setVectorDirAndUp [[0.399175,0.91256,-0.088842], [0.105261,0.0506445,0.993154]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10197.4,2178.98,0.0062952], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10197.4,2179.06,8.63189];
-_newObject setVectorDirAndUp [[-0.965166,0.242818,0.097439], [0.105376,0.0198822,0.994234]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10185.3,2191.95,0.0375538], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10185.5,2192.07,9.60412];
-_newObject setVectorDirAndUp [[0.380401,0.919177,-0.102023], [0.143299,0.0504018,0.988395]];
-_newObject = createVehicle ['Land_Loudspeakers_F', [10367.3,4094.8,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10367.2,4094.75,33.7494];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10370,4098.67,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10370.9,4098.95,33.7556];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10371.6,4092.26,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10372.5,4092.53,33.7171];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_Medevac_HQ_V1_F', [10354.2,4092.23,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10353.7,4091.26,33.7762];
-_newObject setVectorDirAndUp [[-0.283495,0.958974,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10367.1,4108.76,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10367.3,4107.8,33.7757];
-_newObject setVectorDirAndUp [[-0.232917,0.972497,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10378.1,4096.99,-0.000167847], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10378.4,4097.08,33.7173];
-_newObject setVectorDirAndUp [[0.963772,0.266727,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10355.8,4105.98,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10355.7,4105.99,33.7945];
-_newObject setVectorDirAndUp [[-0.963881,-0.266334,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10373.8,4081.56,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10373.6,4082.51,33.6478];
-_newObject setVectorDirAndUp [[0.266715,-0.963775,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10366.4,4078.93,-0.000339508], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10366.3,4078.93,33.6481];
-_newObject setVectorDirAndUp [[-0.958967,-0.283514,0.0015677], [0.00399947,-0.00799864,0.99996]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10356.9,4079.5,-0.00044632], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10356.9,4079.58,33.6971];
-_newObject setVectorDirAndUp [[-0.266653,0.963757,0.0083453], [0.0059992,-0.00699891,0.999958]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10348.9,4100.35,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10348.9,4100.44,33.7945];
-_newObject setVectorDirAndUp [[-0.266734,0.96377,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10373.6,4110.43,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10373.8,4109.48,33.7824];
-_newObject setVectorDirAndUp [[-0.232917,0.972497,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10380.4,4083.42,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10380.1,4084.36,33.6428];
-_newObject setVectorDirAndUp [[0.266715,-0.963775,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10357.3,4111.72,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10357.3,4111.63,33.7945];
-_newObject setVectorDirAndUp [[0.266722,-0.963774,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierWall_corridor_F', [10383,4098.08,3.8147e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10383,4098.08,33.7151];
-_newObject setVectorDirAndUp [[-0.232896,0.972475,0.0072723], [0.00199976,-0.00699902,0.999974]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10365.7,4114.17,-0.000705719], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10365.7,4114.09,33.7795];
-_newObject setVectorDirAndUp [[0.266762,-0.963724,0.00867257], [-0,0.00899866,0.99996]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10368.7,4074.2,0.000976563], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10368.7,4074.1,33.5992];
-_newObject setVectorDirAndUp [[0.266684,-0.963724,-0.0107027], [0.0039994,-0.0099982,0.999942]];
-_newObject = createVehicle ['Land_CncBarrierMedium4_F', [10344.4,4089.01,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10344.5,4089.04,33.7945];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10344.7,4102.44,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10344.6,4102.45,33.7945];
-_newObject setVectorDirAndUp [[-0.958999,-0.28341,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_CncBarrierMedium4_F', [10346.6,4081.94,-0.000175476], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10346.6,4081.96,33.7557];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10377.1,4076.62,0.000762939], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10377.1,4076.52,33.5908];
-_newObject setVectorDirAndUp [[0.266683,-0.963749,-0.0082426], [0.00199975,-0.007999,0.999966]];
-_newObject = createVehicle ['Land_CncBarrierMedium4_F', [10342.5,4096.11,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10342.5,4096.14,33.7945];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10380.9,4109.64,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10381.1,4108.69,33.7716];
-_newObject setVectorDirAndUp [[-0.232917,0.972497,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10386.2,4087.4,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10385.9,4088.34,33.6425];
-_newObject setVectorDirAndUp [[0.266715,-0.963775,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10352.7,4075.01,-0.000507355], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10352.6,4075.01,33.6908];
-_newObject setVectorDirAndUp [[-0.958956,-0.283529,0.00376874], [0.0059992,-0.00699891,0.999958]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10347.9,4110.06,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10347.8,4110.07,33.7945];
-_newObject setVectorDirAndUp [[-0.959087,-0.283113,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10374,4116.47,0.000209808], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10373.9,4116.38,33.7852];
-_newObject setVectorDirAndUp [[0.266774,-0.963756,0.00240071], [-0.00899866,0,0.99996]];
-_newObject = createVehicle ['Land_HBarrierWall_corridor_F', [10388.2,4099.63,6.48499e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10388.2,4099.62,33.7147];
-_newObject setVectorDirAndUp [[-0.233848,0.97223,0.00921677], [0.00199973,-0.00899864,0.999958]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10385.2,4078.88,0.000545502], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10385.2,4078.78,33.5895];
-_newObject setVectorDirAndUp [[0.266689,-0.963758,-0.00684868], [0.00399953,-0.00599929,0.999974]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10350,4071.15,-5.72205e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10350,4071.16,33.6725];
-_newObject setVectorDirAndUp [[-0.283456,0.958985,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10351.7,4119.05,0.000289917], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10351.6,4119.08,33.7224];
-_newObject setVectorDirAndUp [[-0.968406,-0.249364,0.00274271], [-0,0.0109982,0.99994]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10392.6,4089.26,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10392.3,4090.2,33.6315];
-_newObject setVectorDirAndUp [[0.266715,-0.963775,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10387.4,4111.32,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10387.6,4110.37,33.7815];
-_newObject setVectorDirAndUp [[-0.232917,0.972497,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10355.3,4066.58,-0.000484467], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10355.2,4066.58,33.5994];
-_newObject setVectorDirAndUp [[-0.958956,-0.283538,0.00320165], [0.0059991,-0.0089985,0.999942]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10381.8,4117.98,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10381.8,4117.89,33.7945];
-_newObject setVectorDirAndUp [[0.0778667,-0.996964,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_HBarrierWall_corridor_F', [10393.4,4100.95,3.43323e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10393.4,4100.95,33.7134];
-_newObject setVectorDirAndUp [[-0.238401,0.971146,0.0063031], [0.00199978,-0.00599933,0.99998]];
-_newObject = createVehicle ['Land_Cargo_HQ_V1_F', [10360.5,4122.87,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10361.1,4123.83,33.6896];
-_newObject setVectorDirAndUp [[0.283495,-0.958974,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10346.5,4070.13,-5.72205e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10346.5,4070.14,33.6875];
-_newObject setVectorDirAndUp [[-0.283456,0.958985,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10348,4119.31,0.00112152], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10348,4119.41,33.7196];
-_newObject setVectorDirAndUp [[-0.26673,0.963713,-0.0105997], [0,0.0109982,0.99994]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10341,4113.93,0.000259399], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10340.9,4113.95,33.7788];
-_newObject setVectorDirAndUp [[-0.959028,-0.283295,0.00311592], [-0,0.0109982,0.99994]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10392.3,4081.32,0.000587463], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10392.3,4081.22,33.5854];
-_newObject setVectorDirAndUp [[0.382164,-0.924073,-0.00630819], [0.00199978,-0.00599933,0.99998]];
-_newObject = createVehicle ['Land_Noticeboard_F', [10367.4,4126.11,0.000480652], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10367.3,4126.13,33.7002];
-_newObject setVectorDirAndUp [[-0.959243,-0.282574,-0.00213377], [-0.00899628,0.0229904,0.999695]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10342.9,4069.08,-5.72205e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10342.9,4069.08,33.7036];
-_newObject setVectorDirAndUp [[-0.283495,0.958974,0], [0,0,1]];
-_newObject = createVehicle ['PortableHelipadLight_01_green_F', [10336.7,4074.13,8.7738e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10336.7,4074.13,33.7879];
-_newObject setVectorDirAndUp [[-0.95895,-0.283564,-0.00267103], [-3.61274e-005,-0.00929692,0.999957]];
-_newObject = createVehicle ['Land_TTowerSmall_1_F', [10352,4126.05,0.000442505], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10352,4126.12,33.642];
-_newObject setVectorDirAndUp [[-0.95899,-0.283441,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10349.9,4125.18,0.000411987], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10349.8,4125.21,33.6541];
-_newObject setVectorDirAndUp [[-0.958993,-0.283372,0.0057759], [0.000999916,0.0169958,0.999855]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10398.9,4090.81,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10398.7,4091.75,33.623];
-_newObject setVectorDirAndUp [[0.266715,-0.963775,0], [0,0,1]];
-_newObject = createVehicle ['Land_HelipadSquare_F', [10336.4,4074.06,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10336.4,4074.06,33.7861];
-_newObject setVectorDirAndUp [[-0.958977,-0.283473,-0.00255098], [0,-0.00899866,0.99996]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10394,4113.03,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10394.2,4112.08,33.7912];
-_newObject setVectorDirAndUp [[-0.232917,0.972497,0], [0,0,1]];
-_newObject = createVehicle ['Flag_US_F', [10366.3,4129.31,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10365.9,4129.3,33.6139];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierWall_corridor_F', [10398.6,4102.44,3.8147e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10398.6,4102.43,33.714];
-_newObject setVectorDirAndUp [[-0.235595,0.97182,0.00777385], [0,-0.00799901,0.999968]];
-_newObject = createVehicle ['Land_Tank_rust_F', [10343.3,4122.74,0.000530243], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10343.3,4122.79,33.6819];
-_newObject setVectorDirAndUp [[-0.30022,0.953812,-0.0104908], [0,0.0109982,0.99994]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10390.5,4118.72,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10390.5,4118.63,33.7945];
-_newObject setVectorDirAndUp [[0.0775727,-0.996987,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_HelipadSquare_F', [10328.9,4101.33,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10328.9,4101.33,33.7945];
-_newObject setVectorDirAndUp [[-0.958989,-0.283442,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10339.1,4120.22,0.000259399], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10339,4120.25,33.7096];
-_newObject setVectorDirAndUp [[-0.959018,-0.283329,0.00311629], [-0,0.0109982,0.99994]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10339,4068.08,-5.72205e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10339,4068.08,33.7216];
-_newObject setVectorDirAndUp [[-0.283495,0.958974,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10357.7,4058.38,-0.000442505], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10357.6,4058.37,33.4989];
-_newObject setVectorDirAndUp [[-0.958966,-0.28351,0.00235155], [0.00599891,-0.0119975,0.99991]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10400.2,4084.84,0.00038147], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10400.2,4084.75,33.571];
-_newObject setVectorDirAndUp [[0.398253,-0.917265,-0.00446504], [0.00199949,-0.00399959,0.99999]];
-_newObject = createVehicle ['Land_CncWall4_F', [10361,4133.29,0.00585175], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10360.9,4133.58,33.491];
-_newObject setVectorDirAndUp [[-0.266689,0.963783,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10335.4,4067.09,-4.95911e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10335.4,4067.09,33.7234];
-_newObject setVectorDirAndUp [[-0.283495,0.958974,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10340.5,4126.3,0.00173187], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10340.5,4126.4,33.6363];
-_newObject setVectorDirAndUp [[-0.266763,0.963639,-0.0154165], [-0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_CncWall4_F', [10403.9,4103.9,0.000663757], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10403.7,4103.78,33.7211];
-_newObject setVectorDirAndUp [[-0.958976,-0.283486,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10366,4134.62,0.0104637], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10365.9,4134.94,33.4706];
-_newObject setVectorDirAndUp [[-0.266668,0.963788,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10405.5,4092.67,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10405.2,4093.61,33.6214];
-_newObject setVectorDirAndUp [[0.266715,-0.963775,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10400.5,4114.71,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10400.8,4113.76,33.7945];
-_newObject setVectorDirAndUp [[-0.232917,0.972497,0], [0,0,1]];
-_newObject = createVehicle ['Land_Loudspeakers_F', [10405,4104.3,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10404.9,4104.26,33.7237];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10360.9,4135.82,0.00384521], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10361.1,4135.96,33.4355];
-_newObject setVectorDirAndUp [[0.963768,0.266742,0], [0,0,1]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10344.4,4131.74,-0.0145111], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10344.4,4131.77,33.548];
-_newObject setVectorDirAndUp [[0.249934,-0.968127,0.0162066], [0.000999916,0.0169958,0.999855]];
-_newObject = createVehicle ['Land_CncWall4_F', [10370.9,4135.95,0.0104637], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10370.8,4136.27,33.3841];
-_newObject setVectorDirAndUp [[-0.266668,0.963788,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10347.4,4133.39,0.00043869], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10347.3,4133.42,33.517];
-_newObject setVectorDirAndUp [[-0.959006,-0.283328,0.00577516], [0.000999916,0.0169958,0.999855]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10342.8,4131.23,-0.0133591], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10342.8,4131.25,33.5574];
-_newObject setVectorDirAndUp [[0.249895,-0.968149,0.0154887], [-0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10399.1,4119.54,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10399.1,4119.46,33.7945];
-_newObject setVectorDirAndUp [[0.0776838,-0.996978,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10331.7,4066.05,-3.8147e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10331.7,4066.05,33.723];
-_newObject setVectorDirAndUp [[-0.283495,0.958974,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo40_military_green_F', [10387.3,4057.34,0.000160217], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10387.3,4057.34,33.383];
-_newObject setVectorDirAndUp [[0.266719,-0.963701,-0.0118618], [0.00102576,-0.0120238,0.999927]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10341.2,4130.82,-0.0133553], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10341.2,4130.85,33.5639];
-_newObject setVectorDirAndUp [[0.249895,-0.968149,0.0154887], [-0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10398.3,4121.54,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10398.3,4121.54,33.7945];
-_newObject setVectorDirAndUp [[0.999967,0.0081836,0], [0,0,1]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10339.5,4130.43,-0.0133591], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10339.5,4130.46,33.5701];
-_newObject setVectorDirAndUp [[0.249895,-0.968149,0.0154887], [-0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10408,4088.18,0.000915527], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10408,4088.08,33.5643];
-_newObject setVectorDirAndUp [[0.382168,-0.924044,-0.00946184], [0.00299944,-0.00899862,0.999955]];
-_newObject = createVehicle ['ContainmentArea_02_sand_F', [10341.6,4132.18,4.95911e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10341.6,4132.18,33.5422];
-_newObject setVectorDirAndUp [[-0.266759,0.96364,-0.0154165], [-0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_CncWall4_F', [10375.8,4137.35,0.000423431], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10375.8,4137.62,33.2842];
-_newObject setVectorDirAndUp [[-0.266395,0.963864,0], [0,0,1]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10343.6,4134.3,-0.0162392], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10343.6,4134.33,33.5054];
-_newObject setVectorDirAndUp [[0.249934,-0.968127,0.0162066], [0.000999916,0.0169958,0.999855]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10342,4133.79,-0.0141487], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10342,4133.81,33.5157];
-_newObject setVectorDirAndUp [[0.249934,-0.968127,0.0162066], [0.000999916,0.0169958,0.999855]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10330.7,4063.15,-1.14441e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10330.6,4063.14,33.7127];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10398.2,4125.11,0.000865936], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10398.2,4125.13,33.7857];
-_newObject setVectorDirAndUp [[0.999967,0.0081836,0], [0,0,1]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10340.4,4133.4,-0.0133629], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10340.4,4133.43,33.5226];
-_newObject setVectorDirAndUp [[0.24991,-0.968145,0.0154886], [-0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_CncWall4_F', [10362.6,4140.04,0.00268173], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10362.8,4140.15,33.371];
-_newObject setVectorDirAndUp [[0.963768,0.266742,0], [0,0,1]];
-_newObject = createVehicle ['Windsock_01_F', [10319.5,4083.6,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10319.5,4083.6,33.7945];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['WaterPump_01_forest_F', [10324.4,4071.11,0.000648499], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10324.4,4071.11,33.7757];
-_newObject setVectorDirAndUp [[-0.266849,0.963724,0.00526983], [0.00146554,-0.00506232,0.999986]];
-_newObject = createVehicle ['Land_Cargo40_military_green_F', [10388,4054.39,0.000762939], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10388,4054.39,33.3449];
-_newObject setVectorDirAndUp [[0.266606,-0.96372,-0.0128465], [0.00489501,-0.0119749,0.999916]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10336,4130.65,0.000484467], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10335.9,4130.68,33.5666];
-_newObject setVectorDirAndUp [[-0.958993,-0.283393,0.00453379], [0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10377.1,4049.68,0.00150299], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10377.1,4049.6,33.2822];
-_newObject setVectorDirAndUp [[-0.266712,0.963776,0], [0,0,1]];
-_newObject = createVehicle ['Land_PalletTrolley_01_khaki_F', [10366.1,4140.47,6.10352e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10366.1,4140.47,33.3456];
-_newObject setVectorDirAndUp [[-0.963819,-0.266408,0.00887493], [0.00699335,0.00801064,0.999943]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [10338.7,4133.01,-0.0133629], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10338.7,4133.04,33.5289];
-_newObject setVectorDirAndUp [[0.249895,-0.968149,0.0154887], [-0,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_CncWall4_F', [10372.3,4047.84,-0.00526047], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10372.2,4048.06,33.2725];
-_newObject setVectorDirAndUp [[-0.26665,0.963793,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo10_military_green_F', [10364.4,4140.93,0.000144958], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10364.4,4140.93,33.3539];
-_newObject setVectorDirAndUp [[-0.963706,-0.266816,0.00888947], [0.00700809,0.0080026,0.999943]];
-_newObject = createVehicle ['Land_CncWall4_F', [10381.5,4050.3,-0.00312042], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10381.4,4050.53,33.3014];
-_newObject setVectorDirAndUp [[-0.266701,0.963779,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10331.4,4060.66,7.62939e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10331.4,4060.65,33.6899];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10354.3,4140.25,8.7738e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10354.3,4140.28,33.4078];
-_newObject setVectorDirAndUp [[0.266704,-0.963778,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10349.3,4139.28,-0.00129318], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10349.5,4139.04,33.436];
-_newObject setVectorDirAndUp [[0.266709,-0.963777,0], [0,0,1]];
-_newObject = createVehicle ['Land_PalletTrolley_01_khaki_F', [10369.3,4141.3,0.000114441], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10369.3,4141.3,33.3168];
-_newObject setVectorDirAndUp [[-0.963768,-0.266591,0.00899759], [0.00712643,0.00798545,0.999943]];
-_newObject = createVehicle ['Land_CncWall4_F', [10367.5,4046.47,-0.00526047], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10367.4,4046.68,33.274];
-_newObject setVectorDirAndUp [[-0.266644,0.963795,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10328.8,4125.82,0.000343323], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10328.8,4125.82,33.6443];
-_newObject setVectorDirAndUp [[-0.663127,-0.748412,0.0119404], [-8.43452e-006,0.0159598,0.999873]];
-_newObject = createVehicle ['Land_CncWall4_F', [10386.4,4051.62,-0.00299072], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10386.3,4051.85,33.3179];
-_newObject setVectorDirAndUp [[-0.266701,0.963779,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10380.8,4138.69,0.000423431], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10380.7,4138.96,33.1327];
-_newObject setVectorDirAndUp [[-0.266484,0.96384,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10358.5,4141.76,-0.00141907], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10358.6,4141.52,33.3821];
-_newObject setVectorDirAndUp [[0.266704,-0.963778,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo10_military_green_F', [10367.4,4141.78,0.000144958], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10367.4,4141.78,33.3261];
-_newObject setVectorDirAndUp [[-0.95933,-0.282144,0.00898113], [0.00700753,0.00800334,0.999943]];
-_newObject = createVehicle ['WaterPump_01_forest_F', [10316.7,4097.97,0.000919342], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10316.7,4097.97,33.7954];
-_newObject setVectorDirAndUp [[0.266628,-0.9638,-6.25583e-006], [2.23416e-005,-3.10165e-007,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10326.6,4123.66,0.000175476], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10326.6,4123.66,33.672];
-_newObject setVectorDirAndUp [[-0.663063,-0.748519,0.00809949], [-2.25555e-005,0.01084,0.999941]];
-_newObject = createVehicle ['Land_CncWall4_F', [10344.4,4138,-0.000888824], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10344.5,4137.75,33.449];
-_newObject setVectorDirAndUp [[0.266725,-0.963773,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10411.3,4108.86,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10410.3,4108.6,33.7594];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10324.6,4121.48,0.000164032], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10324.6,4121.48,33.6956];
-_newObject setVectorDirAndUp [[-0.663027,-0.748554,0.00787933], [-0.00050687,0.0109744,0.999939]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10412.9,4102.64,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10411.9,4102.38,33.7034];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10398.2,4128.61,0.00249863], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10398.3,4128.65,33.4831];
-_newObject setVectorDirAndUp [[0.999931,0.0117643,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10332,4058.22,7.62939e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10332,4058.22,33.6656];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10322.7,4119.39,0.000144958], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10322.7,4119.39,33.7166];
-_newObject setVectorDirAndUp [[-0.663121,-0.748474,0.00756472], [-0.00100386,0.0109956,0.999939]];
-_newObject = createVehicle ['Land_CncWall4_F', [10363.4,4143.08,-0.001194], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10363.5,4142.84,33.3448];
-_newObject setVectorDirAndUp [[0.266519,-0.96383,0], [0,0,1]];
-_newObject = createVehicle ['Land_PalletTrolley_01_khaki_F', [10372.3,4142.22,0.00044632], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10372.3,4142.22,33.285];
-_newObject setVectorDirAndUp [[-0.979661,-0.200248,0.0128181], [0.0109043,0.0106569,0.999884]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10409.5,4115.31,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10408.5,4115.05,33.7945];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10362.5,4045.09,-0.0039711], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10362.4,4045.32,33.3094];
-_newObject setVectorDirAndUp [[-0.266644,0.963795,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo10_military_green_F', [10370.6,4142.67,0.000267029], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10370.6,4142.67,33.2955];
-_newObject setVectorDirAndUp [[-0.958939,-0.283381,0.0114168], [0.0089611,0.00996043,0.99991]];
-_newObject = createVehicle ['Land_CncWall4_F', [10391.4,4053.01,-0.00347519], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10391.3,4053.24,33.3108];
-_newObject setVectorDirAndUp [[-0.266644,0.963795,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10339.4,4136.62,-0.00391769], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10339.5,4136.4,33.4739];
-_newObject setVectorDirAndUp [[0.266725,-0.963773,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [10414.6,4096.19,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10413.6,4095.93,33.6362];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo10_military_green_F', [10373.5,4143.38,0.000244141], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10373.5,4143.38,33.2616];
-_newObject setVectorDirAndUp [[-0.95882,-0.283783,0.011469], [0.00900048,0.0100009,0.999909]];
-_newObject = createVehicle ['Land_CncWall4_F', [10368.3,4144.44,-0.00143051], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10368.5,4144.21,33.2989];
-_newObject setVectorDirAndUp [[0.266519,-0.96383,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10407.7,4120.27,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10407.7,4120.19,33.7945];
-_newObject setVectorDirAndUp [[0.0776754,-0.996979,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10334.5,4135.26,-0.00379562], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10334.6,4135.04,33.4964];
-_newObject setVectorDirAndUp [[0.266701,-0.963779,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10357.5,4043.76,-0.0039711], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10357.4,4043.99,33.3375];
-_newObject setVectorDirAndUp [[-0.266644,0.963795,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10382.4,4141.79,-0.00727844], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10382.2,4141.7,33.0639];
-_newObject setVectorDirAndUp [[-0.958907,-0.283719,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10396.3,4054.36,-0.00457382], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10396.2,4054.57,33.3043];
-_newObject setVectorDirAndUp [[-0.266769,0.963761,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10347.7,4045.78,-0.00134659], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10347.8,4046.04,33.47];
-_newObject setVectorDirAndUp [[0.334351,0.942448,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10398.3,4132.21,0.00249863], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10398.3,4132.25,33.1157];
-_newObject setVectorDirAndUp [[0.99993,0.0118293,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10342.8,4047.56,-0.00134659], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10342.9,4047.81,33.5165];
-_newObject setVectorDirAndUp [[0.334351,0.942448,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10326.7,4129.15,-0.00243759], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10326.9,4129.01,33.5929];
-_newObject setVectorDirAndUp [[0.71289,-0.701276,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10352.5,4044.07,-0.000709534], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10352.6,4044.32,33.4039];
-_newObject setVectorDirAndUp [[0.334342,0.942452,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10330.2,4132.75,-0.00243759], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10330.4,4132.61,33.5352];
-_newObject setVectorDirAndUp [[0.712859,-0.701307,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10323,4125.48,-0.00222778], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10323.3,4125.34,33.6509];
-_newObject setVectorDirAndUp [[0.71289,-0.701276,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10400.5,4056.88,-0.00516129], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10400.3,4057.01,33.3635];
-_newObject setVectorDirAndUp [[-0.712893,0.701273,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10416,4091.71,0.00114441], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10416,4091.61,33.5874];
-_newObject setVectorDirAndUp [[0.398318,-0.917188,-0.0104863], [0.001,-0.0109982,0.999939]];
-_newObject = createVehicle ['Land_CncWall4_F', [10338,4049.34,-0.00134659], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10338.1,4049.59,33.5626];
-_newObject setVectorDirAndUp [[0.334351,0.942448,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10404.2,4060.49,-0.00469589], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10404,4060.61,33.4132];
-_newObject setVectorDirAndUp [[-0.72515,0.688591,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10373.3,4145.7,-0.00143051], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10373.4,4145.47,33.242];
-_newObject setVectorDirAndUp [[0.266579,-0.963813,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10333.9,4051.91,0.000339508], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10333.9,4051.87,33.6026];
-_newObject setVectorDirAndUp [[0.334355,0.942447,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10407.8,4064.19,-0.00170135], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10407.6,4064.34,33.4515];
-_newObject setVectorDirAndUp [[-0.724991,0.688758,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10319.4,4121.86,-0.00193787], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10319.6,4121.71,33.6879];
-_newObject setVectorDirAndUp [[0.712876,-0.70129,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10382.9,4143.77,-0.000202179], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10382.9,4143.5,33.0427];
-_newObject setVectorDirAndUp [[-0.334317,-0.942461,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10378.1,4145.47,-0.00355148], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10378.1,4145.22,33.1425];
-_newObject setVectorDirAndUp [[-0.334317,-0.942461,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10387.8,4142.03,-0.000488281], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10387.8,4141.76,32.9555];
-_newObject setVectorDirAndUp [[-0.334317,-0.942461,0], [0,0,1]];
-_newObject = createVehicle ['ContainmentArea_01_sand_F', [10317.8,4068.78,-0.0355606], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10317.8,4068.78,33.7662];
-_newObject setVectorDirAndUp [[0.963771,0.266721,-0.0023578], [0.00299986,-0.0019998,0.999994]];
-_newObject = createVehicle ['StorageBladder_01_fuel_forest_F', [10317.8,4068.73,-0.0138512], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10317.8,4068.76,33.7662];
-_newObject setVectorDirAndUp [[-0.958969,-0.2835,0.00230984], [0.00299986,-0.0019998,0.999994]];
-_newObject = createVehicle ['Land_CncWall4_F', [10411.3,4067.83,-0.00152588], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10411.1,4067.98,33.4607];
-_newObject setVectorDirAndUp [[-0.724961,0.68879,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10316.5,4118.11,0.000179291], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10316.5,4118.14,33.7268];
-_newObject setVectorDirAndUp [[0.712876,-0.70129,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10416,4109.5,0.000911713], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10415.8,4109.38,33.7696];
-_newObject setVectorDirAndUp [[-0.958972,-0.283502,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10417.4,4104.6,0.00128555], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10417.1,4104.48,33.727];
-_newObject setVectorDirAndUp [[-0.95897,-0.283507,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10392.5,4140.22,-0.000480652], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10392.5,4139.95,32.7879];
-_newObject setVectorDirAndUp [[-0.333403,-0.942784,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10414.7,4114.42,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10414.5,4114.31,33.7945];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['StorageBladder_01_fuel_forest_F', [10310.3,4096.78,-0.0137939], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10310.3,4096.81,33.7945];
-_newObject setVectorDirAndUp [[-0.95898,-0.283473,0], [0,0,1]];
-_newObject = createVehicle ['ContainmentArea_01_sand_F', [10310.3,4096.8,-0.0355339], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10310.3,4096.8,33.7945];
-_newObject setVectorDirAndUp [[0.963781,0.266695,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10329.1,4052.61,-0.0017395], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10329.1,4052.86,33.6343];
-_newObject setVectorDirAndUp [[0.334355,0.942447,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10418.8,4099.6,0.00179291], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10418.6,4099.47,33.6812];
-_newObject setVectorDirAndUp [[-0.95897,-0.283507,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10413.3,4119.34,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10413,4119.23,33.7945];
-_newObject setVectorDirAndUp [[-0.958974,-0.283495,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10414.6,4071.56,0.000431061], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10414.7,4071.55,33.4612];
-_newObject setVectorDirAndUp [[-0.724961,0.68879,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10397.4,4138.6,0.000980377], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10397.4,4138.62,32.6121];
-_newObject setVectorDirAndUp [[-0.333403,-0.942784,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10420.1,4094.69,0.00178909], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10419.9,4094.56,33.6187];
-_newObject setVectorDirAndUp [[-0.95897,-0.283507,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10312.7,4115.15,-0.0018692], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10312.9,4115.01,33.7644];
-_newObject setVectorDirAndUp [[0.712872,-0.701294,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10324.3,4054.37,-0.00187302], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10324.3,4054.62,33.671];
-_newObject setVectorDirAndUp [[0.334319,0.94246,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10401.4,4136.9,-0.019516], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10401.4,4136.84,32.5761];
-_newObject setVectorDirAndUp [[-0.336853,-0.941557,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10418,4074.51,-0.0026741], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10417.8,4074.65,33.4912];
-_newObject setVectorDirAndUp [[-0.725056,0.68869,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10309.1,4111.53,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10309.3,4111.37,33.7945];
-_newObject setVectorDirAndUp [[0.712946,-0.701219,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10406.3,4135.2,-0.0195198], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10406.3,4135.14,32.7013];
-_newObject setVectorDirAndUp [[-0.33616,-0.941805,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10307.4,4080.58,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10307.4,4080.56,33.7945];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10319.4,4056.1,-0.00187302], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10319.4,4056.35,33.6995];
-_newObject setVectorDirAndUp [[0.334319,0.94246,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10421.7,4078.15,-0.000911713], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10421.5,4078.31,33.4991];
-_newObject setVectorDirAndUp [[-0.724986,0.688763,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10307.6,4075.9,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10307.8,4076,33.7945];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10305,4085.08,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10305.3,4085.19,33.7945];
-_newObject setVectorDirAndUp [[0.963775,0.266718,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10308.9,4070.94,-0.000202179], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10309.2,4071.04,33.7866];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10305.5,4107.85,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10305.7,4107.68,33.7945];
-_newObject setVectorDirAndUp [[0.712957,-0.701208,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10303.7,4089.99,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10304,4090.09,33.7945];
-_newObject setVectorDirAndUp [[0.963775,0.266718,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10310.2,4066.01,-0.000202179], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10310.5,4066.11,33.7767];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10411.1,4133.45,-0.0195198], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10411.1,4133.39,32.8343];
-_newObject setVectorDirAndUp [[-0.33616,-0.941805,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10314.6,4057.89,-0.00187302], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10314.7,4058.14,33.7282];
-_newObject setVectorDirAndUp [[0.334319,0.94246,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10302.4,4094.97,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10302.6,4095.07,33.7945];
-_newObject setVectorDirAndUp [[0.963772,0.266728,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10425.3,4081.85,-0.00211716], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10425.1,4082.01,33.5095];
-_newObject setVectorDirAndUp [[-0.724981,0.688769,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10311.7,4061.11,-0.000259399], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10311.9,4061.2,33.7603];
-_newObject setVectorDirAndUp [[0.963775,0.266715,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10420.3,4123.71,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10420,4123.6,33.7945];
-_newObject setVectorDirAndUp [[-0.959036,-0.283284,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10301.9,4104.2,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10302.1,4104.04,33.7945];
-_newObject setVectorDirAndUp [[0.712957,-0.701208,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10300.9,4099.95,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10301.2,4100.05,33.7945];
-_newObject setVectorDirAndUp [[0.963771,0.266731,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10428.3,4094.74,0.00129318], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10428,4094.61,33.6215];
-_newObject setVectorDirAndUp [[-0.958954,-0.283562,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10416,4131.69,-0.0188026], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10416,4131.63,33.0192];
-_newObject setVectorDirAndUp [[-0.33616,-0.941805,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10418.9,4128.35,-0.000423431], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10418.6,4128.45,33.3912];
-_newObject setVectorDirAndUp [[-0.959036,-0.283284,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10428.8,4085.5,-0.00175476], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10428.6,4085.64,33.5098];
-_newObject setVectorDirAndUp [[-0.725027,0.688721,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10429.7,4089.77,0.00129318], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10429.4,4089.64,33.5555];
-_newObject setVectorDirAndUp [[-0.958954,-0.283562,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10426.4,4116.07,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10426.4,4115.98,33.7945];
-_newObject setVectorDirAndUp [[0.266347,-0.963877,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10422.8,4124.42,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10422.9,4124.17,33.7945];
-_newObject setVectorDirAndUp [[0.266922,-0.963718,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10429.7,4104.36,0.000774384], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10429.7,4104.27,33.7247];
-_newObject setVectorDirAndUp [[0.266242,-0.963873,-0.00797646], [0.000999723,-0.00799901,0.999968]];
-_newObject = createVehicle ['Land_CncWall4_F', [10430.6,4096.64,-0.00322342], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10430.5,4096.87,33.6483];
-_newObject setVectorDirAndUp [[-0.266662,0.96379,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10432.7,4109.69,-3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10432.7,4109.69,33.7692];
-_newObject setVectorDirAndUp [[0.953877,0.300199,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10433.4,4107.28,-3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10433.4,4107.28,33.7476];
-_newObject setVectorDirAndUp [[0.953877,0.300199,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10427.7,4125.65,-0.0113335], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10427.9,4125.53,33.6986];
-_newObject setVectorDirAndUp [[0.26678,-0.963758,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10435.6,4097.97,-0.00322342], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10435.5,4098.2,33.6605];
-_newObject setVectorDirAndUp [[-0.266662,0.96379,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10434.7,4118.56,-0.00101471], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10434.7,4118.5,33.7295];
-_newObject setVectorDirAndUp [[0.283121,-0.958989,0.0135159], [0.0199899,0.0199899,0.9996]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10438.1,4106.84,0.000888824], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10438,4106.74,33.743];
-_newObject setVectorDirAndUp [[0.283344,-0.958977,-0.00891322], [0.00100002,-0.00899865,0.999959]];
-_newObject = createVehicle ['Land_CncWall4_F', [10432.7,4126.94,-0.0113335], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10432.8,4126.82,33.5039];
-_newObject setVectorDirAndUp [[0.266698,-0.96378,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10440.6,4099.37,-0.00389862], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10440.5,4099.59,33.6725];
-_newObject setVectorDirAndUp [[-0.266634,0.963798,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10433.7,4131.98,0.00402451], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10433.6,4132.03,33.2317];
-_newObject setVectorDirAndUp [[-0.959026,-0.283156,-0.00955223], [-0.0199823,0.0339699,0.999223]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10444.6,4095.65,6.10352e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10444.5,4095.64,33.6053];
-_newObject setVectorDirAndUp [[-0.959039,-0.283252,-0.00357244], [0.000999933,-0.0159962,0.999872]];
-_newObject = createVehicle ['Land_CncWall4_F', [10437.6,4128.35,-0.00699234], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10437.7,4128.15,33.4361];
-_newObject setVectorDirAndUp [[0.266698,-0.96378,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10445.4,4100.7,-0.00229263], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10445.3,4100.94,33.6827];
-_newObject setVectorDirAndUp [[-0.266634,0.963798,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10442.8,4120.88,-0.0010376], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10442.8,4120.81,33.5758];
-_newObject setVectorDirAndUp [[0.266357,-0.963798,0.01216], [0.00499884,0.0139969,0.99989]];
-_newObject = createVehicle ['Land_HBarrierTower_F', [10441.2,4125.19,0.000705719], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10441.1,4125.23,33.5194];
-_newObject setVectorDirAndUp [[-0.958992,-0.283067,0.0144176], [0.00499644,0.0339762,0.99941]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10435.7,4136.89,-0.000888824], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10435.7,4136.84,33.1047];
-_newObject setVectorDirAndUp [[0.266792,-0.963002,0.0380737], [-0.0199823,0.0339699,0.999223]];
-_newObject = createVehicle ['Land_HBarrierTower_F', [10446.9,4104.83,-0.000793457], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10446.8,4104.81,33.699];
-_newObject setVectorDirAndUp [[-0.958944,-0.28339,0.0108306], [0.0109982,0.000999695,0.999939]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10446.4,4109.2,-8.01086e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10446.4,4109.12,33.7005];
-_newObject setVectorDirAndUp [[0.266684,-0.963782,-0.00196967], [0.0109982,0.000999695,0.999939]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10449.1,4091.86,0.00171661], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10449.1,4091.76,33.5403];
-_newObject setVectorDirAndUp [[0.26677,-0.963633,-0.0156832], [0.000999933,-0.0159962,0.999872]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10447.9,4118.02,0.000110626], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10447.9,4118.03,33.59];
-_newObject setVectorDirAndUp [[0.95388,0.30019,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [10447.2,4120.43,0.000110626], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10447.2,4120.44,33.5599];
-_newObject setVectorDirAndUp [[0.95388,0.30019,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10451.2,4123.42,-0.000995636], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10451.2,4123.35,33.5053];
-_newObject setVectorDirAndUp [[0.283447,-0.95889,0.0137063], [-0.000999657,0.013997,0.999902]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10444.1,4139.4,-0.00128174], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10444.1,4139.34,33.1315];
-_newObject setVectorDirAndUp [[0.284211,-0.958395,0.0265149], [-0.00899585,0.0249884,0.999647]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10454.7,4111.67,1.14441e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10454.7,4111.58,33.6618];
-_newObject setVectorDirAndUp [[0.283771,-0.958892,0.000283702], [-0.000999755,0,1]];
-_newObject = createVehicle ['Land_HBarrierBig_F', [10457.4,4094.37,0.00239944], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10457.4,4094.26,33.5514];
-_newObject setVectorDirAndUp [[0.283672,-0.95871,-0.0201306], [0,-0.020993,0.99978]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10452.7,4129.56,0.00069809], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10452.6,4129.6,33.3909];
-_newObject setVectorDirAndUp [[-0.958996,-0.283364,0.00566668], [-0,0.0199939,0.9998]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10459.2,4107.24,8.7738e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10459.2,4107.25,33.6663];
-_newObject setVectorDirAndUp [[-0.958992,-0.28343,-0.000958758], [-0.000999755,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10450.2,4137.88,0.000717163], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10450.1,4137.91,33.2278];
-_newObject setVectorDirAndUp [[-0.959086,-0.283115,-0.000155872], [-0.00399926,0.0129975,0.999908]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10461.7,4098.91,0.00031662], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10461.6,4098.89,33.6466];
-_newObject setVectorDirAndUp [[-0.959013,-0.283298,-0.00594859], [0,-0.020993,0.99978]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10465,4126.64,0.000572205], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10464.9,4126.67,33.4584];
-_newObject setVectorDirAndUp [[-0.958976,-0.283466,0.00357621], [-0.000999627,0.0159962,0.999872]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10467.5,4118.13,0.000617981], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10467.5,4118.16,33.5952];
-_newObject setVectorDirAndUp [[-0.95923,-0.282618,0.00232047], [-0.00199959,0.0149965,0.999886]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10462.5,4134.85,0.000850677], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10462.5,4134.88,33.3247];
-_newObject setVectorDirAndUp [[-0.958962,-0.283533,0.000700529], [-0.00399909,0.0159961,0.999864]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [10470.1,4109.93,0.000343323], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10470,4109.95,33.7052];
-_newObject setVectorDirAndUp [[-0.958946,-0.283589,0.000350785], [-0.00199975,0.007999,0.999966]];
-_newObject = createVehicle ['Land_Razorwire_F', [10330.3,4144.81,-0.0189247], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10331,4143.23,33.4351];
-_newObject setVectorDirAndUp [[0.900552,0.434746,-0.00130405], [-0,0.00299956,0.999996]];
-_newObject = createVehicle ['Land_Razorwire_F', [10324.6,4157.45,0.00945663], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10325.4,4155.91,33.4274];
-_newObject setVectorDirAndUp [[0.868838,0.495097,-0.000373915], [0.00100006,-0.000999755,0.999999]];
-_newObject = createVehicle ['Land_Razorwire_F', [10319,4169.08,0.0464897], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10319.8,4167.54,33.4787];
-_newObject setVectorDirAndUp [[0.868854,0.495046,0.00482849], [-0.000999723,-0.0079987,0.999968]];
-_newObject = createVehicle ['Land_Razorwire_F', [10313.2,4179.95,0.0528145], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10313.8,4178.33,33.5718];
-_newObject setVectorDirAndUp [[0.915376,0.402528,0.00768595], [-0.0039994,-0.0099982,0.999942]];
-_newObject = createVehicle ['Land_Razorwire_F', [10306.1,4191.38,-0.0141602], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10307.1,4190,33.6659];
-_newObject setVectorDirAndUp [[0.775882,0.630707,-0.0146952], [0.00999798,0.0109976,0.99989]];
-_newObject = createVehicle ['Land_Razorwire_F', [10365.5,4025.62,0.375439], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10366.2,4024,32.9484];
-_newObject setVectorDirAndUp [[0.901044,0.433618,-0.00975315], [0.0319492,-0.0439301,0.998524]];
-_newObject = createVehicle ['Land_Razorwire_F', [10360.3,4036.45,0.147507], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10361.1,4034.9,33.2247];
-_newObject setVectorDirAndUp [[0.868771,0.495182,-0.00560342], [0.0149951,-0.0149948,0.999775]];
-_newObject = createVehicle ['Land_Razorwire_F', [10371.8,4010.1,-0.587322], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10371,4011.56,32.1516];
-_newObject setVectorDirAndUp [[-0.860105,-0.509113,0.0319905], [0.0805079,-0.0735506,0.994037]];
-_newObject = createVehicle ['Land_Razorwire_F', [10298.3,4200.08,0.066761], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10299.5,4198.83,33.6667];
-_newObject setVectorDirAndUp [[0.696127,0.71752,-0.023901], [0.02299,0.0109953,0.999675]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9648.47,4176.98,0.00268936], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9651.97,4176.86,34.8096];
-_newObject setVectorDirAndUp [[-0.28512,0.958492,0], [0,0,1]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9604.31,4162.63,-0.00875473], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9607.79,4162.53,34.2187];
-_newObject setVectorDirAndUp [[-0.28512,0.958492,0], [0,0,1]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9619.92,4126.38,0.00661469], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9616.42,4126.43,33.8124];
-_newObject setVectorDirAndUp [[0.277464,-0.960736,0], [0,0,1]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9664.2,4140.33,-0.0146599], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9660.71,4140.36,33.8474];
-_newObject setVectorDirAndUp [[0.277464,-0.960736,0], [0,0,1]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9538.01,4065.9,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9538.12,4069.4,33.7974];
-_newObject setVectorDirAndUp [[-0.964261,-0.264955,0], [0,0,1]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9551.38,4021.44,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9551.49,4024.94,33.7974];
-_newObject setVectorDirAndUp [[-0.964261,-0.264955,0], [0,0,1]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9587.9,4036.3,-3.05176e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9587.76,4032.81,33.7973];
-_newObject setVectorDirAndUp [[0.966344,0.257254,0], [0,0,1]];
-_newObject = createVehicle ['Land_u_Barracks_V2_F', [9574.9,4080.87,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9574.77,4077.38,33.7974];
-_newObject setVectorDirAndUp [[0.966344,0.257254,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [9568.37,4144.79,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9568.75,4144.39,33.7974];
-_newObject setVectorDirAndUp [[0.697064,-0.717009,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9570.41,4140.46,-0.000999451], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9570.42,4140.45,33.7974];
-_newObject setVectorDirAndUp [[-0.684449,0.729061,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9572.59,4142.52,-0.000999451], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9572.6,4142.51,33.7974];
-_newObject setVectorDirAndUp [[-0.684476,0.729035,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9563.35,4148.2,-0.00414658], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9563.37,4148.19,33.7973];
-_newObject setVectorDirAndUp [[-0.684307,0.729195,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9565.48,4150.24,-0.0445633], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9565.5,4150.22,33.8045];
-_newObject setVectorDirAndUp [[-0.684572,0.728596,0.0225838], [-0,-0.0309815,0.99952]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9561.87,4145.64,-0.0126572], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9561.86,4145.64,33.8132];
-_newObject setVectorDirAndUp [[0.951796,-0.305807,-0.023792], [0.0249891,0,0.999688]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9561.25,4142.84,0.0193214], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9561.56,4142.94,33.8286];
-_newObject setVectorDirAndUp [[0.91211,0.409311,-0.0228], [0.0249891,0,0.999688]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9568.02,4151.6,0.0142746], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9568.01,4151.6,33.8469];
-_newObject setVectorDirAndUp [[0.328839,-0.943933,-0.0292585], [-0,-0.0309815,0.99952]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9570.75,4152.09,-0.0118561], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9570.58,4151.81,33.8621];
-_newObject setVectorDirAndUp [[-0.451531,-0.891827,-0.0276434], [-0,-0.0309815,0.99952]];
-_newObject = createVehicle ['Land_Razorwire_F', [9559.69,4152.29,-0.0689468], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9561.01,4153.4,33.9187];
-_newObject setVectorDirAndUp [[-0.683925,0.728718,0.0348969], [0.0179865,-0.0309765,0.999358]];
-_newObject = createVehicle ['Land_Razorwire_F', [9557.23,4148.34,-0.0283813], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9556.89,4146.65,33.929];
-_newObject setVectorDirAndUp [[0.985104,-0.170185,-0.0246246], [0.0249891,0,0.999688]];
-_newObject = createVehicle ['Land_Razorwire_F', [9569.59,4156.97,0.0411873], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9567.88,4156.68,34.0134];
-_newObject setVectorDirAndUp [[0.194142,-0.980503,-0.0303921], [-0,-0.0309815,0.99952]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [9541.36,4106.86,0.0030098], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9541.88,4106.66,33.9002];
-_newObject setVectorDirAndUp [[0.936409,-0.350871,-0.00526243], [-0,-0.0149965,0.999888]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9545.27,4103.31,-0.0179291], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9545.28,4103.3,33.8469];
-_newObject setVectorDirAndUp [[-0.930233,0.366928,0.00550325], [-0,-0.0149965,0.999888]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9546.34,4106.09,0.00759506], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9546.37,4106.09,33.8521];
-_newObject setVectorDirAndUp [[-0.930162,0.366884,0.0139507], [0.0149965,0,0.999888]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9535.59,4107.28,-0.0103607], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9535.61,4107.27,33.9448];
-_newObject setVectorDirAndUp [[-0.929951,0.366892,0.0240998], [0.0199916,-0.0149935,0.999688]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9536.65,4110.02,-0.0103683], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9536.67,4110.01,33.9647];
-_newObject setVectorDirAndUp [[-0.930133,0.36643,0.0240965], [0.0199916,-0.0149935,0.999688]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9535.34,4104.35,0.0256271], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9535.34,4104.34,33.9057];
-_newObject setVectorDirAndUp [[0.991352,0.130006,-0.0178751], [0.0199916,-0.0149935,0.999688]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9535.85,4101.85,0.0335732], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9536.09,4102.07,33.8581];
-_newObject setVectorDirAndUp [[0.650345,0.759638,-0.00161233], [0.0199916,-0.0149935,0.999688]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9538.36,4112.33,-0.0134354], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9538.35,4112.34,33.972];
-_newObject setVectorDirAndUp [[0.700804,-0.713277,-0.0105108], [0.0149965,0,0.999888]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9540.5,4114.26,-0.0187225], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9540.47,4113.94,33.9592];
-_newObject setVectorDirAndUp [[-0.027153,-0.999575,-0.0105869], [0.0149956,-0.0109969,0.999827]];
-_newObject = createVehicle ['Land_Razorwire_F', [9532.13,4110.09,-0.0414047], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9532.85,4111.66,34.056];
-_newObject setVectorDirAndUp [[-0.929908,0.367001,0.0241005], [0.0199916,-0.0149935,0.999688]];
-_newObject = createVehicle ['Land_Razorwire_F', [9531.6,4105.48,0.128792], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9532.01,4103.78,33.9983];
-_newObject setVectorDirAndUp [[0.963592,0.26679,-0.0177286], [0.0219902,-0.0129944,0.999674]];
-_newObject = createVehicle ['Land_Razorwire_F', [9539.09,4118.54,-0.052639], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9537.67,4117.56,34.0275];
-_newObject setVectorDirAndUp [[0.594532,-0.803876,-0.0177586], [0.0149956,-0.0109969,0.999827]];
-_newObject = createVehicle ['Land_CncWall4_F', [9698.89,4070.95,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9698.64,4070.84,33.7945];
-_newObject setVectorDirAndUp [[-0.963178,-0.268864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9697.51,4075.88,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9697.26,4075.77,33.7945];
-_newObject setVectorDirAndUp [[-0.958339,-0.285633,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9700.24,4066.03,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9699.99,4065.92,33.7945];
-_newObject setVectorDirAndUp [[-0.958339,-0.285633,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9696.19,4080.72,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9695.94,4080.62,33.7945];
-_newObject setVectorDirAndUp [[-0.963178,-0.268864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9701.63,4061.09,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9701.38,4060.99,33.7945];
-_newObject setVectorDirAndUp [[-0.963178,-0.268864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9694.79,4085.65,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9694.55,4085.55,33.7945];
-_newObject setVectorDirAndUp [[-0.958339,-0.285633,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9702.98,4056.21,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9702.73,4056.1,33.7945];
-_newObject setVectorDirAndUp [[-0.958339,-0.285633,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9675.86,4030.44,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.75,4030.69,33.7945];
-_newObject setVectorDirAndUp [[-0.268864,0.963178,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9680.79,4031.72,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9680.69,4031.98,33.7945];
-_newObject setVectorDirAndUp [[-0.252014,0.967724,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9693.45,4090.56,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9693.2,4090.46,33.7945];
-_newObject setVectorDirAndUp [[-0.963178,-0.268864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9670.91,4029.11,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9670.81,4029.36,33.7945];
-_newObject setVectorDirAndUp [[-0.252014,0.967724,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9685.74,4033.04,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9685.64,4033.3,33.7945];
-_newObject setVectorDirAndUp [[-0.268864,0.963178,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9666,4027.83,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9665.9,4028.08,33.7945];
-_newObject setVectorDirAndUp [[-0.268864,0.963178,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9690.6,4034.3,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9690.5,4034.55,33.7945];
-_newObject setVectorDirAndUp [[-0.252014,0.967724,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9704.37,4051.26,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9704.12,4051.16,33.7945];
-_newObject setVectorDirAndUp [[-0.963178,-0.268864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9692.05,4095.54,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9691.8,4095.44,33.7945];
-_newObject setVectorDirAndUp [[-0.958339,-0.285633,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9661.05,4026.5,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9660.95,4026.75,33.7945];
-_newObject setVectorDirAndUp [[-0.252014,0.967724,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9695.55,4035.63,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9695.45,4035.88,33.7945];
-_newObject setVectorDirAndUp [[-0.268864,0.963178,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9705.71,4046.36,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9705.46,4046.25,33.7945];
-_newObject setVectorDirAndUp [[-0.958339,-0.285633,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9690.7,4100.46,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9690.44,4100.35,33.7945];
-_newObject setVectorDirAndUp [[-0.963178,-0.268864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9656.12,4025.21,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9656.01,4025.46,33.7945];
-_newObject setVectorDirAndUp [[-0.268864,0.963178,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9700.49,4036.92,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9700.39,4037.17,33.7945];
-_newObject setVectorDirAndUp [[-0.252014,0.967724,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9707.1,4041.42,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9706.85,4041.32,33.7945];
-_newObject setVectorDirAndUp [[-0.963178,-0.268864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9651.16,4023.89,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9651.06,4024.15,33.7945];
-_newObject setVectorDirAndUp [[-0.252014,0.967724,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9705.43,4038.24,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9705.33,4038.49,33.7945];
-_newObject setVectorDirAndUp [[-0.268864,0.963178,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9646.3,4022.6,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9646.2,4022.86,33.7945];
-_newObject setVectorDirAndUp [[-0.268864,0.963178,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9636.89,4027.89,-0.0115356], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9637.06,4027.94,33.8944];
-_newObject setVectorDirAndUp [[0.953208,0.302315,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9641.35,4021.29,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9641.25,4021.54,33.7945];
-_newObject setVectorDirAndUp [[-0.252014,0.967724,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [9638.23,4022.93,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9638.48,4023.03,33.7945];
-_newObject setVectorDirAndUp [[0.958339,0.285633,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_HQ_V3_F', [9691.78,4049.45,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9690.81,4049.99,33.7945];
-_newObject setVectorDirAndUp [[0.957485,0.288483,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V3_F', [9675.23,4041.28,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.94,4042.21,33.7945];
-_newObject setVectorDirAndUp [[0.294061,-0.955787,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V3_F', [9666.36,4037.78,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9666.08,4038.71,33.7945];
-_newObject setVectorDirAndUp [[0.294061,-0.955787,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V3_F', [9656.01,4035.07,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9655.72,4036.01,33.7945];
-_newObject setVectorDirAndUp [[0.294061,-0.955787,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V3_F', [9646.69,4031.58,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9646.4,4032.52,33.9385];
-_newObject setVectorDirAndUp [[0.294061,-0.955787,0], [0,0,1]];
-_newObject = createVehicle ['Land_Research_HQ_F', [9643.71,4076.62,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9644.68,4076.08,33.7945];
-_newObject setVectorDirAndUp [[-0.95755,-0.288266,0], [0,0,1]];
-_newObject = createVehicle ['Land_WIP_F', [9540.91,3410.79,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9540.91,3410.79,33.7974];
-_newObject setVectorDirAndUp [[0.999848,0.0174524,0], [0,0,1]];
-_newObject = createVehicle ['Land_ReservoirTower_F', [9572.55,3369.14,7.00241], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9572.57,3369.61,41.8011];
-_newObject setVectorDirAndUp [[0.00113114,0.998022,-0.0628479], [-0.0179595,0.0628581,0.997861]];
-_newObject = createVehicle ['Land_Shed_Big_F', [9568.65,3436.68,-2.67029e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9578.67,3436.85,33.7573];
-_newObject setVectorDirAndUp [[0.99984,0.0174525,0.00399869], [-0.0039993,-0,0.999992]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9561.65,3359.35,-0.0447502], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9562.66,3359.39,35.114];
-_newObject setVectorDirAndUp [[0.00181392,0.997561,-0.0697269], [-0.0259248,0.0697978,0.996548]];
-_newObject = createVehicle ['Land_i_Barracks_V1_F', [9598.35,3375.56,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9598.35,3375.56,34.4153];
-_newObject setVectorDirAndUp [[-8.75364e-008,-0.998702,0.0509281], [0,0.0509281,0.998702]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9567.71,3359.36,-0.0430946], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9568.72,3359.41,35.1891];
-_newObject setVectorDirAndUp [[0.000881624,0.997697,-0.0678085], [-0.0129676,0.0678299,0.997382]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9555.61,3359.33,0.00619888], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9556.63,3359.37,35.1255];
-_newObject setVectorDirAndUp [[0.00181392,0.997561,-0.0697381], [-0.0259248,0.0697978,0.996707]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9573.74,3359.39,-0.0320206], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9574.75,3359.44,35.2467];
-_newObject setVectorDirAndUp [[0.000881624,0.997697,-0.0678127], [-0.0129676,0.0678299,0.997444]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9549.67,3359.34,-0.0606346], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9550.67,3359.38,35.1353];
-_newObject setVectorDirAndUp [[0.000329199,0.99783,-0.0658464], [-0.00498848,0.0658487,0.997795]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9579.77,3359.37,0.00283813], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9580.79,3359.42,35.2683];
-_newObject setVectorDirAndUp [[0.000377161,0.998022,-0.062862], [-0.00598748,0.0628671,0.99794]];
-_newObject = createVehicle ['Land_Research_house_V1_F', [9556.15,3450.79,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9556.15,3449.81,33.7974];
-_newObject setVectorDirAndUp [[0,1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9543.63,3359.3,0.0111847], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9544.64,3359.34,35.1408];
-_newObject setVectorDirAndUp [[0.000329199,0.99783,-0.0658468], [-0.00498848,0.0658487,0.997801]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9585.8,3359.39,0.00907135], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9586.82,3359.44,35.2719];
-_newObject setVectorDirAndUp [[0.000377161,0.998022,-0.0628637], [-0.00598748,0.0628671,0.997968]];
-_newObject = createVehicle ['Land_Medevac_house_V1_F', [9547.51,3450.5,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9547.51,3449.52,33.7974];
-_newObject setVectorDirAndUp [[0,1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9537.6,3359.28,0.00557327], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9538.62,3359.32,35.1552];
-_newObject setVectorDirAndUp [[0.000173663,0.998323,-0.0578957], [-0.00299453,0.0578962,0.998314]];
-_newObject = createVehicle ['Land_TTowerBig_2_F', [9532.47,3443.23,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9532.37,3443.12,33.7974];
-_newObject setVectorDirAndUp [[0,1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9591.85,3359.39,0.0239944], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9592.86,3359.44,35.2611];
-_newObject setVectorDirAndUp [[-0.000121749,0.998145,-0.0608803], [0.0019961,0.0608801,0.998148]];
-_newObject = createVehicle ['Land_Shed_Big_F', [9594.11,3436.91,-4.19617e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9604.13,3437.08,33.7954];
-_newObject setVectorDirAndUp [[0.999848,0.0174519,-8.72491e-005], [-0,0.00499933,0.999987]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9563.97,3455.55,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9562.96,3455.54,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9569.99,3455.57,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9568.98,3455.56,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9557.94,3455.53,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9556.93,3455.52,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9576.02,3455.59,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9575.01,3455.58,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9531.57,3359.24,0.0163078], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9532.59,3359.28,35.1721];
-_newObject setVectorDirAndUp [[0.000173663,0.998323,-0.0578956], [-0.00299453,0.0578962,0.998312]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9551.92,3455.55,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9550.91,3455.54,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9582.03,3455.59,-3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9581.02,3455.58,33.7976];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0.000999755], [0,0.000999755,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9597.88,3359.43,0.0249481], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9598.89,3359.48,35.2379];
-_newObject setVectorDirAndUp [[-0.000121749,0.998145,-0.0608797], [0.0019961,0.0608801,0.998139]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9545.88,3455.53,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9544.87,3455.52,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9588.07,3455.61,6.10352e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9587.06,3455.6,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0.000999755], [0,0.000999755,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9525.58,3359.23,0.0300636], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9526.6,3359.27,35.2111];
-_newObject setVectorDirAndUp [[-0.000279491,0.998436,-0.0559034], [0.00499151,0.0559057,0.998396]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9539.86,3455.51,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9538.85,3455.5,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9594.09,3455.63,-0.00115204], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9593.08,3455.63,33.7961];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0.000999755], [0,0.000999755,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9533.83,3455.49,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9532.82,3455.48,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9519.55,3359.21,0.0217094], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9520.57,3359.25,35.2387];
-_newObject setVectorDirAndUp [[-0.000279491,0.998436,-0.0559036], [0.00499151,0.0559057,0.998399]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9606.39,3356.43,0.0363846], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9606.4,3357.06,35.364];
-_newObject setVectorDirAndUp [[-0.00049491,0.998323,-0.057893], [0.0069873,0.0578951,0.998298]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9600.12,3455.65,-0.00128174], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9599.11,3455.65,33.7947];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0.000999755], [0,0.000999755,1]];
-_newObject = createVehicle ['Land_HelipadSquare_F', [9500.62,3394.54,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9500.62,3394.54,33.9065];
-_newObject setVectorDirAndUp [[-0.000263952,0.9998,-0.0199936], [-0,0.0199936,0.9998]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9527.82,3455.49,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9526.81,3455.48,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9612.71,3359.61,-0.0109863], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9613.72,3359.66,35.1549];
-_newObject setVectorDirAndUp [[-0.000412171,0.998264,-0.0588854], [0.00698689,0.0588897,0.998191]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9513.52,3359.21,0.0305939], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9514.54,3359.25,35.2638];
-_newObject setVectorDirAndUp [[-0.000236327,0.998436,-0.0559041], [0.00422065,0.0559056,0.998409]];
-_newObject = createVehicle ['Land_HelipadSquare_F', [9500.7,3383.16,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9500.7,3383.16,34.2295];
-_newObject setVectorDirAndUp [[0.000136003,-0.999119,0.0419583], [-0,0.0419583,0.999119]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9521.79,3455.47,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9520.78,3455.46,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9606.34,3459.33,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9606.34,3458.75,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9618.72,3359.64,0.0288925], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9619.74,3359.7,35.1318];
-_newObject setVectorDirAndUp [[-0.000294412,0.998264,-0.0588881], [0.00499065,0.0588904,0.998225]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9507.49,3359.17,0.0168152], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9508.51,3359.21,35.2897];
-_newObject setVectorDirAndUp [[-0.000236327,0.998436,-0.0559041], [0.00422065,0.0559056,0.998409]];
-_newObject = createVehicle ['Land_i_Shed_Ind_F', [9627.08,3436.06,-3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9629.04,3434.03,33.7924];
-_newObject setVectorDirAndUp [[-0.999847,-0.0174502,0.0010345], [0.000999753,0.00199951,0.999997]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9515.76,3455.46,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9514.75,3455.45,33.797];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,3.28511e-011], [0.000228271,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9614.93,3455.86,-3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9613.92,3455.85,33.7943];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0.000999755], [0,0.000999755,1]];
-_newObject = createVehicle ['Land_i_Barracks_V1_F', [9633.4,3375.35,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9633.4,3375.35,34.3054];
-_newObject setVectorDirAndUp [[0.000603796,-0.998491,0.0549043], [0.0109816,0.0549076,0.998431]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9624.76,3359.64,-0.0239639], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9625.77,3359.7,35.11];
-_newObject setVectorDirAndUp [[-0.000294412,0.998264,-0.0588879], [0.00499065,0.0588904,0.998222]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9509.73,3455.44,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9508.72,3455.43,33.7969];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,3.991e-011], [0.000228271,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9620.96,3455.88,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9619.95,3455.87,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9500.13,3356.53,0.0304031], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9500.14,3357.15,35.4562];
-_newObject setVectorDirAndUp [[-0.000401133,0.998753,-0.0499282], [0.00898744,0.0499298,0.998712]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9630.8,3359.68,-0.000823975], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9631.81,3359.73,35.1278];
-_newObject setVectorDirAndUp [[-0.000510819,0.997959,-0.0638539], [0.00798268,0.0638603,0.997859]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9626.99,3455.88,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9625.98,3455.87,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9492.66,3358.97,0.01157], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9493.68,3359.01,35.341];
-_newObject setVectorDirAndUp [[0.000158751,0.998599,-0.0529183], [-0.00299566,0.0529193,0.998579]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9501.17,3459.2,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9501.17,3458.62,33.7974];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9480.67,3387.59,0.10022], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9480.67,3387.59,34.035];
-_newObject setVectorDirAndUp [[-0.999926,-0.00878265,0.00847634], [0.00813407,0.0382999,0.999233]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9636.83,3359.67,-0.131397], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9637.82,3359.73,35.1415];
-_newObject setVectorDirAndUp [[-0.000510819,0.997959,-0.063854], [0.00798268,0.0638603,0.99786]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9633.02,3455.92,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9632.01,3455.91,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9494.92,3455.22,0.0112343], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9493.91,3455.21,33.7956];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_i_Shed_Ind_F', [9644.04,3436.75,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9645.99,3434.71,33.7945];
-_newObject setVectorDirAndUp [[-0.999848,-0.0174523,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9477.17,3387.75,0.0877533], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9477.17,3387.75,34.0643];
-_newObject setVectorDirAndUp [[0.999907,0.00389307,-0.013039], [0.0128848,0.0373038,0.999221]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9486.61,3358.92,0.0381584], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9487.63,3358.97,35.3621];
-_newObject setVectorDirAndUp [[0.000476172,0.998599,-0.0529113], [-0.00898575,0.0529177,0.998478]];
-_newObject = createVehicle ['Land_Cargo20_grey_F', [9650.4,3377.21,0.0101776], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9650.4,3377.21,34.6049];
-_newObject setVectorDirAndUp [[0.999716,-0.0172329,0.0164823], [-0.015887,0.0341296,0.999291]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9473.91,3396.7,0.00107574], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9473.91,3396.7,33.783];
-_newObject setVectorDirAndUp [[0.00467883,0.999726,-0.0229171], [-0.0149889,0.0229849,0.999623]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9642.88,3359.72,-0.135426], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9643.88,3359.78,35.3188];
-_newObject setVectorDirAndUp [[-0.00113586,0.997764,-0.0668062], [0.0169575,0.066833,0.997363]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9639.03,3455.92,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9638.02,3455.91,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_HelipadSquare_F', [9473.89,3417.98,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9473.89,3417.98,33.4333];
-_newObject setVectorDirAndUp [[-0.000220959,-0.999916,0.012994], [-0.0159948,0.0129959,0.999788]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9472.98,3387.67,0.0744209], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9472.98,3387.67,34.056];
-_newObject setVectorDirAndUp [[0.999878,0.00484899,0.0148152], [-0.0149805,0.0360391,0.999238]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9488.89,3455.21,0.0293808], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9487.88,3455.2,33.7835];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9480.6,3358.92,-0.0126534], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9481.61,3358.97,35.348];
-_newObject setVectorDirAndUp [[0.000476172,0.998599,-0.0529125], [-0.00898575,0.0529177,0.998501]];
-_newObject = createVehicle ['Land_HelipadSquare_F', [9473.8,3429.33,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9473.8,3429.33,33.345];
-_newObject setVectorDirAndUp [[-2.898e-005,1,0.000999597], [-0.0159962,-0.000999933,0.999872]];
-_newObject = createVehicle ['Land_Cargo20_grey_F', [9654.92,3377.22,0.0109406], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9654.92,3377.22,34.673];
-_newObject setVectorDirAndUp [[0.999887,0.0007397,0.0149874], [-0.0150039,0.0340474,0.999308]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9658.96,3397.65,0.100609], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.95,3398.68,34.1184];
-_newObject setVectorDirAndUp [[-0.99982,1.1927e-008,-0.0189944], [-0.0189944,0,0.99982]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9658.96,3391.74,0.112675], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.95,3392.77,34.3212];
-_newObject setVectorDirAndUp [[-0.99982,-0.000663903,-0.0189472], [-0.0189828,0.0349683,0.997946]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659,3415.75,0.046051], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.99,3416.77,33.9045];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9648.9,3359.72,-0.106987], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9649.9,3359.78,35.4894];
-_newObject setVectorDirAndUp [[-0.00113586,0.997764,-0.0668038], [0.0169575,0.066833,0.997328]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9645.06,3455.94,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9644.05,3455.93,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659.01,3385.75,0.158768], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9659,3386.79,34.4775];
-_newObject setVectorDirAndUp [[-0.999988,-0.000244341,-0.00497538], [-0.00499334,0.0489351,0.996392]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9468.69,3387.9,0.0639153], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9468.69,3387.9,33.9882];
-_newObject setVectorDirAndUp [[-0.999879,-0.00495456,-0.0147364], [-0.0149041,0.0357015,0.999251]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659,3421.77,0.0408936], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.99,3422.79,33.8504];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659,3379.71,0.189713], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.99,3380.75,34.6892];
-_newObject setVectorDirAndUp [[-0.999988,-0.000214539,-0.00498072], [-0.00499471,0.0429551,0.997187]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9482.89,3455.2,0.13567], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9481.86,3455.18,33.7034];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9660.91,3401.87,-0.0201569], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9661.92,3401.89,34.0773];
-_newObject setVectorDirAndUp [[0,0.99982,-0.0189944], [0,0.0189944,0.99982]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9658.99,3427.8,0.0208969], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.98,3428.81,33.8293];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9663.13,3413.85,0.0222168], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9662.12,3413.85,33.9433];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659.02,3373.66,0.228493], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9659,3374.71,34.8978];
-_newObject setVectorDirAndUp [[-0.999992,-0.000175611,-0.00398415], [-0.00399574,0.0439522,0.997092]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9474.56,3358.86,0.0212364], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9475.57,3358.91,35.3396];
-_newObject setVectorDirAndUp [[0.000479437,0.999201,-0.0399523], [-0.0119881,0.0399606,0.998992]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9656.47,3363.61,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9655.23,3363.6,35.3097];
-_newObject setVectorDirAndUp [[-0.999848,-0.0174523,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659.01,3433.82,0.0193558], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9659,3434.83,33.8052];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659.02,3367.66,0.266605], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9659,3368.71,35.2214];
-_newObject setVectorDirAndUp [[-0.999992,-0.000199446,-0.00397984], [-0.00399461,0.0499314,0.996294]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9651.08,3455.94,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9650.07,3455.93,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9654.94,3359.76,-0.0866966], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9655.94,3359.82,35.5889];
-_newObject setVectorDirAndUp [[-0.00138253,0.997348,-0.0727437], [0.0189443,0.0727852,0.996779]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659,3439.86,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.99,3440.87,33.7945];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9476.86,3455.18,0.141178], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9475.83,3455.16,33.5463];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9656.08,3451.42,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9654.84,3451.42,33.7945];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659.09,3361.71,0.246548], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9659.07,3362.76,35.57];
-_newObject setVectorDirAndUp [[-0.999821,0.00137912,0.0187934], [0.0189443,0.0727852,0.991855]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9666.92,3401.89,-0.0099144], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9667.94,3401.91,34.089];
-_newObject setVectorDirAndUp [[7.59693e-005,0.99982,-0.0189939], [-0.00399888,0.0189942,0.999803]];
-_newObject = createVehicle ['Land_Shed_Small_F', [9478.42,3359.23,0.399162], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9468.25,3363.15,35.1672];
-_newObject setVectorDirAndUp [[-0.999848,-0.0173506,0.00191939], [0.000998659,0.0529198,0.998598]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9468.56,3358.86,-0.106945], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9469.56,3358.91,35.2233];
-_newObject setVectorDirAndUp [[0.000479437,0.999201,-0.0399532], [-0.0119881,0.0399606,0.999016]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9669.12,3413.85,0.00498581], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9668.11,3413.85,33.9621];
-_newObject setVectorDirAndUp [[-8.74196e-008,-1,-1.00577e-009], [-0.00599904,0,0.999949]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9659,3445.88,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.99,3446.89,33.7945];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9657.11,3455.97,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9656.1,3455.96,33.7945];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_Pole_F', [9671.08,3401.88,0.00120926], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9671.08,3401.89,34.1016];
-_newObject setVectorDirAndUp [[7.59693e-005,0.99982,-0.0379779], [-0.00399888,0.0189942,0.999435]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9658.99,3451.9,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9658.98,3452.91,33.7945];
-_newObject setVectorDirAndUp [[-1,1.19249e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9470.83,3455.17,0.0764732], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9469.81,3455.16,33.3592];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [9673.05,3401.91,0.00125504], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9672.49,3401.92,34.1052];
-_newObject setVectorDirAndUp [[-0.999998,-4.89645e-005,-0.00199923], [-0.00199967,0.0119977,0.999926]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [9673.14,3413.94,0.000637054], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9672.58,3413.95,33.9547];
-_newObject setVectorDirAndUp [[-1,-6.98788e-006,-0.000999998], [-0.00100002,0.00899865,0.999959]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9462.58,3358.83,-0.225578], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9463.56,3358.87,35.0551];
-_newObject setVectorDirAndUp [[-3.89562e-005,0.999241,-0.0389657], [0.000998996,0.0389657,0.999239]];
-_newObject = createVehicle ['Land_Bunker_F', [9455.77,3396.79,0.0340538], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9454.27,3396.79,33.4201];
-_newObject setVectorDirAndUp [[-0.99983,-0.0172781,0.00646458], [0.00599685,0.0269864,0.999618]];
-_newObject = createVehicle ['Land_Bunker_F', [9455.72,3388.49,0.0341148], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9454.22,3388.49,33.6407];
-_newObject setVectorDirAndUp [[-0.999846,-0.0173611,0.00260708], [0.00199859,0.0349746,0.999386]];
-_newObject = createVehicle ['Land_BarGate_F', [9675.77,3404.62,0.0451889], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.82,3408.11,34.0872];
-_newObject setVectorDirAndUp [[0.99983,-0.0173457,0.00629297], [-0.00599817,0.0169955,0.999838]];
-_newObject = createVehicle ['Land_Bunker_F', [9455.73,3380.21,0.0476341], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9454.22,3380.21,33.9014];
-_newObject setVectorDirAndUp [[-0.999846,-0.0173546,0.00264156], [0.00199845,0.0369705,0.999314]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9464.8,3455.15,0.109283], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9463.78,3455.14,33.2688];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Bunker_F', [9455.69,3371.86,0.048378], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9454.18,3371.88,34.1818];
-_newObject setVectorDirAndUp [[-0.999846,-0.0173546,0.00264156], [0.00199845,0.0369705,0.999314]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9456.55,3358.83,-0.182495], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9457.54,3358.87,34.8229];
-_newObject setVectorDirAndUp [[-3.89562e-005,0.999241,-0.0389657], [0.000998996,0.0389657,0.999239]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3405.08,-0.110367], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3404.08,33.0475];
-_newObject setVectorDirAndUp [[1,-4.36796e-008,2.14404e-009], [0,0.0269869,0.99904]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3399.05,-0.129871], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3398.05,33.1923];
-_newObject setVectorDirAndUp [[0.999996,7.18959e-005,0.00299604], [-0.0029987,0.0239902,0.999107]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.66,3411.02,-0.111107], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.63,3410.02,32.9667];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3393.06,-0.129959], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3392.07,33.3298];
-_newObject setVectorDirAndUp [[0.999996,0.000104801,0.00299252], [-0.00299772,0.0349745,0.998259]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3417.07,-0.0692673], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3416.06,32.8632];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3387.02,-0.128757], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.64,3386.03,33.5031];
-_newObject setVectorDirAndUp [[1,-4.36484e-008,3.263e-009], [0,0.0379682,0.997883]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.66,3423.09,-0.070076], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.63,3422.08,32.7794];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.63,3381.02,-0.135448], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3380.02,33.6651];
-_newObject setVectorDirAndUp [[1,-4.36516e-008,3.24438e-009], [0,0.0369706,0.997936]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.64,3429.11,-0.0239258], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3428.1,32.724];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9458.8,3455.13,0.223499], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9457.76,3455.12,33.041];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9451.13,3362.5,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9452.38,3362.52,34.4968];
-_newObject setVectorDirAndUp [[0.999848,0.0174524,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.67,3374.98,-0.216827], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.64,3373.99,33.809];
-_newObject setVectorDirAndUp [[0.999996,-0.000119821,-0.00299015], [0.00299716,0.0399633,0.997657]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3435.13,-0.0247574], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.63,3434.12,32.6943];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.67,3368.95,-0.198681], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.64,3367.97,34.05];
-_newObject setVectorDirAndUp [[0.999996,-0.000116835,-0.0029904], [0.00299728,0.0389656,0.997701]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9450.54,3358.83,-0.216728], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9451.53,3358.86,34.5973];
-_newObject setVectorDirAndUp [[-0.000251703,0.999119,-0.0419551], [0.00599375,0.0419572,0.999069]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.64,3441.18,-0.00550842], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3440.16,32.6744];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9451.02,3451.23,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9452.27,3451.25,32.8162];
-_newObject setVectorDirAndUp [[0.999848,0.0174524,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.66,3362.94,-0.146404], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.65,3361.95,34.3103];
-_newObject setVectorDirAndUp [[0.999996,-0.000116835,-0.0029903], [0.00299728,0.0389656,0.997666]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3447.2,-0.00463104], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.63,3446.18,32.6688];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9452.77,3455.11,0.225922], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9451.73,3455.1,32.7814];
-_newObject setVectorDirAndUp [[-8.74228e-008,-1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9448.65,3453.22,-0.0206757], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9448.62,3452.21,32.6468];
-_newObject setVectorDirAndUp [[1,-4.37114e-008,0], [0,0,1]];
-_newObject = createVehicle ['Land_HelipadCircle_F', [9928.49,2261.43,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9928.49,2261.43,19.1882];
-_newObject setVectorDirAndUp [[0.570838,-0.819753,-0.0463551], [-0.0149628,-0.0668343,0.997652]];
-_newObject = createVehicle ['PortableHelipadLight_01_green_F', [9928.48,2261.42,0.00113678], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9928.48,2261.42,19.1894];
-_newObject setVectorDirAndUp [[0.588524,-0.8072,-0.0454695], [-0.0150352,-0.0671584,0.997629]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9924.4,2267.27,0.000514984], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9924.4,2267.27,19.0065];
-_newObject setVectorDirAndUp [[0.588015,-0.808582,0.0208151], [0.0288665,0.0466961,0.998492]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9921.36,2262.67,0.000307083], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9921.36,2262.67,19.0877];
-_newObject setVectorDirAndUp [[0.572033,-0.820205,0.00646559], [-0.034686,-0.0163139,0.999265]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9927.21,2254.23,0.00116348], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9927.21,2254.23,18.6826];
-_newObject setVectorDirAndUp [[0.585842,-0.809084,-0.0466016], [-0.0166209,-0.0694857,0.997444]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9922.26,2257.17,0.00136185], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9922.26,2257.17,18.7535];
-_newObject setVectorDirAndUp [[0.587238,-0.808619,-0.0358615], [-0.0344345,-0.0692234,0.997007]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9935.66,2259.99,0.00112343], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9935.66,2259.99,19.2006];
-_newObject setVectorDirAndUp [[0.584856,-0.809816,-0.046259], [-0.0155052,-0.068181,0.997552]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9932.54,2255.21,0.00106812], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9932.54,2255.21,18.834];
-_newObject setVectorDirAndUp [[0.586005,-0.808983,-0.0463142], [-0.0156809,-0.0684674,0.99753]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9930,2268.73,0.000413895], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9930,2268.73,18.9976];
-_newObject setVectorDirAndUp [[0.592179,-0.804464,0.0464862], [-0.0149334,0.046723,0.998796]];
-_newObject = createVehicle ['PortableHelipadLight_01_yellow_F', [9934.63,2265.52,0.00102234], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9934.63,2265.52,19.223];
-_newObject setVectorDirAndUp [[0.576462,-0.81642,0.0338955], [-0.0702318,-0.00817633,0.997497]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9922.94,2269.51,0.0769272], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9922.96,2269.52,18.943];
-_newObject setVectorDirAndUp [[-0.583174,0.812075,-0.021024], [0.027956,0.0459277,0.998554]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9936.46,2266.85,-0.0501938], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9936.42,2266.83,19.357];
-_newObject setVectorDirAndUp [[0.804542,0.590833,0.0602324], [-0.0688254,-0.00797974,0.997597]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9920.24,2255.62,0.0552311], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9920.22,2255.58,18.5759];
-_newObject setVectorDirAndUp [[0.812204,0.579512,0.0670134], [-0.033898,-0.0677959,0.997123]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9934.18,2252.85,-0.0753136], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9934.19,2252.81,18.6974];
-_newObject setVectorDirAndUp [[-0.575333,0.816607,0.0463182], [-0.015959,-0.0678262,0.99757]];
-_newObject = createVehicle ['Land_PlasticCase_01_small_F', [9919.91,2255.26,0.00577164], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9919.91,2255.26,18.5479];
-_newObject setVectorDirAndUp [[0.590669,-0.806499,-0.0258827], [-0.0304262,-0.0543141,0.99806]];
-_newObject = createVehicle ['Land_MetalBarrel_F', [9937.17,2266.87,0.00205803], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9937.17,2266.87,19.4092];
-_newObject setVectorDirAndUp [[0.586959,-0.808901,0.0340376], [-0.0687819,-0.00793206,0.9976]];
-_newObject = createVehicle ['Land_MetalBarrel_F', [9937.57,2266.24,0.00167847], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9937.57,2266.24,19.4223];
-_newObject setVectorDirAndUp [[0.583916,-0.81071,-0.0423117], [0.0613491,-0.00790409,0.998085]];
-_newObject = createVehicle ['Land_PlasticCase_01_small_F', [9920.38,2254.42,0.0059967], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9920.38,2254.42,18.5208];
-_newObject setVectorDirAndUp [[0.484391,-0.874366,-0.0291286], [0.0322082,-0.0154497,0.999362]];
-_newObject = createVehicle ['Land_MetalBarrel_empty_F', [9919.28,2255.77,0.000480652], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9919.28,2255.77,18.5559];
-_newObject setVectorDirAndUp [[0.577638,-0.815507,-0.0358102], [-0.033898,-0.0677959,0.997123]];
-_newObject = createVehicle ['Land_MetalBarrel_F', [9937.86,2266.76,0.00170898], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9937.86,2266.76,19.4084];
-_newObject setVectorDirAndUp [[0.584573,-0.810213,-0.0427625], [0.0621588,-0.00782779,0.998036]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9932.85,2271.99,-0.048317], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9932.81,2271.98,19.1505];
-_newObject setVectorDirAndUp [[0.808689,0.585119,0.0604728], [-0.0688254,-0.00797974,0.997597]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9928.37,2272.97,-0.110897], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9928.35,2272.96,18.8477];
-_newObject setVectorDirAndUp [[-0.569625,0.821253,-0.03273], [-0.0688254,-0.00797974,0.997597]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9939.3,2256.56,0.187918], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9939.25,2256.54,19.1649];
-_newObject setVectorDirAndUp [[0.60099,-0.799253,0.00234177], [-0.0923835,-0.0665559,0.993497]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9916.94,2265.34,-0.0552616], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9916.94,2265.32,18.9789];
-_newObject setVectorDirAndUp [[-0.584193,0.811586,-0.00687629], [-0.0339718,-0.0159868,0.999295]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9916.28,2261.13,-0.0559578], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9916.28,2261.11,18.8159];
-_newObject setVectorDirAndUp [[-0.822598,-0.564738,-0.0663622], [-0.033898,-0.0677959,0.997123]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9940.31,2261.16,-0.0606422], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9940.33,2261.18,19.3285];
-_newObject setVectorDirAndUp [[0.811951,0.574935,-0.100923], [0.0616362,0.0874836,0.994257]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9924.13,2249.98,0.102247], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9924.14,2249.95,18.3864];
-_newObject setVectorDirAndUp [[0.795254,0.60627,-0.00278744], [0.0339489,-0.03994,0.998625]];
-_newObject = createVehicle ['Land_BagFence_Long_F', [9928.74,2249.28,-0.0196896], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9928.75,2249.27,18.4231];
-_newObject setVectorDirAndUp [[-0.582056,0.812979,-0.0166276], [-0.0159952,0.00899736,0.999832]];
-_newObject = createVehicle ['Land_Pallet_MilBoxes_F', [9934,2272.07,-0.00596428], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9934.08,2272.13,19.2299];
-_newObject setVectorDirAndUp [[0.565098,-0.824388,0.0323925], [-0.0688254,-0.00797974,0.997597]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9930.98,2274.06,0.0990944], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9930.84,2273.75,19.0374];
-_newObject setVectorDirAndUp [[-0.228939,-0.973155,-0.023579], [-0.0688254,-0.00797974,0.997597]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9915.19,2263.66,0.0296135], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9915.48,2263.54,18.892];
-_newObject setVectorDirAndUp [[0.971539,-0.235064,0.0292677], [-0.0339718,-0.0159868,0.999295]];
-_newObject = createVehicle ['FlexibleTank_01_forest_F', [9941.5,2260.91,0.00582314], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9941.5,2260.91,19.2928];
-_newObject setVectorDirAndUp [[0.576557,-0.816264,0.0359834], [0.0620832,0.0876794,0.994212]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9941.52,2258.55,-0.00961494], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9941.17,2258.63,19.504];
-_newObject setVectorDirAndUp [[-0.969465,0.233638,-0.0744971], [-0.0923835,-0.0665559,0.993497]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9926.13,2247.89,-0.0685291], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9926.18,2248.18,18.3469];
-_newObject setVectorDirAndUp [[0.129897,0.990363,0.0480517], [-0.0648033,-0.039879,0.997101]];
-_newObject = createVehicle ['FlexibleTank_01_forest_F', [9942.17,2260.03,0.00579643], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9942.17,2260.03,19.329];
-_newObject setVectorDirAndUp [[0.576549,-0.81627,0.0359832], [0.0620841,0.0876788,0.994212]];
-_newObject = createVehicle ['Windsock_01_F', [9926.04,2246.67,0.00369644], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9925.96,2246.62,18.2848];
-_newObject setVectorDirAndUp [[0.567955,-0.82306,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_HQ_V3_F', [9966.5,2244.06,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9966.26,2242.98,19.5164];
-_newObject setVectorDirAndUp [[-0.546654,0.837358,0], [0,0,1]];
-_newObject = createVehicle ['Land_ReservoirTower_F', [9762.42,3617.05,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9762.42,3617.05,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.04,3570.57,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.02,3569.56,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_i_Barracks_V1_F', [9691.71,3548.21,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9691.71,3548.21,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.92,3564.56,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.9,3563.54,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.17,3576.6,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.15,3575.59,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.8,3558.53,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.78,3557.51,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.33,3582.62,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.31,3581.61,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.66,3552.51,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.64,3551.49,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.44,3588.65,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.42,3587.64,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.53,3546.48,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.51,3545.47,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.58,3594.68,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.56,3593.66,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.39,3540.46,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.37,3539.45,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Shed_Big_F', [9752.29,3506.88,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9752.22,3496.86,33.7945];
-_newObject setVectorDirAndUp [[-0.00661949,-0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.33,3566.01,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9772.35,3567.02,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.21,3559.99,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9772.22,3561,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.46,3572.04,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9772.47,3573.05,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.08,3553.96,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9772.1,3554.97,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.69,3600.71,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.67,3599.69,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.62,3578.05,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9772.64,3579.07,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.94,3547.95,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.96,3548.97,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.28,3534.43,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.26,3533.42,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.75,3584.09,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9772.76,3585.11,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.81,3541.91,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.83,3542.93,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.83,3606.72,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.81,3605.7,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.87,3590.11,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9772.89,3591.13,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.69,3535.89,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.7,3536.91,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773,3596.14,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.01,3597.15,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.96,3612.75,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9676.94,3611.73,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9672.05,3526.01,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9672.62,3525.99,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.56,3529.87,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.58,3530.88,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773.14,3602.15,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.16,3603.16,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.11,3519.62,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.1,3518.61,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9677.1,3618.77,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.08,3617.76,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773.27,3608.18,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.29,3609.19,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9775.13,3523.56,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9774.56,3523.58,33.7945];
-_newObject setVectorDirAndUp [[-0.999711,0.0240464,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9675.01,3513.59,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.99,3512.58,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9677.21,3624.8,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.19,3623.79,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_i_Shed_Ind_F', [9750.45,3662.42,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9748.37,3660.51,33.7945];
-_newObject setVectorDirAndUp [[0.00661958,0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773.4,3614.21,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.42,3615.22,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.41,3515.06,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.43,3516.07,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_i_Barracks_V1_F', [9690.65,3513.17,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9690.65,3513.17,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9674.86,3507.57,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.85,3506.55,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773.53,3620.23,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.54,3621.25,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.29,3509.03,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.31,3510.04,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9674.73,3632.19,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9675.31,3632.17,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9674.74,3501.54,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.72,3500.52,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.14,3503,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.16,3504.01,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9677.37,3639.61,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.36,3638.6,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Large_F', [9777.52,3628.69,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9776.95,3628.71,33.7945];
-_newObject setVectorDirAndUp [[-0.999718,0.0237488,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9691.61,3573.61,3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9691.61,3573.61,33.7945];
-_newObject setVectorDirAndUp [[0.024069,0.99971,-2.52566e-006], [-7.20025e-008,2.52812e-006,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9674.59,3495.53,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.58,3494.51,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9771.04,3496.97,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.06,3497.98,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773.66,3635.05,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.68,3636.06,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_i_Shed_Ind_F', [9750.74,3645.44,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9748.66,3643.54,33.7945];
-_newObject setVectorDirAndUp [[0.00661958,0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9691.87,3577.13,3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9691.87,3577.13,33.7945];
-_newObject setVectorDirAndUp [[-0.024067,-0.99971,1.57009e-006], [-3.99704e-008,1.57151e-006,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9677.48,3645.64,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.46,3644.63,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_grey_F', [9691.69,3481.48,3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9691.69,3481.48,33.7945];
-_newObject setVectorDirAndUp [[-0.0415164,-0.999138,-1.66687e-006], [2.36132e-007,-1.67812e-006,1]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9700.85,3580.22,3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9700.85,3580.22,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240684,-2.48401e-006], [2.48882e-006,1.69919e-007,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9674.49,3489.5,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.47,3488.48,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9770.89,3490.96,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9770.91,3491.97,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9691.87,3581.31,3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9691.87,3581.31,33.7945];
-_newObject setVectorDirAndUp [[-0.0240675,-0.99971,1.75816e-006], [-5.80411e-008,1.76006e-006,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773.8,3641.07,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.82,3642.09,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9677.62,3651.66,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.6,3650.65,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_grey_F', [9691.6,3476.96,3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9691.6,3476.96,33.7945];
-_newObject setVectorDirAndUp [[-0.0240707,-0.99971,1.61169e-006], [3.62256e-007,1.60344e-006,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9712.18,3472.39,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9713.2,3472.37,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9706.16,3472.53,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9707.18,3472.51,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9730.26,3471.96,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9731.28,3471.95,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9674.34,3483.48,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.33,3482.47,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9770.77,3484.93,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9770.79,3485.95,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9700.14,3472.67,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9701.16,3472.65,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo40_grey_F', [9692.19,3585.69,3.8147e-006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9692.19,3585.69,33.7945];
-_newObject setVectorDirAndUp [[0.0240673,0.99971,2.17398e-006], [-1.44755e-008,-2.17426e-006,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9736.28,3471.82,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9737.3,3471.8,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9694.13,3472.82,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9695.14,3472.8,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9773.92,3647.09,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9773.94,3648.11,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9716.29,3470.4,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9716.27,3469.38,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9742.3,3471.68,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9743.32,3471.67,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9728.27,3467.88,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9728.29,3468.89,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9688.09,3472.96,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9689.1,3472.94,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9677.75,3657.69,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.73,3656.67,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9678.2,3475.74,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9678.21,3476.99,33.7945];
-_newObject setVectorDirAndUp [[0.00661958,0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9748.32,3471.52,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9749.33,3471.5,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9682.07,3473.1,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9683.08,3473.08,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9770.63,3478.91,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9770.64,3479.93,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9674.22,3477.44,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9674.2,3476.43,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9754.36,3471.38,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9755.37,3471.36,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9774.05,3653.12,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9774.07,3654.14,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9765.99,3474.02,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9766.02,3475.27,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9676.05,3473.25,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.06,3473.23,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9716.17,3464.37,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9716.15,3463.35,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9677.89,3663.7,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.88,3662.68,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9728.12,3461.87,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9728.14,3462.89,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9760.38,3471.24,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9761.39,3471.22,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9770.51,3472.88,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9770.53,3473.9,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_Pole_F', [9716.05,3460.21,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9716.05,3460.21,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9766.39,3471.1,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9767.41,3471.08,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9774.19,3659.14,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9774.21,3660.15,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [9716.04,3458.24,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9716.05,3458.8,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [9728.09,3457.87,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9728.11,3458.43,33.7945];
-_newObject setVectorDirAndUp [[0.0240705,0.99971,0], [-0,-0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9678,3669.74,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9677.98,3668.72,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Bunker_F', [9716.12,3675.64,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9716.13,3677.12,33.7945];
-_newObject setVectorDirAndUp [[0.00661958,0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Bunker_F', [9707.79,3675.87,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9707.8,3677.35,33.7945];
-_newObject setVectorDirAndUp [[0.00661958,0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_BarGate_F', [9718.5,3455.39,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9721.93,3455.24,33.7945];
-_newObject setVectorDirAndUp [[-0.0415141,-0.999138,0], [0,0,1]];
-_newObject = createVehicle ['Land_Bunker_F', [9699.5,3676.07,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9699.51,3677.55,33.7945];
-_newObject setVectorDirAndUp [[0.00661958,0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9774.32,3665.17,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9774.34,3666.18,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9678.14,3675.76,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9678.13,3674.74,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9724.59,3682.55,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9723.58,3682.57,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9718.57,3682.68,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9717.56,3682.7,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9730.61,3682.39,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9729.59,3682.41,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9712.55,3682.83,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9711.54,3682.85,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9736.65,3682.26,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9735.63,3682.28,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9706.51,3682.96,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9705.49,3682.98,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9742.67,3682.1,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9741.65,3682.12,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9700.51,3683.13,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9699.49,3683.15,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9748.68,3681.97,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9747.67,3681.99,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9774.44,3671.19,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9774.46,3672.2,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9682.03,3681.05,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9682.02,3679.81,33.7945];
-_newObject setVectorDirAndUp [[-0.00661949,-0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9694.47,3683.26,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9693.46,3683.28,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9754.7,3681.81,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9753.69,3681.83,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9688.45,3683.41,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9687.44,3683.43,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9678.27,3681.78,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9678.25,3680.77,33.7945];
-_newObject setVectorDirAndUp [[0.99971,-0.0240705,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9760.74,3681.68,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9759.73,3681.7,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_Patrol_V2_F', [9770.73,3679.03,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9770.72,3677.78,33.7945];
-_newObject setVectorDirAndUp [[-0.00661949,-0.999978,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9682.43,3683.54,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9681.42,3683.56,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9766.76,3681.52,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9765.74,3681.54,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9774.57,3677.22,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9774.59,3678.23,33.7945];
-_newObject setVectorDirAndUp [[-0.99971,0.0240706,0], [0,0,1]];
-_newObject = createVehicle ['Land_Wall_IndCnc_4_F', [9772.79,3681.39,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9771.77,3681.41,33.7945];
-_newObject setVectorDirAndUp [[-0.0240705,-0.99971,0], [0,0,1]];
-_newObject = createVehicle ['Land_dp_bigTank_F', [9754.15,3534.16,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9754.15,3534.65,33.7945];
-_newObject setVectorDirAndUp [[0,1,0], [0,0,1]];
-_newObject = createVehicle ['Land_dp_bigTank_F', [9754.81,3556.67,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9754.81,3557.16,33.7945];
-_newObject setVectorDirAndUp [[0,1,0], [0,0,1]];
-_newObject = createVehicle ['Land_dp_bigTank_F', [9754.66,3577.64,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9754.66,3578.13,33.7945];
-_newObject setVectorDirAndUp [[0,1,0], [0,0,1]];
-_newObject = createVehicle ['Land_Factory_Main_F', [9706.01,3647.87,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9704.04,3647.67,33.7945];
-_newObject setVectorDirAndUp [[0.0114232,0.999935,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierTower_F', [9918.53,2899.16,0.00320816], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9918.59,2899.16,21.1006];
-_newObject setVectorDirAndUp [[-0.848581,0.525031,0.0652047], [0.0618558,-0.023944,0.997798]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9916.26,2892.14,-0.0835228], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9915.96,2892.06,20.9419];
-_newObject setVectorDirAndUp [[-0.966231,-0.257263,0.0145783], [0.0299358,-0.0558804,0.997989]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9923.64,2904.04,0.0834885], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9923.62,2904.36,20.7422];
-_newObject setVectorDirAndUp [[-0.246993,0.969017,0.000759367], [0.0578898,0.0139733,0.998225]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9912.99,2891.41,0.0910778], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9913.32,2891.44,20.9993];
-_newObject setVectorDirAndUp [[0.966546,0.256074,-0.0146543], [0.0299358,-0.0558804,0.997989]];
-_newObject = createVehicle ['Land_Razorwire_F', [9904.75,2899.64,0.130676], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9905.75,2901.07,21.5249];
-_newObject setVectorDirAndUp [[-0.839442,0.543393,-0.00780522], [0.00299902,0.0189941,0.999815]];
-_newObject = createVehicle ['Land_Razorwire_F', [9910.79,2908.7,0.173891], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9911.83,2910.1,21.3403];
-_newObject setVectorDirAndUp [[-0.820512,0.571564,-0.00864612], [0.00199934,0.0179948,0.999836]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9923,2907.31,-0.0771618], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9923.07,2907,20.7336];
-_newObject setVectorDirAndUp [[0.246439,-0.969158,-0.000725261], [0.0578898,0.0139733,0.998225]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9915,2890.09,0.0062809], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9914.95,2890.38,20.8651];
-_newObject setVectorDirAndUp [[-0.264906,0.96229,0.0618277], [0.0299358,-0.0558804,0.997989]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [9925.03,2906.01,-0.0140705], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9924.74,2905.96,20.6339];
-_newObject setVectorDirAndUp [[-0.967909,-0.244145,0.0595492], [0.0578898,0.0139733,0.998225]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9903.95,2897.7,0.139853], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9904.39,2895.46,21.4035];
-_newObject setVectorDirAndUp [[0.981221,0.192218,0.0160326], [-0.00399154,-0.062867,0.998014]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9918.36,2914.42,-0.147892], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9916.21,2914.01,20.8241];
-_newObject setVectorDirAndUp [[0.205448,-0.977773,0.0418563], [0.0578084,0.0548183,0.996822]];
-_newObject = createVehicle ['Land_Razorwire_F', [9902.2,2896.75,-0.28672], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9901.9,2898.41,21.3439];
-_newObject setVectorDirAndUp [[-0.977256,-0.211876,-0.00893223], [0.00299487,-0.0559052,0.998432]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9920.23,2887.05,-0.0173244], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9918.05,2886.52,20.5222];
-_newObject setVectorDirAndUp [[0.201303,-0.974936,-0.0947464], [0.0298595,-0.0905739,0.995442]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9904.98,2892.27,0.140108], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9905.4,2890.02,21.0652];
-_newObject setVectorDirAndUp [[0.982391,0.186182,0.015657], [-0.00399154,-0.062867,0.998014]];
-_newObject = createVehicle ['Land_Razorwire_F', [9913.43,2915.45,-0.225878], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9911.74,2915.25,21.0811];
-_newObject setVectorDirAndUp [[0.182525,-0.981985,0.0488924], [0.0279434,0.0548887,0.998101]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9914.66,2885.96,0.0669632], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9912.46,2885.42,20.6387];
-_newObject setVectorDirAndUp [[0.207112,-0.972853,-0.103254], [-0.00397676,-0.106379,0.994318]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9925.85,2888.14,-0.0374832], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9923.67,2887.65,20.4305];
-_newObject setVectorDirAndUp [[0.19991,-0.977929,-0.0607537], [0.0299358,-0.0558804,0.997989]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9929.66,2907.56,0.00782204], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9930.15,2905.36,20.2509];
-_newObject setVectorDirAndUp [[0.978071,0.192716,-0.0789775], [0.0777464,0.0139544,0.996876]];
-_newObject = createVehicle ['Land_Razorwire_F', [9903.75,2888.95,-0.41445], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9903.46,2890.61,20.8513];
-_newObject setVectorDirAndUp [[-0.978864,-0.203827,-0.0167544], [-0.00399154,-0.062867,0.998014]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9923.92,2915.48,-0.147844], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9921.77,2915.06,20.4436];
-_newObject setVectorDirAndUp [[0.204633,-0.977941,0.0419128], [0.0578084,0.0548183,0.996822]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9930.71,2902.1,0.147303], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9931.2,2899.86,20.3769];
-_newObject setVectorDirAndUp [[0.979336,0.190875,-0.066836], [0.0776576,-0.0497806,0.995737]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9931.34,2896.88,0.0138912], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9930.25,2894.91,20.0698];
-_newObject setVectorDirAndUp [[0.856431,-0.507965,-0.0921882], [0.0776576,-0.0497806,0.995737]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9928.53,2892.07,-0.0632572], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9927.47,2890.12,20.1625];
-_newObject setVectorDirAndUp [[0.856067,-0.506865,-0.101183], [0.1034,-0.0238614,0.994354]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9909.77,2885.22,-0.100922], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9907.8,2886.24,20.5399];
-_newObject setVectorDirAndUp [[-0.49107,-0.865967,-0.0946108], [-0.00397676,-0.106379,0.994318]];
-_newObject = createVehicle ['Land_Razorwire_F', [9916.07,2884.44,0.0719299], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9914.37,2884.09,20.4169];
-_newObject setVectorDirAndUp [[0.188513,-0.976215,-0.107081], [0.0139175,-0.106369,0.994229]];
-_newObject = createVehicle ['Land_Razorwire_F', [9921.55,2916.83,-0.457695], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9919.89,2916.62,20.5067];
-_newObject setVectorDirAndUp [[0.188062,-0.981213,0.0430537], [0.0578084,0.0548183,0.996822]];
-_newObject = createVehicle ['Land_Razorwire_F', [9924.42,2886.06,-0.0769749], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9922.73,2885.73,20.3022];
-_newObject setVectorDirAndUp [[0.185688,-0.978048,-0.0945612], [0.0298595,-0.0905739,0.995442]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9928.65,2913.21,-0.0146751], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9929.14,2911.03,20.193];
-_newObject setVectorDirAndUp [[0.978037,0.186027,-0.0940123], [0.0905816,0.0268758,0.995526]];
-_newObject = createVehicle ['Land_Razorwire_F', [9932.63,2899.94,0.0217781], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9932.42,2901.66,20.1253];
-_newObject setVectorDirAndUp [[-0.978137,-0.192381,0.078978], [0.0777464,0.0139544,0.996876]];
-_newObject = createVehicle ['Land_Razorwire_F', [9932.2,2895.66,-0.0578804], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9931.32,2894.17,19.9411];
-_newObject setVectorDirAndUp [[0.855589,-0.50938,-0.0921933], [0.0776576,-0.0497806,0.995737]];
-_newObject = createVehicle ['Land_Razorwire_F', [9929.46,2890.84,-0.187126], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9928.63,2889.35,20.036];
-_newObject setVectorDirAndUp [[0.866896,-0.487972,-0.101856], [0.1034,-0.0238614,0.994354]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [9928.36,2913.42,-0.0979004], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9926.48,2914.58,20.1818];
-_newObject setVectorDirAndUp [[-0.492261,-0.864769,0.0992638], [0.0904365,0.0626099,0.993932]];
-_newObject = createVehicle ['Land_Razorwire_F', [9905.61,2885.84,0.354076], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9907.08,2884.86,20.5894];
-_newObject setVectorDirAndUp [[0.486472,0.86853,0.0948667], [-0.00397676,-0.106379,0.994318]];
-_newObject = createVehicle ['Land_Razorwire_F', [9931.19,2907.96,0.0859089], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9930.99,2909.69,20.1035];
-_newObject setVectorDirAndUp [[-0.977213,-0.190286,0.0940523], [0.0905816,0.0268758,0.995526]];
-_newObject = createVehicle ['Land_Razorwire_F', [9925.7,2916.79,0.346325], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [9927.23,2915.91,20.2108];
-_newObject setVectorDirAndUp [[0.492094,0.864865,-0.0992546], [0.0904365,0.0626099,0.993932]];
-_newObject = createVehicle ['Land_WheelieBin_01_F', [10614.6,3962.81,0.00030899], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10614.6,3962.81,33.2214];
-_newObject setVectorDirAndUp [[-0.709295,-0.704826,-0.0109943], [-0.0120425,-0.00347845,0.999922]];
-_newObject = createVehicle ['Land_WheelieBin_01_F', [10618.5,3958.61,0.000179291], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10618.5,3958.61,33.2703];
-_newObject setVectorDirAndUp [[-0.733251,-0.679907,-0.00825925], [-0.0119553,0.000746544,0.999928]];
-_newObject = createVehicle ['Land_i_Barracks_V2_F', [10609.8,3959.15,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10609.8,3959.15,33.1806];
-_newObject setVectorDirAndUp [[0.709441,0.704765,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [10603.1,3966.94,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10603.5,3967.34,33.7789];
-_newObject setVectorDirAndUp [[0.696888,0.717102,0.0105733], [-0.0089985,-0.00599879,0.999942]];
-_newObject = createVehicle ['Land_BagBunker_Small_F', [10618.1,3951.69,-0.00262833], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10618.5,3952.09,33.2828];
-_newObject setVectorDirAndUp [[0.697006,0.71705,0.00481836], [-0.00999823,0.00299941,0.999946]];
-_newObject = createVehicle ['Land_CncWall4_F', [10630.7,4006.93,0.00121689], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10630.7,4006.65,33.6747];
-_newObject setVectorDirAndUp [[-0.00333654,-0.999995,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10625.6,4007.01,0.00121689], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10625.6,4006.73,33.6443];
-_newObject setVectorDirAndUp [[-0.00334567,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10647,4000.5,0.00208664], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10646.8,4000.45,33.7487];
-_newObject setVectorDirAndUp [[-0.9999,-0.0141327,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10635.9,4006.8,0.000961304], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10635.9,4006.52,33.7003];
-_newObject setVectorDirAndUp [[-0.00334832,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10641.1,4006.7,0.000919342], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10641.1,4006.42,33.7331];
-_newObject setVectorDirAndUp [[-0.00334832,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10621.2,4008.99,0.00177765], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10621,4008.77,33.6351];
-_newObject setVectorDirAndUp [[-0.709472,-0.704734,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10645.3,4004.8,0.00209045], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10645.1,4004.58,33.7537];
-_newObject setVectorDirAndUp [[-0.709453,-0.704753,0], [0,0,1]];
-_newObject = createVehicle ['Land_Medevac_house_V1_F', [10665,3975.95,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10664.1,3975.92,33.7745];
-_newObject setVectorDirAndUp [[0.999501,0.0315775,0], [0,0,1]];
-_newObject = createVehicle ['Land_TBox_F', [10592.1,3968.82,-0.00112152], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10592.5,3969.18,33.159];
-_newObject setVectorDirAndUp [[-0.704712,0.709493,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10619.4,4013.47,0.00148392], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10619.2,4013.41,33.6544];
-_newObject setVectorDirAndUp [[-0.999899,-0.0142126,0], [0,0,1]];
-_newObject = createVehicle ['Land_Communication_F', [10591,3971.74,0.000396729], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10591.1,3971.66,33.1815];
-_newObject setVectorDirAndUp [[-0.696988,-0.717083,0], [0,0,1]];
-_newObject = createVehicle ['Land_ToiletBox_F', [10609.7,3944.51,0.000324249], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10609.7,3944.51,33.2648];
-_newObject setVectorDirAndUp [[-0.704534,0.709514,-0.014887], [-0.0100151,0.0110349,0.999889]];
-_newObject = createVehicle ['Land_ToiletBox_F', [10665.2,3987.93,2.28882e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10665.2,3987.93,33.7946];
-_newObject setVectorDirAndUp [[0.049051,-0.998796,3.65009e-005], [1.59166e-005,3.73265e-005,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10604.9,3945.62,-1.14441e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10604.9,3945.62,33.2042];
-_newObject setVectorDirAndUp [[0.721468,0.692448,0], [0,0,1]];
-_newObject = createVehicle ['Land_MilOffices_V1_F', [10589.4,3994.45,0.00215912], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10592.2,3994.49,33.4223];
-_newObject setVectorDirAndUp [[-0.999501,-0.0315791,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall1_F', [10630.2,4016.95,-0.00209045], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10630.4,4017.11,33.7242];
-_newObject setVectorDirAndUp [[0.645354,0.763884,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10667.1,3983.37,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10667.1,3983.39,33.7945];
-_newObject setVectorDirAndUp [[-0.9999,-0.0141287,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10600.1,3948.17,0.00162125], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10600.2,3948.4,33.1296];
-_newObject setVectorDirAndUp [[0.709276,0.704931,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10596.5,3951.77,0.000343323], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10596.7,3951.98,33.1137];
-_newObject setVectorDirAndUp [[0.709376,0.70483,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall1_F', [10629.2,4017.79,-0.00209045], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10629.4,4017.94,33.7243];
-_newObject setVectorDirAndUp [[0.645354,0.763884,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10592.9,3955.45,0.000343323], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10593.1,3955.66,33.1209];
-_newObject setVectorDirAndUp [[0.7093,0.704906,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall1_F', [10628.2,4018.59,-0.00209045], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10628.5,4018.75,33.7243];
-_newObject setVectorDirAndUp [[0.645375,0.763866,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10619.4,4018.64,0.000514984], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10619.1,4018.6,33.7002];
-_newObject setVectorDirAndUp [[-0.999899,-0.0142126,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall1_F', [10627.8,4019.6,-0.000946045], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10628.1,4019.52,33.7272];
-_newObject setVectorDirAndUp [[0.999899,0.0142127,0], [0,0,1]];
-_newObject = createVehicle ['Land_ToiletBox_F', [10630.2,4019.53,7.62939e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10630.2,4019.53,33.7379];
-_newObject setVectorDirAndUp [[-0.999484,-0.0317012,-0.00513723], [-0.00494984,-0.00598675,0.99997]];
-_newObject = createVehicle ['Land_CncWall4_F', [10606.9,3940.83,0.00162125], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10607.1,3941.07,33.28];
-_newObject setVectorDirAndUp [[0.70935,0.704856,0], [0,0,1]];
-_newObject = createVehicle ['PortableHelipadLight_01_green_F', [10638.2,3936.91,0.000102997], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10638.2,3936.91,33.4494];
-_newObject setVectorDirAndUp [[0.989816,-0.142349,-7.4713e-006], [0.000925967,0.00638616,0.999979]];
-_newObject = createVehicle ['Land_HelipadCircle_F', [10638.2,3936.9,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10638.2,3936.9,33.4482];
-_newObject setVectorDirAndUp [[0.049056,-0.998778,0.00599212], [0,0.00599934,0.999982]];
-_newObject = createVehicle ['Land_CncWall4_F', [10670.3,3978.5,0.00063324], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10670,3978.46,33.7914];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10669.1,3988.22,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10668.8,3988.18,33.7945];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10589.4,3959.09,0.000343323], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10589.6,3959.3,33.128];
-_newObject setVectorDirAndUp [[0.709356,0.704851,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10670.5,3973.47,0.000541687], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10670.2,3973.43,33.785];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10635.2,4020.1,1.90735e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10635.2,4020.11,33.7609];
-_newObject setVectorDirAndUp [[0.0140887,-0.999901,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall1_F', [10627.8,4020.85,-0.000946045], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10628.1,4020.77,33.7345];
-_newObject setVectorDirAndUp [[0.999899,0.0141847,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10630.1,4021.39,0.00123978], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10630.2,4021.11,33.7457];
-_newObject setVectorDirAndUp [[0.0140727,-0.999901,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10670.7,3968.36,0.000541687], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10670.4,3968.31,33.7853];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10668.9,3993.44,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10668.7,3993.4,33.7945];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10610.6,3937.05,0.00209427], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10610.7,3937.29,33.3585];
-_newObject setVectorDirAndUp [[0.709462,0.704744,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10585.9,3962.69,-0.00117111], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10586,3962.89,33.1433];
-_newObject setVectorDirAndUp [[0.709413,0.704793,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10616.9,4021.14,0.00162125], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10617,4020.86,33.7116];
-_newObject setVectorDirAndUp [[-0.00338505,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10670.8,3963.14,0.000858307], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10670.6,3963.1,33.7818];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10639.6,4021.6,0.00123978], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10639.7,4021.33,33.7869];
-_newObject setVectorDirAndUp [[-0.00335416,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10668.8,3998.61,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10668.5,3998.57,33.7945];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10611.9,4021.11,0.00247192], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10611.9,4020.83,33.6939];
-_newObject setVectorDirAndUp [[-0.00338505,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10614.1,3933.37,0.00163651], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10614.3,3933.61,33.4475];
-_newObject setVectorDirAndUp [[0.709444,0.704761,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10652.2,4017.12,1.52588e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10652.2,4017.12,33.7945];
-_newObject setVectorDirAndUp [[-0.999995,0.00332263,-2.80781e-006], [-2.8076e-006,6.75271e-008,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10582.3,3966.38,-0.00117111], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10582.5,3966.57,33.1979];
-_newObject setVectorDirAndUp [[0.709413,0.704793,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10644.8,4021.63,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10644.9,4021.36,33.7945];
-_newObject setVectorDirAndUp [[-0.00334413,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10671,3958,0.0016861], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10670.7,3957.92,33.7131];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_ToiletBox_F', [10667.6,3951.6,0.000221252], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10667.6,3951.6,33.6207];
-_newObject setVectorDirAndUp [[0.0491488,-0.998708,-0.0129017], [-0.000981778,-0.0129656,0.999915]];
-_newObject = createVehicle ['Land_CncWall4_F', [10606.7,4021.08,0.00247192], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10606.7,4020.79,33.6884];
-_newObject setVectorDirAndUp [[-0.00336993,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10668.6,4003.83,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10668.3,4003.79,33.7945];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10602.1,4018.69,-4.19617e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10602.1,4018.69,33.6606];
-_newObject setVectorDirAndUp [[0.0141247,-0.9999,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10617.7,3929.78,0.00163651], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10617.8,3930.02,33.54];
-_newObject setVectorDirAndUp [[0.709441,0.704765,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10656.7,4016.95,1.14441e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10656.7,4016.95,33.7945];
-_newObject setVectorDirAndUp [[-0.9999,-0.0141396,-3.18286e-006], [-3.18124e-006,-1.36921e-007,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10649.9,4021.66,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10649.9,4021.39,33.7945];
-_newObject setVectorDirAndUp [[-0.00334413,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_ToiletBox_F', [10598,4016.55,0.000148773], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10598,4016.55,33.6312];
-_newObject setVectorDirAndUp [[0.999897,0.0142079,0.00217259], [-0.00203084,-0.00998405,0.999948]];
-_newObject = createVehicle ['Land_CncWall4_F', [10578.7,3970.17,-0.00117111], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10578.9,3970.36,33.2538];
-_newObject setVectorDirAndUp [[0.709435,0.704771,0], [0,0,1]];
-_newObject = createVehicle ['Land_HelipadCircle_F', [10657.9,3938.09,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10657.9,3938.09,33.4591];
-_newObject setVectorDirAndUp [[0.0490942,-0.998792,0.00209528], [-0.00199981,0.0019995,0.999996]];
-_newObject = createVehicle ['PortableHelipadLight_01_green_F', [10658,3938.08,2.28882e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10658,3938.08,33.4605];
-_newObject setVectorDirAndUp [[0.999901,0.0139412,0.00192655], [-0.00195611,0.00210719,0.999996]];
-_newObject = createVehicle ['Land_CncWall4_F', [10671.1,3952.78,0.00100327], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10670.9,3952.71,33.6381];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10668.4,4008.95,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10668.2,4008.91,33.7945];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10661.1,4016.9,1.52588e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10661.1,4016.9,33.7945];
-_newObject setVectorDirAndUp [[-0.9999,-0.0141536,-1.85518e-006], [-1.85514e-006,-1.63474e-008,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10655,4021.65,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10655,4021.38,33.7945];
-_newObject setVectorDirAndUp [[-0.00334413,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10669.6,3947.35,-7.62939e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10669.6,3947.34,33.5724];
-_newObject setVectorDirAndUp [[-0.999501,-0.0315773,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10621.2,3926.14,0.00163651], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10621.4,3926.38,33.634];
-_newObject setVectorDirAndUp [[0.709453,0.704753,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10597.4,4020.61,0.00269699], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10597.4,4020.32,33.6676];
-_newObject setVectorDirAndUp [[0.0315424,-0.999502,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10575.1,3973.9,-0.00117111], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10575.3,3974.1,33.309];
-_newObject setVectorDirAndUp [[0.709435,0.704771,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10668.2,4013.98,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10667.9,4013.94,33.7945];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo20_military_green_F', [10665.5,4016.88,1.52588e-005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10665.5,4016.88,33.7945];
-_newObject setVectorDirAndUp [[-0.999994,0.00334209,-1.97645e-006], [-1.97704e-006,-1.71907e-007,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10660.2,4021.58,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10660.2,4021.31,33.7945];
-_newObject setVectorDirAndUp [[-0.00334382,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_ToiletBox_F', [10573.6,3982.98,-0.000171661], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10573.6,3982.98,33.3968];
-_newObject setVectorDirAndUp [[0.00327637,0.999954,0.00901528], [0.00398839,-0.00902832,0.999951]];
-_newObject = createVehicle ['Land_CncWall4_F', [10624.8,3922.41,0.00731659], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10624.9,3922.69,33.7793];
-_newObject setVectorDirAndUp [[0.709453,0.704753,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10592.2,4020.49,0.00196457], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10592.3,4020.21,33.6562];
-_newObject setVectorDirAndUp [[0.0315894,-0.999501,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10671.7,3942.69,0.000869751], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10671.5,3942.63,33.5224];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10571.5,3977.66,0.00234604], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10571.7,3977.88,33.3622];
-_newObject setVectorDirAndUp [[0.709445,0.704761,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10667.9,4019.17,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10667.7,4019.12,33.7945];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10665.4,4021.55,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10665.4,4021.28,33.7945];
-_newObject setVectorDirAndUp [[-0.00334382,-0.999994,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10569.8,3982.03,0.000930786], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10570.1,3982.04,33.4027];
-_newObject setVectorDirAndUp [[0.999783,-0.0208247,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10570.5,3987.2,0.000179291], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10570.5,3987.16,33.447];
-_newObject setVectorDirAndUp [[0.999995,-0.0033366,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10628.3,3918.83,0.0134163], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10628.5,3919.11,33.8328];
-_newObject setVectorDirAndUp [[0.709453,0.704753,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10587,4020.42,0.00181198], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10587.1,4020.14,33.6592];
-_newObject setVectorDirAndUp [[0.0315894,-0.999501,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10672,3937.66,0.000537872], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10671.7,3937.6,33.4705];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10569.4,3991.69,0.000934601], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10569.7,3991.71,33.4743];
-_newObject setVectorDirAndUp [[0.9999,0.0141168,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall1_F', [10630.5,3916.9,0.0139885], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10630.7,3917.2,33.852];
-_newObject setVectorDirAndUp [[0.328709,0.944431,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall1_F', [10631.5,3916.71,0.0133209], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10631.6,3917.05,33.8369];
-_newObject setVectorDirAndUp [[-0.0141288,0.9999,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10634.8,3916.86,0.00520325], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10634.8,3917.16,33.7944];
-_newObject setVectorDirAndUp [[-0.0490164,0.998798,0], [0,0,1]];
-_newObject = createVehicle ['Land_dp_transformer_F', [10573.7,4005.38,0.000526428], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10573.5,4005.37,33.5487];
-_newObject setVectorDirAndUp [[0.999499,0.0316363,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10569.4,3996.87,0.000335693], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10569.7,3996.9,33.5085];
-_newObject setVectorDirAndUp [[0.999899,0.0141887,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10640,3917.05,0.00484848], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10640,3917.35,33.7243];
-_newObject setVectorDirAndUp [[-0.0490164,0.998798,0], [0,0,1]];
-_newObject = createVehicle ['Land_spp_Transformer_F', [10580,4016.68,0.000854492], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10580,4016.5,33.6196];
-_newObject setVectorDirAndUp [[-0.9999,-0.0141287,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10645.2,3917.31,0.0015831], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10645.1,3917.59,33.6151];
-_newObject setVectorDirAndUp [[-0.0490164,0.998798,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10581.9,4020.31,0.00181198], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10581.9,4020.03,33.643];
-_newObject setVectorDirAndUp [[0.0315894,-0.999501,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10672.2,3932.54,0.000415802], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10671.9,3932.48,33.4294];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10569.3,4001.89,0.000473022], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10569.6,4001.92,33.5343];
-_newObject setVectorDirAndUp [[0.999899,0.0141887,0], [0,0,1]];
-_newObject = createVehicle ['Land_dp_transformer_F', [10573.7,4010.02,0.000530243], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10573.4,4010.02,33.5765];
-_newObject setVectorDirAndUp [[0.999501,0.0315781,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10650.2,3917.58,0.00148392], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10650.2,3917.86,33.5672];
-_newObject setVectorDirAndUp [[-0.0490164,0.998798,0], [0,0,1]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [10654.8,3919.5,0.000362396], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10654.8,3919.5,33.4951];
-_newObject setVectorDirAndUp [[-0.101222,0.994864,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10569.3,4007.03,-0.000717163], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10569.6,4007.06,33.551];
-_newObject setVectorDirAndUp [[0.999899,0.0141887,0], [0,0,1]];
-_newObject = createVehicle ['Land_wpp_Turbine_V1_F', [10573.5,4015.47,-0.0045433], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10574.5,4015.48,33.6074];
-_newObject setVectorDirAndUp [[-0.997781,-0.0665817,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10576.9,4020.13,0.00132751], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10576.9,4019.85,33.6332];
-_newObject setVectorDirAndUp [[0.0315733,-0.999501,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10660,3919,0.000724792], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10660,3919.27,33.4428];
-_newObject setVectorDirAndUp [[-0.0490164,0.998798,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10672.3,3927.32,-0.000228882], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10672,3927.26,33.3891];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10569.3,4012.25,-0.000717163], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10569.6,4012.27,33.5824];
-_newObject setVectorDirAndUp [[0.999898,0.0142637,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10665.1,3919.24,0.000751495], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10665.1,3919.51,33.3933];
-_newObject setVectorDirAndUp [[-0.0490164,0.998798,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10571.7,4019.97,0.00121689], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10571.7,4019.69,33.6174];
-_newObject setVectorDirAndUp [[0.0315733,-0.999501,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10569.3,4017.41,-0.00063324], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10569.6,4017.44,33.5986];
-_newObject setVectorDirAndUp [[0.999898,0.0142637,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10672.5,3922.15,-0.000389099], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10672.2,3922.1,33.3664];
-_newObject setVectorDirAndUp [[-0.998798,-0.0490161,0], [0,0,1]];
-_newObject = createVehicle ['Land_CncWall4_F', [10670.1,3919.52,-0.000881195], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10670.1,3919.79,33.3637];
-_newObject setVectorDirAndUp [[-0.0490164,0.998798,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrierTower_F', [10716,4284.56,0.000339508], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10716.1,4284.56,56.3832];
-_newObject setVectorDirAndUp [[0.708334,0.70564,0.0183311], [0.00499693,-0.0309811,0.999508]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [10712.3,4289.58,0.0044899], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10712.3,4289.95,56.249];
-_newObject setVectorDirAndUp [[-0.0271647,0.993449,-0.111005], [-0.063481,0.109108,0.992001]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [10722.1,4279.48,0.043087], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10722.5,4279.45,56.1953];
-_newObject setVectorDirAndUp [[0.999231,0.0390353,-0.00378559], [0.00499693,-0.0309811,0.999508]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [10712.4,4292.9,0.0984421], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10712.3,4292.63,55.8903];
-_newObject setVectorDirAndUp [[0.0271648,-0.993449,0.111005], [-0.063481,0.109108,0.992001]];
-_newObject = createVehicle ['Land_Razorwire_F', [10722.3,4299.16,-0.49461], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10723.4,4297.93,55.2771];
-_newObject setVectorDirAndUp [[0.728615,0.682261,-0.0603437], [-0.00796135,0.0965331,0.995298]];
-_newObject = createVehicle ['Land_Razorwire_F', [10729.6,4291.56,-0.395962], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10730.7,4290.29,55.9356];
-_newObject setVectorDirAndUp [[0.748466,0.658292,-0.0803115], [0.0218894,0.096513,0.995091]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [10725.5,4279.35,-0.0392189], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10725.2,4279.36,56.1892];
-_newObject setVectorDirAndUp [[-0.999287,-0.0275273,-0.0258327], [-0.0249775,-0.0309719,0.999208]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [10710.6,4291.28,-0.147984], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10710.9,4291.31,55.9551];
-_newObject setVectorDirAndUp [[0.997105,0.048632,0.0584587], [-0.063481,0.109108,0.992001]];
-_newObject = createVehicle ['Land_BagFence_Round_F', [10723.8,4277.69,-0.00276947], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10723.8,4278,56.1317];
-_newObject setVectorDirAndUp [[-0.025832,0.999182,0.0311002], [0.00499693,-0.0309811,0.999508]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10720.7,4300.56,0.0563087], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10718.4,4300.79,55.0881];
-_newObject setVectorDirAndUp [[-0.050602,-0.984986,0.165054], [-0.00788819,0.165655,0.986152]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10733.4,4282.49,0.0374756], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10733.5,4284.75,56.3243];
-_newObject setVectorDirAndUp [[-0.999529,0.0217792,0.0216386], [0.0219892,0.0159923,0.99963]];
-_newObject = createVehicle ['Land_Razorwire_F', [10720,4302.51,-0.0237083], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10721.7,4302.52,54.7555];
-_newObject setVectorDirAndUp [[0.0309949,0.98575,-0.16534], [-0.00788819,0.165655,0.986152]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10706.4,4287.08,0.316616], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10706.5,4289.41,56.3236];
-_newObject setVectorDirAndUp [[-0.998533,0.03456,-0.0416758], [-0.036629,0.135626,0.990083]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10715.1,4300.61,0.0712967], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10712.8,4300.93,55.0356];
-_newObject setVectorDirAndUp [[-0.090966,-0.982213,0.164266], [-0.00788819,0.165655,0.986152]];
-_newObject = createVehicle ['Land_Razorwire_F', [10735.6,4287.24,0.681519], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10735.7,4289.04,56.2214];
-_newObject setVectorDirAndUp [[-0.99976,0.00324933,0.0216769], [0.0218894,0.096513,0.995091]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10706.7,4292.89,0.253651], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10706.7,4295.2,55.526];
-_newObject setVectorDirAndUp [[-0.997539,0.0227073,-0.066333], [-0.063481,0.109108,0.992001]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10706.1,4281.51,-0.0932198], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10706.2,4283.72,56.0096];
-_newObject setVectorDirAndUp [[-0.998376,0.0448649,-0.0350965], [-0.0369396,-0.0409331,0.998479]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10724.1,4272.92,0.0102005], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10721.9,4272.92,55.6729];
-_newObject setVectorDirAndUp [[-0.0610587,-0.983144,-0.172336], [-0.00492481,-0.17236,0.985022]];
-_newObject = createVehicle ['Land_Razorwire_F', [10712.2,4302.74,-0.103348], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10713.9,4302.68,54.6541];
-_newObject setVectorDirAndUp [[0.0719979,0.983717,-0.16467], [-0.00788819,0.165655,0.986152]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10733.3,4276.91,-0.066021], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10733.2,4279.13,56.3082];
-_newObject setVectorDirAndUp [[-0.998834,-0.0405438,-0.0262248], [-0.0249775,-0.0309719,0.999208]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10718.5,4273.14,0.00880432], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10716.2,4273.16,55.6843];
-_newObject setVectorDirAndUp [[-0.064672,-0.982917,-0.172315], [-0.00492481,-0.17236,0.985022]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10713.5,4273.49,-0.00826645], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10711.8,4275.02,55.9445];
-_newObject setVectorDirAndUp [[-0.69424,-0.717177,-0.0607297], [-0.0409194,-0.0449117,0.998153]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10709.5,4277.47,-0.000526428], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10707.9,4278.99,55.9681];
-_newObject setVectorDirAndUp [[-0.690981,-0.720317,-0.0607374], [-0.0409194,-0.0449117,0.998153]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10707.1,4297.58,0.107754], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10708.5,4299.37,55.0409];
-_newObject setVectorDirAndUp [[-0.760392,0.638491,-0.118886], [-0.063481,0.109108,0.992001]];
-_newObject = createVehicle ['Land_Razorwire_F', [10704.8,4291.86,0.93095], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10705,4293.67,55.6111];
-_newObject setVectorDirAndUp [[-0.997586,0.0535223,-0.0442383], [-0.036629,0.135626,0.990083]];
-_newObject = createVehicle ['Land_Razorwire_F', [10735.1,4278.94,0.114037], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10735.1,4280.68,56.3453];
-_newObject setVectorDirAndUp [[-0.999689,-0.0114152,0.0221732], [0.0219892,0.0159923,0.99963]];
-_newObject = createVehicle ['Land_Razorwire_F', [10704.3,4283.43,-0.164177], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10704.5,4285.12,56.023];
-_newObject setVectorDirAndUp [[-0.997452,0.06254,-0.0343377], [-0.0369396,-0.0409331,0.998479]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10729.7,4272.3,0.0721283], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10727.5,4272.32,55.7259];
-_newObject setVectorDirAndUp [[-0.0605116,-0.982888,-0.173983], [-0.0324852,-0.172271,0.984514]];
-_newObject = createVehicle ['Land_Razorwire_F', [10716,4271.8,0.051651], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10717.7,4271.52,55.4366];
-_newObject setVectorDirAndUp [[0.0434264,0.984068,0.17241], [-0.00492481,-0.17236,0.985022]];
-_newObject = createVehicle ['Land_Razorwire_F', [10712.1,4273.08,-0.470268], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10710.9,4274.17,55.6062];
-_newObject setVectorDirAndUp [[-0.68669,-0.709117,-0.160032], [-0.0402714,-0.182695,0.982345]];
-_newObject = createVehicle ['Land_Razorwire_F', [10708.1,4276.77,0.0010376], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10706.8,4277.95,55.8772];
-_newObject setVectorDirAndUp [[-0.67151,-0.738501,-0.0607574], [-0.0409194,-0.0449117,0.998153]];
-_newObject = createVehicle ['Land_HBarrier_5_F', [10730.1,4272.58,-0.300526], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10731.5,4274.17,55.7647];
-_newObject setVectorDirAndUp [[-0.772955,0.628652,0.0856516], [-0.0246484,-0.164651,0.986044]];
-_newObject = createVehicle ['Land_Razorwire_F', [10708.7,4301.54,-0.612804], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10707.4,4300.44,54.534];
-_newObject setVectorDirAndUp [[0.757999,-0.625859,0.183677], [-0.0624287,0.210697,0.975556]];
-_newObject = createVehicle ['Land_Razorwire_F', [10724.1,4271.16,-0.0885468], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10725.8,4270.81,55.3415];
-_newObject setVectorDirAndUp [[0.0816312,0.981286,0.174399], [-0.0324852,-0.172271,0.984514]];
-_newObject = createVehicle ['Land_Razorwire_F', [10733.8,4274.68,1.07932], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [10732.6,4273.29,56.2094];
-_newObject setVectorDirAndUp [[0.770288,-0.631837,-0.08625], [-0.0246484,-0.164651,0.986044]];
-_newObject = createVehicle ['Land_LightHouse_F', [11150.6,2220.14,-0.0874805], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11150.6,2223.38,8.49803];
-_newObject setVectorDirAndUp [[0,1,0], [0,0,1]];
-_newObject = createVehicle ['Land_LightHouse_F', [11746.9,4677.28,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11747,4674.04,16.4044];
-_newObject setVectorDirAndUp [[0.0296184,-0.999561,0], [0,0,1]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [11760.5,4640.46,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11760.2,4641.39,18.6884];
-_newObject setVectorDirAndUp [[0.311788,-0.950152,0], [0,0,1]];
-_newObject = createVehicle ['Land_WheelieBin_01_F', [11757,4641.8,0.00461006], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11757,4641.8,18.4441];
-_newObject setVectorDirAndUp [[0.349249,-0.932293,0.0940977], [-0.0476752,0.0826116,0.995441]];
-_newObject = createVehicle ['Land_WheelieBin_01_F', [11756.3,4641.44,0.00460243], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11756.3,4641.44,18.438];
-_newObject setVectorDirAndUp [[0.349242,-0.932296,0.0940977], [-0.0476721,0.0826128,0.995441]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11762.4,4636.31,0.0123482], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11762.4,4636.15,18.9859];
-_newObject setVectorDirAndUp [[0.318047,-0.947245,-0.0396694], [-0.0478593,-0.0578298,0.997179]];
-_newObject = createVehicle ['Land_Cargo_House_V1_F', [11754.1,4638.28,0], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11753.8,4639.21,18.5005];
-_newObject setVectorDirAndUp [[0.311788,-0.950152,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11771.4,4645.23,0.0191917], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11771.6,4645.27,17.9478];
-_newObject setVectorDirAndUp [[0.944881,0.312745,-0.0969061], [0.0885659,0.0408001,0.995234]];
-_newObject = createVehicle ['Land_PaperBox_open_empty_F', [11763.6,4634.46,0.00212479], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11763.6,4634.42,18.8717];
-_newObject setVectorDirAndUp [[0.95154,0.307413,0.00831355], [0.00998166,-0.0578933,0.998273]];
-_newObject = createVehicle ['Land_Pallet_MilBoxes_F', [11765.4,4635.11,0.000999451], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11765.5,4634.99,18.8491];
-_newObject setVectorDirAndUp [[-0.947406,-0.306896,0.0907538], [0.0886203,0.0209104,0.995846]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [11761.1,4654.86,0.0014782], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11761,4654.88,18.17];
-_newObject setVectorDirAndUp [[0.316134,-0.948715,0], [0,0,1]];
-_newObject = createVehicle ['Land_PaperBox_open_full_F', [11761.6,4633.79,0.00287056], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11761.6,4633.76,18.8006];
-_newObject setVectorDirAndUp [[0.94913,0.308427,0.06344], [-0.0478593,-0.0578298,0.997179]];
-_newObject = createVehicle ['Land_PaperBox_closed_F', [11759.8,4633.15,0.00453949], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11759.8,4633.11,18.6775];
-_newObject setVectorDirAndUp [[0.949452,0.307443,0.0633984], [-0.0478593,-0.0578298,0.997179]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11768.6,4653.4,0.0200996], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11768.8,4653.45,17.8361];
-_newObject setVectorDirAndUp [[0.944667,0.312517,-0.09969], [0.08853,0.0497359,0.994831]];
-_newObject = createVehicle ['Land_CncBarrier_stripes_F', [11763.4,4655.68,0.00184631], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11763.5,4655.69,18.1745];
-_newObject setVectorDirAndUp [[0.316096,-0.948727,0], [0,0,1]];
-_newObject = createVehicle ['Land_Razorwire_F', [11773,4646.56,-0.060463], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11773.6,4644.94,17.7543];
-_newObject setVectorDirAndUp [[0.939274,0.329151,-0.0970797], [0.0885659,0.0408001,0.995234]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [11761.8,4657.29,-0.00431252], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11761.7,4657.33,18.1203];
-_newObject setVectorDirAndUp [[0.947149,0.312943,0.0705356], [-0.0905034,0.0497271,0.994654]];
-_newObject = createVehicle ['Land_Razorwire_F', [11770.4,4654.51,-0.118441], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11770.9,4652.89,17.6202];
-_newObject setVectorDirAndUp [[0.939277,0.328266,-0.0999978], [0.08853,0.0497359,0.994831]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11754.4,4633.55,0.00481606], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11754.4,4633.39,18.4344];
-_newObject setVectorDirAndUp [[0.315243,-0.948174,-0.0398579], [-0.0478593,-0.0578298,0.997179]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11749.5,4637.43,0.00364685], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11749.6,4637.44,18.4737];
-_newObject setVectorDirAndUp [[0.948715,0.314486,-0.032216], [0.0269813,0.0209855,0.999416]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [11761.4,4658.56,-0.00429916], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11761.3,4658.59,18.0173];
-_newObject setVectorDirAndUp [[0.947149,0.312943,0.0705356], [-0.0905034,0.0497271,0.994654]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11746.4,4645.43,0.00955582], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11746.5,4645.52,17.8616];
-_newObject setVectorDirAndUp [[0.947932,0.31565,-0.0423091], [0.0169375,0.0826945,0.996431]];
-_newObject = createVehicle ['ContainmentArea_02_forest_F', [11760.9,4659.17,0.00258446], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11760.9,4659.18,17.945];
-_newObject setVectorDirAndUp [[0.947149,0.312943,0.0705356], [-0.0905034,0.0497271,0.994654]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11774,4637.05,0.017849], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11774.2,4637.06,18.0419];
-_newObject setVectorDirAndUp [[0.946111,0.310875,-0.0907221], [0.0886203,0.0209104,0.995846]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11759,4629.57,-0.00446892], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11759.1,4629.49,18.4246];
-_newObject setVectorDirAndUp [[0.948822,0.309364,0.0634796], [-0.0478593,-0.0578298,0.997179]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [11761,4659.8,-0.00422668], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11760.9,4659.84,17.9179];
-_newObject setVectorDirAndUp [[0.947149,0.312943,0.0705356], [-0.0905034,0.0497271,0.994654]];
-_newObject = createVehicle ['Land_Razorwire_F', [11756.5,4631.02,-0.082201], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11757.1,4629.38,18.3923];
-_newObject setVectorDirAndUp [[0.943511,0.329361,-0.0361614], [0.0309749,0.0209831,0.9993]];
-_newObject = createVehicle ['Land_Razorwire_F', [11745.1,4643.82,-0.507732], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11745.6,4642.24,18.0175];
-_newObject setVectorDirAndUp [[0.941457,0.334282,-0.0437454], [0.0169375,0.0826945,0.996431]];
-_newObject = createVehicle ['Land_Razorwire_F', [11751.2,4630.19,0.237906], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11752.9,4630.71,18.575];
-_newObject setVectorDirAndUp [[-0.329565,0.944084,-0.0096083], [0.0309749,0.0209831,0.9993]];
-_newObject = createVehicle ['Land_Razorwire_F', [11747.7,4635.91,-0.0751991], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11748.3,4634.27,18.5533];
-_newObject setVectorDirAndUp [[0.943801,0.328924,-0.0323865], [0.0269813,0.0209855,0.999416]];
-_newObject = createVehicle ['Land_PowerGenerator_F', [11760.5,4661.13,-0.00424767], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11760.4,4661.16,17.8102];
-_newObject setVectorDirAndUp [[0.947149,0.312943,0.0705356], [-0.0905034,0.0497271,0.994654]];
-_newObject = createVehicle ['Land_Razorwire_F', [11775.6,4638.7,-0.0348167], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11776.1,4637.06,17.9107];
-_newObject setVectorDirAndUp [[0.943326,0.329971,-0.0354155], [0.0329756,0.0129903,0.999372]];
-_newObject = createVehicle ['Land_BagBunker_Tower_F', [11764.1,4627.24,0.00478935], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11764.2,4627.1,18.4387];
-_newObject setVectorDirAndUp [[-0.326333,0.945255,0], [0,0,1]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11765.4,4661.58,0.0172215], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11765.6,4661.63,17.7195];
-_newObject setVectorDirAndUp [[0.947369,0.306976,-0.090874], [0.0816417,0.0428121,0.995742]];
-_newObject = createVehicle ['Land_Razorwire_F', [11767.5,4662.29,-0.0604019], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11768.1,4660.66,17.518];
-_newObject setVectorDirAndUp [[0.941768,0.32368,-0.091133], [0.0816417,0.0428121,0.995742]];
-_newObject = createVehicle ['Land_Razorwire_F', [11742.5,4650.48,-0.496687], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11743,4648.9,17.5092];
-_newObject setVectorDirAndUp [[0.942391,0.331668,-0.0435442], [0.0169375,0.0826945,0.996431]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11743.5,4653.63,0.00568008], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11743.6,4653.69,17.314];
-_newObject setVectorDirAndUp [[0.953455,0.299593,-0.0341805], [0.0169652,0.059877,0.998062]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11753.1,4662.73,0.0092659], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11753,4662.71,17.055];
-_newObject setVectorDirAndUp [[0.316785,-0.945287,0.0779736], [-0.0904943,0.051711,0.994554]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11760.9,4665.25,0.00181389], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11760.8,4665.33,17.5235];
-_newObject setVectorDirAndUp [[0.309715,-0.941607,0.132108], [-0.00396137,0.13766,0.990472]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11761.2,4623.4,0.00435638], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11761.3,4623.37,18.3499];
-_newObject setVectorDirAndUp [[0.948994,0.31435,-0.0243865], [0.0309777,-0.0159885,0.999392]];
-_newObject = createVehicle ['Land_Razorwire_F', [11750.6,4663.13,-0.489481], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11752.2,4663.69,16.8061];
-_newObject setVectorDirAndUp [[-0.333076,0.939571,-0.0791588], [-0.0904943,0.051711,0.994554]];
-_newObject = createVehicle ['Land_Razorwire_F', [11765.8,4667.14,-0.67831], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11766.4,4665.6,17.006];
-_newObject setVectorDirAndUp [[0.938426,0.32327,-0.121872], [0.0809437,0.13721,0.987229]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11744.9,4659.88,-0.00139618], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11744.9,4659.85,16.9582];
-_newObject setVectorDirAndUp [[0.314031,-0.948305,0.0458462], [0.00798848,0.0509265,0.99867]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11777,4628.66,0.00605774], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11777.1,4628.68,18.05];
-_newObject setVectorDirAndUp [[0.948669,0.312986,-0.0454631], [0.0409521,0.0209754,0.998941]];
-_newObject = createVehicle ['Land_Razorwire_F', [11758.6,4666.38,0.410778], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11760.2,4666.98,17.3671];
-_newObject setVectorDirAndUp [[-0.330121,0.934771,-0.131239], [-0.00396137,0.13766,0.990472]];
-_newObject = createVehicle ['Land_HBarrier_Big_F', [11767.3,4622.37,0.0076561], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11767.3,4622.21,18.1198];
-_newObject setVectorDirAndUp [[0.311497,-0.948229,-0.0618983], [0.00997928,-0.0618712,0.998034]];
-_newObject = createVehicle ['Land_Razorwire_F', [11759.2,4623.11,0.178621], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11759.7,4621.44,18.4059];
-_newObject setVectorDirAndUp [[0.943402,0.330787,-0.0239502], [0.0309777,-0.0159885,0.999392]];
-_newObject = createVehicle ['Land_Razorwire_F', [11778.4,4630.83,-0.0441895], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11778.9,4629.19,17.9488];
-_newObject setVectorDirAndUp [[0.943183,0.329133,-0.0455773], [0.0409521,0.0209754,0.998941]];
-_newObject = createVehicle ['Land_Razorwire_F', [11742.7,4660.48,0.172861], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11744.3,4661.03,16.9456];
-_newObject setVectorDirAndUp [[-0.332772,0.941915,-0.0453704], [0.00798848,0.0509265,0.99867]];
-_newObject = createVehicle ['Land_Razorwire_F', [11740,4658.46,-0.352674], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11740.5,4656.85,17.0836];
-_newObject setVectorDirAndUp [[0.945276,0.324333,-0.0355257], [0.0169652,0.059877,0.998062]];
-_newObject = createVehicle ['Land_Razorwire_F', [11766.3,4619.67,-0.0443535], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11767.9,4620.13,17.9639];
-_newObject setVectorDirAndUp [[-0.327925,0.942686,0.0617189], [0.00997928,-0.0618712,0.998034]];
-_newObject = createVehicle ['Land_Razorwire_F', [11762.3,4618.35,0.34569], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11764,4618.85,18.2392];
-_newObject setVectorDirAndUp [[-0.328223,0.944007,0.0334809], [0.0558991,-0.0159712,0.998309]];
-_newObject = createVehicle ['RoadBarrier_F', [11775.2,4621.36,-0.000745773], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11775.2,4621.36,17.9733];
-_newObject setVectorDirAndUp [[-0.314965,0.946681,0.0677633], [0.0440176,-0.0567502,0.997417]];
-_newObject = createVehicle ['Land_d_House_Small_02_V1_F', [11736.3,4690.27,0.309242], [], 0, 'CAN_COLLIDE'];
-_newObject setPosASL [11733.9,4689.78,15.0771];
-_newObject setVectorDirAndUp [[-0.167319,0.985903,0], [0,0,1]];
diff --git a/customMap/customMapInit.sqf b/customMap/customMapInit.sqf
deleted file mode 100644
index 7804c10..0000000
--- a/customMap/customMapInit.sqf
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Executes map-specific scripts
-*
-* executed via init.sqf on server
-*/
-
-_path = format ["customMap\%1.sqf", worldName];
-_fileExists = [_path] call KK_fnc_fileExists;
-if (!_fileExists) exitWith {};
-
-diag_log format ["customMapInit.sqf - %1 has custom scripts.", worldName];
-[] execVM _path;
diff --git a/description.ext b/description.ext
index 916e3a6..f525241 100644
--- a/description.ext
+++ b/description.ext
@@ -1,14 +1,12 @@
#define MODULES_DIRECTORY node_modules
+#include "cfgFunctions.hpp"
#include "cfgParams.hpp"
-#include "dialogs\cfgDialogs.hpp"
+#include "cfgMission.hpp"
#include "node_modules\grad-scoreboard\grad_scoreboard.hpp"
+#include "node_modules\grad-islandconfig\cfgGradIslands.hpp"
-class CfgFunctions {
- #include "functions\cfgFunctions.hpp"
- #include "node_modules\grad-scoreboard\cfgFunctions.hpp"
-};
// HEADER ======================================================================
class Header
@@ -28,21 +26,38 @@ loadScreen = "data\logo.paa";
respawn = 3;
respawnDelay = 9999;
respawnVehicleDelay = 0;
+allowFunctionsRecompile = 1;
respawnTemplates[] = {"Base"};
respawnOnStart = -1;
respawnDialog = 0;
disabledAI = 1;
enableDebugConsole = 1;
-//SOUNDS =======================================================================
+// TITLES AND DIALOGS ==========================================================
+class RscTitles {
+ #include "dialog\rscTitles.hpp"
+};
+#include "dialog\dialogs.hpp"
+
+// NOTIFICATIONS ===============================================================
+class CfgNotifications {
+ class gungame_notification1 {
+ title = "%1";
+ iconPicture = "\A3\ui_f\data\map\markers\military\warning_CA.paa";
+ description = "%2";
+ duration = 5;
+ priority = 0;
+ };
+};
+//SOUNDS =======================================================================
class CfgSounds
{
sounds[] = {};
- class switchsound
+ class gungame_upgradeWeaponSound
{
// how the sound is referred to in the editor (e.g. trigger effects)
- name = "switchsound";
+ name = "gungame_upgradeWeaponSound";
// filename, volume, pitch
sound[] = {"data\switchsound.ogg", 1, 1};
// subtitle delay in seconds, subtitle text
@@ -51,7 +66,6 @@ class CfgSounds
};
//CORPSE MANAGER ===============================================================
-
corpseManagerMode = 1; // Type of removed bodies: 0 - none, 1 - all, 2 - only respawnable, 3 - only non-respawnable
corpseLimit = 0; // Max number of bodies which can be available at the same time. When exceeded, start deleting immediately.
corpseRemovalMinTime = 5; // Minimal time in seconds a body stays in the scene (can't be removed sooner).
diff --git a/dialogs/baseDefines.hpp b/dialog/baseDefines.hpp
similarity index 100%
rename from dialogs/baseDefines.hpp
rename to dialog/baseDefines.hpp
diff --git a/dialog/baseRsc.hpp b/dialog/baseRsc.hpp
new file mode 100644
index 0000000..255730c
--- /dev/null
+++ b/dialog/baseRsc.hpp
@@ -0,0 +1,200 @@
+class mcd_IGUIBack
+{
+ 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 mcd_RscText
+{
+ 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 = "PuristaMedium";
+ SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ linespacing = 1;
+};
+
+class mcd_RscBackground: mcd_RscText {
+ colorBackground[] = {0,0,0,0.90};
+ colorText[] = {0,0,0,0};
+};
+
+class mcd_RscMapText: mcd_RscText
+{
+ idc = -1;
+ type = CT_STATIC;
+ style = ST_LEFT;
+ font = "PuristaLight";
+ sizeEx = 0.04;
+ colorBackground[] = { 0,0,0, 0.8 };
+ text = "";
+ w = 0.52 * 3/4;
+ h = 0.05;
+ duration = 1e+1000;
+};
+
+class mcd_RscMapTextSmall: mcd_RscText
+{
+ idc = -1;
+ type = CT_STATIC;
+ style = ST_LEFT;
+ shadow = 2;
+ font = "PuristaLight";
+ sizeEx = 0.04;
+ colorBackground[] = { 0,0,0, 0.8 };
+ text = "";
+ w = 0.52 * 3/4;
+ h = 0.05;
+ duration = 1e+1000;
+};
+
+class mcd_RscPicture
+{
+ shadow = 0;
+ type = 0;
+ style = 48;
+ sizeEx = 0.023;
+ font = "PuristaMedium";
+ colorBackground[] = {};
+ colorText[] = {};
+ x = 0;
+ y = 0;
+ w = 0.2;
+ h = 0.15;
+ tooltipColorText[] = {1,1,1,1};
+ tooltipColorBox[] = {1,1,1,1};
+ tooltipColorShade[] = {0,0,0,0.65};
+};
+
+class mcd_RscActivePictureKeepAspect {
+ idc = -1;
+ access = 0;
+ color[] = {1,1,1,0.5};
+ colorActive[] = {1,1,1,1};
+ colorDisabled[] = {1,1,1,0.25};
+ default = 0;
+ deletable = 0;
+ fade = 0;
+ font = "RobotoCondensed";
+ shadow = 2;
+ sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ soundClick[] = {"",0.1,1};
+ soundEnter[] = {"",0.1,1};
+ soundEscape[] = {"",0.1,1};
+ soundPush[] = {"",0.1,1};
+ style = "0x30 + 0x800";
+ text = "";
+ tooltipColorBox[] = {1,1,1,1};
+ tooltipColorShade[] = {0,0,0,0.65};
+ tooltipColorText[] = {1,1,1,1};
+ type = 11;
+ url = "";
+};
+
+class mcd_RscButton {
+ idc = -1;
+ access = 0;
+ borderSize = 0;
+ colorBackground[] = {0,0,0,0.9};
+ colorBackgroundActive[] = {0,0,0,0.9};
+ colorBackgroundDisabled[] = {0,0,0,0.5};
+ colorBorder[] = {0,0,0,1};
+ colorDisabled[] = {1,1,1,0.25};
+ colorFocused[] = {0,0,0,1};
+ colorShadow[] = {0,0,0,0};
+ colorText[] = {1,1,1,1};
+ deletable = 0;
+ fade = 0;
+ font = "RobotoCondensed";
+ offsetPressedX = 0;
+ offsetPressedY = 0;
+ offsetX = 0;
+ offsetY = 0;
+ shadow = 2;
+ sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1};
+ soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1};
+ soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1};
+ soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1};
+ style = 2;
+ text = "";
+ type = 1;
+ url = "";
+};
+
+class mcd_lbMulti {
+ access = 0;
+ type = 5;
+ style = LB_MULTI;
+
+ x = 0;
+ y = 0;
+ w = 0.4;
+ h = 0.4;
+
+ font = "TahomaB";
+ sizeEx = 0.04;
+ rowHeight = 0;
+ colorText[] = {1,1,1,1};
+ colorScrollbar[] = {1,1,1,1};
+ colorSelect[] = {0,0,0,1};
+ colorSelect2[] = {1,0.5,0,1};
+ colorSelectBackground[] = {0.6,0.6,0.6,1};
+ colorSelectBackground2[] = {0.2,0.2,0.2,1};
+ colorBackground[] = {0,0,0,1};
+ maxHistoryDelay = 1.0;
+ soundSelect[] = {"",0.1,1};
+ period = 1;
+ autoScrollSpeed = -1;
+ autoScrollDelay = 5;
+ autoScrollRewind = 0;
+ arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
+ arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
+ shadow = 0;
+ class ListScrollBar {
+ autoScrollDelay = 5;
+ autoScrollEnabled = 0;
+ autoScrollRewind = 0;
+ autoScrollSpeed = -1;
+ height = 0;
+ scrollSpeed = 0.06;
+ width = 0;
+
+ color[] = {1,1,1,0.6};
+ colorActive[] = {1,1,1,1};
+ colorDisabled[] = {1,1,1,0.3};
+ thumb = "#(argb,8,8,3)color(1,1,1,1)";
+ arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
+ arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
+ border = "#(argb,8,8,3)color(1,1,1,1)";
+ shadow = 0;
+ };
+};
diff --git a/dialog/chooseUniform/defines.hpp b/dialog/chooseUniform/defines.hpp
new file mode 100644
index 0000000..e471911
--- /dev/null
+++ b/dialog/chooseUniform/defines.hpp
@@ -0,0 +1,24 @@
+#define CHOOSEUNIFORM_IDD_DIALOG 8000
+#define CHOOSEUNIFORM_IDC_ITEM0 8001
+#define CHOOSEUNIFORM_IDC_ITEM1 8002
+#define CHOOSEUNIFORM_IDC_ITEM2 8003
+#define CHOOSEUNIFORM_IDC_REROLL 8101
+#define CHOOSEUNIFORM_IDC_CONFIRM 8102
+#define CHOOSEUNIFORM_IDC_COUNTDOWN 8200
+
+
+#define CHOOSEUNIFORM_PADDING_W (0.002 * X_SCALE)
+#define CHOOSEUNIFORM_PADDING_H (0.010 * Y_SCALE)
+#define CHOOSEUNIFORM_SPACER_W (0.002 * X_SCALE)
+
+#define CHOOSEUNIFORM_TOPBAR_H (0.040 * Y_SCALE)
+#define CHOOSEUNIFORM_TOPBAR_SPACER_H (0.002 * Y_SCALE)
+
+#define CHOOSEUNIFORM_COLUMN_W (0.200 * X_SCALE)
+#define CHOOSEUNIFORM_COLUMN_H (0.200 * Y_SCALE)
+
+#define CHOOSEUNIFORM_TOTAL_W (2 * CHOOSEUNIFORM_PADDING_W + 3 * CHOOSEUNIFORM_COLUMN_W + 2 * CHOOSEUNIFORM_SPACER_W)
+#define CHOOSEUNIFORM_TOTAL_H (2 * CHOOSEUNIFORM_PADDING_H + CHOOSEUNIFORM_COLUMN_H)
+
+#define CHOOSEUNIFORM_X CENTER(1,CHOOSEUNIFORM_TOTAL_W)
+#define CHOOSEUNIFORM_Y CENTER(1,CHOOSEUNIFORM_TOTAL_H)
diff --git a/dialog/chooseUniform/dialog.hpp b/dialog/chooseUniform/dialog.hpp
new file mode 100644
index 0000000..5b0ba57
--- /dev/null
+++ b/dialog/chooseUniform/dialog.hpp
@@ -0,0 +1,88 @@
+class gungame_rscChooseUniform {
+ idd = CHOOSEUNIFORM_IDD_DIALOG;
+ movingEnable = false;
+ enableSimulation = true;
+ onUnload = "_this call gungame_chooseUniform_fnc_onUnload";
+
+ class controlsBackground {
+ class mainBG: mcd_RscBackground {
+ x = CHOOSEUNIFORM_X;
+ y = CHOOSEUNIFORM_Y;
+ w = CHOOSEUNIFORM_TOTAL_W;
+ h = CHOOSEUNIFORM_TOTAL_H;
+ };
+ class topbar: mcd_RscBackground {
+ x = CHOOSEUNIFORM_X;
+ y = CHOOSEUNIFORM_Y - CHOOSEUNIFORM_TOPBAR_H - CHOOSEUNIFORM_TOPBAR_SPACER_H;
+ w = CHOOSEUNIFORM_TOTAL_W;
+ h = CHOOSEUNIFORM_TOPBAR_H;
+ };
+ class topbarText: mcd_RscText {
+ x = CHOOSEUNIFORM_X;
+ y = CHOOSEUNIFORM_Y - CHOOSEUNIFORM_TOPBAR_H - CHOOSEUNIFORM_TOPBAR_SPACER_H;
+ w = CHOOSEUNIFORM_TOTAL_W;
+ h = CHOOSEUNIFORM_TOPBAR_H;
+
+ text = "CHOOSE UNIFORM";
+ font = "EtelkaMonospacePro";
+ };
+ };
+ class controls {
+ class item0: mcd_RscActivePictureKeepAspect {
+ idc = CHOOSEUNIFORM_IDC_ITEM0;
+ x = CHOOSEUNIFORM_X + CHOOSEUNIFORM_PADDING_W + 0 * CHOOSEUNIFORM_SPACER_W + 0 * CHOOSEUNIFORM_COLUMN_W;
+ y = CHOOSEUNIFORM_Y + CHOOSEUNIFORM_PADDING_H;
+ w = CHOOSEUNIFORM_COLUMN_W;
+ h = CHOOSEUNIFORM_COLUMN_H;
+
+ action = "[0] call gungame_chooseUniform_fnc_onUniformSelected";
+ };
+ class item1: mcd_RscActivePictureKeepAspect {
+ idc = CHOOSEUNIFORM_IDC_ITEM1;
+ x = CHOOSEUNIFORM_X + CHOOSEUNIFORM_PADDING_W + 1 * CHOOSEUNIFORM_SPACER_W + 1 * CHOOSEUNIFORM_COLUMN_W;
+ y = CHOOSEUNIFORM_Y + CHOOSEUNIFORM_PADDING_H;
+ w = CHOOSEUNIFORM_COLUMN_W;
+ h = CHOOSEUNIFORM_COLUMN_H;
+
+ action = "[1] call gungame_chooseUniform_fnc_onUniformSelected";
+ };
+ class item2: mcd_RscActivePictureKeepAspect {
+ idc = CHOOSEUNIFORM_IDC_ITEM2;
+ x = CHOOSEUNIFORM_X + CHOOSEUNIFORM_PADDING_W + 2 * CHOOSEUNIFORM_SPACER_W + 2 * CHOOSEUNIFORM_COLUMN_W;
+ y = CHOOSEUNIFORM_Y + CHOOSEUNIFORM_PADDING_H;
+ w = CHOOSEUNIFORM_COLUMN_W;
+ h = CHOOSEUNIFORM_COLUMN_H;
+
+ action = "[2] call gungame_chooseUniform_fnc_onUniformSelected";
+ };
+ class buttonReroll: mcd_RscButton {
+ idc = CHOOSEUNIFORM_IDC_REROLL;
+ x = CHOOSEUNIFORM_X;
+ y = CHOOSEUNIFORM_Y + CHOOSEUNIFORM_TOTAL_H + CHOOSEUNIFORM_TOPBAR_SPACER_H;
+ w = CHOOSEUNIFORM_TOTAL_W / 2 - CHOOSEUNIFORM_SPACER_W / 2;
+ h = CHOOSEUNIFORM_TOPBAR_H;
+ font = "EtelkaMonospacePro";
+ onButtonClick = "_this call gungame_chooseUniform_fnc_onButtonReroll";
+ };
+ class buttonConfirm: mcd_RscButton {
+ idc = CHOOSEUNIFORM_IDC_CONFIRM;
+ x = CHOOSEUNIFORM_X + CHOOSEUNIFORM_TOTAL_W / 2 + CHOOSEUNIFORM_SPACER_W;
+ y = CHOOSEUNIFORM_Y + CHOOSEUNIFORM_TOTAL_H + CHOOSEUNIFORM_TOPBAR_SPACER_H;
+ w = CHOOSEUNIFORM_TOTAL_W / 2 - CHOOSEUNIFORM_SPACER_W / 2;
+ h = CHOOSEUNIFORM_TOPBAR_H;
+ font = "EtelkaMonospacePro";
+ text = "CONFIRM";
+ onButtonClick = "_this call gungame_chooseUniform_fnc_onButtonConfirm";
+ };
+ class countdown: mcd_RscText {
+ idc = CHOOSEUNIFORM_IDC_COUNTDOWN;
+ style = ST_RIGHT;
+ font = "EtelkaMonospacePro";
+
+ x = CHOOSEUNIFORM_X;
+ y = CHOOSEUNIFORM_Y - CHOOSEUNIFORM_TOPBAR_H - CHOOSEUNIFORM_TOPBAR_SPACER_H;
+ w = CHOOSEUNIFORM_TOTAL_W;
+ h = CHOOSEUNIFORM_TOPBAR_H;
+ };
+ };
+};
diff --git a/dialog/dialogs.hpp b/dialog/dialogs.hpp
new file mode 100644
index 0000000..af0ec96
--- /dev/null
+++ b/dialog/dialogs.hpp
@@ -0,0 +1,6 @@
+#include "ui_toolkit.hpp"
+#include "baseDefines.hpp"
+#include "baseRsc.hpp"
+
+#include "chooseUniform\defines.hpp"
+#include "chooseUniform\dialog.hpp"
diff --git a/dialogs/killcam/defines.hpp b/dialog/killcam/defines.hpp
similarity index 100%
rename from dialogs/killcam/defines.hpp
rename to dialog/killcam/defines.hpp
diff --git a/dialogs/killcam/title.hpp b/dialog/killcam/title.hpp
similarity index 100%
rename from dialogs/killcam/title.hpp
rename to dialog/killcam/title.hpp
diff --git a/dialog/rscTitles.hpp b/dialog/rscTitles.hpp
new file mode 100644
index 0000000..f1c8302
--- /dev/null
+++ b/dialog/rscTitles.hpp
@@ -0,0 +1,16 @@
+#include "ui_toolkit.hpp"
+#include "baseDefines.hpp"
+#include "baseRsc.hpp"
+
+#include "votecountdown\title.hpp"
+
+#include "killcam\defines.hpp"
+#include "killcam\title.hpp"
+
+
+// DO NOT CHANGE ORDER --> upgradeWeaponTitle is dependant on scoreboard
+#include "scoreboard\defines.hpp"
+#include "scoreboard\title.hpp"
+
+#include "upgradeWeaponTitle\defines.hpp"
+#include "upgradeWeaponTitle\title.hpp"
diff --git a/dialogs/scoreboard/defines.hpp b/dialog/scoreboard/defines.hpp
similarity index 86%
rename from dialogs/scoreboard/defines.hpp
rename to dialog/scoreboard/defines.hpp
index 236b4f6..f127752 100644
--- a/dialogs/scoreboard/defines.hpp
+++ b/dialog/scoreboard/defines.hpp
@@ -4,15 +4,18 @@
#define SCOREBOARD_ITEM2 7002
#define SCOREBOARD_ITEM3 7003
#define SCOREBOARD_ITEM4 7004
+#define SCOREBOARD_ITEM5 7005
+
#define SCOREBOARD_SCORE1 7011
#define SCOREBOARD_SCORE2 7012
#define SCOREBOARD_SCORE3 7013
#define SCOREBOARD_SCORE4 7014
+#define SCOREBOARD_SCORE5 7015
#define sb_itemW (0.25 * X_SCALE)
#define sb_itemH (0.025 * Y_SCALE)
#define sb_scoreW (sb_itemH * 0.75)
#define sb_totalX (SZ_RIGHT - 0.25)
-#define sb_totalY (0.135 * Y_SCALE)
+#define sb_totalY (0.130 * Y_SCALE)
#define sb_itemSpacingX (0.03 * sb_itemH * X_SCALE)
#define sb_itemSpacingY (0.03 * sb_itemH * Y_SCALE)
diff --git a/dialogs/scoreboard/title.hpp b/dialog/scoreboard/title.hpp
similarity index 84%
rename from dialogs/scoreboard/title.hpp
rename to dialog/scoreboard/title.hpp
index eb0bb93..9d2b8d0 100644
--- a/dialogs/scoreboard/title.hpp
+++ b/dialog/scoreboard/title.hpp
@@ -80,5 +80,17 @@ class ScoreBoard
idc = SCOREBOARD_SCORE4;
y = sb_totalY + ((sb_itemSpacingY + sb_itemH) * 3);
};
+
+ class Item5: ScoreBoardItem
+ {
+ idc = SCOREBOARD_ITEM5;
+ y = sb_totalY + ((sb_itemSpacingY + sb_itemH) * 4);
+ };
+
+ class Score5: ScoreBoardScore
+ {
+ idc = SCOREBOARD_SCORE5;
+ y = sb_totalY + ((sb_itemSpacingY + sb_itemH) * 4);
+ };
};
};
diff --git a/dialogs/ui_toolkit.hpp b/dialog/ui_toolkit.hpp
similarity index 100%
rename from dialogs/ui_toolkit.hpp
rename to dialog/ui_toolkit.hpp
diff --git a/dialogs/upgradeWeaponTitle/defines.hpp b/dialog/upgradeWeaponTitle/defines.hpp
similarity index 80%
rename from dialogs/upgradeWeaponTitle/defines.hpp
rename to dialog/upgradeWeaponTitle/defines.hpp
index ac6e1ed..940a71a 100644
--- a/dialogs/upgradeWeaponTitle/defines.hpp
+++ b/dialog/upgradeWeaponTitle/defines.hpp
@@ -4,9 +4,11 @@
#define UPGRADEWEAPON_PIC 6002
#define UPGRADEWEAPON_TEXT 6003
-#define uw_x (SZ_RIGHT - 0.442)
-#define uw_y (SZ_TOP + 0.33)
#define uw_w (0.30 * X_SCALE)
#define uw_h (uw_w * 0.75)
+
#define uw_paddingX (uw_w * 0.1)
#define uw_paddingY (uw_h * 0.1)
+
+#define uw_x (SZ_RIGHT - uw_w)
+#define uw_y (sb_totalY - uw_h - sb_itemSpacingY)
diff --git a/dialogs/upgradeWeaponTitle/title.hpp b/dialog/upgradeWeaponTitle/title.hpp
similarity index 87%
rename from dialogs/upgradeWeaponTitle/title.hpp
rename to dialog/upgradeWeaponTitle/title.hpp
index 06348ed..6099c57 100644
--- a/dialogs/upgradeWeaponTitle/title.hpp
+++ b/dialog/upgradeWeaponTitle/title.hpp
@@ -6,7 +6,7 @@ class upgradeWeaponTitle
enableSimulation = 1;
enableDisplay = 1;
- onload = "disableSerialization; _this call mcd_fnc_upgradeWeaponTitle;";
+ onload = "disableSerialization; _this call gungame_events_fnc_upgradeWeaponTitleOnLoad;";
class ControlsBackground
{
diff --git a/dialogs/votecountdown/title.hpp b/dialog/votecountdown/title.hpp
similarity index 89%
rename from dialogs/votecountdown/title.hpp
rename to dialog/votecountdown/title.hpp
index 28d1952..5d1fac3 100644
--- a/dialogs/votecountdown/title.hpp
+++ b/dialog/votecountdown/title.hpp
@@ -5,7 +5,7 @@ class voteCountdownTitle
enableSimulation = 1;
enableDisplay = 1;
- onLoad = "disableSerialization; _this call mcd_fnc_voteDialogText;";
+ onLoad = "disableSerialization; _this call gungame_votePlayzone_fnc_setVoteDialogText;";
class ControlsBackground
{
diff --git a/dialogs/baseRsc.hpp b/dialogs/baseRsc.hpp
deleted file mode 100644
index 80f754a..0000000
--- a/dialogs/baseRsc.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-class mcd_IGUIBack
-{
- 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 mcd_RscText
-{
- 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 = "PuristaMedium";
- SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- linespacing = 1;
-};
-
-class mcd_RscMapText: mcd_RscText
-{
- idc = -1;
- type = CT_STATIC;
- style = ST_LEFT;
- font = "PuristaLight";
- sizeEx = 0.04;
- colorBackground[] = { 0,0,0, 0.8 };
- text = "";
- w = 0.52 * 3/4;
- h = 0.05;
- duration = 1e+1000;
-};
-
-class mcd_RscMapTextSmall: mcd_RscText
-{
- idc = -1;
- type = CT_STATIC;
- style = ST_LEFT;
- shadow = 2;
- font = "PuristaLight";
- sizeEx = 0.04;
- colorBackground[] = { 0,0,0, 0.8 };
- text = "";
- w = 0.52 * 3/4;
- h = 0.05;
- duration = 1e+1000;
-};
-
-class mcd_RscPicture
-{
- shadow = 0;
- type = 0;
- style = 48;
- sizeEx = 0.023;
- font = "PuristaMedium";
- colorBackground[] = {};
- colorText[] = {};
- x = 0;
- y = 0;
- w = 0.2;
- h = 0.15;
- tooltipColorText[] = {1,1,1,1};
- tooltipColorBox[] = {1,1,1,1};
- tooltipColorShade[] = {0,0,0,0.65};
-};
diff --git a/dialogs/cfgDialogs.hpp b/dialogs/cfgDialogs.hpp
deleted file mode 100644
index 79df51b..0000000
--- a/dialogs/cfgDialogs.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "ui_toolkit.hpp"
-#include "baseDefines.hpp"
-#include "baseRsc.hpp"
-
-class RscTitles {
- #include "killcam\defines.hpp"
- #include "killcam\title.hpp"
-
- #include "scoreboard\defines.hpp"
- #include "scoreboard\title.hpp"
-
- #include "upgradeWeaponTitle\defines.hpp"
- #include "upgradeWeaponTitle\title.hpp"
-
- #include "votecountdown\title.hpp"
-};
diff --git a/functions/cfgFunctions.hpp b/functions/cfgFunctions.hpp
deleted file mode 100644
index bf5004c..0000000
--- a/functions/cfgFunctions.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-class mcd {
- class common {
- file = functions;
- class addGear {};
- class addKilledEH {};
- class compileForGRADScoreboard {};
- class endingCeremony {};
- class endMission {};
- class findGreatestNum {};
- class findGroupPosition {};
- class findSoloPosition {};
- class findStringInArray {};
- class formattedHint {};
- class formattedLog {};
- class hideCamper {};
- class randomizeArrays {};
- class receiveVote {};
- class scoreBoard {};
- class setScore {};
- class showCamper {};
- class showGRADScoreboard {};
- class skipVote {};
- class strToVar {};
- class teleport {};
- class updateLeaderboard {};
- class updateVotesMarker {};
- class upgradeWeapon {};
- class upgradeWeaponTitle {};
- class weaponCleanup {};
- };
-};
-
-class KK {
- class common {
- file = functions;
- class fileExists {};
- };
-};
diff --git a/functions/chatCommands/cfgFunctions.hpp b/functions/chatCommands/cfgFunctions.hpp
new file mode 100644
index 0000000..41b30e2
--- /dev/null
+++ b/functions/chatCommands/cfgFunctions.hpp
@@ -0,0 +1,7 @@
+class gungame_chatCommands {
+ class chatCommands {
+ class addChatCommands {preInit = 1;};
+ class fixMag {};
+ class fixWeapon {};
+ };
+};
diff --git a/functions/chatCommands/component.hpp b/functions/chatCommands/component.hpp
new file mode 100644
index 0000000..a1a3f02
--- /dev/null
+++ b/functions/chatCommands/component.hpp
@@ -0,0 +1,2 @@
+#define COMPONENT chatCommands
+#include "..\component.hpp"
diff --git a/functions/chatCommands/fn_addChatCommands.sqf b/functions/chatCommands/fn_addChatCommands.sqf
new file mode 100644
index 0000000..dc29ba7
--- /dev/null
+++ b/functions/chatCommands/fn_addChatCommands.sqf
@@ -0,0 +1,32 @@
+#include "component.hpp"
+
+
+
+["gungame", {
+ params [["_command",""]];
+
+ _command = toLower _command;
+ playSound "click";
+
+ private _fnc_help = {
+ systemChat "List of commands:";
+ systemChat "#gungame fixWeapon - for problems with your weapon";
+ /* systemChat "#gungame fixMag - for problems with your magazine"; */
+ };
+
+ diag_log _command;
+
+ switch (_command) do {
+ case (""): _fnc_help;
+ case ("help"): _fnc_help;
+ case ("fixweapon"): {[] call FUNC(fixWeapon)};
+ /* case ("fixmag"): {[] call FUNC(fixMag)}; */
+ /* case ("fixmagazine"): {[] call FUNC(fixMag)}; */
+ };
+
+
+},"all"] call CBA_fnc_registerChatCommand;
+
+["blacklistUtility", {
+ [] call EFUNC(selectWeapons,blacklistUtility);
+},"admin"] call CBA_fnc_registerChatCommand;
diff --git a/functions/chatCommands/fn_fixMag.sqf b/functions/chatCommands/fn_fixMag.sqf
new file mode 100644
index 0000000..12c18ca
--- /dev/null
+++ b/functions/chatCommands/fn_fixMag.sqf
@@ -0,0 +1,49 @@
+#include "component.hpp"
+
+if !(missionNamespace getVariable [QEGVAR(missionSetup,gameStarted),false]) exitWith {
+ systemChat "Command 'fixMag' unavailable until game has started.";
+};
+
+private _isPrimaryWeapon = true;
+private _weapon = primaryWeapon player;
+if (_weapon == "") then {
+ _weapon = handgunWeapon player;
+ _isPrimaryWeapon = false;
+};
+
+private _oldMags = magazines player;
+
+// remove old mags
+{player removeMagazine _x} forEach _oldMags;
+player removePrimaryWeaponItem ((primaryWeaponMagazine player) param [0,""]);
+player removeHandgunItem ((handgunMagazine player) param [0,""]);
+
+// remove duplicates for logging
+_oldMags = _oldMags arrayIntersect _oldMags;
+
+// message
+[[profileName,_oldMags],{
+ params ["_name","_oldMags"];
+ systemChat format ["%1 now using replacement for broken magazines %2.",_name,_oldMags];
+ playSound "addItemFailed"
+}] remoteExec ["call",0,false];
+
+// log
+[[profileName,_oldMags],{
+ params ["_name","_oldMags"];
+ INFO_2("%1 now using replacement for broken magazines %2.",_name,_oldMags);
+}] remoteExec ["call",2,false];
+
+private _newMag = ([configfile >> "CfgWeapons" >> _weapon,"magazines",[]] call BIS_fnc_returnConfigEntry) param [0,""];
+if (_newMag == "") exitWith {
+ systemChat "No default magazine found. Please use '#gungame fixWeapon' instead.";
+ playSound "addItemFailed";
+};
+
+player addMagazine _newMag;
+player addMagazines [_newMag, 6];
+if (_isPrimaryWeapon) then {
+ player addPrimaryWeaponItem _newMag;
+} else {
+ player addHandgunItem _newMag;
+};
diff --git a/functions/chatCommands/fn_fixWeapon.sqf b/functions/chatCommands/fn_fixWeapon.sqf
new file mode 100644
index 0000000..99d2b80
--- /dev/null
+++ b/functions/chatCommands/fn_fixWeapon.sqf
@@ -0,0 +1,32 @@
+#include "component.hpp"
+
+if !(missionNamespace getVariable [QEGVAR(missionSetup,gameStarted),false]) exitWith {
+ systemChat "Command 'fixWeapon' unavailable until game has started.";
+};
+
+private _oldWeapon = primaryWeapon player;
+if (_oldWeapon == "") then {
+ _oldWeapon = handgunWeapon player;
+};
+
+// message
+[[profileName,_oldWeapon],{
+ params ["_name","_oldWeapon"];
+ systemChat format ["%1 now using replacement for broken weapon %2.",_name,_oldWeapon];
+ playSound "addItemFailed"
+}] remoteExec ["call",0,false];
+
+// log
+[[profileName,_oldWeapon],{
+ params ["_name","_oldWeapon"];
+ INFO_2("%1 now using replacement for broken weapon %2.",_name,_oldWeapon);
+}] remoteExec ["call",2,false];
+
+//remove old weapon and magazines
+{player removeWeapon _x} forEach weapons player;
+{player removeMagazine _x} forEach magazines player;
+
+//add weapon and attachments
+player addMagazine "30Rnd_9x21_Mag";
+player addWeapon "SMG_02_F";
+player addMagazines ["30Rnd_9x21_Mag",6];
diff --git a/functions/chooseUniform/cfgFunctions.hpp b/functions/chooseUniform/cfgFunctions.hpp
new file mode 100644
index 0000000..e2daef4
--- /dev/null
+++ b/functions/chooseUniform/cfgFunctions.hpp
@@ -0,0 +1,12 @@
+class gungame_chooseUniform {
+ class chooseUniform {
+ class createChooseUniformDialog {};
+ class getAllAvailableUniforms {};
+ class hasUniformDLC {};
+ class onButtonConfirm {};
+ class onButtonReroll {};
+ class onUniformSelected {};
+ class onUnload {};
+ class reroll {};
+ };
+};
diff --git a/functions/chooseUniform/component.hpp b/functions/chooseUniform/component.hpp
new file mode 100644
index 0000000..3189b1c
--- /dev/null
+++ b/functions/chooseUniform/component.hpp
@@ -0,0 +1,2 @@
+#define COMPONENT chooseUniform
+#include "..\component.hpp"
diff --git a/functions/chooseUniform/fn_createChooseUniformDialog.sqf b/functions/chooseUniform/fn_createChooseUniformDialog.sqf
new file mode 100644
index 0000000..c280fa9
--- /dev/null
+++ b/functions/chooseUniform/fn_createChooseUniformDialog.sqf
@@ -0,0 +1,41 @@
+#include "component.hpp"
+#include "..\..\dialog\chooseUniform\defines.hpp"
+
+params [["_timeout",9999]];
+
+disableSerialization;
+
+createDialog "gungame_rscChooseUniform";
+private _display = findDisplay CHOOSEUNIFORM_IDD_DIALOG;
+
+GVAR(escEH) = _display displayAddEventHandler ["KeyDown",{_this#1 == 1}];
+
+private _ctrlButtonReroll = _display displayCtrl CHOOSEUNIFORM_IDC_REROLL;
+_ctrlButtonReroll ctrlSetText "REROLL (0/2)";
+
+private _ctrlButtonConfirm = _display displayCtrl CHOOSEUNIFORM_IDC_CONFIRM;
+_ctrlButtonConfirm ctrlEnable false;
+
+[_display] call FUNC(reroll);
+
+private _ctrlCountdown = _display displayCtrl CHOOSEUNIFORM_IDC_COUNTDOWN;
+[{
+ params ["_args","_handle"];
+ _args params ["_timeout","_display","_ctrlCountdown"];
+
+ if (isNull _display) exitWith {[_handle] call CBA_fnc_removePerFrameHandler};
+
+ private _timeout = _timeout - 1;
+ _ctrlCountdown ctrlSetText str _timeout;
+ if (_timeout <= 0) exitWith {
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ _display closeDisplay 2;
+ ["gungame_notification1",["GUNGAME","Timed out. Uniform chosen randomly."]] call bis_fnc_showNotification;
+ };
+ _args set [0,_timeout];
+
+ if (_timeout <= 5) then {
+ playSound "addTime";
+ _ctrlCountdown ctrlSetTextColor [0.8,0,0,1];
+ };
+},1,[_timeout,_display,_ctrlCountdown]] call CBA_fnc_addPerFrameHandler;
diff --git a/functions/chooseUniform/fn_getAllAvailableUniforms.sqf b/functions/chooseUniform/fn_getAllAvailableUniforms.sqf
new file mode 100644
index 0000000..e66aa7f
--- /dev/null
+++ b/functions/chooseUniform/fn_getAllAvailableUniforms.sqf
@@ -0,0 +1,17 @@
+#include "component.hpp"
+
+private _allCfgWeapons = "(getNumber (_x >> 'scope')) == 2" configClasses (configFile >> "cfgWeapons");
+private _allAvailableUniforms = [];
+
+{
+ if (
+ _x isKindOf ["Uniform_Base",configFile >> "cfgWeapons"] &&
+ // filter LOP, because they have no preview pictures -,-
+ {(_x find "LOP") != 0} &&
+ {[_x] call FUNC(hasUniformDLC)}
+ ) then {
+ _allAvailableUniforms pushBack _x
+ };
+} forEach (_allCfgWeapons apply {configName _x});
+
+_allAvailableUniforms
diff --git a/functions/chooseUniform/fn_hasUniformDLC.sqf b/functions/chooseUniform/fn_hasUniformDLC.sqf
new file mode 100644
index 0000000..28db2ef
--- /dev/null
+++ b/functions/chooseUniform/fn_hasUniformDLC.sqf
@@ -0,0 +1,15 @@
+#include "component.hpp"
+#define NOT_OWNED_DLCS 2
+
+params [["_uniformClass",""]];
+
+private _addons = configsourceaddonlist (configfile >> "CfgWeapons" >> _uniformClass); // e.g.: ["A3_Characters_F_Enoch"]
+if (count _addons == 0) exitWith {true};
+
+private _dlcs = configsourcemodlist (configfile >> "CfgPatches" >> (_addons param [0,""]));
+if (count _dlcs == 0) exitWith {true};
+
+private _appID = [configfile >> "cfgMods" >> (_dlcs param [0,""]),"appId",-1] call BIS_fnc_returnConfigEntry;
+if (_appID < 0) exitWith {true};
+
+!(_appID in (getDLCs NOT_OWNED_DLCS))
diff --git a/functions/chooseUniform/fn_onButtonConfirm.sqf b/functions/chooseUniform/fn_onButtonConfirm.sqf
new file mode 100644
index 0000000..363533d
--- /dev/null
+++ b/functions/chooseUniform/fn_onButtonConfirm.sqf
@@ -0,0 +1,7 @@
+#include "component.hpp"
+#include "..\..\dialog\chooseUniform\defines.hpp"
+
+private _display = findDisplay CHOOSEUNIFORM_IDD_DIALOG;
+if (isNull _display) exitWith {};
+
+_display closeDisplay 1;
diff --git a/functions/chooseUniform/fn_onButtonReroll.sqf b/functions/chooseUniform/fn_onButtonReroll.sqf
new file mode 100644
index 0000000..c832f8a
--- /dev/null
+++ b/functions/chooseUniform/fn_onButtonReroll.sqf
@@ -0,0 +1,19 @@
+#include "component.hpp"
+#include "..\..\dialog\chooseUniform\defines.hpp"
+
+private _display = findDisplay CHOOSEUNIFORM_IDD_DIALOG;
+if (isNull _display) exitWith {};
+
+private _ctrlButtonReroll = _display displayCtrl CHOOSEUNIFORM_IDC_REROLL;
+if (isNull _ctrlButtonReroll) exitWith {};
+
+private _rerolls = (_ctrlButtonReroll getVariable [QGVAR(rerolls),0]) + 1;
+_ctrlButtonReroll setVariable [QGVAR(rerolls),_rerolls];
+_ctrlButtonReroll ctrlSetText format ["REROLL (%1/2)",_rerolls];
+
+[_display] call FUNC(reroll);
+[-1] call FUNC(onUniformSelected);
+
+if (_rerolls == 2) then {
+ _ctrlButtonReroll ctrlEnable false;
+};
diff --git a/functions/chooseUniform/fn_onUniformSelected.sqf b/functions/chooseUniform/fn_onUniformSelected.sqf
new file mode 100644
index 0000000..f676010
--- /dev/null
+++ b/functions/chooseUniform/fn_onUniformSelected.sqf
@@ -0,0 +1,25 @@
+#include "component.hpp"
+#include "..\..\dialog\chooseUniform\defines.hpp"
+
+params ["_uniformID"];
+
+private _display = findDisplay CHOOSEUNIFORM_IDD_DIALOG;
+if (isNull _display) exitWith {};
+
+GVAR(uniformSelected) = "";
+private _alpha = 0;
+{
+ _ctrlUniform = _display displayCtrl _x;
+
+ if (_forEachIndex == _uniformID) then {
+ GVAR(uniformSelected) = _ctrlUniform getVariable [QGVAR(uniformClass),""];
+ _alpha = 1;
+ playSound "soundClick";
+ } else {
+ _alpha = 0.5;
+ };
+ _ctrlUniform ctrlSetTextColor [1,1,1,_alpha];
+} forEach [CHOOSEUNIFORM_IDC_ITEM0,CHOOSEUNIFORM_IDC_ITEM1,CHOOSEUNIFORM_IDC_ITEM2];
+
+private _ctrlButtonConfirm = _display displayCtrl CHOOSEUNIFORM_IDC_CONFIRM;
+_ctrlButtonConfirm ctrlEnable (_uniformID >= 0);
diff --git a/functions/chooseUniform/fn_onUnload.sqf b/functions/chooseUniform/fn_onUnload.sqf
new file mode 100644
index 0000000..1e8fa09
--- /dev/null
+++ b/functions/chooseUniform/fn_onUnload.sqf
@@ -0,0 +1,14 @@
+#include "component.hpp"
+
+if (isNil QGVAR(uniformSelected) || {GVAR(uniformSelected) == ""}) then {
+ if (isNil QGVAR(allAvailableUniforms)) then {
+ GVAR(allAvailableUniforms) = [] call FUNC(getAllAvailableUniforms);
+ };
+ GVAR(uniformSelected) = selectRandom GVAR(allAvailableUniforms);
+};
+
+player setVariable [QEGVAR(missionSetup,playerUniform),GVAR(uniformSelected),true];
+player setVariable [QGVAR(uniformChosen),true,true];
+
+GVAR(uniformSelected) = nil;
+GVAR(allAvailableUniforms) = nil;
diff --git a/functions/chooseUniform/fn_reroll.sqf b/functions/chooseUniform/fn_reroll.sqf
new file mode 100644
index 0000000..1485bf0
--- /dev/null
+++ b/functions/chooseUniform/fn_reroll.sqf
@@ -0,0 +1,21 @@
+#include "component.hpp"
+#include "..\..\dialog\chooseUniform\defines.hpp"
+
+params ["_display"];
+
+if (isNil "_display") then {
+ _display = findDisplay CHOOSEUNIFORM_IDD_DIALOG;
+};
+
+if (isNull _display) exitWith {};
+
+if (isNil QGVAR(allAvailableUniforms)) then {
+ GVAR(allAvailableUniforms) = [] call FUNC(getAllAvailableUniforms);
+};
+
+for "_i" from 0 to 2 do {
+ private _ctrlUniform = _display displayCtrl (CHOOSEUNIFORM_IDC_ITEM0 + _i);
+ private _randomUniform = selectRandom GVAR(allAvailableUniforms);
+ _ctrlUniform ctrlSetText ([_randomUniform] call EFUNC(common,getPicturePath));
+ _ctrlUniform setVariable [QGVAR(uniformClass),_randomUniform];
+};
diff --git a/functions/common/cfgFunctions.hpp b/functions/common/cfgFunctions.hpp
new file mode 100644
index 0000000..bfefeef
--- /dev/null
+++ b/functions/common/cfgFunctions.hpp
@@ -0,0 +1,16 @@
+class gungame_common {
+ class common {
+ class compileForGRADScoreboard {};
+ class findMax {};
+ class findStringInArray {};
+ class getPicturePath {};
+ class randomizeArrays {};
+ class randomPos {};
+ class showCamper {};
+ class showGRADScoreboard {};
+ class teamMates {};
+ class teleport {};
+ class updateLeaderboard {};
+ class weaponCleanup {};
+ };
+};
diff --git a/functions/common/component.hpp b/functions/common/component.hpp
new file mode 100644
index 0000000..678add4
--- /dev/null
+++ b/functions/common/component.hpp
@@ -0,0 +1,2 @@
+#define COMPONENT common
+#include "..\component.hpp"
diff --git a/functions/common/fn_compileForGRADScoreboard.sqf b/functions/common/fn_compileForGRADScoreboard.sqf
new file mode 100644
index 0000000..bfb2c70
--- /dev/null
+++ b/functions/common/fn_compileForGRADScoreboard.sqf
@@ -0,0 +1,14 @@
+#include "component.hpp"
+
+params ["_stats"];
+
+private _compiledStats = [["NAME","K/D","GAMES","POINTS"]];
+{
+ _x params [["_points",0],["_UID",""],["_name",""],["_playerStats",[]]];
+ _playerStats params [["_kills",0],["_deaths",0],["_games",0]];
+
+ _kd = (round ((_kills/(_deaths max 1))*100))/100;
+ _compiledStats pushBack [_name,_kd,_games,round _points];
+} forEach _stats;
+
+_compiledStats
diff --git a/functions/common/fn_findMax.sqf b/functions/common/fn_findMax.sqf
new file mode 100644
index 0000000..d43e1df
--- /dev/null
+++ b/functions/common/fn_findMax.sqf
@@ -0,0 +1,28 @@
+/* Finds greatest number in array
+*
+* Params:
+* 0: Array
+*
+* Returns:
+* index of greatest element
+* -1 if no single greatest element found
+*/
+
+params ["_array"];
+
+private _max = -999999;
+private _maxID = -1;
+for [{_i=0}, {_i<(count _array)}, {_i=_i+1}] do {
+ _element = _array select _i;
+ if (typeName _element == "SCALAR") then {
+ if (_element == _max) then {
+ _maxID = -1;
+ };
+ if (_element > _max) then {
+ _max = _element;
+ _maxID = _i;
+ };
+ };
+};
+
+_maxID
diff --git a/functions/common/fn_findStringInArray.sqf b/functions/common/fn_findStringInArray.sqf
new file mode 100644
index 0000000..a2fb824
--- /dev/null
+++ b/functions/common/fn_findStringInArray.sqf
@@ -0,0 +1,21 @@
+params ["_array", "_string", ["_searchIndex", 0]];
+
+private _ID = -1;
+{
+ _currentIndex = _forEachIndex;
+ if (_x isEqualType []) then {
+ _item = _x select _searchIndex;
+
+ if (_item isEqualType "") then {
+ if (_item == _string) then {_ID = _currentIndex};
+ };
+
+ if (_item isEqualType []) then {
+ {
+ if (_x == _string) then {_ID = _currentIndex};
+ } forEach _item;
+ };
+ };
+} forEach _array;
+
+_ID
diff --git a/functions/common/fn_getPicturePath.sqf b/functions/common/fn_getPicturePath.sqf
new file mode 100644
index 0000000..9daa652
--- /dev/null
+++ b/functions/common/fn_getPicturePath.sqf
@@ -0,0 +1,10 @@
+#include "component.hpp"
+
+params ["_className"];
+
+private _picturePath = getText (configFile >> "CfgWeapons" >> _className >> "picture");
+if (_picturePath == "") then {
+ _picturePath = getText (configFile >> "CfgWeapons" >> _className >> "uipicture");
+};
+
+_picturePath
diff --git a/functions/common/fn_randomPos.sqf b/functions/common/fn_randomPos.sqf
new file mode 100644
index 0000000..b18a8f4
--- /dev/null
+++ b/functions/common/fn_randomPos.sqf
@@ -0,0 +1,7 @@
+#include "component.hpp"
+
+params [["_searchCenter",[0,0,0]],["_radii",[0,1000]],["_angles",[0,360]]];
+
+private _returnPos = _searchCenter getPos [_radii call BIS_fnc_randomNum,_angles call BIS_fnc_randomNum];
+
+_returnPos
diff --git a/functions/fn_randomizeArrays.sqf b/functions/common/fn_randomizeArrays.sqf
similarity index 98%
rename from functions/fn_randomizeArrays.sqf
rename to functions/common/fn_randomizeArrays.sqf
index a6c9a04..aac8ead 100644
--- a/functions/fn_randomizeArrays.sqf
+++ b/functions/common/fn_randomizeArrays.sqf
@@ -4,8 +4,6 @@
if (count (_this select 0) <= 1) exitWith {};
-diag_log str _this;
-
//check if all arrays have same number of elements
_numberOfElements = count (_this select 0);
_theyAreTheSameBrah = true;
diff --git a/functions/common/fn_showCamper.sqf b/functions/common/fn_showCamper.sqf
new file mode 100644
index 0000000..f1eb571
--- /dev/null
+++ b/functions/common/fn_showCamper.sqf
@@ -0,0 +1,22 @@
+#include "component.hpp"
+
+if (!hasInterface) exitWith {};
+
+params [["_camper",objNull],["_camperName","???"]];
+
+if (isNull _camper || !alive _camper) exitWith {};
+if (player isEqualTo _camper) exitWith {};
+
+["gungame_notification1",["GUNGAME",format ["%1 is camping! Kill him!",_camperName]]] spawn bis_fnc_showNotification;
+
+
+[{
+ params ["_args","_handle"];
+ _args params ["_camper","_camperName"];
+
+ if (!(alive _camper) || !(_camper getVariable [QEGVAR(missionSetup,isCamping),false])) exitWith {
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ };
+
+ drawIcon3D ["a3\ui_f\data\gui\Rsc\RscDisplayIntel\azimuth_ca.paa", [1,1,1,1], (getPosATL _camper) vectorAdd [0,0,1], 1, 1, 45, format ["%1 (%2m)", name _camper, round (player distance _camper)], 1, 0.04, "PuristaMedium"];
+},0,[_camper,_camperName]] call CBA_fnc_addPerFrameHandler;
diff --git a/functions/common/fn_showGRADScoreboard.sqf b/functions/common/fn_showGRADScoreboard.sqf
new file mode 100644
index 0000000..845dd54
--- /dev/null
+++ b/functions/common/fn_showGRADScoreboard.sqf
@@ -0,0 +1,16 @@
+#include "component.hpp"
+
+params ["_serverStats"];
+
+private _kills = player getVariable [QEGVAR(missionSetup,kills), 0];
+private _deaths = player getVariable [QEGVAR(missionSetup,deaths), 0];
+private _kd = (_kills max 1) / (_deaths max 1);
+private _longestKill = (round ((player getVariable [QEGVAR(missionSetup,longestKill), 0])*10)) / 10;
+private _distanceMoved = round (player getVariable [QEGVAR(missionSetup,totalDistance), 0]);
+
+private _myStats = [
+ ["KILLS","DEATHS","K/D","LONGEST KILL","DISTANCE MOVED"],
+ [_kills,_deaths,(round (_kd*100))/100,format ["%1m",round _longestKill],format ["%1m",_distanceMoved]]
+];
+
+[20,_serverStats,"GAME OF GUNS LEADERBOARD",false,false,_myStats,"MY STATS THIS GAME",false,false] call grad_scoreboard_fnc_loadScoreboard;
diff --git a/functions/common/fn_teamMates.sqf b/functions/common/fn_teamMates.sqf
new file mode 100644
index 0000000..09fc669
--- /dev/null
+++ b/functions/common/fn_teamMates.sqf
@@ -0,0 +1,10 @@
+#include "component.hpp"
+
+params [["_unit",objNull]];
+
+private _teamNamespace = _unit getVariable [QEGVAR(missionSetup,teamNamespace),objNull];
+private _teamMateUIDs = _teamNamespace getVariable [QEGVAR(missionSetup,teamMateUIDs),[]];
+
+private _teamMates = _teamMateUIDs apply {[_x] call BIS_fnc_getUnitByUid};
+
+_teamMates
diff --git a/functions/common/fn_teleport.sqf b/functions/common/fn_teleport.sqf
new file mode 100644
index 0000000..8e76b45
--- /dev/null
+++ b/functions/common/fn_teleport.sqf
@@ -0,0 +1,26 @@
+/* Teleports unit
+*
+* Params:
+* 0: unit
+* 1: destination
+*/
+
+params [["_unit",player],["_pos", [0,0,0]],["_onTPStart",{}],["_onTPEnd",{}],["_codeParams",[]],["_fade",true]];
+
+if (!local _unit) exitWith {};
+if (!alive _unit) exitWith {};
+
+if (_fade && ACE_player == _unit) then {
+ titleCut ["","BLACK OUT",0.01];
+ titleCut ["","BLACK IN",1.5];
+};
+
+_codeParams call _onTPStart;
+
+_unit allowDamage false;
+_unit setPos _pos;
+[{
+ params ["_unit","_onTPEnd","_codeParams"];
+ _unit allowDamage true;
+ _codeParams call _onTPEnd;
+}, [_unit,_onTPEnd,_codeParams], 2] call CBA_fnc_waitAndExecute;
diff --git a/functions/fn_updateLeaderboard.sqf b/functions/common/fn_updateLeaderboard.sqf
similarity index 65%
rename from functions/fn_updateLeaderboard.sqf
rename to functions/common/fn_updateLeaderboard.sqf
index 5aaa681..6bb1feb 100644
--- a/functions/fn_updateLeaderboard.sqf
+++ b/functions/common/fn_updateLeaderboard.sqf
@@ -1,13 +1,17 @@
-_stats = profileNameSpace getVariable "mcd_gameofguns_stats";
-if (isNil "_stats") exitWith {"ERROR: STATS NOT FOUND IN SERVER PROFILENAMESPACE."};
+#include "component.hpp"
+private _stats = EGVAR(missionSetup,statsArray);
+private _allPlayerUIDs = EGVAR(missionSetup,allPlayerUIDs);
+private _allPlayingPlayers = allPlayers select {_x getVariable [QGVAR(isPlaying),false]};
+private _allPlayingPlayersScores = _allPlayingPlayers apply {[_x getVariable [QGVAR(currentScore),0],_x]};
+_allPlayingPlayersScores sort false;
//UPDATE STATS =================================================================
{
_playerUID = _x;
- _ID = [_stats, _playerUID, 1] call mcd_fnc_findStringInArray;
+ _ID = [_stats, _playerUID, 1] call FUNC(findStringInArray);
if (_ID == -1) then {
- diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND PLAYER %1 DURING UPDATE.", name _x];
+ diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND PLAYER WITH UID %1 DURING UPDATE.", _x];
} else {
_playerArray = _stats select _ID;
_playerStats = _playerArray select 3;
@@ -23,12 +27,12 @@ if (isNil "_stats") exitWith {"ERROR: STATS NOT FOUND IN SERVER PROFILENAMESPACE
//kills
_oldKills = _playerStats select 0;
- _playerStats set [0, _oldKills + (_playerUnit getVariable ["kills",0])];
+ _playerStats set [0, _oldKills + (_playerUnit getVariable [QEGVAR(missionSetup,kills),0])];
diag_log format ["updateLeaderboard.sqf - Player %1 scored %2 kills this game.", name _playerUnit, _playerUnit getVariable ["kills",0]];
//deaths
_oldDeaths = _playerStats select 1;
- _playerStats set [1, _oldDeaths + (_playerUnit getVariable ["deaths", 0])];
+ _playerStats set [1, _oldDeaths + (_playerUnit getVariable [QEGVAR(missionSetup,deaths), 0])];
diag_log format ["updateLeaderboard.sqf - Player %1 died %2 times this game.", name _playerUnit, _playerUnit getVariable ["deaths", 0]];
//games
@@ -36,7 +40,7 @@ if (isNil "_stats") exitWith {"ERROR: STATS NOT FOUND IN SERVER PROFILENAMESPACE
_playerStats set [2, _oldGames + 1];
diag_log format ["updateLeaderboard.sqf - Player %1 now has a total of %2 games.", name _playerUnit, _playerStats select 3];
};
-} forEach ALLPLAYERUIDS;
+} forEach _allPlayerUIDs;
diag_log "updateLeaderboard.sqf - Stats have been updated. Here is the new array:";
diag_log "NAME, KILLS, DEATHS, GAMES ===========================================";
@@ -47,56 +51,40 @@ diag_log "======================================================================
//UPDATE POINTS ================================================================
-//CURRENTRANKING: [score, group displayname, groupname, [groupmemberUID, groupmemberUID, ...]]
-
-//get average elo of all teams
-_eloArray = [];
-_memberPoints = 100;
-{
- _groupArray = _x;
- _groupMemberUIDs = _groupArray select 3;
- _totalPoints = 0;
- {
- _memberUID = _x;
- _pointsID = [_stats, _memberUID, 1] call mcd_fnc_findStringInArray;
- if (_pointsID == -1) then {
- diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND %1 POINTS.", _memberUID];
- _memberPoints = 100;
- } else {
- _memberPoints = (_stats select _pointsID) select 0;
- diag_log format ["updateLeaderboard.sqf - Group %1: Player %2 currently has %3 points.", _groupArray select 0, _memberUID, _memberPoints];
- };
- _totalPoints = _totalPoints + _memberPoints;
- } forEach _groupMemberUIDs;
-
- _averagePoints = _totalPoints / (count _groupMemberUIDs);
- _eloArray pushBack _averagePoints;
-
- diag_log format ["updateLeaderboard.sqf - Team %1 has an average of %2 points.", _groupArray select 1, _averagePoints];
-} forEach CURRENTRANKING;
-
//update elo for all players
{
_playerUID = _x;
_playerUnit = [_playerUID] call BIS_fnc_getUnitByUID;
_playerEloGain = 0;
- _playerEloIndex = [_stats, _playerUID, 1] call mcd_fnc_findStringInArray;
+ _playerEloIndex = [_stats,_playerUID,1] call FUNC(findStringInArray);
if (_playerEloIndex == -1) exitWith {diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND %1 POINTS.", name _playerUnit]};
_playerStats = _stats select _playerEloIndex;
_playerElo = _playerStats select 0;
- _rankIndex = [CURRENTRANKING, _playerUID, 3] call mcd_fnc_findStringInArray;
+ _rankIndex = -1;
+ {
+ _x params ["_score","_unit"];
+
+ if (_playerUnit == _unit) exitWith {
+ _rankIndex = _forEachIndex;
+ };
+ } forEach _allPlayingPlayersScores;
+
if (_rankIndex == -1) exitWith {diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND %1 IN CURRENTRANKING.", name _playerUnit]};
//negative points
for [{_i=0}, {_i<_rankIndex}, {_i=_i+1}] do {
- _otherPlayerElo = _eloArray select _i;
+ _unit = (_allPlayingPlayersScores param [_i,[]]) param [1,objNull];
+ _pointsID = [_stats,getPlayerUID _unit,1] call FUNC(findStringInArray);
+ _otherPlayerElo = (_stats param [_pointsID,[100]]) select 0;
_playerEloGain = _playerEloGain - ((_playerElo/_otherPlayerElo)*1.25);
};
//positive points
- for [{_i=_rankIndex+1}, {_i<(count _eloArray)}, {_i=_i+1}] do {
- _otherPlayerElo = _eloArray select _i;
+ for [{_i=_rankIndex+1}, {_i<(count _allPlayingPlayersScores)}, {_i=_i+1}] do {
+ _unit = (_allPlayingPlayersScores param [_i,[]]) param [1,objNull];
+ _pointsID = [_stats,getPlayerUID _unit,1] call FUNC(findStringInArray);
+ _otherPlayerElo = (_stats param [_pointsID,[100]]) select 0;
_playerEloGain = _playerEloGain + (_otherPlayerElo/_playerElo);
};
@@ -106,14 +94,14 @@ _memberPoints = 100;
diag_log format ["updateLeaderboard.sqf - Player %1 gained %2 points this game for a new total of %3.", name _playerUnit, _playerEloGain, _playerElo + _playerEloGain];
_playerUnit setVariable ["eloThisGame", _playerEloGain, true];
_playerStats set [0, (_playerElo + _playerEloGain) max 0];
-} forEach ALLPLAYERUIDS;
+} forEach _allPlayerUIDs;
//SORT =========================================================================
-_allAbove = [];
-_allBelow = [];
+private _allAbove = [];
+private _allBelow = [];
{
- if ((_x select 3) select 2 < SCORETHRESHOLD) then {
+ if ((_x select 3) select 2 < 5) then {
_allBelow pushBack _x;
} else {
_allAbove pushBack _x;
@@ -121,13 +109,13 @@ _allBelow = [];
} forEach _stats;
_allAbove sort false;
_allBelow sort false;
-_stats = _allAbove + _allBelow;
+private _stats = _allAbove + _allBelow;
//SAVE AND RETURN ==============================================================
diag_log "updateLeaderboard.sqf - Points have been updated. Here is the new array:";
diag_log "NAME, POINTS =========================================================";
{
- diag_log str _x;
+ diag_log str _x;
} forEach _stats;
diag_log "======================================================================";
diff --git a/functions/common/fn_weaponCleanup.sqf b/functions/common/fn_weaponCleanup.sqf
new file mode 100644
index 0000000..7799ef5
--- /dev/null
+++ b/functions/common/fn_weaponCleanup.sqf
@@ -0,0 +1,8 @@
+[{
+ params ["_pos"];
+
+ {
+ deleteVehicle _x;
+ } forEach (nearestObjects [_pos,["WeaponHolder","WeaponHolder_Single_F","WeaponHolderSimulated","WeaponHolderSimulated_Scripted","GroundWeaponHolder","GroundWeaponHolder_Scripted"],20]);
+
+},_this,5] call CBA_fnc_waitAndExecute;
diff --git a/functions/component.hpp b/functions/component.hpp
new file mode 100644
index 0000000..5db2491
--- /dev/null
+++ b/functions/component.hpp
@@ -0,0 +1,2 @@
+#define PREFIX gungame
+#include "\x\cba\addons\main\script_macros_mission.hpp"
diff --git a/functions/events/cfgFunctions.hpp b/functions/events/cfgFunctions.hpp
new file mode 100644
index 0000000..e41e484
--- /dev/null
+++ b/functions/events/cfgFunctions.hpp
@@ -0,0 +1,14 @@
+class gungame_events {
+ class events {
+ class endMissionServer {};
+ class findRespawnPosition {};
+ class killCam {};
+ class onIncreasedScore {};
+ class onPlayerKilled {};
+ class onPlayerRespawn {};
+ class onUnitKilledServer {};
+ class respawnPlayer {};
+ class upgradeWeaponTitleOnLoad {};
+ class waitPlayerRespawnTime {};
+ };
+};
diff --git a/functions/events/component.hpp b/functions/events/component.hpp
new file mode 100644
index 0000000..ffbe207
--- /dev/null
+++ b/functions/events/component.hpp
@@ -0,0 +1,2 @@
+#define COMPONENT events
+#include "..\component.hpp"
diff --git a/functions/events/fn_endMissionServer.sqf b/functions/events/fn_endMissionServer.sqf
new file mode 100644
index 0000000..608603a
--- /dev/null
+++ b/functions/events/fn_endMissionServer.sqf
@@ -0,0 +1,46 @@
+#include "component.hpp"
+
+if (!isServer) exitWith {};
+
+params [["_winner",objNull]];
+
+if (missionNamespace getVariable [QGVAR(gameEnded),false]) exitWith {};
+missionNamespace setVariable [QGVAR(gameEnded),true,true];
+
+_this spawn {
+ params [["_winner",objNull]];
+
+ sleep 1;
+
+ _centerPos = ([EGVAR(missionSetup,playAreaCenter),[0,50]] call EFUNC(common,randomPos)) findEmptyPosition [0,30,"B_Soldier_F"];
+ if ((count _centerPos) == 0) then {_centerPos = EGVAR(missionSetup,playAreaCenter)};
+
+ {_x setDamage 0} forEach allPlayers;
+ [nil,_centerPos] remoteExec [QEFUNC(common,teleport),0,false];
+ [_centerPos] remoteExec [QFUNC(respawnPlayer),0,false];
+
+ [[],{
+ waitUntil {alive player};
+ removeAllWeapons player;
+ player setDamage 0;
+ player allowDamage false;
+ sleep 1;
+ removeAllWeapons player;
+ }] remoteExec ["spawn",0,false];
+
+ sleep 2;
+
+ ["gungame_notification1",["GUNGAME",format ["%1 wins!",_winner getVariable ["ACE_Name",name _winner]]]] remoteExec ["bis_fnc_showNotification",0,false];
+
+ sleep 8;
+
+ if (EGVAR(missionSetup,rankedMode)) then {
+ _stats = [] call EFUNC(common,updateLeaderboard);
+ _compiledStats = [_stats] call EFUNC(common,compileForGRADScoreboard);
+ [_compiledStats] remoteExec [QEFUNC(common,showGRADScoreboard),0,false];
+
+ sleep 20;
+ };
+
+ ["end1", true, true, true, true] remoteExec ["BIS_fnc_endMission",0,false];
+};
diff --git a/functions/events/fn_findRespawnPosition.sqf b/functions/events/fn_findRespawnPosition.sqf
new file mode 100644
index 0000000..5934efd
--- /dev/null
+++ b/functions/events/fn_findRespawnPosition.sqf
@@ -0,0 +1,63 @@
+#include "component.hpp"
+
+params [["_respawnUnit",objNull]];
+
+private _respawnPos = [];
+private _tooClose = true;
+private _otherPlayers = allPlayers select {_x != _respawnUnit && alive _x};
+
+for "_i" from 0 to 10 do {
+ _respawnPos = [];
+ _searchPos = [EGVAR(missionSetup,playAreaCenter),[0,EGVAR(missionSetup,playAreaSize) - 35],[0,360]] call EFUNC(common,randomPos);
+
+ for "_k" from 0 to 10 do {
+ _houseList = (_searchPos nearObjects ["House",75]) select {!((_x buildingPos 0) isEqualTo [0,0,0])};
+ if (count _houseList > 0) then {
+ _house = selectRandom _houseList;
+ _respawnPos = selectRandom ([_house] call BIS_fnc_buildingPositions);
+ };
+ if ((count _respawnPos) > 0) exitWith {};
+ };
+
+ if (count _respawnPos > 0 && {!(_respawnPos isEqualTo [0,0,0])}) then {
+ _tooClose = (_otherPlayers findIf {(_respawnPos distance2D _x) < 20}) >= 0;
+ };
+ if (!_tooClose) exitWith {};
+};
+
+if (count _respawnPos == 0 || _tooClose || {_respawnPos isEqualTo [0,0,0]}) then {
+ for "_i" from 0 to 10 do {
+ _respawnPos = [];
+ _searchPos = [0,0,0];
+ for "_j" from 0 to 10 do {
+ _searchPos = [EGVAR(missionSetup,playAreaCenter),[0,EGVAR(missionSetup,playAreaSize) - 35],[0,360]] call EFUNC(common,randomPos);
+ if (!surfaceIsWater _searchPos) exitWith {};
+ };
+ if (surfaceIsWater _searchPos) then {
+ _searchPos = EGVAR(missionSetup,playAreaCenter);
+ };
+
+ for "_k" from 0 to 10 do {
+ _respawnPos = ([_searchPos,[0,50]] call EFUNC(common,randomPos)) findEmptyPosition [0,30,"B_Soldier_F"];
+ if ((count _respawnPos) > 0) exitWith {};
+ };
+
+ if (count _respawnPos > 0 && {!(_respawnPos isEqualTo [0,0,0])}) then {
+ _tooClose = (_otherPlayers findIf {(_respawnPos distance2D _x) < 20}) >= 0
+ };
+ if (!_tooClose) exitWith {};
+ };
+};
+
+// just to be sure
+if (isNil "_respawnPos" || {count _respawnPos == 0} || {_respawnPos isEqualTo [0,0,0]}) then {
+ for "_h" from 0 to 100 do {
+ _respawnPos = [EGVAR(missionSetup,playAreaCenter),[0,EGVAR(missionSetup,playAreaSize) - 35],[0,360]] call EFUNC(common,randomPos);
+ if (!surfaceIsWater _searchPos) exitWith {};
+ };
+ if (count _respawnPos == 0 || {_respawnPos isEqualTo [0,0,0]}) then {
+ _respawnPos = EGVAR(missionSetup,playAreaCenter);
+ };
+};
+
+_respawnPos
diff --git a/functions/events/fn_killCam.sqf b/functions/events/fn_killCam.sqf
new file mode 100644
index 0000000..fba6e49
--- /dev/null
+++ b/functions/events/fn_killCam.sqf
@@ -0,0 +1,40 @@
+#include "component.hpp"
+#include "..\..\dialog\killcam\defines.hpp"
+
+params ["_totalTime",["_killedUnit",objNull],["_shooter",objNull]];
+disableSerialization;
+
+private _shooterName = [_shooter] call ACE_common_fnc_getName;
+private _killedUnitName = [_killedUnit] call ACE_common_fnc_getName;
+private _killMessage = [format ["YOU GOT KILLED BY %1", toUpper _shooterName],"YOU KILLED YOURSELF"] select (_shooterName == _killedUnitName);
+
+private _layer = (["kcTitleLayer"] call BIS_fnc_rscLayer);
+_layer cutRsc ["KillCamTitle", "PLAIN", 1];
+
+private _display = uiNamespace getVariable ["KillCamTitle_Display",displayNull];
+private _title = _display displayCtrl KILLCAMTITLE_TITLE;
+_title ctrlSetText _killMessage;
+
+private _camera = "camera" camCreate ((getPos _killedUnit) vectorAdd [0,0,2]);
+_camera cameraEffect ["internal","back"];
+
+showCinemaBorder true;
+private _filmgrain = ppEffectCreate ["FilmGrain",2000];
+_filmgrain ppEffectEnable true;
+_filmgrain ppEffectAdjust [0.3,0.3,0.12,0.12,0.12,true];
+_filmgrain ppEffectCommit 0;
+
+_killedUnit setVariable [QGVAR(killCam), [_camera,_filmgrain]];
+
+_camera camSetTarget _killedUnit;
+_camera camSetFov 0.4;
+_camera camCommit (_totalTime * 0.1);
+sleep (_totalTime * 0.1);
+
+_camera camSetTarget _shooter;
+_camera camSetFov 0.2;
+_camera camCommit ((_totalTime * 0.4) min 4);
+sleep (_totalTime * 0.7);
+
+cutRsc ["RscStatic", "PLAIN" , 3];
+sleep (_totalTime * 0.1);
diff --git a/functions/events/fn_onIncreasedScore.sqf b/functions/events/fn_onIncreasedScore.sqf
new file mode 100644
index 0000000..4d92fe7
--- /dev/null
+++ b/functions/events/fn_onIncreasedScore.sqf
@@ -0,0 +1,11 @@
+#include "component.hpp"
+
+params [["_unit",objNull],["_newScore",0]];
+
+if (_unit isEqualTo ACE_player) then {
+ playSound "gungame_upgradeWeaponSound";
+};
+
+if (!alive _unit) exitWith {};
+
+[_unit,_newScore] call EFUNC(missionSetup,applyWeapon);
diff --git a/functions/events/fn_onPlayerKilled.sqf b/functions/events/fn_onPlayerKilled.sqf
new file mode 100644
index 0000000..d2d8789
--- /dev/null
+++ b/functions/events/fn_onPlayerKilled.sqf
@@ -0,0 +1,19 @@
+#include "component.hpp"
+
+if (player getVariable [QEGVAR(missionSetup,isSpectator),false]) exitWith {};
+if (missionNamespace getVariable [QGVAR(gameEnded),false]) exitWith {};
+
+//send killer to server
+private _shooter = player getVariable ["ACE_medical_lastDamageSource",player];
+[player,_shooter,getPos player,profileName] remoteExecCall [QFUNC(onUnitKilledServer),2,false];
+
+[getPos player,profileName] remoteExecCall [QEFUNC(common,weaponCleanup),2,false];
+
+//create kill cam
+private _killCamHandle = [EGVAR(missionSetup,respawnTime) min 10,player,_shooter] spawn FUNC(killCam);
+player setVariable [QGVAR(killCamHandle),_killCamHandle];
+
+//keep player from respawning
+setPlayerRespawnTime 9999;
+
+[EGVAR(missionSetup,respawnTime)] call FUNC(waitPlayerRespawnTime);
diff --git a/functions/events/fn_onPlayerRespawn.sqf b/functions/events/fn_onPlayerRespawn.sqf
new file mode 100644
index 0000000..e533102
--- /dev/null
+++ b/functions/events/fn_onPlayerRespawn.sqf
@@ -0,0 +1,15 @@
+#include "component.hpp"
+
+[] call EFUNC(missionSetup,applyUniform);
+
+cutText ["","BLACK IN",0.1];
+hintSilent "";
+
+private _respawnPos = player getVariable [QGVAR(respawnPos),EGVAR(missionSetup,playAreaCenter)];
+[player,_respawnPos] call EFUNC(common,teleport);
+
+player setVariable [QEGVAR(missionSetup,isCamping),false,false];
+
+if (missionNamespace getVariable [QGVAR(gameEnded),false]) exitWith {};
+
+[player,player getVariable [QEGVAR(missionSetup,currentScore),0]] call EFUNC(missionSetup,applyWeapon);
diff --git a/functions/events/fn_onUnitKilledServer.sqf b/functions/events/fn_onUnitKilledServer.sqf
new file mode 100644
index 0000000..66df29d
--- /dev/null
+++ b/functions/events/fn_onUnitKilledServer.sqf
@@ -0,0 +1,25 @@
+#include "component.hpp"
+
+params ["_victim",["_shooter",objNull],["_victimPos", [0,0,0]],["_victimName", "Someone"]];
+
+if (isNull _shooter) exitWith {};
+
+//exit if self-kill
+if (_victim == _shooter) exitWith {};
+
+_victim setVariable [QEGVAR(missionSetup,deaths),(_victim getVariable [QEGVAR(missionSetup,deaths), 0]) + 1, true];
+_shooter setVariable [QEGVAR(missionSetup,kills),(_shooter getVariable [QEGVAR(missionSetup,kills), 0]) + 1, true];
+
+private _shotDistance = (getPos _shooter) distance2D _victimPos;
+if (_shotDistance > (_shooter getVariable [QEGVAR(missionSetup,longestKill), 0])) then {
+ _shooter setVariable [QEGVAR(missionSetup,longestKill), _shotDistance, true];
+};
+
+private _newScore = (_shooter getVariable [QEGVAR(missionSetup,currentScore),0]) + 1;
+_shooter setVariable [QEGVAR(missionSetup,currentScore),_newScore,true];
+
+if (_newScore >= ("KillsForWin" call BIS_fnc_getParamValue)) exitWith {
+ [_shooter] call FUNC(endMissionServer);
+};
+
+[_shooter,_newScore] remoteExec [QFUNC(onIncreasedScore),_shooter,false];
diff --git a/functions/events/fn_respawnPlayer.sqf b/functions/events/fn_respawnPlayer.sqf
new file mode 100644
index 0000000..e2b0d99
--- /dev/null
+++ b/functions/events/fn_respawnPlayer.sqf
@@ -0,0 +1,19 @@
+#include "component.hpp"
+
+params [["_respawnPos",[0,0,0]]];
+
+if (!hasInterface) exitWith {};
+if (alive player) exitWith {};
+
+player setVariable [QGVAR(respawnPos),_respawnPos];
+setPlayerRespawnTime 1;
+forceRespawn player;
+
+(player getVariable [QGVAR(killCam),[]]) params [["_camera",objNull],["_filmgrain",-1]];
+
+_filmgrain ppEffectEnable false;
+ppEffectDestroy _filmgrain;
+
+_camera cameraEffect ["terminate","back"];
+camDestroy _camera;
+showCinemaBorder false;
diff --git a/functions/events/fn_upgradeWeaponTitleOnLoad.sqf b/functions/events/fn_upgradeWeaponTitleOnLoad.sqf
new file mode 100644
index 0000000..629db6f
--- /dev/null
+++ b/functions/events/fn_upgradeWeaponTitleOnLoad.sqf
@@ -0,0 +1,17 @@
+#include "component.hpp"
+
+#include "..\..\dialog\upgradeWeaponTitle\defines.hpp"
+
+params ["_dialog"];
+
+private _score = player getVariable [QEGVAR(missionSetup,currentScore),0];
+private _weapon = EGVAR(selectWeapons,chosenWeapons) param [_score,""];
+
+//weapon text
+private _displayName = getText (configFile >> "CfgWeapons" >> _weapon >> "displayName");
+private _text = format ["(%1/%2) %3",_score+1, EGVAR(missionSetup,killsForWin), _displayName];
+(_dialog displayCtrl UPGRADEWEAPON_TEXT) ctrlSetText _text;
+
+//weapon picture
+private _picturePath = getText (configFile >> "CfgWeapons" >> _weapon >> "picture");
+(_dialog displayCtrl UPGRADEWEAPON_PIC) ctrlSetText _picturePath;
diff --git a/functions/events/fn_waitPlayerRespawnTime.sqf b/functions/events/fn_waitPlayerRespawnTime.sqf
new file mode 100644
index 0000000..bc1cfba
--- /dev/null
+++ b/functions/events/fn_waitPlayerRespawnTime.sqf
@@ -0,0 +1,29 @@
+#include "component.hpp"
+
+params ["_timeLeft"];
+
+//hint predefine ===============================================================
+private _rule = parseText "-----------------------------------------------------
";
+private _lineBreak = parseText "
";
+
+[{
+ params ["_args","_handle"];
+ _args params ["_timeLeft","_rule","_lineBreak"];
+
+ if (_timeLeft <= 0 || missionNamespace getVariable [QGVAR(gameEnded),false]) exitWith {
+ _respawning = parseText format ["Respawning..."];
+ hint composeText [_rule, _respawning, _lineBreak, _rule];
+
+ _respawnPos = [player] call FUNC(findRespawnPosition);
+ [_respawnPos] call FUNC(respawnPlayer);
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ };
+
+ //hint
+ _timestr = [_timeleft, "MM:SS"] call BIS_fnc_secondsToString;
+ _respawnIn = parseText format ["Respawn in: %1", _timestr];
+ hintSilent composeText [_rule,_respawnin,_linebreak,_rule];
+
+ _args set [0,_timeLeft - 1];
+
+},1,[_timeLeft,_rule,_lineBreak]] call CBA_fnc_addPerFrameHandler;
diff --git a/functions/fn_addGear.sqf b/functions/fn_addGear.sqf
deleted file mode 100644
index 1252576..0000000
--- a/functions/fn_addGear.sqf
+++ /dev/null
@@ -1,37 +0,0 @@
-if (!hasInterface) exitWith {};
-
-_gear = player getVariable ["myUniform", ["U_NikosAgedBody", "V_PlateCarrier1_rgr"]];
-_uniform = _gear select 0;
-/*_vest = _gear select 1;*/
-_vest = if (ISWOODLAND) then {"V_TacVest_oli"} else {"V_TacVest_khk"};
-
-this = player;
-
-comment "Exported from Arsenal by McDiod";
-
-comment "Remove existing items";
-removeAllWeapons this;
-removeAllItems this;
-removeAllAssignedItems this;
-removeUniform this;
-removeVest this;
-removeBackpack this;
-removeHeadgear this;
-removeGoggles this;
-
-comment "Add containers";
-this forceAddUniform _uniform;
-waitUntil {uniform player != ""};
-for "_i" from 1 to 6 do {this addItemToUniform "ACE_fieldDressing";};
-for "_i" from 1 to 4 do {this addItemToUniform "ACE_morphine";};
-this addVest _vest;
-
-comment "Add weapons";
-this addWeapon "Binocular";
-
-comment "Add items";
-this linkItem "ItemMap";
-this linkItem "ItemCompass";
-this linkItem "ItemWatch";
-this linkItem "tf_anprc152";
-this linkItem "ItemGPS";
diff --git a/functions/fn_addKilledEH.sqf b/functions/fn_addKilledEH.sqf
deleted file mode 100644
index 1b07f0a..0000000
--- a/functions/fn_addKilledEH.sqf
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Adds killed EH to units
-*
-* only necessary on server
-* executed on mission start via server\setup\teamSetup.sqf for all playable units
-*/
-
-
-// THIS IS UNUSED RIGHT NOW!
-
-
-params ["_unit"];
-
-_unit addEventHandler ["killed", {[_this] spawn mcd_fnc_weaponCleanup}];
-/*_unit addEventHandler ["killed", {[_this] call mcd_fnc_setScore;}];*/
-diag_log format ["fnc_addKilledEH - Added killed EH to %1.", name _unit];
diff --git a/functions/fn_compileForGRADScoreboard.sqf b/functions/fn_compileForGRADScoreboard.sqf
deleted file mode 100644
index 0e56cbd..0000000
--- a/functions/fn_compileForGRADScoreboard.sqf
+++ /dev/null
@@ -1,10 +0,0 @@
-params ["_stats"];
-
-_compiledStats = [["NAME","K/D","GAMES","POINTS"]];
-{
- _x params ["_points","_UID","_name","_playerStats"];
- _playerStats params ["_kills","_deaths","_games"];
- _compiledStats pushBack [_name,(round ((_kills/_deaths)*100))/100,_games,round _points];
-} forEach _stats;
-
-_compiledStats
diff --git a/functions/fn_endMission.sqf b/functions/fn_endMission.sqf
deleted file mode 100644
index ef61a4b..0000000
--- a/functions/fn_endMission.sqf
+++ /dev/null
@@ -1,11 +0,0 @@
-/* Ends the mission
-*
-* Params:
-* 0: Player who scored the last kill
-*/
-
-params ["_winner"];
-if (!hasInterface) exitWith {};
-
-_isVictory = _winner in (units group player);
-["end1", _isVictory, true, true, true] spawn BIS_fnc_endMission;
diff --git a/functions/fn_endingCeremony.sqf b/functions/fn_endingCeremony.sqf
deleted file mode 100644
index 82a0f7d..0000000
--- a/functions/fn_endingCeremony.sqf
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Plays game end procedure
-*
-* remote executed by server via server\endGame.sqf
-*/
-
-if (!hasInterface) exitWith {};
-
-params ["_winnerPos","_winner"];
-GAMEENDED = true;
-
-//respawn player instantly if dead
-if (!alive player) then {
- _camera = player getVariable "killCam";
- if (!isNil "_camera") then {
- _killCamHandle = (player getVariable ["killCamHandle", [scriptNull]]) select 0;
- terminate _killCamHandle;
- camDestroy _camera;
- showCinemaBorder false;
- };
-
- iJustSpawned = true;
- setPlayerRespawnTime 0;
- forceRespawn player;
- waitUntil {alive player};
- cutText ["", "BLACK IN", 0.5];
-};
-
-player allowDamage false;
-
-//remove weapons
-{player removeWeapon _x} forEach weapons player;
-{player removeMagazine _x} forEach magazines player;
-
-//teleport to winner
-player setPos _winnerPos;
-
-//display winner text
-_endText = if (TEAMSIZE > 1) then {format ["%1's team won!", name _winner]} else {format ["%1 won!", name _winner]};
-_text = format ["
%1", _endText];
-[_text,0,0,2,1] spawn BIS_fnc_dynamicText;
-sleep 5;
-
-_text = "Updating Leaderboard...";
-[_text,0,0,2,1] spawn BIS_fnc_dynamicText;
diff --git a/functions/fn_fileExists.sqf b/functions/fn_fileExists.sqf
deleted file mode 100644
index aacab48..0000000
--- a/functions/fn_fileExists.sqf
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Checks if file exists
-*
-* By KillzoneKid
-*/
-
-private ["_ctrl", "_fileExists"];
-disableSerialization;
-_ctrl = findDisplay 0 ctrlCreate ["RscHTML", -1];
-_ctrl htmlLoad (_this select 0);
-_fileExists = ctrlHTMLLoaded _ctrl;
-ctrlDelete _ctrl;
-_fileExists
diff --git a/functions/fn_findGreatestNum.sqf b/functions/fn_findGreatestNum.sqf
deleted file mode 100644
index 3216368..0000000
--- a/functions/fn_findGreatestNum.sqf
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Finds greatest number in array
-*
-* Params:
-* 0: Array
-*
-* Returns:
-* index of greatest element
-* -1 if no single greatest element found
-*/
-
-params ["_array"];
-
-_max = -999999;
-_maxID = -1;
-for [{_i=0}, {_i<(count _array)}, {_i=_i+1}] do {
- _element = _array select _i;
- if (typeName _element == "SCALAR") then {
- if (_element == _max) then {
- _maxID = -1;
- };
- if (_element > _max) then {
- _max = _element;
- _maxID = _i;
- };
- };
-};
-
-_maxID
diff --git a/functions/fn_findGroupPosition.sqf b/functions/fn_findGroupPosition.sqf
deleted file mode 100644
index 12cd20f..0000000
--- a/functions/fn_findGroupPosition.sqf
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Finds spawnposition for one or multiple groups with min distance
-*
-* Params:
-* 0: Teamlead
-*/
-
-params ["_teamleadUID"];
-private ["_teamleadpos"];
-
-_teamlead = [_teamleadUID] call BIS_fnc_getUnitByUid;
-
-diag_log format ["fnc_findGroupPosition - Finding positions for %1's team.", _teamlead];
-
-//find position for teamlead ===================================================
-_repetitions = 0;
-_tooCloseFound = true;
-while {_tooCloseFound} do {
-
- //find position that is not over water
- _isWater = true;
- _isEmpty = true;
- while {_isWater || _isEmpty} do {
- /*_teamleadpos = [PLAYAREACENTER, [0, PLAYAREASIZE-10], [0,360], 1] call SHK_pos;*/
- _randomPos = PLAYAREACENTER getPos [random (PLAYAREASIZE-40), random 360];
- _teamleadpos = _randomPos findEmptyPosition [0,30];
- _isWater = surfaceIsWater _teamleadpos;
- _isEmpty = ((str _teamleadpos) == "[]");
- };
-
- //check min distance
- _tooCloseFound = false;
- {
- if (_x distance2D _teamleadpos < SPAWNGROUPMINDIST) then {
- _tooCloseFound = true;
- };
- } forEach playableUnits;
-
- //unless this has been repeated too often -> use position anyway
- if (_repetitions >= 10) then {
- _tooCloseFound = false;
- diag_log format ["fnc_findGroupPosition - Could not find a position for %1's team that is more than %2m away from enemy players.", _teamlead, SPAWNGROUPMINDIST];
- };
-
- _repetitions = _repetitions +1;
-};
-_teamlead setVariable ["spawnpos", _teamleadpos, true];
-
-
-//find positions for groupmembers ==============================================
-_teammateUIDs = (_teamlead getVariable "teammates");
-_teammates = [];
-{
- _unit = [_x] call BIS_fnc_getUnitByUid;
- _teammates pushBack _unit;
-} forEach _teammateUIDs;
-_teammates = _teammates - [_teamlead];
-
-{
- _isWater = true;
- _isEmpty = true;
- while {_isWater || _isEmpty} do {
- /*_matepos = [_teamleadpos, [0, STARTDISTTOLEADER], [0,360], 1] call SHK_pos;*/
- _randomPos = _teamleadPos getPos [random STARTDISTTOLEADER, random 360];
- _matePos = _randomPos findEmptyPosition [0,30];
- _isWater = surfaceIsWater _matepos;
- };
-
- _x setVariable ["spawnpos", _matepos, true];
-} forEach _teammates;
diff --git a/functions/fn_findSoloPosition.sqf b/functions/fn_findSoloPosition.sqf
deleted file mode 100644
index 85fa851..0000000
--- a/functions/fn_findSoloPosition.sqf
+++ /dev/null
@@ -1,19 +0,0 @@
-params ["_respawnUnit","_teammateUIDs"];
-
-_aliveTeammates = [];
-{
- _unit = [_x] call BIS_fnc_getUnitByUid;
- if (alive _unit) then {
- _aliveTeammates pushBack _unit;
- };
-} forEach _teammateUIDs;
-
-_randomUnit = selectRandom _aliveTeammates;
-_spawnpos = [];
-while {str _spawnpos == "[]"} do {
- _randomUnitPos = getPos _randomUnit;
- _spawnpos = _randomUnitPos findEmptyPosition [SPAWNDISTTOLEADER select 0, (random 1) * (SPAWNDISTTOLEADER select 1)];
- /*_spawnpos = [_randomUnitPos, SPAWNDISTTOLEADER, [0,360], 0] call SHK_pos;*/
-};
-
-_respawnUnit setVariable ["spawnpos", _spawnpos, true];
diff --git a/functions/fn_findStringInArray.sqf b/functions/fn_findStringInArray.sqf
deleted file mode 100644
index e833f99..0000000
--- a/functions/fn_findStringInArray.sqf
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Finds player name in subarrays within an array
-*
-* Params:
-* 0: array
-* 1: string to find
-* 2: index in subarrays to search
-*
-* Returns:
-* index of string in array (-1 if not found)
-*/
-
-params ["_array", "_string", ["_searchIndex", 0]];
-
-_ID = -1;
-{
- _currentIndex = _forEachIndex;
- if (typeName _x == "ARRAY") then {
- _item = _x select _searchIndex;
- if (typeName _item == "STRING") then {
- if (_item == _string) then {_ID = _currentIndex};
- };
-
- if (typeName _item == "ARRAY") then {
- {
- if (_x == _string) then {_ID = _currentIndex};
- } forEach _item;
- };
- };
-} forEach _array;
-
-_ID
diff --git a/functions/fn_formattedHint.sqf b/functions/fn_formattedHint.sqf
deleted file mode 100644
index bdf30aa..0000000
--- a/functions/fn_formattedHint.sqf
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Creates a pre-formatted hint
-*
-* Parameters:
-* 0: Array:
-* 0: text line 1 (string)
-* 1: color line 1 (string, optional)
-* 1: Array:
-* 0: text line 2 (string)
-* 1: color line 2 (string, optional)
-* 2: Array:
-* 0: text line 3 (string)
-* 1: color line 3 (string, optional)
-* etc..
-*/
-
-private ["_line", "_color"];
-
-_rule = parseText "-----------------------------------------------------
";
-_lineBreak = parseText "
";
-
-_hintArray = [_rule];
-{
- _line = _x select 0;
- if (count _x == 2) then {
- _color = _x select 1;
- } else {
- _color = "#ffffff";
- };
- _text = parseText format ["%2", _color, _line];
- _hintArray pushBack _text;
- _hintArray pushBack _lineBreak;
-} forEach _this;
-_hintArray pushBack _rule;
-hint composeText _hintArray;
-
-[] spawn {
- sleep 4;
- hint "";
-};
diff --git a/functions/fn_formattedLog.sqf b/functions/fn_formattedLog.sqf
deleted file mode 100644
index e2cffa8..0000000
--- a/functions/fn_formattedLog.sqf
+++ /dev/null
@@ -1,15 +0,0 @@
-params ["_name"];
-
-_equalchars = [];
-for [{_i=0}, {_i<(80-(count _name))}, {_i=_i+1}] do {
- _equalchars pushBack "=";
-};
-
-_headline = format ["%1 %2", _name, (_equalchars joinString "")];
-diag_log _headline;
-
-for [{_i=1}, {_i<(count _this)}, {_i=_i+1}] do {
- diag_log format["%1",(_this select _i)];
-};
-
-diag_log "=================================================================================";
diff --git a/functions/fn_hideCamper.sqf b/functions/fn_hideCamper.sqf
deleted file mode 100644
index da3939a..0000000
--- a/functions/fn_hideCamper.sqf
+++ /dev/null
@@ -1,16 +0,0 @@
-params ["_camperName"];
-
-diag_log format ["fn_hideCamper executed with %1", _camperName];
-
-if (!hasInterface) exitWith {};
-
-//PLAYER IS CAMPER =============================================================
-if (profileName == _camperName) exitWith {
- ["Alright, you stopped camping... I'll be watching you though.",0,0,2,0.3] spawn BIS_fnc_dynamicText;
-};
-
-//PLAYER IS SOMEONE ELSE =======================================================
-_handleID = camperNames find _camperName;
-if (_handleID < 0) exitWith {diag_log format ["fn_hideCamper - WARNING: Could not find %1 in camperNames.", _camperName]};
-_handle = camperHandles select _handleID;
-[_handle] call CBA_fnc_removePerFrameHandler;
diff --git a/functions/fn_receiveVote.sqf b/functions/fn_receiveVote.sqf
deleted file mode 100644
index 7c14100..0000000
--- a/functions/fn_receiveVote.sqf
+++ /dev/null
@@ -1,131 +0,0 @@
-params ["_clickPos", "_player", "_size"];
-private ["_closestMarker"];
-
-//make sure only one instance of function runs at a time
-if (!isNil "fnc_receiveVoteRunning") then {
- waitUntil {!fnc_receiveVoteRunning};
-};
-fnc_receiveVoteRunning = true;
-
-//player specific marker name
-_markerName = format ["areamarker_%1", [name _player] call mcd_fnc_strToVar];
-_votesMarkerName = _markerName + "_votes";
-
-//delete old markers ===========================================================
-if (str getMarkerSize _markerName != "[0,0]") then {
-
- deleteMarker _markerName;
- deleteMarker _votesMarkerName;
- _markerID = AREAMARKERS find _markerName;
-
- //delete old voter variables
- _oldVoters = VOTERS select _markerID;
- {
- _x setVariable ["playerVote", ""];
- } forEach _oldVoters;
-
- //delete old markers
- _allfound = false;
- _i = 0;
- while {!_allFound} do {
- _oldVoterMarkerName = format ["%1_%2", _votesMarkerName, _i];
- if (str getMarkerPos _oldVoterMarkerName != "[0,0,0]") then {
- deleteMarker _oldVoterMarkerName;
- } else {
- _allFound = true;
- };
- _i = _i + 1;
- };
-
- AREAMARKERS deleteAt _markerID;
- MARKERVOTES deleteAt _markerID;
- VOTEMARKERS deleteAt _markerID;
- VOTERS deleteAt _markerID;
-};
-
-
-//detract old vote =============================================================
-_oldVote = _player getVariable ["playerVote", ""];
-if (_oldVote != "") then {
- _markerID = AREAMARKERS find _oldVote;
- _oldVoteNumber = MARKERVOTES select _markerID;
- MARKERVOTES set [_markerID, _oldVoteNumber-1];
- _oldVoters = VOTERS select _markerID;
- _newVoters = _oldVoters - [_player];
- VOTERS set [_markerID, _newVoters];
-
- [_oldVote] call mcd_fnc_updateVotesMarker;
-};
-
-
-//check if vote or proposal ====================================================
-_isVote = false;
-_closestDistance = 9999999;
-{
- _markerPos = getMarkerPos _x;
- _markerSize = (getMarkerSize _x) select 0;
- _distance = _clickPos distance2D _markerPos;
- if (_distance < _markerSize) then {
- _isVote = true;
- if (_distance < _closestDistance) then {
- _closestMarker = _x;
- _closestDistance = _distance;
- };
- };
-} forEach AREAMARKERS;
-
-
-//update vote if isvote ========================================================
-if (_isVote) then {
- //add new vote
- _player setVariable ["playerVote", _closestMarker];
- _markerID = AREAMARKERS find _closestMarker;
- _oldVoteNumber = MARKERVOTES select _markerID;
- MARKERVOTES set [_markerID, _oldVoteNumber+1];
- _oldVoters = VOTERS select _markerID;
- _newVoters = _oldVoters + [_player];
- VOTERS set [_markerID, _newVoters];
- [_closestMarker] call mcd_fnc_updateVotesMarker;
- diag_log format ["fnc_receiveVote - Player %1 voted for %2.", name _player, _closestMarker];
-};
-
-
-//create marker if proposal ====================================================
-if (!_isVote) then {
-
- if (_size < PLAYAREAMINSIZE) then {_size = PLAYAREAMINSIZE};
- if (_size > PLAYAREAMAXSIZE) then {_size = PLAYAREAMAXSIZE};
-
- _areaMarker = createMarker [_markerName, _clickPos];
- _areaMarker setMarkerShape "ELLIPSE";
- _areaMarker setMarkerSize [_size,_size];
- _areaMarker setMarkerBrush "BORDER";
- _areaMarker setMarkerColor "COLORWEST";
-
- _votesMarker = createMarker [_votesMarkerName, _clickPos];
- _votesMarker setMarkerType "hd_flag";
- _votesMarker setMarkerColor "COLORWEST";
-
- AREAMARKERS pushBack _areaMarker;
- VOTEMARKERS pushBack _votesMarker;
- MARKERVOTES pushBack 1;
- VOTERS pushBack [_player];
-
- _player setVariable ["playerVote", _markerName];
- [_areaMarker] call mcd_fnc_updateVotesMarker;
- diag_log format ["fnc_receiveVote - Player %1 proposed play area around %2 with radius %3.", name _player, _clickPos, _size];
-};
-
-
-//update most voted marker
-_mostUpvotedID = [MARKERVOTES] call mcd_fnc_findGreatestNum;
-for [{_i=0}, {_i<(count AREAMARKERS)}, {_i=_i+1}] do {
- _marker = VOTEMARKERS select _i;
- if (_i == _mostUpvotedID) then {
- _marker setMarkerColor "COLORGREEN";
- } else {
- _marker setMarkerColor "COLORWEST";
- };
-};
-
-fnc_receiveVoteRunning = false;
diff --git a/functions/fn_scoreBoard.sqf b/functions/fn_scoreBoard.sqf
deleted file mode 100644
index 7f0d642..0000000
--- a/functions/fn_scoreBoard.sqf
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "..\dialogs\scoreboard\defines.hpp"
-
-private ["_display", "_teamScore", "_teamName"];
-if (!alive player) exitWith {};
-disableSerialization;
-
-_numberOfDisplayedRanks = (count CURRENTRANKING) min 3;
-
-_createDisplay = false;
-_display = uiNamespace getVariable "ScoreBoard_Display";
-if (isNil "_display" ) then {
- _createDisplay = true;
-} else {
- if (isNull _display) then {
- _createDisplay = true;
- };
-};
-
-if (_createDisplay) then {
- cutRsc ["ScoreBoard", "PLAIN", 1];
- _display = uiNamespace getVariable "ScoreBoard_Display";
- for [{_i=0}, {_i < _numberOfDisplayedRanks}, {_i=_i+1}] do {
- _scoreBoardItem = _display displayCtrl SCOREBOARD_ITEM1 + _i;
- _scoreBoardScore = _display displayCtrl SCOREBOARD_SCORE1 + _i;
- _scoreBoardItem ctrlSetBackgroundColor [0,0,0,0.4];
- _scoreBoardScore ctrlSetBackgroundColor [0,0,0,0.4];
- };
-};
-
-_groupName = player getVariable "groupname";
-
-for [{_i=0}, {_i < _numberOfDisplayedRanks}, {_i=_i+1}] do {
- _team = CURRENTRANKING select _i;
- _teamScore = _team select 0;
- _teamName = _team select 1;
- _scoreBoardItem = _display displayCtrl SCOREBOARD_ITEM1 + _i;
- _scoreBoardScore = _display displayCtrl SCOREBOARD_SCORE1 + _i;
- _scoreBoardItem ctrlSetText _teamName;
- _scoreBoardScore ctrlSetText (str _teamScore);
-};
-
-//player team is not in top 3
-_scoreBoardItem = _display displayCtrl SCOREBOARD_ITEM4;
-_scoreBoardScore = _display displayCtrl SCOREBOARD_SCORE4;
-_teamName = player getVariable "groupdisplayname";
-_teamScore = call compile (player getVariable "groupname");
-if (([CURRENTRANKING, _teamName, 1] call mcd_fnc_findStringInArray) > 2) then {
- _scoreBoardItem ctrlSetBackgroundColor [0,0,0,0.4];
- _scoreBoardScore ctrlSetBackgroundColor [0,0,0,0.4];
- _scoreBoardItem ctrlSetText _teamName;
- _scoreBoardScore ctrlSetText (str _teamScore);
-} else {
- _scoreBoardItem ctrlSetBackgroundColor [0,0,0,0];
- _scoreBoardScore ctrlSetBackgroundColor [0,0,0,0];
- _scoreBoardItem ctrlSetText "";
- _scoreBoardScore ctrlSetText "";
-};
diff --git a/functions/fn_setScore.sqf b/functions/fn_setScore.sqf
deleted file mode 100644
index 551d504..0000000
--- a/functions/fn_setScore.sqf
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Adds score points to group
-*
-* remote executed by killed player (onPlayerKilled.sqf)
-*/
-
-/*_victim = (_this select 0) select 0;*/
-params ["_victim", "_shooter", ["_victimPos", [0,0,0]], ["_victimName", "Someone"]];
-
-//get shooter
-/*_shooter = _victim getVariable ["ACE_medical_lastDamageSource",_victim];*/
-diag_log format ["fnc_setScore - %1 killed by %2",_victim,_shooter];
-
-//exit if self-kill
-if (_victim == _shooter) exitWith {};
-
-//update kills, deaths and longest kill
-_victim setVariable ["deaths",(_victim getVariable ["deaths", 0]) + 1, true];
-_shooter setVariable ["kills",(_shooter getVariable ["kills", 0]) + 1, true];
-_shotDistance = (getPos _shooter) distance2D _victimPos;
-if (_shotDistance > (_shooter getVariable ["longestKill", 0])) then {
- _shooter setVariable ["longestKill", _shotDistance, true];
-};
-
-//get groupnames
-_vgroup = _victim getVariable "groupname";
-_sgroup = _shooter getVariable "groupname";
-if (isNil "_vgroup") exitWith {diag_log format ["fnc_setScore - Victim %1 does not have a groupname.", _victim]};
-if (isNil "_sgroup") exitWith {diag_log format ["fnc_setScore - Shooter %1 does not have a groupname.", _shooter]};
-
-//teamkill
-_teamkill = (_vgroup == _sgroup);
-if (_teamkill) then {
- diag_log format ["fnc_setScore - %1 teamkilled %2.", name _shooter, name _victim];
-};
-
-//add score
-_group = _shooter getVariable "groupname";
-_score = call compile (format ["%1", _group]);
-if (_teamkill) then {
- if (_score > 0) then {
- _score = call compile (format ["%1 = %1 - 1; publicVariable '%1'; %1", _group]);
- };
-} else {
- _score = call compile (format ["%1 = %1 + 1; publicVariable '%1'; %1", _group]);
-};
-
-//update ranking
-_groupDisplayName = _shooter getVariable "groupdisplayname";
-_rankID = [CURRENTRANKING, _groupDisplayName, 1] call mcd_fnc_findStringInArray;
-if (_rankID != -1) then {
- _rankArray = (CURRENTRANKING select _rankID);
- _rankArray set [0, _score];
-} else {
- diag_log format ["fn_setScore - ERROR: COULT NOT FIND %1 in CURRENTRANKING ARRAY.", _group];
-};
-CURRENTRANKING sort false;
-publicVariable "CURRENTRANKING";
-
-
-diag_log format ["fnc_setScore - %1 now has %2 points.", _group, _score];
-
-
-if (_score >= KILLSFORWIN) then {
- [_shooter] execVM "server\endGame.sqf";
-};
diff --git a/functions/fn_showCamper.sqf b/functions/fn_showCamper.sqf
deleted file mode 100644
index 4ce8df3..0000000
--- a/functions/fn_showCamper.sqf
+++ /dev/null
@@ -1,55 +0,0 @@
-params ["_camper","_camperName"];
-
-diag_log format ["fn_showCamper executed with %1 %2", _camper, _camperName];
-
-if (!hasInterface) exitWith {};
-if (isNil "_camper") exitWith {};
-if (isNull _camper || !alive _camper) exitWith {};
-
-//PLAYER IS CAMPER =============================================================
-if (player == _camper) exitWith {
- _insult = selectRandom [
- "dirty camper",
- "camping coward"
- ];
- _message = format ["You %1... I told them where you are hiding!", _insult];
- [_message,0,0,2,0.3] spawn BIS_fnc_dynamicText;
-};
-
-//PLAYER IS SOMEONE ELSE =======================================================
-_order = selectRandom [
- "Get that",
- "Kill that",
- "Shoot that",
- "Go and wreck that",
- "Go and smack that",
- "Go and slap that",
- "Find that",
- "Go and gunbutt that"
-];
-
-_insult = selectRandom [
- "idiot",
- "dirty camper",
- "coward",
- "asshole",
- "bastard",
- "fool",
- "scumbag",
- "bitch"
-];
-
-_function = {
- params ["_camper", "_handle"];
- if (isNull _camper || !alive _camper) exitWith {[_handle] call CBA_fnc_removePerFrameHandler};
- drawIcon3D ["a3\ui_f\data\gui\Rsc\RscDisplayIntel\azimuth_ca.paa", [1,1,1,1], (getPosATL _camper) vectorAdd [0,0,1], 1, 1, 45, format ["%1 (%2m)", name _camper, round (player distance _camper)], 1, 0.04, "PuristaMedium"];
-};
-_handle = [_function, 0, _camper] call CBA_fnc_addPerFrameHandler;
-
-_message = format ["%1 is camping. %2 %3!", _camperName, _order, _insult];
-[_message,0,0,2,0.3] spawn BIS_fnc_dynamicText;
-
-if (isNil "camperNames") then {camperNames = []};
-if (isNil "camperHandles") then {camperHandles = []};
-camperNames pushBack _camperName;
-camperHandles pushBack _handle;
diff --git a/functions/fn_showGRADScoreboard.sqf b/functions/fn_showGRADScoreboard.sqf
deleted file mode 100644
index 57dc8e4..0000000
--- a/functions/fn_showGRADScoreboard.sqf
+++ /dev/null
@@ -1,15 +0,0 @@
-params ["_serverStats"];
-
-_kills = player getVariable ["kills", 0];
-_deaths = player getVariable ["deaths", 0];
-_kd = (_kills max 1) / (_deaths max 1);
-_longestKill = (round ((player getVariable ["longestKill", 0])*10)) / 10;
-_distanceMoved = round (player getVariable ["totalDistance", 0]);
-
-
-_myStats = [
- ["KILLS","DEATHS","K/D","LONGEST KILL","DISTANCE MOVED"],
- [_kills,_deaths,(round (_kd*100))/100,format ["%1m",round _longestKill],format ["%1m",_distanceMoved]]
-];
-
-[20,_serverStats,"GAME OF GUNS LEADERBOARD",false,false,_myStats,"MY STATS THIS GAME",false,false] call grad_scoreboard_fnc_loadScoreboard;
diff --git a/functions/fn_skipVote.sqf b/functions/fn_skipVote.sqf
deleted file mode 100644
index f304d8a..0000000
--- a/functions/fn_skipVote.sqf
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Saves players who voted to skip playzone voting
-*
-* Params:
-* 0: Player who voted
-*/
-
-params ["_player","_add"];
-if (isNil "skipVotePlayers") then {skipVotePlayers = []};
-
-if (_add) then {
- skipVotePlayers pushBackUnique _player;
-} else {
- skipVotePlayers = skipVotePlayers - [_player];
-};
-
-if (count skipVotePlayers == count playableUnits) then {
- diag_log format ["fnc_skipVote - All players are ready to skip. skipVotePlayers: %1", skipVotePlayers];
- VOTINGTIMELEFT = 1;
- skipVotePlayers = nil;
-};
diff --git a/functions/fn_strToVar.sqf b/functions/fn_strToVar.sqf
deleted file mode 100644
index 3734e44..0000000
--- a/functions/fn_strToVar.sqf
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Modifies string so that it can be used as a variable for loadouts
-*
-*/
-
-params ["_inputString"];
-private ["_returnString"];
-
-_letterIDs = toArray _inputString;
-
-//DELETE BRACKETS AND DOTS =====================================================
-_letterIDs = _letterIDs - [40,41,46,91,93,123,125];
-
-//SPACES " " --> "_" ===========================================================
-_letterIDs = _letterIDs apply {if (_x == 32) then {_x = 95; _x} else {_x}};
-
-//UMLAUTS ======================================================================
-_inputString = toString _letterIDs;
-
-_letterArray = _inputString splitString "";
-
-//Ä ==========
-_aumlautID = 0;
-while {_aUmlautID != -1} do {
- _returnString = _letterArray joinString "";
- _aUmlautID = [_returnString, "ä"] call CBA_fnc_find;
- if (_aUmlautID != -1) then {
- _letterArray set [_aUmlautID, "ae"];
- };
-};
-
-_aumlautID = 0;
-while {_aUmlautID != -1} do {
- _returnString = _letterArray joinString "";
- _aUmlautID = [_returnString, "Ä"] call CBA_fnc_find;
- if (_aUmlautID != -1) then {
- _letterArray set [_aUmlautID, "Ae"];
- };
-};
-
-//Ü ==========
-_uUmlautID = 0;
-while {_uUmlautID != -1} do {
- _returnString = _letterArray joinString "";
- _uUmlautID = [_returnString, "ü"] call CBA_fnc_find;
- if (_uUmlautID != -1) then {
- _letterArray set [_uUmlautID, "ue"];
- };
-};
-
-_uUmlautID = 0;
-while {_uUmlautID != -1} do {
- _returnString = _letterArray joinString "";
- _uUmlautID = [_returnString, "Ü"] call CBA_fnc_find;
- if (_uUmlautID != -1) then {
- _letterArray set [_uUmlautID, "Ue"];
- };
-};
-
-//Ö ==========
-_oUmlautID = 0;
-while {_oUmlautID != -1} do {
- _returnString = _letterArray joinString "";
- _oUmlautID = [_returnString, "ö"] call CBA_fnc_find;
- if (_oUmlautID != -1) then {
- _letterArray set [_oUmlautID, "oe"];
- };
-};
-
-_oUmlautID = 0;
-while {_oUmlautID != -1} do {
- _returnString = _letterArray joinString "";
- _oUmlautID = [_returnString, "Ö"] call CBA_fnc_find;
- if (_oUmlautID != -1) then {
- _letterArray set [_oUmlautID, "Oe"];
- };
-};
-
-//remove 65533 character (produced by splitting strings with Umlauts)
-_returnString = _letterArray joinString "";
-_IDarray = toArray _returnString;
-_IDarray = _IDarray - [65533];
-_returnString = toString _IDarray;
-
-_returnString
diff --git a/functions/fn_teleport.sqf b/functions/fn_teleport.sqf
deleted file mode 100644
index a905834..0000000
--- a/functions/fn_teleport.sqf
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Teleports unit
-*
-* Params:
-* 0: unit
-* 1: destination
-*/
-
-if (!hasInterface) exitWith {};
-
-params [["_unit", player], "_pos", ["_allowDamage", true]];
-
-_unit allowDamage false;
-_unit setPos _pos;
-[_unit, _allowDamage] spawn {
- params ["_unit", "_allowDamage"];
- sleep 1;
- if (_allowDamage) then {
- _unit allowDamage true;
- };
-};
diff --git a/functions/fn_updateVotesMarker.sqf b/functions/fn_updateVotesMarker.sqf
deleted file mode 100644
index 1f09adf..0000000
--- a/functions/fn_updateVotesMarker.sqf
+++ /dev/null
@@ -1,35 +0,0 @@
-params ["_areaMarker"];
-
-diag_log format ["fnc_updateVotesMarker - Updating %1.", _areaMarker];
-
-_ySpacing = -100;
-
-_markerID = AREAMARKERS find _areaMarker;
-_votes = MARKERVOTES select _markerID;
-_voteMarker = VOTEMARKERS select _markerID;
-_voters = VOTERS select _markerID;
-_pos = getMarkerPos _areaMarker;
-
-//delete old markers
-_allfound = false;
-_i = 0;
-while {!_allFound} do {
- _oldVoterMarkerName = format ["%1_%2", _voteMarker, _i];
- if (str getMarkerPos _oldVoterMarkerName != "[0,0,0]") then {
- deleteMarker _oldVoterMarkerName;
- } else {
- _allFound = true;
- };
- _i = _i + 1;
-};
-
-//create new markers
-_voteMarker setMarkerText format ["Votes: (%1)", count _voters];
-for [{_i=0}, {_i < count _voters}, {_i=_i+1}] do {
- _voterMarkerName = format ["%1_%2", _voteMarker, _i];
- _voterMarkerPos = _pos vectorAdd [0,_ySpacing * (_i+1),0];
- _voterMarker = createMarker [_voterMarkerName, _voterMarkerPos];
- _voterMarker setMarkerType "hd_dot";
- _voterMarker setMarkerColor "COLORWEST";
- _voterMarker setMarkerText (name (_voters select _i));
-};
diff --git a/functions/fn_upgradeWeapon.sqf b/functions/fn_upgradeWeapon.sqf
deleted file mode 100644
index eb3c377..0000000
--- a/functions/fn_upgradeWeapon.sqf
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Gives player the correct weapon
-*
-* Params:
-* 0: name of group (used for score)
-* 1: score of group
-*/
-
-params ["_score"];
-private ["_weapon","_magazine"];
-
-//player won ===================================================================
-if (_score >= KILLSFORWIN) exitWith {
- {player removeWeapon _x} forEach weapons player;
- {player removeMagazine _x} forEach magazines player;
-};
-
-
-//player hasnt won yet =========================================================
-//get weapon
-_weapon = CHOSENWEAPONS select _score;
-_muzzleItem = MUZZLEITEMS select _score;
-_scope = SCOPES select _score;
-
-//get magazine
-_magazines = getArray (configFile / "CfgWeapons" / _weapon / "magazines");
-_isBlank = true;
-while {_isBlank} do {
- _magazine = selectRandom _magazines;
- _isBlank = ([configFile >> "CfgMagazines" >> _magazine >> "initSpeed", "number", 900] call CBA_fnc_getConfigEntry) < 15;
-};
-
-//remove old weapon and magazines
-{player removeWeapon _x} forEach weapons player;
-{player removeMagazine _x} forEach magazines player;
-
-//add weapon and attachments
-player addMagazine _magazine;
-player addWeapon _weapon;
-player addMagazines [_magazine, 6];
-if (primaryWeapon player == "") then {
- if (_muzzleItem != "EMPTY") then {
- player addHandgunItem _muzzleItem;
- };
- if (_scope != "EMPTY") then {
- player addHandgunItem _scope;
- };
-} else {
- if (_muzzleItem != "EMPTY") then {
- player addPrimaryWeaponItem _muzzleItem;
- };
- if (_scope != "EMPTY") then {
- player addPrimaryWeaponItem _scope;
- };
-};
-
-//update current score
-if (currentScore > _score) then {
- hint "TEAMKILLER!";
-};
-currentScore = _score;
-
-//call dialog
-_layer = (["wait1Layer"] call BIS_fnc_rscLayer);
-_layer cutRsc ["upgradeWeaponTitle", "PLAIN", 0.0001, true];
-
-diag_log format ["fnc_upgradeWeapon - Upgraded weapon to %1 with %2 muzzle attachment.", _weapon, _muzzleItem];
diff --git a/functions/fn_upgradeWeaponTitle.sqf b/functions/fn_upgradeWeaponTitle.sqf
deleted file mode 100644
index 78e6de7..0000000
--- a/functions/fn_upgradeWeaponTitle.sqf
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "..\dialogs\upgradeWeaponTitle\defines.hpp"
-
-params ["_dialog"];
-
-_groupname = player getVariable "groupname";
-_score = call compile _groupname;
-_weapon = CHOSENWEAPONS select _score;
-
-//weapon text
-_displayName = getText (configFile >> "CfgWeapons" >> _weapon >> "displayName");
-_text = format ["(%1/%2) %3",_score+1, KILLSFORWIN, _displayName];
-(_dialog displayCtrl UPGRADEWEAPON_TEXT) ctrlSetText _text;
-
-//weapon picture
-_picturePath = getText (configFile >> "CfgWeapons" >> _weapon >> "picture");
-(_dialog displayCtrl UPGRADEWEAPON_PIC) ctrlSetText _picturePath;
diff --git a/functions/fn_weaponCleanup.sqf b/functions/fn_weaponCleanup.sqf
deleted file mode 100644
index e9a57bc..0000000
--- a/functions/fn_weaponCleanup.sqf
+++ /dev/null
@@ -1,13 +0,0 @@
-
-params ["_pos", "_playerName"];
-/*_unit = (_this select 0) select 0;
-_pos = getPos _unit;*/
-
-sleep 5;
-
-_weaponHolders = nearestObjects [_pos, ["WeaponHolderSimulated"], 20];
-diag_log format ["fn_weaponCleanup - %1 dropped weapons found around %2 (%3). Deleting...", count _weaponHolders, _pos, _playerName];
-
-{
- deleteVehicle _x;
-} forEach _weaponHolders;
diff --git a/functions/missionSetup/cfgFunctions.hpp b/functions/missionSetup/cfgFunctions.hpp
new file mode 100644
index 0000000..8f931ec
--- /dev/null
+++ b/functions/missionSetup/cfgFunctions.hpp
@@ -0,0 +1,19 @@
+class gungame_missionSetup {
+ class missionSetup {
+ class applyUniform {};
+ class applyWeapon {};
+ class buildTheWall {};
+ class init {postInit = 1;};
+ class initCampingProtection {};
+ class initPlayerInPlayzone {};
+ class initPlayersServer {};
+ class initStatsArray {preInit = 1;};
+ class movePlayerToStartPos {};
+ class moveToMapStartPos {};
+ class playAreaSetup {};
+ class removeInitialWeapon {};
+ class scoreBoard {};
+ class setTime {};
+ class setWeather {};
+ };
+};
diff --git a/functions/missionSetup/component.hpp b/functions/missionSetup/component.hpp
new file mode 100644
index 0000000..294288c
--- /dev/null
+++ b/functions/missionSetup/component.hpp
@@ -0,0 +1,2 @@
+#define COMPONENT missionSetup
+#include "..\component.hpp"
diff --git a/functions/missionSetup/fn_applyUniform.sqf b/functions/missionSetup/fn_applyUniform.sqf
new file mode 100644
index 0000000..a17a189
--- /dev/null
+++ b/functions/missionSetup/fn_applyUniform.sqf
@@ -0,0 +1,10 @@
+#include "component.hpp"
+
+if (!hasInterface) exitWith {};
+
+private _uniform = player getVariable [QGVAR(playerUniform),"U_Marshal"];
+private _isWoodLand = toLower ([missionConfigFile >> "cfgGradIslands" >> worldName,"isWoodland",1] call BIS_fnc_returnConfigEntry) == "true";
+private _vest = ["V_TacVest_khk","V_TacVest_oli"] select _isWoodland;
+
+private _radio = player getVariable [QGVAR(radioInstance),"TFAR_anprc152"];
+player setUnitLoadout [[],[],[],[_uniform,[["ACE_fieldDressing",6],["ACE_morphine",4]]],[_vest,[]],[],"","",["","","","",[],[],""],["ItemMap","ItemGPS",_radio,"ItemCompass","ItemWatch",""]];
diff --git a/functions/missionSetup/fn_applyWeapon.sqf b/functions/missionSetup/fn_applyWeapon.sqf
new file mode 100644
index 0000000..78f8e9e
--- /dev/null
+++ b/functions/missionSetup/fn_applyWeapon.sqf
@@ -0,0 +1,52 @@
+#include "component.hpp"
+
+params [["_unit",objNull],"_score"];
+
+if (isNil "_score") then {
+ _score = _unit getVariable [QGVAR(currentScore),0];
+};
+
+private _weapon = EGVAR(selectWeapons,chosenWeapons) param [_score,""];
+private _muzzleItem = EGVAR(selectWeapons,muzzleItems) param [_score,""];
+private _scope = EGVAR(selectWeapons,scopes) param [_score,""];
+
+//get magazine
+private _magazines = getArray (configFile / "CfgWeapons" / _weapon / "magazines");
+private _magazine = _magazines param [0,""];
+
+// disable magazine randomization for now
+/* private _isBlank = true;
+private _magazine = "";
+for [{_i=0},{_i<20},{_i=_i+1}] do {
+ _magazine = selectRandom _magazines;
+ _isBlank = ([configFile >> "CfgMagazines" >> _magazine >> "initSpeed", "number", 900] call CBA_fnc_getConfigEntry) < 15;
+ if (!_isBlank) exitWith {};
+}; */
+
+//remove old weapon and magazines
+{_unit removeWeapon _x} forEach weapons _unit;
+{_unit removeMagazine _x} forEach magazines _unit;
+
+//add weapon and attachments
+_unit addMagazine _magazine;
+_unit addWeapon _weapon;
+_unit addMagazines [_magazine, 6];
+if (primaryWeapon _unit == "") then {
+ if (_muzzleItem != "EMPTY") then {
+ _unit addHandgunItem _muzzleItem;
+ };
+ if (_scope != "EMPTY") then {
+ _unit addHandgunItem _scope;
+ };
+} else {
+ if (_muzzleItem != "EMPTY") then {
+ _unit addPrimaryWeaponItem _muzzleItem;
+ };
+ if (_scope != "EMPTY") then {
+ _unit addPrimaryWeaponItem _scope;
+ };
+};
+
+//call dialog
+_layer = (["wait1Layer"] call BIS_fnc_rscLayer);
+_layer cutRsc ["upgradeWeaponTitle", "PLAIN", 0.0001, true];
diff --git a/functions/missionSetup/fn_buildTheWall.sqf b/functions/missionSetup/fn_buildTheWall.sqf
new file mode 100644
index 0000000..8f1ee43
--- /dev/null
+++ b/functions/missionSetup/fn_buildTheWall.sqf
@@ -0,0 +1,19 @@
+#include "component.hpp"
+
+private _wallCounter = 0;
+private _pi = 3.1415;
+private _wallX = 4;
+private _step = (360 * _wallX) / (2 * _pi * GVAR(playAreaSize));
+private _maxDegree = (360 + _step * (GVAR(playAreaSize) / 230));
+
+for [{_i=1},{_i<=_maxDegree},{_i=_i+_step}] do {
+ _pos = GVAR(playAreaCenter) getPos [GVAR(playAreaSize),_i];
+
+ _wall = createVehicle ["Land_Mil_WallBig_4m_F", _pos,[],0,"CAN_COLLIDE"];
+ _wall setDir _i;
+ _wall enableSimulationGlobal false;
+
+ _wallCounter = _wallCounter + 1;
+};
+
+INFO_2("Playareasize is %1. %2 wall segments created.", GVAR(playAreaSize), _wallCounter);
diff --git a/functions/missionSetup/fn_init.sqf b/functions/missionSetup/fn_init.sqf
new file mode 100644
index 0000000..988b982
--- /dev/null
+++ b/functions/missionSetup/fn_init.sqf
@@ -0,0 +1,83 @@
+#include "component.hpp"
+
+#define CHOOSEUNIFORM_TIMEOUT 30
+
+[{!isNull player || isDedicated},{
+
+ // PLAYER ==================================================================
+ if (hasInterface) then {
+ [] call FUNC(moveToMapStartPos);
+
+ if (didJIP && missionNamespace getVariable [QGVAR(setupDone),false]) exitWith {
+ player setVariable [QGVAR(isSpectator),true,true];
+ player setDamage 1;
+ ["Terminate"] call BIS_fnc_EGSpectator;
+ ["Initialize", [player, [WEST,EAST,INDEPENDENT], true]] call BIS_fnc_EGSpectator;
+ };
+
+ [] call FUNC(removeInitialWeapon);
+
+ player addEventHandler ["Killed", EFUNC(events,onPlayerKilled)];
+ player addEventHandler ["Respawn", EFUNC(events,onPlayerRespawn)];
+
+ [{[] call FUNC(scoreBoard)},1,[]] call CBA_fnc_addPerFrameHandler;
+
+ [{!isNull (findDisplay 46)},{
+ [] call EFUNC(votePlayzone,initPlayer);
+ },[]] call CBA_fnc_waitUntilAndExecute;
+ };
+
+ // SERVER ==================================================================
+ if (isServer) then {
+ missionNamespace setVariable [QGVAR(respawnTime),"RespawnTime" call BIS_fnc_getParamValue,true];
+ missionNamespace setVariable [QGVAR(rankedMode),("RankedMode" call BIS_fnc_getParamValue) == 1,true];
+ missionNamespace setVariable [QGVAR(killsForWin),"KillsForWin" call BIS_fnc_getParamValue,true];
+
+ _timeOfDay = [] call FUNC(setTime);
+ [_timeOfDay] call FUNC(setWeather);
+
+ [{missionNamespace getVariable ["CBA_missionTime",0] > 0},{
+ [] call EFUNC(votePlayzone,initServer);
+ },[]] call CBA_fnc_waitUntilAndExecute;
+
+ private _fnc_setup = {
+
+ [] call FUNC(initPlayersServer);
+ [] call FUNC(playAreaSetup);
+
+ missionNamespace setVariable [QGVAR(setupDone),true,true];
+
+ [{
+ /* ["gungame_notification1",["GUNGAME","Select uniforms!"]] remoteExec ["bis_fnc_showNotification",0,false]; */
+ [CHOOSEUNIFORM_TIMEOUT] remoteExec [QEFUNC(chooseUniform,createChooseUniformDialog),0,false];
+
+ private _fnc_startGame = {
+ ["gungame_notification1",["GUNGAME","Game starting in 10s."]] remoteExec ["bis_fnc_showNotification",0,false];
+ [] remoteExec [QFUNC(applyUniform),0,false];
+ [{
+ ["gungame_notification1",["GUNGAME","Use '#gungame help' for a list of chatcommands."]] remoteExec ["bis_fnc_showNotification",0,false];
+ },[],3] call CBA_fnc_waitAndExecute;
+
+ // wait 10s
+ [{
+ [] call FUNC(movePlayerToStartPos);
+ [] remoteExec [QFUNC(initPlayerInPlayzone),0,false];
+ [] remoteExec [QFUNC(initCampingProtection),0,false];
+ [] remoteExec [QFUNC(scoreBoard),0,false];
+
+ {[_x,0] remoteExecCall [QFUNC(applyWeapon),_x,false]} forEach (allPlayers select {_x getVariable [QGVAR(isPlaying),false]});
+ missionNamespace setVariable [QGVAR(gameStarted),true,true];
+
+ },[],10] call CBA_fnc_waitAndExecute;
+ };
+ [{(allPlayers findIf {!(_x getVariable [QEGVAR(chooseUniform,uniformChosen),false])}) < 0},_fnc_startGame,[],CHOOSEUNIFORM_TIMEOUT + 5,_fnc_startGame] call CBA_fnc_waitUntilAndExecute;
+ },[],5] call CBA_fnc_waitAndExecute;
+ };
+
+ // wait until voting complete
+ [{
+ missionNamespace getVariable [QEGVAR(votePlayzone,votingComplete),false] &&
+ missionNamespace getVariable [QEGVAR(selectWeapons,selectWeaponsComplete),false]
+ },_fnc_setup,[],([missionConfigFile >> "cfgMission","votingTime",60] call BIS_fnc_returnConfigEntry) + 20,_fnc_setup] call CBA_fnc_waitUntilAndExecute;
+ };
+},[]] call CBA_fnc_waitUntilAndExecute;
diff --git a/functions/missionSetup/fn_initCampingProtection.sqf b/functions/missionSetup/fn_initCampingProtection.sqf
new file mode 100644
index 0000000..fc86d0d
--- /dev/null
+++ b/functions/missionSetup/fn_initCampingProtection.sqf
@@ -0,0 +1,78 @@
+#include "component.hpp"
+
+#define AREASIZE 15
+#define CAMPTIME 70
+
+[{
+ params ["_args","_handle"];
+ _args params ["_iteration","_currentArea","_lastPos"];
+
+ if (missionNamespace getVariable [QEGVAR(events,gameEnded),false]) exitWith {
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ };
+
+ if (!alive player) exitWith {
+ _args set [1,nil];
+ _args set [2,nil];
+ };
+
+ if (!isNil "_lastPos") then {
+ _distance = player distance _lastPos;
+ _totalDistance = player getVariable [QGVAR(totalDistance),0];
+ player setVariable [QGVAR(totalDistance),_totalDistance + _distance];
+ };
+ _args set [2,getPos player];
+
+
+ // player moved
+ if (isNil "_currentArea" || {!(player inArea _currentArea)}) then {
+ _currentArea = [getPos player,AREASIZE,AREASIZE,0,false];
+
+ _args set [0,0];
+ _args set [1,_currentArea];
+
+ // player didnt move
+ } else {
+ if !(player getvariable "ACE_isUnconscious") then {
+ _args set [0,_iteration + 1];
+ };
+ };
+
+ // player is camping
+ if (_iteration > CAMPTIME) exitWith {
+
+ ["gungame_notification1",["GUNGAME","Looks like you are camping. You better move."]] spawn bis_fnc_showNotification;
+ [_handle] call CBA_fnc_removePerFrameHandler;
+
+ [{
+ params ["_args","_handle"];
+ _args params ["_iteration","_currentArea","_lastPos"];
+
+ _distance = player distance _lastPos;
+ _totalDistance = player getVariable [QGVAR(totalDistance),0];
+ player setVariable [QGVAR(totalDistance),_totalDistance + _distance];
+
+ // player stopped camping
+ if (!(alive player) || !(player inArea _currentArea)) exitWith {
+ player setVariable [QGVAR(isCamping),false,true];
+ [] call FUNC(initCampingProtection);
+
+ if (alive player) then {
+ ["gungame_notification1",["GUNGAME","Alright, you moved. I'm watching you though."]] spawn bis_fnc_showNotification;
+ };
+
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ };
+
+ // player is still camping
+ if (_iteration > 15 && {!(player getVariable [QGVAR(isCamping),false])}) then {
+ player setVariable [QGVAR(isCamping),true,true];
+ ["gungame_notification1",["GUNGAME","Other players know where you are, camper!"]] spawn bis_fnc_showNotification;
+ [player,profileName] remoteExec [QEFUNC(common,showCamper),0,false];
+ };
+
+ _args set [0,_iteration + 1];
+
+ },1,[0,_currentArea,_lastPos]] call CBA_fnc_addPerFrameHandler;
+ };
+},1,[0]] call CBA_fnc_addPerFrameHandler;
diff --git a/functions/missionSetup/fn_initPlayerInPlayzone.sqf b/functions/missionSetup/fn_initPlayerInPlayzone.sqf
new file mode 100644
index 0000000..8b6d594
--- /dev/null
+++ b/functions/missionSetup/fn_initPlayerInPlayzone.sqf
@@ -0,0 +1,41 @@
+#include "component.hpp"
+
+if (!hasInterface) exitWith {};
+if (!alive player) exitWith {};
+
+[{
+ params ["","_handle"];
+
+ if (!alive player) exitWith {};
+
+ if (player distance2d GVAR(playAreaCenter) > (GVAR(playAreaSize) + 1)) exitWith {
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ ["gungame_notification1",["GUNGAME","Get back inside or die!"]] spawn bis_fnc_showNotification;
+
+ [{
+ params ["_args","_handle"];
+ _args params ["_iterations"];
+
+ if (!alive player) exitWith {
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ [] call FUNC(initPlayerInPlayzone);
+ };
+
+ // player is back inside
+ if (player distance2d GVAR(playAreaCenter) <= (GVAR(playAreaSize) + 1)) exitWith {
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ [] call FUNC(initPlayerInPlayzone);
+ };
+
+ // player has not moved back inside in 5s
+ if (_iterations >= 5) exitWith {
+ player setDamage 1;
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ [] call FUNC(initPlayerInPlayzone);
+ };
+
+ _args set [0,_iterations + 1];
+
+ },1,[0]] call CBA_fnc_addPerFrameHandler;
+ };
+},1,[]] call CBA_fnc_addPerFrameHandler;
diff --git a/functions/missionSetup/fn_initPlayersServer.sqf b/functions/missionSetup/fn_initPlayersServer.sqf
new file mode 100644
index 0000000..098b9cb
--- /dev/null
+++ b/functions/missionSetup/fn_initPlayersServer.sqf
@@ -0,0 +1,32 @@
+#include "component.hpp"
+
+GVAR(allPlayerUIDs) = [];
+{
+ _unit = _x;
+
+ _unit setVariable [QGVAR(isPlaying),true,true];
+ _unit setVariable [QGVAR(kills),0,true];
+ _unit setVariable [QGVAR(deaths),0,true];
+ _unit setVariable [QGVAR(longestKill),0,true];
+ _unit setVariable [QGVAR(eloThisGame),0,true];
+ _unit setVariable [QGVAR(currentScore),0,true];
+ _unit setVariable [QGVAR(radioInstance),format ["TFAR_anprc152_%1",_forEachIndex + 1],true];
+
+ //save UID of everyone who is playing
+ _playerUID = getPlayerUID _unit;
+ GVAR(allPlayerUIDs) pushBack _playerUID;
+
+ //add new players to stats
+ if ([GVAR(statsArray), _playerUID, 1] call EFUNC(common,findStringInArray) == -1) then {
+ //elo, uid, name, [kills, deaths, games]
+ GVAR(statsArray) pushBack [100, _playerUID, name _unit, [0,0,0]];
+ };
+
+ // add to zeus
+ {
+ _x addCuratorEditableObjects [[_unit], true];
+ } forEach allCurators;
+} forEach (playableUnits + switchableUnits);
+saveProfileNamespace;
+
+INFO("fn_initPlayersServer done");
diff --git a/functions/missionSetup/fn_initStatsArray.sqf b/functions/missionSetup/fn_initStatsArray.sqf
new file mode 100644
index 0000000..510f5bc
--- /dev/null
+++ b/functions/missionSetup/fn_initStatsArray.sqf
@@ -0,0 +1,10 @@
+#include "component.hpp"
+
+GVAR(statsArray) = profileNameSpace getVariable "mcd_gameofguns_stats";
+
+if (isNil QGVAR(statsArray)) then {
+ profileNameSpace setVariable ["mcd_gameofguns_stats", []];
+ GVAR(statsArray) = profileNameSpace getVariable "mcd_gameofguns_stats";
+
+ INFO("STATS NOT FOUND ON SERVER. STATS ARRAY HAS BEEN CREATED IN PROFILENAMESPACE.");
+};
diff --git a/functions/missionSetup/fn_movePlayerToStartPos.sqf b/functions/missionSetup/fn_movePlayerToStartPos.sqf
new file mode 100644
index 0000000..b7181db
--- /dev/null
+++ b/functions/missionSetup/fn_movePlayerToStartPos.sqf
@@ -0,0 +1,40 @@
+#include "component.hpp"
+
+private _spawnGroupsMinDist = [missionConfigFile >> "cfgMission","spawnGroupMinDist",50] call BIS_fnc_returnConfigEntry;
+private _startPositions = [];
+
+{
+ _repetitions = 0;
+ _tooCloseFound = true;
+ _startPos = GVAR(playAreaCenter);
+
+ while {_tooCloseFound} do {
+
+ //find position that is not over water
+ _isWater = true;
+ for [{_i=0}, {_i<100}, {_i = _i + 1}] do {
+ _startPos = [GVAR(playAreaCenter),[0,GVAR(playAreaSize) - 25],[0,360]] call EFUNC(common,randomPos);
+ _isWater = surfaceIsWater _startPos;
+ if (!_isWater) exitWith {};
+ };
+
+ if (_isWater) then {INFO_2("Server found only water positions in 100 cycles around %1 with a searchradius of %2.",GVAR(playAreaCenter),GVAR(playAreaSize) - 25)};
+
+ //make sure position is at least SPAWNGROUPMINDIST away from other positions
+ _tooCloseFound = false;
+ {
+ if ((_x distance2D _startPos) < _spawnGroupsMinDist) exitWith {_tooCloseFound = true; INFO_1("Start position for %1 to close to other position. Repeating.", name _x)};
+ } forEach _startPositions;
+
+ //unless this has been repeated too often -> use position anyway
+ if (_repetitions >= 10) then {
+ _tooCloseFound = false;
+ };
+
+ _repetitions = _repetitions + 1;
+ };
+
+ _startPositions pushBack _startPos;
+ [_x,_startPos] remoteExec [QEFUNC(common,teleport),_x,false];
+
+} forEach (allPlayers select {_x getVariable [QGVAR(isPlaying),false]});
diff --git a/functions/missionSetup/fn_moveToMapStartPos.sqf b/functions/missionSetup/fn_moveToMapStartPos.sqf
new file mode 100644
index 0000000..3a85d84
--- /dev/null
+++ b/functions/missionSetup/fn_moveToMapStartPos.sqf
@@ -0,0 +1,8 @@
+#include "component.hpp"
+
+private _mapStartPos = [missionConfigFile >> "cfgGradIslands" >> worldName,"spawnPosBlu",[0,0,0]] call BIS_fnc_returnConfigEntry;
+
+private _pos = _mapStartPos findEmptyPosition [0,30,"B_Soldier_F"];
+if (_pos isEqualTo []) then {_pos = _mapStartPos};
+
+[player,_pos] call EFUNC(common,teleport);
diff --git a/functions/missionSetup/fn_playAreaSetup.sqf b/functions/missionSetup/fn_playAreaSetup.sqf
new file mode 100644
index 0000000..c1a31b2
--- /dev/null
+++ b/functions/missionSetup/fn_playAreaSetup.sqf
@@ -0,0 +1,94 @@
+#include "component.hpp"
+
+// no areas --> random center ==================================================
+if (count EGVAR(votePlayzone,areaMarkers) == 0) then {
+ INFO("No play areas proposed. Selecting at random.");
+
+ _isWater = true;
+ while {_isWater} do {
+ GVAR(playAreaCenter) = [[worldSize/2, worldSize/2, 0], [0, 1000], [0,360]] call EFUNC(common,randomPos);
+ _isWater = surfaceIsWater GVAR(playAreaCenter);
+ };
+
+ _playerAmount = count playableUnits;
+ GVAR(playAreaSize) = (((_playerAmount ^ 0.38) * 500 - 650) max 200);
+ publicVariable QGVAR(playAreaSize);
+
+// select most upvoted =========================================================
+} else {
+
+ _mostUpvotedID = [EGVAR(votePlayzone,markerVotes)] call EFUNC(common,findMax);
+
+ //no single most upvoted
+ if (_mostUpvotedID == -1) then {
+ INFO("No single most upvoted play area. Selecting at random from most upvoted.");
+
+ _mostUpvotedIDs = [];
+ _max = -999999;
+
+ for [{_i=0}, {_i<(count EGVAR(votePlayzone,markerVotes))}, {_i=_i+1}] do {
+ _element = EGVAR(votePlayzone,markerVotes) select _i;
+ if (_element == _max) then {
+ _mostUpvotedIDs pushBack _i;
+ };
+
+ if (_element > _max) then {
+ _max = _element;
+ _mostUpvotedIDs = [];
+ _mostUpvotedIDs pushBack _i;
+ };
+ };
+
+ _randomID = selectRandom _mostUpvotedIDs;
+ _selectedMarker = EGVAR(votePlayzone,areaMarkers) select _randomID;
+ GVAR(playAreaCenter) = getMarkerPos _selectedMarker;
+ GVAR(playAreaSize) = (getMarkerSize _selectedMarker) select 0;
+
+ //most upvoted
+ } else {
+ _selectedMarker = EGVAR(votePlayzone,areaMarkers) select _mostUpvotedID;
+ GVAR(playAreaCenter) = getMarkerPos _selectedMarker;
+ GVAR(playAreaSize) = (getMarkerSize _selectedMarker) select 0;
+ INFO("Most upvoted playarea is %1", _selectedMarker);
+ };
+};
+
+publicVariable QGVAR(playAreaCenter);
+publicVariable QGVAR(playAreaSize);
+
+
+//DELETE VOTING MARKERS ========================================================
+{
+ //delete voter markers
+ _allfound = false;
+ _i = 0;
+ while {!_allFound} do {
+ _oldVoterMarkerName = format ["%1_%2", _x, _i];
+ if (str getMarkerPos _oldVoterMarkerName != "[0,0,0]") then {
+ deleteMarker _oldVoterMarkerName;
+ } else {
+ _allFound = true;
+ };
+ _i = _i + 1;
+ };
+
+ deleteMarker _x;
+} forEach EGVAR(votePlayzone,voteMarkers);
+
+{
+ deleteMarker _x;
+} forEach EGVAR(votePlayzone,areaMarkers);
+
+
+//CREATE PLAY AREA MARKERS =====================================================
+_marker = createMarker [QGVAR(playAreaMarker), GVAR(playAreaCenter)];
+_marker setMarkerColor "COLORWEST";
+_marker setMarkerShape "ELLIPSE";
+_marker setMarkerBrush "Border";
+_marker setMarkerSize [GVAR(playAreaSize),GVAR(playAreaSize)];
+
+
+//BUILD WALL ===================================================================
+[] call FUNC(buildTheWall);
+
+INFO("fn_playAreaSetup done");
diff --git a/functions/missionSetup/fn_removeInitialWeapon.sqf b/functions/missionSetup/fn_removeInitialWeapon.sqf
new file mode 100644
index 0000000..ab8919b
--- /dev/null
+++ b/functions/missionSetup/fn_removeInitialWeapon.sqf
@@ -0,0 +1,3 @@
+#include "component.hpp"
+
+player setUnitLoadout [[],[],[],["U_Marshal",[]],[],[],"","",[],["ItemMap","ItemGPS","","ItemCompass","ItemWatch",""]];
diff --git a/functions/missionSetup/fn_scoreBoard.sqf b/functions/missionSetup/fn_scoreBoard.sqf
new file mode 100644
index 0000000..68e9d66
--- /dev/null
+++ b/functions/missionSetup/fn_scoreBoard.sqf
@@ -0,0 +1,60 @@
+#include "component.hpp"
+#include "..\..\dialog\scoreboard\defines.hpp"
+
+if (!hasInterface) exitWith {};
+if !(missionNamespace getVariable [QGVAR(gameStarted),false]) exitWith {};
+
+private ["_display", "_teamScore", "_teamName"];
+if (!alive player) exitWith {};
+disableSerialization;
+
+private _allPlayingPlayers = allPlayers select {_x getVariable [QGVAR(isPlaying),false]};
+private _allPlayingPlayersScores = _allPlayingPlayers apply {[_x getVariable [QGVAR(currentScore),0],_x]};
+_allPlayingPlayersScores sort false;
+
+private _display = uiNamespace getVariable "ScoreBoard_Display";
+if (isNil "_display" || {isNull _display}) then {
+ cutRsc ["ScoreBoard", "PLAIN", 1];
+ _display = uiNamespace getVariable "ScoreBoard_Display";
+};
+
+private _fnc_addUnitScore = {
+ _scoreBoardItem ctrlSetBackgroundColor [0,0,0,0.4];
+ _scoreBoardItem ctrlSetText (_unit getVariable ["ACE_Name","ERROR: NO NAME"]);
+ _scoreBoardScore ctrlSetBackgroundColor [0,0,0,0.4];
+ _scoreBoardScore ctrlSetText str _score;
+};
+
+private _fnc_hideRow = {
+ _scoreBoardItem ctrlSetBackgroundColor [0,0,0,0];
+ _scoreBoardItem ctrlSetText "";
+ _scoreBoardScore ctrlSetBackgroundColor [0,0,0,0];
+ _scoreBoardScore ctrlSetText "";
+};
+
+private _playerRank = _allPlayingPlayersScores find [player getVariable [QGVAR(currentScore),0],player];
+private _maxID = count _allPlayingPlayers;
+for [{_i=0}, {_i < 5}, {_i=_i+1}] do {
+ _scoreBoardItem = _display displayCtrl SCOREBOARD_ITEM1 + _i;
+ _scoreBoardScore = _display displayCtrl SCOREBOARD_SCORE1 + _i;
+
+ if (_i < _maxID) then {
+ (_allPlayingPlayersScores param [_i,[0,objNull]]) params ["_score","_unit"];
+
+ // skip fourth row if player is lower than rank 5 to indicate gap
+ if (_i == 3 && _playerRank > 4) then {
+ _scoreBoardItem ctrlSetBackgroundColor [0,0,0,0.4];
+ _scoreBoardItem ctrlSetText "...";
+ _scoreBoardScore ctrlSetBackgroundColor [0,0,0,0];
+ _scoreBoardScore ctrlSetText "";
+ } else {
+ // display player in fifth row even if rank is lower
+ if (_i == 4 && _playerRank > 4) then {
+ _score = player getVariable [QGVAR(currentScore),0];
+ _unit = player;
+ call _fnc_addUnitScore;
+ } else _fnc_addUnitScore;
+ };
+ } else _fnc_hideRow;
+
+};
diff --git a/functions/missionSetup/fn_setTime.sqf b/functions/missionSetup/fn_setTime.sqf
new file mode 100644
index 0000000..0e89785
--- /dev/null
+++ b/functions/missionSetup/fn_setTime.sqf
@@ -0,0 +1,16 @@
+#include "component.hpp"
+
+private _timeOfDay = "TimeOfDay" call BIS_fnc_getParamValue;
+
+//random
+if (_timeOfDay == 1000) then {
+ _availableSettings = getArray (missionConfigFile >> "Params" >> "TimeOfDay" >> "values");
+ _availableSettings = _availableSettings - [1000];
+ _timeOfDay = selectRandom _availableSettings;
+};
+
+INFO_1("Setting time to %1:00",_timeOfDay);
+
+[[2015, 2, 5, _timeOfDay, 0]] call bis_fnc_setDate;
+
+_timeOfDay
diff --git a/functions/missionSetup/fn_setWeather.sqf b/functions/missionSetup/fn_setWeather.sqf
new file mode 100644
index 0000000..d80b5b5
--- /dev/null
+++ b/functions/missionSetup/fn_setWeather.sqf
@@ -0,0 +1,38 @@
+#include "component.hpp"
+
+params ["_timeOfDay"];
+
+//OVERCAST =====================================================================
+private _overcast = 0;
+private _weatherSetting = "WeatherSetting" call BIS_fnc_getParamValue;
+
+//random
+if (_weatherSetting == -1) then {
+ _availableSettings = getArray (missionConfigFile >> "Params" >> "WeatherSetting" >> "values");
+ _availableSettings = _availableSettings - [-1];
+ _overcast = selectRandom _availableSettings;
+
+//fixed
+} else {
+ _overcast = _weatherSetting;
+};
+
+INFO_1("Setting overcast to %1.", _overcast);
+[_overcast * 0.01] call bis_fnc_setOvercast;
+
+//FOG ==========================================================================
+private _mid = 0.03;
+//extra chance of fog when its raining
+if (_overcast >= 75) then {
+ _mid = _mid + 0.08;
+};
+//extra chance of fog in the morning
+if (_timeOfDay <= 8) then {
+ _mid = _mid + 0.12;
+};
+
+private _fog = random [0,_mid,0.4];
+
+INFO_1("Setting fog to %1.", _fog);
+
+0 setFog _fog;
diff --git a/functions/selectWeapons/cfgFunctions.hpp b/functions/selectWeapons/cfgFunctions.hpp
new file mode 100644
index 0000000..edb2976
--- /dev/null
+++ b/functions/selectWeapons/cfgFunctions.hpp
@@ -0,0 +1,12 @@
+class gungame_selectWeapons {
+ class selectWeapons {
+ class blacklistUtility {};
+ class getAllAvailableWeapons {};
+ class hasDamagingDefaultMag {};
+ class isSniper {};
+ class receiveOwnedDlcs {};
+ class selectWeapons {postInit = 1;};
+ class sendOwnedDlcs {preInit = 1;};
+ class weaponInOwnedDlcs {};
+ };
+};
diff --git a/functions/selectWeapons/component.hpp b/functions/selectWeapons/component.hpp
new file mode 100644
index 0000000..25558ff
--- /dev/null
+++ b/functions/selectWeapons/component.hpp
@@ -0,0 +1,2 @@
+#define COMPONENT selectWeapons
+#include "..\component.hpp"
diff --git a/functions/selectWeapons/fn_blacklistUtility.sqf b/functions/selectWeapons/fn_blacklistUtility.sqf
new file mode 100644
index 0000000..9a8f0eb
--- /dev/null
+++ b/functions/selectWeapons/fn_blacklistUtility.sqf
@@ -0,0 +1,103 @@
+#include "component.hpp"
+
+#define IDC_LISTBOX 100
+
+#define TOTAL_W 0.5
+#define TOTAL_H 1.0
+#define TOTAL_X 0.0
+#define TOTAL_Y 0.0
+
+#define BUTTON_H (TOTAL_H * 0.05)
+
+([false] call FUNC(getAllAvailableWeapons)) params ["_allAvailableRifles","_allAvailablePistols"];
+
+private _checkboxTextures = [
+ tolower gettext (configfile >> "RscCheckBox" >> "textureUnchecked"),
+ tolower gettext (configfile >> "RscCheckBox" >> "textureChecked")
+];
+
+private _weaponBlacklist = [missionConfigFile >> "cfgMission","weaponBlacklist",[]] call BIS_fnc_returnConfigEntry;
+
+// CREATE DIALOG ===============================================================
+disableSerialization;
+private _display = (findDisplay 46) createDisplay "RscDisplayEmpty";
+
+private _ctrlBg = _display ctrlCreate ["RscBackground",-1];
+_ctrlBg ctrlSetPosition [TOTAL_X,TOTAL_Y,TOTAL_W,TOTAL_H];
+_ctrlBg ctrlCommit 0;
+
+private _ctrlListbox = _display ctrlCreate ["mcd_lbMulti",IDC_LISTBOX];
+_ctrlListbox ctrlSetPosition [TOTAL_X,TOTAL_Y,TOTAL_W,TOTAL_H];
+_ctrlListbox ctrlCommit 0;
+
+private _ctrlButtonToggle = _display ctrlCreate ["RscButton",-1];
+_ctrlButtonToggle ctrlSetPosition [TOTAL_X,TOTAL_Y + TOTAL_H,TOTAL_W / 2,BUTTON_H];
+_ctrlButtonToggle ctrlSetText "TOGGLE";
+_ctrlButtonToggle ctrlCommit 0;
+
+private _ctrlButtonExport = _display ctrlCreate ["RscButton",-1];
+_ctrlButtonExport ctrlSetPosition [TOTAL_X + TOTAL_W / 2,TOTAL_Y + TOTAL_H,TOTAL_W / 2,BUTTON_H];
+_ctrlButtonExport ctrlSetText "EXPORT";
+_ctrlButtonExport ctrlCommit 0;
+
+// FILL LISTBOX ================================================================
+{
+ _id = _ctrlListbox lbAdd ([configfile >> "cfgWeapons" >> _x,"displayName","ERROR: NO NAME"] call BIS_fnc_returnConfigEntry);
+ _ctrlListbox lbSetTooltip [_id,_x];
+ _ctrlListbox lbSetData [_id,_x];
+
+ _ctrlListbox lbSetPictureColor [_id,[1,1,1,1]];
+ _ctrlListbox lbSetPicture [_id,[_x] call EFUNC(common,getPicturePath)];
+
+ _ctrlListbox lbSetPictureRightColor [_id,[1,1,1,1]];
+ _ctrlListbox lbSetPictureRight [_id,_checkboxTextures select (_x in _weaponBlacklist)];
+} forEach (_allAvailableRifles + _allAvailablePistols);
+
+// BUTTON TOGGLE ===============================================================
+_ctrlButtonToggle ctrlAddEventHandler ["ButtonClick",{
+ params ["_ctrlButton"];
+
+ disableSerialization;
+
+ private _checkboxTextures = [
+ tolower gettext (configfile >> "RscCheckBox" >> "textureUnchecked"),
+ tolower gettext (configfile >> "RscCheckBox" >> "textureChecked")
+ ];
+
+ private _display = ctrlParent _ctrlButton;
+ if (isNull _display) exitWith {};
+
+ private _ctrlListbox = _display displayCtrl IDC_LISTBOX;
+ private _sel = lbSelection _ctrlListbox;
+
+ if (count _sel == 0) exitWith {};
+ private _firstElementValue = _ctrlListbox lbValue (_sel select 0);
+
+ {
+ _ctrlListbox lbSetValue [_x,[1,0] select _firstElementValue];
+ _ctrlListbox lbSetPictureRight [_x,_checkboxTextures select (_firstElementValue == 0)];
+ } forEach _sel;
+}];
+
+// BUTTON EXPORT ===============================================================
+_ctrlButtonExport ctrlAddEventHandler ["ButtonClick",{
+ params ["_ctrlButton"];
+
+ disableSerialization;
+
+ private _display = ctrlParent _ctrlButton;
+ if (isNull _display) exitWith {};
+
+ private _textArray = [];
+
+ private _ctrlListbox = _display displayCtrl IDC_LISTBOX;
+ for [{_i=0},{_i < lbSize _ctrlListbox},{_i=_i+1}] do {
+ if ((_ctrlListbox lbValue _i) == 1) then {
+ _textArray pushBack (_ctrlListbox lbData _i);
+ };
+ };
+
+ playSound "addItemOK";
+ systemChat format ["Exported %1 items.",count _textArray];
+ copyToClipboard (_textArray joinString (toString [44,13,10]));
+}];
diff --git a/functions/selectWeapons/fn_getAllAvailableWeapons.sqf b/functions/selectWeapons/fn_getAllAvailableWeapons.sqf
new file mode 100644
index 0000000..8476fd5
--- /dev/null
+++ b/functions/selectWeapons/fn_getAllAvailableWeapons.sqf
@@ -0,0 +1,40 @@
+#include "component.hpp"
+
+params [["_useBlacklist",true]];
+
+private _allPlayerOwnedDlcs = missionNamespace getVariable [QGVAR(allPlayerOwnedDlcsIntersect),[]];
+
+private _allCfgWeapons = "(getNumber (_x >> 'scope')) == 2" configClasses (configFile >> "cfgWeapons");
+
+private _allAvailableRifles = [];
+private _allAvailablePistols = [];
+private _allUsedModels = [];
+
+private _weaponBlacklist = [missionConfigFile >> "cfgMission","weaponBlacklist",[]] call BIS_fnc_returnConfigEntry;
+
+{
+ if (
+ [_x] call FUNC(weaponInOwnedDlcs) &&
+ {!_useBlacklist || !(_x in _weaponBlacklist)} &&
+ {[_x] call FUNC(hasDamagingDefaultMag)}
+ ) then {
+
+ // filter duplicates (optics variants)
+ _baseWeapon = [configFile >> "cfgWeapons" >> _x,"baseWeapon",_x] call BIS_fnc_returnConfigEntry;
+
+ // filter duplicates (textures)
+ _model = [configFile >> "cfgWeapons" >> _x,"model",""] call BIS_fnc_returnConfigEntry;
+ if !(_model in _allUsedModels) then {
+ _allUsedModels pushBack _model;
+
+ if (_baseWeapon isKindOf ["Rifle",configFile >> "cfgWeapons"]) then {
+ _allAvailableRifles pushBackUnique _baseWeapon;
+ };
+ if (_baseWeapon isKindOf ["Pistol",configFile >> "cfgWeapons"]) then {
+ _allAvailablePistols pushBackUnique _baseWeapon;
+ };
+ };
+ };
+} forEach (_allCfgWeapons apply {configName _x});
+
+[_allAvailableRifles,_allAvailablePistols]
diff --git a/functions/selectWeapons/fn_hasDamagingDefaultMag.sqf b/functions/selectWeapons/fn_hasDamagingDefaultMag.sqf
new file mode 100644
index 0000000..49aff50
--- /dev/null
+++ b/functions/selectWeapons/fn_hasDamagingDefaultMag.sqf
@@ -0,0 +1,35 @@
+#include "component.hpp"
+
+params [["_weaponClass",""]];
+
+private _defaultMag = ([configFile >> "cfgWeapons" >> _weaponClass,"magazines",[]] call BIS_fnc_returnConfigEntry) param [0,""];
+if (_defaultMag == "") exitWith {false};
+
+private _ammo = [configFile >> "cfgMagazines" >> _defaultMag,"ammo",""] call BIS_fnc_returnConfigEntry;
+if (_ammo == "") exitWith {false};
+
+if (_ammo isKindOf ["FlareCore",configFile >> "cfgAmmo"]) exitWith {false};
+
+if (_ammo isKindOf ["GrenadeCore",configFile >> "cfgAmmo"]) exitWith {
+ ([configFile >> "cfgAmmo" >> _ammo,"dangerRadiusHit",-1] call BIS_fnc_returnConfigEntry) <= 0
+};
+
+private _fnc_checkBullet = {
+ (_ammo isKindOf ["BulletCore",configFile >> "cfgAmmo"]) &&
+ (([configfile >> "CfgAmmo" >> _ammo,"hit",0] call BIS_fnc_returnConfigEntry) > 0)
+};
+
+private _isDamaging = ([configFile >> "CfgMagazines" >> _defaultMag >> "initSpeed", "number", 900] call CBA_fnc_getConfigEntry) > 15;
+if (_isDamaging) then {
+ _isDamaging = [] call _fnc_checkBullet;
+};
+
+if (!_isDamaging) then {
+ private _subMunition = ([configfile >> "CfgAmmo" >> _ammo,"submunitionAmmo",[]] call BIS_fnc_returnConfigEntry) param [0,""];
+ if (_subMunition != "") then {
+ _ammo = _subMunition;
+ };
+ _isDamaging = [] call _fnc_checkBullet;
+};
+
+_isDamaging
diff --git a/functions/selectWeapons/fn_isSniper.sqf b/functions/selectWeapons/fn_isSniper.sqf
new file mode 100644
index 0000000..d74e1ab
--- /dev/null
+++ b/functions/selectWeapons/fn_isSniper.sqf
@@ -0,0 +1,15 @@
+#include "component.hpp"
+
+params [["_weaponClass",""]];
+
+if (_weaponClass == "") exitWith {false};
+
+private _isSniper = true;
+private _fireModes = getArray (configFile >> "CfgWeapons" >> _weapon >> "modes");
+
+if (_fireModes find "FullAuto" != -1) then {_isSniper = false};
+if (_fireModes find "Burst" != -1) then {_isSniper = false};
+if (_fireModes find "Single" == -1) then {_isSniper = false};
+if (count _fireModes <= 1) then {_isSniper = false};
+
+_isSniper
diff --git a/functions/selectWeapons/fn_receiveOwnedDlcs.sqf b/functions/selectWeapons/fn_receiveOwnedDlcs.sqf
new file mode 100644
index 0000000..e526e07
--- /dev/null
+++ b/functions/selectWeapons/fn_receiveOwnedDlcs.sqf
@@ -0,0 +1,11 @@
+#include "component.hpp"
+
+params [["_ownedDlcs",[]]];
+
+if (isNil QGVAR(allPlayerOwnedDlcsIntersect)) then {
+ GVAR(allPlayerOwnedDlcsIntersect) = _ownedDlcs;
+} else {
+ GVAR(allPlayerOwnedDlcsIntersect) = GVAR(allPlayerOwnedDlcsIntersect) arrayIntersect _ownedDlcs;
+};
+
+GVAR(receivedDlcsCount) = (missionNamespace getVariable [QGVAR(receivedDlcsCount),0]) + 1;
diff --git a/functions/selectWeapons/fn_selectWeapons.sqf b/functions/selectWeapons/fn_selectWeapons.sqf
new file mode 100644
index 0000000..9ce44a7
--- /dev/null
+++ b/functions/selectWeapons/fn_selectWeapons.sqf
@@ -0,0 +1,122 @@
+#include "component.hpp"
+
+#define INITIALWAITTIME 10
+#define WAITTIMEOUT 60
+
+if (!isServer) exitWith {};
+
+private _fnc_selectWeapons = {
+ GVAR(chosenWeapons) = [];
+ GVAR(muzzleItems) = [];
+ GVAR(scopes) = [];
+ private _weaponsNeeded = EGVAR(missionSetup,killsForWin);
+
+ ([] call FUNC(getAllAvailableWeapons)) params ["_availableRifles","_availablePistols"];
+
+ private _numberOfPistols = (round (_weaponsNeeded / 5)) min 6;
+ for "_i" from 1 to (_weaponsNeeded - _numberOfPistols) do {
+ GVAR(chosenWeapons) pushBack selectRandom _availableRifles;
+ };
+ for "_j" from 1 to _numberOfPistols do {
+ GVAR(chosenWeapons) pushBack selectRandom _availablePistols;
+ };
+
+ // CHOOSE MUZZLE ATTACHMENTS ===================================================
+ private _muzzleAttachmentProb = [missionConfigFile >> "cfgMission","muzzleAttachmentProbability",40] call BIS_fnc_returnConfigEntry;
+ {
+ if (random 100 <= _muzzleAttachmentProb) then {
+ _weapon = _x;
+ _cfg = (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems");
+ _allMuzzleItems = getArray _cfg;
+
+ //RHS is stupid
+ if (count _allMuzzleItems == 0) then {
+ _attributes = configProperties [_cfg, "true", true];
+ {
+ _str = str (_x);
+ _strArray = _str splitString "/";
+ _attachmentName = _strArray select ((count _strArray) - 1);
+ if ((getNumber (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems" >> _attachmentName)) == 1) then {
+ _allMuzzleItems pushBack _attachmentName;
+ };
+ } forEach _attributes;
+ };
+
+ if (count _allMuzzleItems == 0) then {
+ GVAR(muzzleItems) pushBack "EMPTY";
+ } else {
+ _muzzleItem = selectRandom _allMuzzleItems;
+ GVAR(muzzleItems) pushBack _muzzleItem;
+ };
+
+ } else {
+ GVAR(muzzleItems) pushBack "EMPTY";
+ };
+ } forEach GVAR(chosenWeapons);
+
+ // CHOOSE GVAR(scopes) ===============================================================
+ private _scopesProb = [missionConfigFile >> "cfgMission","scopesProbability",60] call BIS_fnc_returnConfigEntry;
+ {
+ private _weapon = _x;
+ private _probability = _scopesProb;
+ if ([_weapon] call FUNC(isSniper)) then {_probability = 100};
+
+ if (random 100 <= _probability) then {
+ _attributes = configProperties [(configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems"),"true",true];
+ _compatibleScopes = [];
+
+ {
+ _str = str (_x);
+ _strArray = _str splitString "/";
+ _scopeName = _strArray select ((count _strArray) -1);
+ _compatibleScopes pushBack _scopeName;
+ } forEach _attributes;
+
+ if (count _compatibleScopes == 0) then {
+ _compatibleScopes = getArray (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems");
+ };
+
+ if (count _compatibleScopes > 0) then {
+ GVAR(scopes) pushBack selectRandom _compatibleScopes;
+ } else {
+ GVAR(scopes) pushBack "EMPTY";
+ };
+
+ } else {
+ GVAR(scopes) pushBack "EMPTY";
+ };
+ } forEach GVAR(chosenWeapons);
+
+ //GAME MODE ====================================================================
+ switch ("GameMode" call BIS_fnc_getParamValue) do {
+ case 0: {};
+ case 1: {
+ reverse GVAR(chosenWeapons);
+ reverse GVAR(muzzleItems);
+ reverse GVAR(scopes);
+ };
+ case 2: {
+ [GVAR(chosenWeapons), GVAR(muzzleItems), GVAR(scopes)] call mcd_fnc_randomizeArrays;
+ };
+ };
+
+ //BROADCAST ================================================================
+ publicVariable QGVAR(chosenWeapons);
+ publicVariable QGVAR(muzzleItems);
+ publicVariable QGVAR(scopes);
+
+ //LOG ======================================================================
+ INFO("Weapons selected:");
+ {
+ _muzzle = GVAR(muzzleItems) param [_forEachIndex,""];
+ _scope = GVAR(scopes) param [_forEachIndex,""];
+ INFO_3("%1, %2, %3",_x,_muzzle,_scope);
+ } forEach GVAR(chosenWeapons);
+
+ // COMPLETE ================================================================
+ missionNamespace setVariable [QGVAR(selectWeaponsComplete),true,true];
+};
+
+[{
+ [{count allPlayers >= GVAR(receivedDlcsCount)},_this,[],WAITTIMEOUT,_this] call CBA_fnc_waitUntilAndExecute;
+},_fnc_selectWeapons,INITIALWAITTIME] call CBA_fnc_waitAndExecute;
diff --git a/functions/selectWeapons/fn_sendOwnedDlcs.sqf b/functions/selectWeapons/fn_sendOwnedDlcs.sqf
new file mode 100644
index 0000000..e0f912f
--- /dev/null
+++ b/functions/selectWeapons/fn_sendOwnedDlcs.sqf
@@ -0,0 +1,6 @@
+#include "component.hpp"
+#define OWNED_DLCS 1
+
+if (!hasInterface) exitWith {};
+
+[getDLCs OWNED_DLCS] remoteExecCall [QFUNC(receiveOwnedDlcs),2,false];
diff --git a/functions/selectWeapons/fn_weaponInOwnedDlcs.sqf b/functions/selectWeapons/fn_weaponInOwnedDlcs.sqf
new file mode 100644
index 0000000..cd1ccf7
--- /dev/null
+++ b/functions/selectWeapons/fn_weaponInOwnedDlcs.sqf
@@ -0,0 +1,17 @@
+#include "component.hpp"
+
+params [["_weaponClass",""]];
+
+private _addons = configsourceaddonlist (configfile >> "CfgWeapons" >> _weaponClass); // e.g.: ["A3_Characters_F_Enoch"]
+if (count _addons == 0) exitWith {true};
+
+private _dlcs = configsourcemodlist (configfile >> "CfgPatches" >> (_addons param [0,""]));
+if (count _dlcs == 0) exitWith {true};
+
+private _appID = [configfile >> "cfgMods" >> (_dlcs param [0,""]),"appId",-1] call BIS_fnc_returnConfigEntry;
+if (_appID < 0) exitWith {true};
+
+private _allPlayerOwnedDlcs = missionNamespace getVariable [QGVAR(allPlayerOwnedDlcsIntersect),[]];
+if (count _allPlayerOwnedDlcs == 0) exitWith {true};
+
+_appID in _allPlayerOwnedDlcs
diff --git a/functions/votePlayzone/cfgFunctions.hpp b/functions/votePlayzone/cfgFunctions.hpp
new file mode 100644
index 0000000..22d567b
--- /dev/null
+++ b/functions/votePlayzone/cfgFunctions.hpp
@@ -0,0 +1,16 @@
+class gungame_votePlayzone {
+ class votePlayzone {
+ class exitVotingPlayer {};
+ class initPlayer {};
+ class initServer {};
+ class onKeyDown {};
+ class onMouseButtonDown {};
+ class onMouseButtonUp {};
+ class onMouseMoving {};
+ class receiveVote {};
+ class setVoteDialogText {};
+ class skipVote {};
+ class updateVotesMarker {};
+ class voteDialog {};
+ };
+};
diff --git a/functions/votePlayzone/component.hpp b/functions/votePlayzone/component.hpp
new file mode 100644
index 0000000..3d95439
--- /dev/null
+++ b/functions/votePlayzone/component.hpp
@@ -0,0 +1,2 @@
+#define COMPONENT votePlayzone
+#include "..\component.hpp"
diff --git a/functions/votePlayzone/fn_exitVotingPlayer.sqf b/functions/votePlayzone/fn_exitVotingPlayer.sqf
new file mode 100644
index 0000000..64cdd9d
--- /dev/null
+++ b/functions/votePlayzone/fn_exitVotingPlayer.sqf
@@ -0,0 +1,30 @@
+#include "component.hpp"
+
+private _map = (findDisplay 12 displayCtrl 51);
+
+deleteMarkerLocal QGVAR(currentMarker);
+
+_map ctrlRemoveEventHandler ["MouseButtonDown", GVAR(mouseButtonDownEH)];
+_map ctrlRemoveEventHandler ["MouseButtonUp", GVAR(mouseButtonUpEH)];
+_map ctrlRemoveEventHandler ["MouseMoving", missionNamespace getVariable [QGVAR(mouseMovingEH),-1]];
+
+(findDisplay 46) displayRemoveEventHandler ["KeyDown", GVAR(keydownEH)];
+
+GVAR(recommendedMin) = nil;
+GVAR(recommendedMax) = nil;
+GVAR(recommendedLabelDist) = nil;
+GVAR(mouseButtonDownEH) = nil;
+GVAR(mouseButtonUpEH) = nil;
+GVAR(mouseMovingEH) = nil;
+GVAR(keydownEH) = nil;
+GVAR(mouseEventRuning) = nil;
+GVAR(markerStartPos) = nil;
+GVAR(currentMarker) = nil;
+GVAR(distanceMarker) = nil;
+GVAR(recommendedMinMarker) = nil;
+GVAR(recommendedMaxMarker) = nil;
+GVAR(recommendedLabelMarker) = nil;
+GVAR(markerEndPos) = nil;
+GVAR(markerStartPos) = nil;
+
+openMap [false,false];
diff --git a/functions/votePlayzone/fn_initPlayer.sqf b/functions/votePlayzone/fn_initPlayer.sqf
new file mode 100644
index 0000000..5aac06c
--- /dev/null
+++ b/functions/votePlayzone/fn_initPlayer.sqf
@@ -0,0 +1,26 @@
+#include "component.hpp"
+
+if (missionNamespace getVariable [QGVAR(votingComplete),false]) exitWith {};
+
+openMap [true, true];
+[] call FUNC(voteDialog);
+
+GVAR(playzoneSkipVote) = false;
+
+private _recommendedMid = sqrt((count playableUnits) * (45000 / 3.1415));
+GVAR(recommendedMin) = ((round ((_recommendedMid * 0.75)/10)) *10);
+GVAR(recommendedMax) = ((round ((_recommendedMid * 1.25)/10)) *10);
+GVAR(recommendedLabelDist) = ((sin 45) * GVAR(recommendedMax)) * 1.1;
+
+
+// ADD EHs =====================================================================
+disableSerialization;
+private _map = (findDisplay 12 displayCtrl 51);
+GVAR(mouseButtonDownEH) = _map ctrlAddEventHandler ["MouseButtonDown", QUOTE(_this call FUNC(onMouseButtonDown))];
+GVAR(mouseButtonUpEH) = _map ctrlAddEventHandler ["MouseButtonUp", QUOTE(_this call FUNC(onMouseButtonUp))];
+GVAR(keydownEH) = (findDisplay 46) displayAddEventHandler ["KeyDown", QUOTE(_this call FUNC(onKeyDown))];
+
+
+// EXIT VOTING =================================================================
+private _waitUntil = {missionNamespace getVariable [QGVAR(votingComplete),false]};
+[_waitUntil,FUNC(exitVotingPlayer),[]] call CBA_fnc_waitUntilAndExecute;
diff --git a/functions/votePlayzone/fn_initServer.sqf b/functions/votePlayzone/fn_initServer.sqf
new file mode 100644
index 0000000..bf3ec20
--- /dev/null
+++ b/functions/votePlayzone/fn_initServer.sqf
@@ -0,0 +1,21 @@
+#include "component.hpp"
+
+// declare storage arrays
+if (isNil QGVAR(areaMarkers)) then {GVAR(areaMarkers) = []};
+if (isNil QGVAR(voteMarkers)) then {GVAR(voteMarkers) = []};
+if (isNil QGVAR(markerVotes)) then {GVAR(markerVotes) = []};
+if (isNil QGVAR(voters)) then {GVAR(voters) = []};
+
+GVAR(votingTimeLeft) = [missionConfigFile >> "cfgMission","votingTime",60] call BIS_fnc_returnConfigEntry;
+
+[{
+ params ["","_handle"];
+
+ missionNamespace setVariable [QGVAR(votingTimeLeft),GVAR(votingTimeLeft) - 1,true];
+
+ if (GVAR(votingTimeLeft) <= 0) exitWith {
+ missionNamespace setVariable [QGVAR(votingComplete),true,true];
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ };
+
+},1,[]] call CBA_fnc_addPerFrameHandler;
diff --git a/functions/votePlayzone/fn_onKeyDown.sqf b/functions/votePlayzone/fn_onKeyDown.sqf
new file mode 100644
index 0000000..2cbb569
--- /dev/null
+++ b/functions/votePlayzone/fn_onKeyDown.sqf
@@ -0,0 +1,12 @@
+#include "component.hpp"
+
+params ["",["_DIK",-1]];
+
+if (missionNamespace getVariable [QGVAR(votingComplete),false]) exitWith {};
+
+if (_DIK == 28 || _DIK == 156) then {
+ (findDisplay 46) displayRemoveEventHandler ["KeyDown", GVAR(keydownEH)];
+ GVAR(playzoneSkipVote) = true;
+ [player,true] remoteExec [QFUNC(skipVote),2,false];
+ true
+};
diff --git a/functions/votePlayzone/fn_onMouseButtonDown.sqf b/functions/votePlayzone/fn_onMouseButtonDown.sqf
new file mode 100644
index 0000000..50d5a72
--- /dev/null
+++ b/functions/votePlayzone/fn_onMouseButtonDown.sqf
@@ -0,0 +1,46 @@
+#include "component.hpp"
+
+params ["_control", "_button", "_xScreen", "_yScreen"];
+
+if (_button != 0) exitWith {};
+if (missionNamespace getVariable [QGVAR(votingComplete),false]) exitWith {};
+
+
+if (missionNamespace getVariable [QGVAR(mouseEventRuning),false]) exitWith {};
+GVAR(mouseEventRuning) = true;
+
+GVAR(markerStartPos) = _control ctrlMapScreenToWorld [_xScreen,_yScreen];
+
+deleteMarkerLocal QGVAR(currentMarker);
+GVAR(currentMarker) = createMarkerLocal [QGVAR(currentMarker),GVAR(markerStartPos)];
+GVAR(currentMarker) setMarkerColorLocal "COLORWEST";
+GVAR(currentMarker) setMarkerShapeLocal "ELLIPSE";
+GVAR(currentMarker) setMarkerBrushLocal "Border";
+GVAR(currentMarker) setMarkerSizeLocal [1,1];
+
+deleteMarkerLocal QGVAR(distanceMarker);
+GVAR(distanceMarker) = createMarkerLocal [QGVAR(distanceMarker),GVAR(markerStartPos)];
+GVAR(distanceMarker) setMarkerColorLocal "COLORWEST";
+GVAR(distanceMarker) setMarkerTypeLocal "hd_dot";
+
+deleteMarkerLocal QGVAR(recommendedMinMarker);
+GVAR(recommendedMinMarker) = createMarkerLocal [QGVAR(recommendedMinMarker),GVAR(markerStartPos)];
+GVAR(recommendedMinMarker) setMarkerColorLocal "COLORGUER";
+GVAR(recommendedMinMarker) setMarkerShapeLocal "ELLIPSE";
+GVAR(recommendedMinMarker) setMarkerBrushLocal "Border";
+GVAR(recommendedMinMarker) setMarkerSizeLocal [GVAR(recommendedMin),GVAR(recommendedMin)];
+
+deleteMarkerLocal QGVAR(recommendedMaxMarker);
+GVAR(recommendedMaxMarker) = createMarkerLocal [QGVAR(recommendedMaxMarker),GVAR(markerStartPos)];
+GVAR(recommendedMaxMarker) setMarkerColorLocal "COLORGUER";
+GVAR(recommendedMaxMarker) setMarkerShapeLocal "ELLIPSE";
+GVAR(recommendedMaxMarker) setMarkerBrushLocal "Border";
+GVAR(recommendedMaxMarker) setMarkerSizeLocal [GVAR(recommendedMax),GVAR(recommendedMax)];
+
+deleteMarkerLocal GVAR(recommendedLabelMarker);
+GVAR(recommendedLabelMarker) = createMarkerLocal [QGVAR(recommendedLabelMarker), [(GVAR(markerStartPos) select 0) + GVAR(recommendedLabelDist), (GVAR(markerStartPos) select 1) - GVAR(recommendedLabelDist)]];
+GVAR(recommendedLabelMarker) setMarkerColorLocal "COLORGREEN";
+GVAR(recommendedLabelMarker) setMarkerTypeLocal "hd_dot";
+GVAR(recommendedLabelMarker) setMarkerTextLocal (format ["Recommended Diameter: %1m - %2m", GVAR(recommendedMin) * 2, GVAR(recommendedMax) * 2]);
+
+GVAR(mouseMovingEH) = _control ctrlAddEventHandler ["MouseMoving",QUOTE(_this call FUNC(onMouseMoving))];
diff --git a/functions/votePlayzone/fn_onMouseButtonUp.sqf b/functions/votePlayzone/fn_onMouseButtonUp.sqf
new file mode 100644
index 0000000..628614f
--- /dev/null
+++ b/functions/votePlayzone/fn_onMouseButtonUp.sqf
@@ -0,0 +1,22 @@
+#include "component.hpp"
+
+params ["_control", "_button", "_xScreen", "_yScreen"];
+
+if (_button != 0) exitWith {};
+if (missionNamespace getVariable [QGVAR(votingComplete),false]) exitWith {};
+
+deleteMarkerLocal QGVAR(currentMarker);
+deleteMarkerLocal QGVAR(distanceMarker);
+deleteMarkerLocal QGVAR(recommendedMinMarker);
+deleteMarkerLocal QGVAR(recommendedMaxMarker);
+deleteMarkerLocal QGVAR(recommendedLabelMarker);
+
+_control ctrlRemoveEventHandler ["MouseMoving", missionNamespace getVariable [QGVAR(mouseMovingEH),-1]];
+GVAR(markerEndPos) = _control ctrlMapScreenToWorld [_xScreen,_yScreen];
+private _size = GVAR(markerStartPos) distance2D GVAR(markerEndPos);
+
+[GVAR(markerStartPos),player,_size] remoteExecCall [QFUNC(receiveVote),2,false];
+
+GVAR(mouseEventRuning) = false;
+
+true
diff --git a/functions/votePlayzone/fn_onMouseMoving.sqf b/functions/votePlayzone/fn_onMouseMoving.sqf
new file mode 100644
index 0000000..3640a31
--- /dev/null
+++ b/functions/votePlayzone/fn_onMouseMoving.sqf
@@ -0,0 +1,14 @@
+#include "component.hpp"
+
+params ["_control", "_deltaXScreen", "_deltaYScreen"];
+
+if (missionNamespace getVariable [QGVAR(votingComplete),false]) exitWith {};
+
+private _currentPos = _control ctrlMapScreenToWorld [_deltaXScreen, _deltaYScreen];
+private _distance = GVAR(markerStartPos) distance2D _currentPos;
+
+GVAR(distanceMarker) setMarkerPosLocal [(_currentPos select 0)+100, (_currentPos select 1)-100];
+GVAR(distanceMarker) setMarkerTextLocal (format ["Diameter: %1m", round (_distance*2)]);
+GVAR(currentMarker) setMarkerSizeLocal [_distance,_distance];
+
+false
diff --git a/functions/votePlayzone/fn_receiveVote.sqf b/functions/votePlayzone/fn_receiveVote.sqf
new file mode 100644
index 0000000..4a3d1d3
--- /dev/null
+++ b/functions/votePlayzone/fn_receiveVote.sqf
@@ -0,0 +1,140 @@
+#include "component.hpp"
+
+if (!isServer) exitWith {};
+
+params ["_clickPos", "_player", "_size"];
+private ["_closestMarker"];
+
+// declare storage arrays
+if (isNil QGVAR(areaMarkers)) then {GVAR(areaMarkers) = []};
+if (isNil QGVAR(voteMarkers)) then {GVAR(voteMarkers) = []};
+if (isNil QGVAR(markerVotes)) then {GVAR(markerVotes) = []};
+if (isNil QGVAR(voters)) then {GVAR(voters) = []};
+
+//player specific marker name
+private _markerName = format [QGVAR(areamarker_%1), getPlayerUID _player];
+private _votesMarkerName = _markerName + "_votes";
+
+//delete old markers ===========================================================
+if (str getMarkerSize _markerName != "[0,0]") then {
+
+ deleteMarker _markerName;
+ deleteMarker _votesMarkerName;
+ _markerID = GVAR(areaMarkers) find _markerName;
+
+ if (_markerID < 0) exitWith {
+ ERROR_1("Marker %1 not found in areaMarkers array.",_markerName);
+ };
+
+ //delete old voter variables
+ _oldVoters = GVAR(voters) select _markerID;
+ {
+ _x setVariable [QGVAR(playerVote),""];
+ } forEach _oldVoters;
+
+ //delete old markers
+ _allfound = false;
+ _i = 0;
+ while {!_allFound} do {
+ _oldVoterMarkerName = format ["%1_%2", _votesMarkerName, _i];
+ if (str getMarkerPos _oldVoterMarkerName != "[0,0,0]") then {
+ deleteMarker _oldVoterMarkerName;
+ } else {
+ _allFound = true;
+ };
+ _i = _i + 1;
+ };
+
+ GVAR(areaMarkers) deleteAt _markerID;
+ GVAR(voteMarkers) deleteAt _markerID;
+ GVAR(markerVotes) deleteAt _markerID;
+ GVAR(voters) deleteAt _markerID;
+};
+
+
+//detract old vote =============================================================
+private _oldVote = _player getVariable [QGVAR(playerVote), ""];
+if (_oldVote != "") then {
+ _markerID = GVAR(areaMarkers) find _oldVote;
+ _oldVoteNumber = GVAR(markerVotes) select _markerID;
+ GVAR(markerVotes) set [_markerID, _oldVoteNumber-1];
+ _oldVoters = GVAR(voters) select _markerID;
+ _newVoters = _oldVoters - [_player];
+ GVAR(voters) set [_markerID, _newVoters];
+
+ [_oldVote] call FUNC(updateVotesMarker);
+};
+
+
+//check if vote or proposal ====================================================
+private _isVote = false;
+private _closestDistance = 9999999;
+{
+ _markerPos = getMarkerPos _x;
+ _markerSize = (getMarkerSize _x) select 0;
+ _distance = _clickPos distance2D _markerPos;
+ if (_distance < _markerSize) then {
+ _isVote = true;
+ if (_distance < _closestDistance) then {
+ _closestMarker = _x;
+ _closestDistance = _distance;
+ };
+ };
+} forEach GVAR(areaMarkers);
+
+
+//update vote if isvote ========================================================
+if (_isVote) then {
+ //add new vote
+ _player setVariable [QGVAR(playerVote), _closestMarker];
+ _markerID = GVAR(areaMarkers) find _closestMarker;
+ _oldVoteNumber = GVAR(markerVotes) select _markerID;
+ GVAR(markerVotes) set [_markerID, _oldVoteNumber+1];
+ _oldVoters = GVAR(voters) select _markerID;
+ _newVoters = _oldVoters + [_player];
+ GVAR(voters) set [_markerID, _newVoters];
+ [_closestMarker] call FUNC(updateVotesMarker);
+
+ INFO_2("Player %1 voted for %2.", name _player, _closestMarker);
+};
+
+
+//create marker if proposal ====================================================
+if (!_isVote) then {
+ _playAreaMinSize = [missionConfigFile >> "cfgMission","playAreaMinSize",100] call BIS_fnc_returnConfigEntry;
+ _playAreaMaxSize = [missionConfigFile >> "cfgMission","playAreaMaxSize",2000] call BIS_fnc_returnConfigEntry;
+
+ _size = _size max _playAreaMinSize;
+ _size = _size min _playAreaMaxSize;
+
+ _areaMarker = createMarker [_markerName, _clickPos];
+ _areaMarker setMarkerShape "ELLIPSE";
+ _areaMarker setMarkerSize [_size,_size];
+ _areaMarker setMarkerBrush "BORDER";
+ _areaMarker setMarkerColor "COLORWEST";
+
+ _votesMarker = createMarker [_votesMarkerName, _clickPos];
+ _votesMarker setMarkerType "hd_flag";
+ _votesMarker setMarkerColor "COLORWEST";
+
+ GVAR(areaMarkers) pushBack _areaMarker;
+ GVAR(voteMarkers) pushBack _votesMarker;
+ GVAR(markerVotes) pushBack 1;
+ GVAR(voters) pushBack [_player];
+
+ _player setVariable [QGVAR(playerVote), _markerName];
+ [_areaMarker] call FUNC(updateVotesMarker);
+ INFO_3("Player %1 proposed play area around %2 with radius %3.", name _player, _clickPos, _size);
+};
+
+
+//update most voted marker
+private _mostUpvotedID = [GVAR(markerVotes)] call EFUNC(common,findMax);
+for [{_i=0}, {_i<(count GVAR(areaMarkers))}, {_i=_i+1}] do {
+ _marker = GVAR(voteMarkers) select _i;
+ if (_i == _mostUpvotedID) then {
+ _marker setMarkerColor "COLORGREEN";
+ } else {
+ _marker setMarkerColor "COLORWEST";
+ };
+};
diff --git a/functions/votePlayzone/fn_setVoteDialogText.sqf b/functions/votePlayzone/fn_setVoteDialogText.sqf
new file mode 100644
index 0000000..0d8ea54
--- /dev/null
+++ b/functions/votePlayzone/fn_setVoteDialogText.sqf
@@ -0,0 +1,15 @@
+#include "component.hpp"
+
+params [["_display",displayNull]];
+
+if (isNull _display) exitWith {};
+
+private _skip = missionNamespace getVariable [QGVAR(playzoneSkipVote),false];
+private _skipText = ["PRESS ENTER TO SKIP","READY"] select _skip;
+private _skipTextColor = [[1,1,1,1],[0,1,0,1]] select _skip;
+
+private _voteTimeLeft = missionNamespace getVariable [QGVAR(votingTimeLeft),99999];
+
+(_display displayCtrl 1402) ctrlSetText format ["TIME REMAINING: %1", ([_voteTimeLeft,"MM:SS"] call BIS_fnc_secondsToString)];
+(_display displayCtrl 1403) ctrlSetText _skipText;
+(_display displayCtrl 1403) ctrlSetTextColor _skipTextColor;
diff --git a/functions/votePlayzone/fn_skipVote.sqf b/functions/votePlayzone/fn_skipVote.sqf
new file mode 100644
index 0000000..628eed8
--- /dev/null
+++ b/functions/votePlayzone/fn_skipVote.sqf
@@ -0,0 +1,16 @@
+#include "component.hpp"
+
+params ["_player","_add"];
+
+if (isNil QGVAR(skipVotePlayers)) then {GVAR(skipVotePlayers) = []};
+
+if (_add) then {
+ GVAR(skipVotePlayers) pushBackUnique _player;
+} else {
+ GVAR(skipVotePlayers) = GVAR(skipVotePlayers) - [_player];
+};
+
+if (count GVAR(skipVotePlayers) == count playableUnits) then {
+ GVAR(votingTimeLeft) = 1;
+ GVAR(skipVotePlayers) = nil;
+};
diff --git a/functions/votePlayzone/fn_updateVotesMarker.sqf b/functions/votePlayzone/fn_updateVotesMarker.sqf
new file mode 100644
index 0000000..2246aee
--- /dev/null
+++ b/functions/votePlayzone/fn_updateVotesMarker.sqf
@@ -0,0 +1,35 @@
+#include "component.hpp"
+
+params ["_areaMarker"];
+
+private _ySpacing = -100;
+
+private _markerID = GVAR(areaMarkers) find _areaMarker;
+private _votes = GVAR(markerVotes) select _markerID;
+private _voteMarker = GVAR(voteMarkers) select _markerID;
+private _voters = GVAR(voters) select _markerID;
+private _pos = getMarkerPos _areaMarker;
+
+//delete old markers
+private _allfound = false;
+private _i = 0;
+while {!_allFound} do {
+ _oldVoterMarkerName = format ["%1_%2", _voteMarker, _i];
+ if (str getMarkerPos _oldVoterMarkerName != "[0,0,0]") then {
+ deleteMarker _oldVoterMarkerName;
+ } else {
+ _allFound = true;
+ };
+ _i = _i + 1;
+};
+
+//create new markers
+_voteMarker setMarkerText format ["Diam.: %1m, Votes: %2", round ((getMarkerSize _areaMarker) param [0,0]) * 2,count _voters];
+for [{_i=0}, {_i < count _voters}, {_i=_i+1}] do {
+ _voterMarkerName = format ["%1_%2", _voteMarker, _i];
+ _voterMarkerPos = _pos vectorAdd [0,_ySpacing * (_i+1),0];
+ _voterMarker = createMarker [_voterMarkerName, _voterMarkerPos];
+ _voterMarker setMarkerType "hd_dot";
+ _voterMarker setMarkerColor "COLORWEST";
+ _voterMarker setMarkerText (name (_voters select _i));
+};
diff --git a/functions/votePlayzone/fn_voteDialog.sqf b/functions/votePlayzone/fn_voteDialog.sqf
new file mode 100644
index 0000000..0544157
--- /dev/null
+++ b/functions/votePlayzone/fn_voteDialog.sqf
@@ -0,0 +1,14 @@
+#include "component.hpp"
+
+private _layer = (["wait1Layer"] call BIS_fnc_rscLayer);
+[{
+ params ["_layer","_handle"];
+
+ _layer cutRsc ["voteCountdownTitle", "PLAIN", 0.0001, true];
+
+ if ((missionNamespace getVariable [QGVAR(votingTimeLeft),9999]) <= 0) exitWith {
+ [_handle] call CBA_fnc_removePerFrameHandler;
+ playSound "taskSucceeded";
+ _layer cutFadeOut 1;
+ };
+},1,_layer] call CBA_fnc_addPerFrameHandler;
diff --git a/initPlayerLocal.sqf b/initPlayerLocal.sqf
deleted file mode 100644
index 637f445..0000000
--- a/initPlayerLocal.sqf
+++ /dev/null
@@ -1,15 +0,0 @@
-call compile preprocessfile "SHK_pos\shk_pos_init.sqf";
-
-joinTime = serverTime;
-currentScore = 0;
-iJustSpawned = false;
-
-[] execVM "player\setup\mapStartPos.sqf";
-[] execVM "player\setup\handleJIP.sqf";
-[] execVM "player\setup\votePlayzone.sqf";
-[] execVM "player\setup\upgradeWeaponEH.sqf";
-[] execVM "player\setup\startGame.sqf";
-[] execVM "player\setup\startLoadout.sqf";
-[] execVM "player\punishPlayer.sqf";
-[] execVM "player\recordDistance.sqf";
-[] execVM "player\scoreBoard.sqf";
diff --git a/initServer.sqf b/initServer.sqf
deleted file mode 100644
index 7868f92..0000000
--- a/initServer.sqf
+++ /dev/null
@@ -1,73 +0,0 @@
-call compile preprocessfile "SHK_pos\shk_pos_init.sqf";
-
-if (isClass (configFile >> "CfgPatches" >> "task_force_radio")) then {
- [] execVM "tfarsettings.sqf";
-};
-
-//island config
-call compile preprocessFile "islandConfig.sqf";
-ISWOODLAND = (ISLAND_CONFIG select (ISLANDS find worldName)) select 0;
-MAPSTARTPOS = (ISLAND_CONFIG select (ISLANDS find worldName)) select 1;
-publicVariable "ISWOODLAND";
-publicVariable "MAPSTARTPOS";
-
-//Parameters
-WEATHER_SETTING = "WeatherSetting" call BIS_fnc_getParamValue;
-TIME_OF_DAY = "TimeOfDay" call BIS_fnc_getParamValue;
-SOLORESPAWNTIME = "SoloRespawnTime" call BIS_fnc_getParamValue;
-TEAMRESPAWNTIME = "TeamRespawnTime" call BIS_fnc_getParamValue;
-KILLSFORWIN = "KillsForWin" call BIS_fnc_getParamValue;
-GAMEMODE = "GameMode" call BIS_fnc_getParamValue;
-CAMPTIME = "CampProtection" call BIS_fnc_getParamValue;
-RANDOMTEAMS = ("RandomTeams" call BIS_fnc_getParamValue) == 1;
-TEAMSIZE = "TeamSize" call BIS_fnc_getParamValue;
-SAMEALTCHANNEL = ("SameAltChannel" call BIS_fnc_getParamValue) == 1;
-RANKEDMODE = ("RankedMode" call BIS_fnc_getParamValue) == 1;
-
-//Settings
-PLAYAREAMINSIZE = 100;
-PLAYAREAMAXSIZE = 2000;
-MUZZLEATTACHMENTPROB = 40;
-SCOPESPROB = 60;
-SPAWNGROUPMINDIST = 50;
-STARTDISTTOLEADER = 30;
-SPAWNDISTTOLEADER = [50,100];
-VOTINGTIME = 60;
-SCORETHRESHOLD = 5;
-
-VOTINGDONE = false;
-GAMEENDED = false;
-
-//Broadcast
-publicVariable "WEATHER_SETTING";
-publicVariable "TIME_OF_DAY";
-publicVariable "SOLORESPAWNTIME";
-publicVariable "TEAMRESPAWNTIME";
-publicVariable "KILLSFORWIN";
-publicVariable "GAMEMODE";
-publicVariable "CAMPTIME";
-publicVariable "RANDOMTEAMS";
-publicVariable "TEAMSIZE";
-publicVariable "SAMEALTCHANNEL";
-publicVariable "RANKEDMODE";
-publicVariable "PLAYAREAMINSIZE";
-publicVariable "PLAYAREAMAXSIZE";
-publicVariable "MUZZLEATTACHMENTPROB";
-publicVariable "SPAWNGROUPMINDIST";
-publicVariable "STARTDISTTOLEADER";
-publicVariable "SPAWNDISTTOLEADER";
-publicVariable "VOTINGTIME";
-publicVariable "SCORETHRESHOLD";
-publicVariable "VOTINGDONE";
-publicVariable "GAMEENDED";
-
-//Setup
-[] execVM "customMap\customMapInit.sqf";
-[] execVM "server\setup\setTime.sqf";
-[] execVM "server\setup\setWeather.sqf";
-[] execVM "server\setup\voteSystemInit.sqf";
-[] execVM "server\setup\playAreaSetup.sqf";
-[] execVM "server\setup\chooseWeapons.sqf";
-[] execVM "server\setup\teamSetup.sqf";
-[] execVM "server\setup\setRadioFreq.sqf";
-[] execVM "server\setup\startPositions.sqf";
diff --git a/islandConfig.sqf b/islandConfig.sqf
deleted file mode 100644
index ea7d180..0000000
--- a/islandConfig.sqf
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Please insert new islands alphabetically by file name extension!
-
-// Readable List:
-// Altis,
-// Bornholm,
-// Chernarus
-// Chernarus Summer,
-// Clafghan,
-// Desert,
-// Esseker,
-// Fatah,
-// Gorgona
-// Podagorsk,
-// Capraia,
-// Kunduz
-// Namalsk
-// N'Ziwasogo
-// Sarahni,
-// Sarugao,
-// Shapur,
-// Stratis,
-// Takistan,
-// Thirsk,
-// Panthera,
-// Bystrica,
-// vt5
-// X-Cam Prototype
-// Zargabad
-
-
-ISLANDS = [
- 'Abel',
- 'Altis',
- 'Beketov',
- 'Cain',
- 'Chernarus',
- 'Desert_Island',
- 'dingor',
- 'eden',
- 'fallujah',
- 'fata',
- 'IslaDuala3',
- 'lingor3',
- 'lythium',
- 'Malden',
- 'mbg_celle2',
- 'namalsk',
- 'noe',
- 'Panthera3',
- 'Porto',
- 'Sara_dbe1',
- 'Stratis',
- 'SugarLake',
- 'Takistan',
- 'Tanoa',
- 'taviana',
- 'utes',
- 'vt5',
- 'Zargabad'
-];
-
-//[is woodland, startposition, mapname]
-//[true, ,''],
-ISLAND_CONFIG = [
- [true, [9721.53,3954.22,0], 'Malden'],
- [true,[14782.4,16649,0],'Altis'],
- [true, [11110,10095.5,0], 'Beketov'],
- [true, [5063.03,6340.83,0], 'Kolgujev'],
- [true, [4382.42,10510,0],'Chernarus'],
- [false, [10021.7,2221.94,0], 'Desert Island'],
- [false, [4305.13,1415.62,0], 'dingor'],
- [true, [4802.94,11552,0], 'Everon'],
- [false, [10226.5,605.61,0], 'Fallujah'],
- [false, [8989.75,5837.9,0],'Fata'],
- [false, [4495.91,2237.83,0],'Isla Duala'],
- [true, [4296.53,1406.85,0], 'lingor3'],
- [false, [12218.2,17788.9,0], 'lythium'],
- [true, [766.029,12282.5,0],'Malden'],
- [true, [7805.82,1242.43,0], 'Celle'],
- [true, [6235.44,9443.9,0],'Namalsk'],
- [true, [1545.72,5106.86,0], 'Nogova'],
- [true, [2386.32,3492.82,0],'Panthera'],
- [false, [1389.02,2287.22,0],'Porto'],
- [true, [9492.42,10077.1,0],'Sarahni'],
- [true, [1710.57,5507.4,0],'Stratis'],
- [true, [4195.32,7135.65,0],'Sugar Lake'],
- [false, [7861.16,1742.09,0],'Takistan'],
- [true, [2240,13355,0], 'Tanoa'],
- [true, [16515.6,10804.5,0], 'Taviana'],
- [true, [3822.11,3574.4,0],'Utes'],
- [true, [3129.09,3400.02,0],'Suomi'],
- [true, [-1063.61,604.564,0],'Zargabad']
-];
diff --git a/mission.sqm b/mission.sqm
index 23ce67e..6f1f3cd 100644
--- a/mission.sqm
+++ b/mission.sqm
@@ -1,4 +1,4 @@
-version=52;
+version=53;
class EditorData
{
moveGridStep=1;
@@ -8,7 +8,7 @@ class EditorData
toggles=1;
class ItemIDProvider
{
- nextID=246;
+ nextID=396;
};
class MarkerIDProvider
{
@@ -16,196 +16,44 @@ class EditorData
};
class Camera
{
- pos[]={14682.772,108.65694,16555.613};
- dir[]={0.22511947,-0.46959457,0.85371941};
- up[]={0.11973781,0.8828783,0.45408127};
- aside[]={0.96696377,2.8376235e-007,-0.25498137};
+ pos[]={2560.9683,45.294834,3259.5627};
+ dir[]={0.52566719,-0.47786799,0.70381141};
+ up[]={0.28596714,0.87842125,0.38287836};
+ aside[]={0.8012073,-2.9831426e-007,-0.59841132};
};
};
binarizationWanted=0;
addons[]=
{
"A3_Ui_F",
- "ace_map",
- "A3_Characters_F",
- "ace_zeus",
- "ace_common",
- "ace_advanced_ballistics",
- "ace_explosives",
- "ace_weather",
- "ace_hearing",
- "ace_spectator",
- "ace_interaction",
- "ace_finger",
- "ace_nametags",
- "ace_vehiclelock",
- "ace_winddeflection",
- "ace_repair",
- "ace_respawn",
- "ace_medical",
"A3_Modules_F_Curator_Curator",
- "ace_cargo",
- "ace_viewdistance",
- "ace_advanced_fatigue"
+ "A3_Characters_F"
};
class AddonsMetaData
{
class List
{
- items=22;
+ items=3;
class Item0
{
className="A3_Ui_F";
name="Arma 3 - User Interface";
author="Bohemia Interactive";
- url="http://www.arma3.com";
+ url="https://www.arma3.com";
};
class Item1
{
- className="ace_map";
- name="ACE3 - Map";
- author="ACE-Team";
- url="http://ace3mod.com/";
+ className="A3_Modules_F_Curator";
+ name="Arma 3 Zeus Update - Scripted Modules";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
};
class Item2
{
className="A3_Characters_F";
name="Arma 3 Alpha - Characters and Clothing";
author="Bohemia Interactive";
- url="http://www.arma3.com";
- };
- class Item3
- {
- className="ace_zeus";
- name="ACE3 - Zeus";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item4
- {
- className="ace_common";
- name="ACE3 - Common";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item5
- {
- className="ace_advanced_ballistics";
- name="ACE3 - Advanced Ballistics";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item6
- {
- className="ace_explosives";
- name="ACE3 - Explosives";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item7
- {
- className="ace_weather";
- name="ACE3 - Weather";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item8
- {
- className="ace_hearing";
- name="ACE3 - Hearing";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item9
- {
- className="ace_spectator";
- name="ACE3 - Spectator";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item10
- {
- className="ace_interaction";
- name="ACE3 - Interaction";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item11
- {
- className="ace_finger";
- name="ACE3 - Finger";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item12
- {
- className="ace_nametags";
- name="ACE3 - Name Tags";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item13
- {
- className="ace_vehiclelock";
- name="ACE3 - Vehicle Lock";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item14
- {
- className="ace_winddeflection";
- name="ACE3 - Wind Deflection";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item15
- {
- className="ace_repair";
- name="ACE3 - Repair";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item16
- {
- className="ace_respawn";
- name="ACE3 - Respawn";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item17
- {
- className="ace_medical";
- name="ACE3 - Medical";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item18
- {
- className="A3_Modules_F_Curator";
- name="Arma 3 Zeus Update - Scripted Modules";
- author="Bohemia Interactive";
- url="http://www.arma3.com";
- };
- class Item19
- {
- className="ace_cargo";
- name="ACE3 - Cargo";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item20
- {
- className="ace_viewdistance";
- name="ACE3 - View Distance";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item21
- {
- className="ace_advanced_fatigue";
- name="ACE3 - Advanced Fatigue";
- author="ACE-Team";
- url="http://ace3mod.com/";
+ url="https://www.arma3.com";
};
};
};
@@ -214,2016 +62,3493 @@ class ScenarioData
{
author="McDiod";
};
-class Mission
+class CustomAttributes
{
- class Intel
- {
- timeOfChanges=1800.0002;
- startWeather=0.30000001;
- startWind=0.1;
- startWaves=0.1;
- forecastWeather=0.30000001;
- forecastWind=0.1;
- forecastWaves=0.1;
- forecastLightnings=0.1;
- rainForced=1;
- lightningsForced=1;
- wavesForced=1;
- windForced=1;
- year=2035;
- month=6;
- day=24;
- hour=12;
- minute=0;
- startFogDecay=0.013;
- forecastFogDecay=0.013;
- };
- class Entities
+ class Category0
{
- items=54;
- class Item0
- {
- dataType="Marker";
- position[]={14678.785,17.91,16745.867};
- name="respawn_west";
- type="Empty";
- id=7;
- };
- class Item1
+ name="Scenario";
+ class Attribute0
{
- dataType="Logic";
- class PositionInfo
- {
- position[]={3000.874,-55.451996,2795.4109};
- };
- id=23;
- type="ACE_ModuleMap";
- atlOffset=130.51801;
- class CustomAttributes
+ property="cba_settings_hash";
+ expression="false";
+ class Value
{
- class Attribute0
- {
- property="ACE_ModuleMap_MapShake";
- expression="_this setVariable ['MapShake',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="ACE_ModuleMap_MapShowCursorCoordinates";
- expression="_this setVariable ['MapShowCursorCoordinates',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute2
- {
- property="ACE_ModuleMap_DefaultChannel";
- expression="_this setVariable ['DefaultChannel',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=-1;
- };
- };
- };
- class Attribute3
+ class data
{
- property="ACE_ModuleMap_MapIllumination";
- expression="_this setVariable ['MapIllumination',_value,true];";
- class Value
+ class type
{
- class data
+ type[]=
{
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
+ "ARRAY"
};
};
- };
- class Attribute4
- {
- property="ACE_ModuleMap_MapGlow";
- expression="_this setVariable ['MapGlow',_value,true];";
- class Value
+ class value
{
- class data
+ items=4;
+ class Item0
{
- class type
+ class data
{
- type[]=
+ class type
{
- "BOOL"
+ type[]=
+ {
+ "STRING"
+ };
};
+ value="#CBA_HASH#";
};
- value=1;
};
- };
- };
- class Attribute5
- {
- property="ACE_ModuleMap_MapLimitZoom";
- expression="_this setVariable ['MapLimitZoom',_value,true];";
- class Value
- {
- class data
+ class Item1
{
- class type
+ class data
{
- type[]=
+ class type
{
- "BOOL"
+ type[]=
+ {
+ "ARRAY"
+ };
};
- };
- value=0;
- };
- };
- };
- nAttributes=6;
- };
- };
- class Item2
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.626,-0.68056798,3375.115};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=44;
- type="B_Soldier_F";
- atlOffset=185.28799;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
+ class value
{
- class type
+ items=53;
+ class Item0
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_finger_enabled";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item1
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_level";
};
};
- value=1.02;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item2
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_medicsetting";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.626,-0.77056432,3373.4651};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayer=1;
- isPlayable=1;
- };
- id=45;
- type="B_Soldier_F";
- atlOffset=185.198;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item3
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enablefor";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item4
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enableoverdosing";
};
};
- value=1.03;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item5
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_bleedingcoefficient";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.6257,-0.62095189,3373.4646};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=46;
- type="B_Soldier_F";
- atlOffset=185.34761;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.6257,-0.8657639,3370.7253};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=47;
- type="B_Soldier_F";
- atlOffset=185.1028;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6257,-0.68040013,3375.1648};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=48;
- type="B_Soldier_F";
- atlOffset=185.28816;
- };
- };
- class Attributes
- {
- };
- id=43;
- atlOffset=185.28799;
- };
- class Item3
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6001,-0.67655492,3372.2471};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=50;
- type="B_Soldier_F";
- atlOffset=185.29201;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item6
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_paincoefficient";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item7
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enableadvancedwounds";
};
};
- value=1.03;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item8
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enablevehiclecrashes";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.6003,-0.75106359,3370.5964};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=51;
- type="B_Soldier_F";
- atlOffset=185.2175;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.6003,-0.62848973,3370.5964};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=52;
- type="B_Soldier_F";
- atlOffset=185.34007;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.6003,-0.83417821,3367.8572};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=53;
- type="B_Soldier_F";
- atlOffset=185.13438;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6003,-0.67696691,3372.2966};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=54;
- type="B_Soldier_F";
- atlOffset=185.2916;
- };
- };
- class Attributes
- {
- };
- id=49;
- atlOffset=185.29201;
- };
- class Item4
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6379,-0.67856908,3369.4631};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=56;
- type="B_Soldier_F";
- atlOffset=185.28999;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item9
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enablescreams";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item10
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_playerdamagethreshold";
};
};
- value=0.95999998;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item11
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_aidamagethreshold";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.6384,-0.74033666,3367.8127};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=57;
- type="B_Soldier_F";
- atlOffset=185.22823;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.6384,-0.63491368,3367.8127};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=58;
- type="B_Soldier_F";
- atlOffset=185.33365;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.6384,-0.81286168,3365.0735};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=59;
- type="B_Soldier_F";
- atlOffset=185.1557;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6384,-0.67869115,3369.5129};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=60;
- type="B_Soldier_F";
- atlOffset=185.28987;
- };
- };
- class Attributes
- {
- };
- id=55;
- atlOffset=185.28999;
- };
- class Item5
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.688,-0.6835587,3366.354};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=62;
- type="B_Soldier_F";
- atlOffset=185.285;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item12
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enableunconsciousnessai";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item13
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_remotecontrolledai";
};
};
- value=1;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item14
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_preventinstadeath";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.6882,-0.73540807,3364.7039};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=63;
- type="B_Soldier_F";
- atlOffset=185.23315;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.6882,-0.63354039,3364.7039};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=64;
- type="B_Soldier_F";
- atlOffset=185.33502;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.6882,-0.79658055,3361.9646};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=65;
- type="B_Soldier_F";
- atlOffset=185.17198;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6882,-0.68291783,3366.4041};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=66;
- type="B_Soldier_F";
- atlOffset=185.28564;
- };
- };
- class Attributes
- {
- };
- id=61;
- atlOffset=185.285;
- };
- class Item6
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.7009,-0.69256139,3363.345};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=68;
- type="B_Soldier_F";
- atlOffset=185.276;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item15
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enablerevive";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item16
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_maxrevivetime";
};
};
- value=0.99000001;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item17
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_amountofrevivelives";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.7009,-0.73609471,3361.6946};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=69;
- type="B_Soldier_F";
- atlOffset=185.23247;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.7009,-0.61832738,3361.6946};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=70;
- type="B_Soldier_F";
- atlOffset=185.35023;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.7009,-0.78882909,3358.9553};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=71;
- type="B_Soldier_F";
- atlOffset=185.17973;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.7009,-0.69207311,3363.3948};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=72;
- type="B_Soldier_F";
- atlOffset=185.27649;
- };
- };
- class Attributes
- {
- };
- id=67;
- atlOffset=185.276;
- };
- class Item7
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6431,-0.69056249,3360.291};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=74;
- type="B_Soldier_F";
- atlOffset=185.278;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item18
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_allowlittercreation";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item19
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_littercleanupdelay";
};
};
- value=1;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item20
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_medicsetting_basicepi";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.6428,-0.74134374,3358.6404};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=75;
- type="B_Soldier_F";
- atlOffset=185.22722;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.6428,-0.58892369,3358.6404};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=76;
- type="B_Soldier_F";
- atlOffset=185.37964;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.6428,-0.78786778,3355.9011};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=77;
- type="B_Soldier_F";
- atlOffset=185.18069;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.6428,-0.69044042,3360.3406};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=78;
- type="B_Soldier_F";
- atlOffset=185.27812;
- };
- };
- class Attributes
- {
- };
- id=73;
- atlOffset=185.278;
- };
- class Item8
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.585,-0.67856908,3357.2642};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=80;
- type="B_Soldier_F";
- atlOffset=185.28999;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item21
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_medicsetting_pak";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item22
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_medicsetting_surgicalkit";
};
};
- value=1.01;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item23
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_consumeitem_pak";
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.5847,-0.74161839,3355.6135};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=81;
- type="B_Soldier_F";
- atlOffset=185.22694;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.5847,-0.5517838,3355.6135};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=82;
- type="B_Soldier_F";
- atlOffset=185.41678;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.5847,-0.78829503,3352.8743};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=83;
- type="B_Soldier_F";
- atlOffset=185.18027;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.5847,-0.67835546,3357.3137};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=84;
- type="B_Soldier_F";
- atlOffset=185.29021;
- };
- };
- class Attributes
- {
- };
- id=79;
- atlOffset=185.28999;
- };
- class Item9
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.5559,-0.65856481,3354.644};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=86;
- type="B_Soldier_F";
- atlOffset=185.31;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item24
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_consumeitem_surgicalkit";
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item25
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_uselocation_basicepi";
};
};
- value=0.99000001;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item26
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_uselocation_pak";
+ };
+ };
+ class Item27
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_uselocation_surgicalkit";
+ };
+ };
+ class Item28
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_usecondition_pak";
+ };
+ };
+ class Item29
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_usecondition_surgicalkit";
+ };
+ };
+ class Item30
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_viewdistance_limitviewdistance";
+ };
+ };
+ class Item31
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_weather_enabled";
+ };
+ };
+ class Item32
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_weather_windsimulation";
+ };
+ };
+ class Item33
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_hearing_enablecombatdeafness";
+ };
+ };
+ class Item34
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_hearing_disableearringing";
+ };
+ };
+ class Item35
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_hearing_enabledforzeusunits";
+ };
+ };
+ class Item36
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_hearing_autoaddearplugstounits";
+ };
+ };
+ class Item37
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_map_mapshowcursorcoordinates";
+ };
+ };
+ class Item38
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_map_bft_enabled";
+ };
+ };
+ class Item39
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_map_bft_interval";
+ };
+ };
+ class Item40
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_repair_engineersetting_repair";
+ };
+ };
+ class Item41
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_repair_fullrepairlocation";
+ };
+ };
+ class Item42
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_repair_engineersetting_fullrepair";
+ };
+ };
+ class Item43
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_vehiclelock_lockvehicleinventory";
+ };
+ };
+ class Item44
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_advanced_fatigue_performancefactor";
+ };
+ };
+ class Item45
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_advanced_fatigue_recoveryfactor";
+ };
+ };
+ class Item46
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_advanced_fatigue_loadfactor";
+ };
+ };
+ class Item47
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_interaction_enableteammanagement";
+ };
+ };
+ class Item48
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_map_mapshake";
+ };
+ };
+ class Item49
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_markers_moverestriction";
+ };
+ };
+ class Item50
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="tfar_samesrfrequenciesforside";
+ };
+ };
+ class Item51
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="tfar_givemicrodagrtosoldier";
+ };
+ };
+ class Item52
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="tfar_setting_defaultfrequencies_sr_west";
};
};
- value=0;
};
};
};
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.5564,-0.73394322,3352.9934};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=87;
- type="B_Soldier_F";
- atlOffset=185.23462;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.5564,-0.5159409,3352.9934};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=88;
- type="B_Soldier_F";
- atlOffset=185.45262;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.5564,-0.78623509,3350.2542};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=89;
- type="B_Soldier_F";
- atlOffset=185.18233;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.5564,-0.65871739,3354.6936};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=90;
- type="B_Soldier_F";
- atlOffset=185.30984;
- };
- };
- class Attributes
- {
- };
- id=85;
- atlOffset=185.31;
- };
- class Item10
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.5259,-0.62955785,3351.9341};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=92;
- type="B_Soldier_F";
- atlOffset=185.339;
- class CustomAttributes
- {
- class Attribute0
+ class Item2
{
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
+ class data
{
- class data
+ class type
{
- class type
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=53;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item2
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item3
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item4
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item5
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.3;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item6
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item7
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item8
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item9
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item10
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.89999998;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item11
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.80000001;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item12
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item13
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item14
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item15
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item16
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=120;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item17
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=-1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item18
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item19
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=120;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item20
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item21
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item22
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item23
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item24
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item25
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item26
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item27
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item28
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item29
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item30
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=8000;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item31
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item32
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item33
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item34
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item35
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item36
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item37
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item38
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item39
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=3;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item40
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item41
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item42
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item43
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item44
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=3.6876116;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item45
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.5708553;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item46
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.75;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item47
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item48
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item49
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=-1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
};
};
- value=0.94999999;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
+ class Item50
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
};
};
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.5261,-0.71898961,3350.2834};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=93;
- type="B_Soldier_F";
- atlOffset=185.24957;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.5261,-0.47931981,3350.2834};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=94;
- type="B_Soldier_F";
- atlOffset=185.48924;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.5261,-0.78028417,3347.5442};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=95;
- type="B_Soldier_F";
- atlOffset=185.18828;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.5261,-0.62983251,3351.9836};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=96;
- type="B_Soldier_F";
- atlOffset=185.33873;
- };
- };
- class Attributes
- {
- };
- id=91;
- atlOffset=185.339;
- };
- class Item11
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.4951,-0.59456944,3349.2551};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=98;
- type="B_Soldier_F";
- atlOffset=185.37399;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
+ class Item51
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
};
};
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
+ class Item52
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="100,110,120,130,140,150";
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
};
};
- value=0.95999998;
};
};
};
- class Attribute2
+ class Item3
{
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
+ class data
{
- class data
+ nil=1;
+ class type
{
- class type
+ type[]=
{
- type[]=
- {
- "BOOL"
- };
+ "ANY"
};
- value=0;
};
};
};
- nAttributes=3;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.4954,-0.69494176,3347.6047};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
};
- id=99;
- type="B_Soldier_F";
- atlOffset=185.27362;
};
- class Item2
+ };
+ };
+ nAttributes=1;
+ };
+};
+class Mission
+{
+ class Intel
+ {
+ timeOfChanges=1800.0002;
+ startWeather=0.30000001;
+ startWind=0.1;
+ startWaves=0.1;
+ forecastWeather=0.30000001;
+ forecastWind=0.1;
+ forecastWaves=0.1;
+ forecastLightnings=0.1;
+ rainForced=1;
+ lightningsForced=1;
+ wavesForced=1;
+ windForced=1;
+ year=2035;
+ month=6;
+ day=24;
+ hour=12;
+ minute=0;
+ startFogDecay=0.013;
+ forecastFogDecay=0.013;
+ };
+ class Entities
+ {
+ items=153;
+ class Item0
+ {
+ dataType="Marker";
+ position[]={14678.785,17.91,16745.867};
+ name="respawn_west";
+ type="Empty";
+ id=7;
+ };
+ class Item1
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={2700.699,-7.3549957,3300.562};
+ };
+ id=240;
+ type="ModuleCurator_F";
+ atlOffset=178.61501;
+ class CustomAttributes
+ {
+ class Attribute0
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.4954,-0.44816136,3347.6047};
- };
- side="West";
- class Attributes
+ property="ModuleCurator_F_Owner";
+ expression="_this setVariable ['Owner',_value,true];";
+ class Value
{
- skill=0.60000002;
- isPlayable=1;
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="#adminLogged";
+ };
};
- id=100;
- type="B_Soldier_F";
- atlOffset=185.5204;
};
- class Item3
+ class Attribute1
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.4954,-0.76713109,3344.8655};
- };
- side="West";
- class Attributes
+ property="ModuleCurator_F_Forced";
+ expression="_this setVariable ['Forced',_value,true];";
+ class Value
{
- skill=0.60000002;
- isPlayable=1;
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
};
- id=101;
- type="B_Soldier_F";
- atlOffset=185.20143;
};
- class Item4
+ class Attribute2
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.4954,-0.59493566,3349.3049};
- };
- side="West";
- class Attributes
+ property="ModuleCurator_F_Name";
+ expression="_this setVariable ['Name',_value,true];";
+ class Value
{
- skill=0.60000002;
- isPlayable=1;
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
};
- id=102;
- type="B_Soldier_F";
- atlOffset=185.37363;
};
- };
- class Attributes
- {
- };
- id=97;
- atlOffset=185.37399;
- };
- class Item12
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=5;
- class Item0
+ class Attribute3
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.4651,-0.552562,3346.335};
- };
- side="West";
- flags=2;
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=104;
- type="B_Soldier_F";
- atlOffset=185.416;
- class CustomAttributes
+ property="ModuleInfo";
+ expression="false";
+ class Value
{
- class Attribute0
+ class data
{
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
+ class type
{
- class data
+ type[]=
{
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
+ "BOOL"
};
};
+ value=1;
};
- class Attribute1
+ };
+ };
+ class Attribute4
+ {
+ property="ModuleCurator_F_Addons";
+ expression="_this setVariable ['Addons',_value,true];";
+ class Value
+ {
+ class data
{
- property="pitch";
- expression="_this setpitch _value;";
- class Value
+ class type
{
- class data
+ type[]=
{
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.94999999;
+ "SCALAR"
};
};
+ value=3;
};
- class Attribute2
+ };
+ };
+ nAttributes=5;
+ };
+ };
+ class Item2
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={2800.0171,-11.335999,3300.6589};
+ };
+ id=241;
+ type="ModuleCurator_F";
+ atlOffset=174.634;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ModuleCurator_F_Owner";
+ expression="_this setVariable ['Owner',_value,true];";
+ class Value
+ {
+ class data
{
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
+ class type
{
- class data
+ type[]=
{
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
+ "STRING"
};
};
+ value="#adminVoted";
};
- nAttributes=3;
};
};
- class Item1
+ class Attribute1
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.4651,-0.65977025,3344.6843};
- };
- side="West";
- class Attributes
+ property="ModuleCurator_F_Forced";
+ expression="_this setVariable ['Forced',_value,true];";
+ class Value
{
- skill=0.60000002;
- isPlayable=1;
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
};
- id=105;
- type="B_Soldier_F";
- atlOffset=185.30879;
};
- class Item2
+ class Attribute2
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.4651,-0.42127538,3344.6843};
- };
- side="West";
- class Attributes
+ property="ModuleCurator_F_Name";
+ expression="_this setVariable ['Name',_value,true];";
+ class Value
{
- skill=0.60000002;
- isPlayable=1;
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
};
- id=106;
- type="B_Soldier_F";
- atlOffset=185.54729;
};
- class Item3
+ class Attribute3
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.4651,-0.74224401,3341.9451};
- };
- side="West";
- class Attributes
+ property="ModuleInfo";
+ expression="false";
+ class Value
{
- skill=0.60000002;
- isPlayable=1;
- };
- id=107;
- type="B_Soldier_F";
- atlOffset=185.22632;
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
};
- class Item4
+ class Attribute4
{
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.4651,-0.55361485,3346.3845};
- };
- side="West";
- class Attributes
+ property="ModuleCurator_F_Addons";
+ expression="_this setVariable ['Addons',_value,true];";
+ class Value
{
- skill=0.60000002;
- isPlayable=1;
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=3;
+ };
};
- id=108;
- type="B_Soldier_F";
- atlOffset=185.41495;
};
+ nAttributes=5;
};
- class Attributes
- {
- };
- id=103;
- atlOffset=185.416;
};
- class Item13
+ class Item3
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4951,-0.51656651,3343.564};
+ position[]={2598.626,-0.68056798,3375.115};
};
side="West";
flags=2;
@@ -2232,15 +3557,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=110;
+ id=44;
type="B_Soldier_F";
- atlOffset=185.452;
+ atlOffset=185.28799;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -2271,14 +3596,14 @@ class Mission
"SCALAR"
};
};
- value=0.99000001;
+ value=1.02;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -2297,111 +3622,44 @@ class Mission
nAttributes=3;
};
};
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.4954,-0.62241673,3341.9138};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=111;
- type="B_Soldier_F";
- atlOffset=185.34615;
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2593.4954,-0.40583348,3341.9138};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=112;
- type="B_Soldier_F";
- atlOffset=185.56273;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2608.4954,-0.70820165,3339.1746};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=113;
- type="B_Soldier_F";
- atlOffset=185.26036;
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2598.4954,-0.51702428,3343.614};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=114;
- type="B_Soldier_F";
- atlOffset=185.45154;
- };
};
class Attributes
{
};
- id=109;
- atlOffset=185.452;
+ id=246;
+ atlOffset=185.28799;
};
- class Item14
+ class Item4
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4651,-0.48256993,3340.7642};
+ position[]={2603.626,-0.77056432,3373.4651};
};
side="West";
flags=2;
class Attributes
{
skill=0.60000002;
+ isPlayer=1;
isPlayable=1;
};
- id=116;
+ id=45;
type="B_Soldier_F";
- atlOffset=185.48599;
+ atlOffset=185.198;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -2432,14 +3690,14 @@ class Mission
"SCALAR"
};
};
- value=0.95999998;
+ value=1.03;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -2458,94 +3716,122 @@ class Mission
nAttributes=3;
};
};
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2603.4651,-0.5789597,3339.114};
- };
- side="West";
- class Attributes
- {
- skill=0.60000002;
- isPlayable=1;
- };
- id=117;
- type="B_Soldier_F";
- atlOffset=185.3896;
- };
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=247;
+ atlOffset=185.198;
+ };
+ class Item5
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.4651,-0.40227818,3339.114};
+ position[]={2593.6257,-0.62095189,3373.4646};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=118;
+ id=46;
type="B_Soldier_F";
- atlOffset=185.56628;
+ atlOffset=185.34761;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=248;
+ atlOffset=185.34761;
+ };
+ class Item6
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.4651,-0.66520238,3336.3748};
+ position[]={2608.6257,-0.8657639,3370.7253};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=119;
+ id=47;
type="B_Soldier_F";
- atlOffset=185.30336;
+ atlOffset=185.1028;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=249;
+ atlOffset=185.1028;
+ };
+ class Item7
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4651,-0.48324132,3340.8142};
+ position[]={2598.6257,-0.68040013,3375.1648};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=120;
+ id=48;
type="B_Soldier_F";
- atlOffset=185.48532;
+ atlOffset=185.28816;
};
};
class Attributes
{
};
- id=115;
- atlOffset=185.48599;
+ id=250;
+ atlOffset=185.28816;
};
- class Item15
+ class Item8
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.439,-0.45556188,3338.188};
+ position[]={2598.6001,-0.67655492,3372.2471};
};
side="West";
flags=2;
@@ -2554,15 +3840,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=122;
+ id=50;
type="B_Soldier_F";
- atlOffset=185.513;
+ atlOffset=185.29201;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -2593,14 +3879,14 @@ class Mission
"SCALAR"
};
};
- value=0.98000002;
+ value=1.03;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -2619,94 +3905,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=251;
+ atlOffset=185.29201;
+ };
+ class Item9
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.4392,-0.54069066,3336.5378};
+ position[]={2603.6003,-0.75106359,3370.5964};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=123;
+ id=51;
type="B_Soldier_F";
- atlOffset=185.42787;
+ atlOffset=185.2175;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=252;
+ atlOffset=185.2175;
+ };
+ class Item10
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.4392,-0.40557408,3336.5378};
+ position[]={2593.6003,-0.62848973,3370.5964};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=124;
+ id=52;
type="B_Soldier_F";
- atlOffset=185.56299;
+ atlOffset=185.34007;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=253;
+ atlOffset=185.34007;
+ };
+ class Item11
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.4392,-0.62359166,3333.7986};
+ position[]={2608.6003,-0.83417821,3367.8572};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=125;
+ id=53;
type="B_Soldier_F";
- atlOffset=185.34497;
+ atlOffset=185.13438;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=254;
+ atlOffset=185.13438;
+ };
+ class Item12
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4392,-0.45641637,3338.238};
+ position[]={2598.6003,-0.67696691,3372.2966};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=126;
+ id=54;
type="B_Soldier_F";
- atlOffset=185.51215;
+ atlOffset=185.2916;
};
};
class Attributes
{
};
- id=121;
- atlOffset=185.513;
+ id=255;
+ atlOffset=185.2916;
};
- class Item16
+ class Item13
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.469,-0.44156957,3335.687};
+ position[]={2598.6379,-0.67856908,3369.4631};
};
side="West";
flags=2;
@@ -2715,15 +4061,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=128;
+ id=56;
type="B_Soldier_F";
- atlOffset=185.52699;
+ atlOffset=185.28999;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -2754,14 +4100,14 @@ class Mission
"SCALAR"
};
};
- value=1;
+ value=0.95999998;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -2780,94 +4126,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=256;
+ atlOffset=185.28999;
+ };
+ class Item14
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.4685,-0.50998998,3334.0369};
+ position[]={2603.6384,-0.74033666,3367.8127};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=129;
+ id=57;
type="B_Soldier_F";
- atlOffset=185.45857;
+ atlOffset=185.22823;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=257;
+ atlOffset=185.22823;
+ };
+ class Item15
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.4685,-0.41176915,3334.0369};
+ position[]={2593.6384,-0.63491368,3367.8127};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=130;
+ id=58;
type="B_Soldier_F";
- atlOffset=185.55679;
+ atlOffset=185.33365;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=258;
+ atlOffset=185.33365;
+ };
+ class Item16
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.4685,-0.58608556,3331.2976};
+ position[]={2608.6384,-0.81286168,3365.0735};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=131;
+ id=59;
type="B_Soldier_F";
- atlOffset=185.38248;
+ atlOffset=185.1557;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=259;
+ atlOffset=185.1557;
+ };
+ class Item17
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4685,-0.44205785,3335.7371};
+ position[]={2598.6384,-0.67869115,3369.5129};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=132;
+ id=60;
type="B_Soldier_F";
- atlOffset=185.5265;
+ atlOffset=185.28987;
};
};
class Attributes
{
};
- id=127;
- atlOffset=185.52699;
+ id=260;
+ atlOffset=185.28987;
};
- class Item17
+ class Item18
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4399,-0.43755651,3333.1292};
+ position[]={2598.688,-0.6835587,3366.354};
};
side="West";
flags=2;
@@ -2876,15 +4282,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=134;
+ id=62;
type="B_Soldier_F";
- atlOffset=185.53101;
+ atlOffset=185.285;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -2915,14 +4321,14 @@ class Mission
"SCALAR"
};
};
- value=0.95999998;
+ value=1;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -2941,94 +4347,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=261;
+ atlOffset=185.285;
+ };
+ class Item19
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.4402,-0.48527074,3331.4788};
+ position[]={2603.6882,-0.73540807,3364.7039};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=135;
+ id=63;
type="B_Soldier_F";
- atlOffset=185.48329;
+ atlOffset=185.23315;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=262;
+ atlOffset=185.23315;
+ };
+ class Item20
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.4402,-0.41526341,3331.4788};
+ position[]={2593.6882,-0.63354039,3364.7039};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=136;
+ id=64;
type="B_Soldier_F";
- atlOffset=185.5533;
+ atlOffset=185.33502;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=263;
+ atlOffset=185.33502;
+ };
+ class Item21
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.4402,-0.55095983,3328.7395};
+ position[]={2608.6882,-0.79658055,3361.9646};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=137;
+ id=65;
type="B_Soldier_F";
- atlOffset=185.4176;
+ atlOffset=185.17198;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=264;
+ atlOffset=185.17198;
+ };
+ class Item22
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4402,-0.43732762,3333.179};
+ position[]={2598.6882,-0.68291783,3366.4041};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=138;
+ id=66;
type="B_Soldier_F";
- atlOffset=185.53123;
+ atlOffset=185.28564;
};
};
class Attributes
{
};
- id=133;
- atlOffset=185.53101;
+ id=265;
+ atlOffset=185.28564;
};
- class Item18
+ class Item23
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.353,-0.4355576,3330.738};
+ position[]={2598.7009,-0.69256139,3363.345};
};
side="West";
flags=2;
@@ -3037,15 +4503,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=140;
+ id=68;
type="B_Soldier_F";
- atlOffset=185.533;
+ atlOffset=185.276;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -3076,14 +4542,14 @@ class Mission
"SCALAR"
};
};
- value=0.98000002;
+ value=0.99000001;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -3102,94 +4568,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=266;
+ atlOffset=185.276;
+ };
+ class Item24
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.3528,-0.47173619,3329.0876};
+ position[]={2603.7009,-0.73609471,3361.6946};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=141;
+ id=69;
type="B_Soldier_F";
- atlOffset=185.49683;
+ atlOffset=185.23247;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=267;
+ atlOffset=185.23247;
+ };
+ class Item25
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.3528,-0.41552281,3329.0876};
+ position[]={2593.7009,-0.61832738,3361.6946};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=142;
+ id=70;
type="B_Soldier_F";
- atlOffset=185.55304;
+ atlOffset=185.35023;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=268;
+ atlOffset=185.35023;
+ };
+ class Item26
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.3528,-0.52444005,3326.3484};
+ position[]={2608.7009,-0.78882909,3358.9553};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=143;
+ id=71;
type="B_Soldier_F";
- atlOffset=185.44412;
+ atlOffset=185.17973;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=269;
+ atlOffset=185.17973;
+ };
+ class Item27
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3528,-0.43583226,3330.7878};
+ position[]={2598.7009,-0.69207311,3363.3948};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=144;
+ id=72;
type="B_Soldier_F";
- atlOffset=185.53273;
+ atlOffset=185.27649;
};
};
class Attributes
{
};
- id=139;
- atlOffset=185.533;
+ id=270;
+ atlOffset=185.27649;
};
- class Item19
+ class Item28
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4409,-0.43856359,3328.667};
+ position[]={2598.6431,-0.69056249,3360.291};
};
side="West";
flags=2;
@@ -3198,15 +4724,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=146;
+ id=74;
type="B_Soldier_F";
- atlOffset=185.53;
+ atlOffset=185.278;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -3237,14 +4763,14 @@ class Mission
"SCALAR"
};
};
- value=0.99000001;
+ value=1;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -3263,94 +4789,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=271;
+ atlOffset=185.278;
+ };
+ class Item29
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.4407,-0.46731114,3327.0164};
+ position[]={2603.6428,-0.74134374,3358.6404};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=147;
+ id=75;
type="B_Soldier_F";
- atlOffset=185.50125;
+ atlOffset=185.22722;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=272;
+ atlOffset=185.22722;
+ };
+ class Item30
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.4407,-0.4127152,3327.0164};
+ position[]={2593.6428,-0.58892369,3358.6404};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=148;
+ id=76;
type="B_Soldier_F";
- atlOffset=185.55585;
+ atlOffset=185.37964;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=273;
+ atlOffset=185.37964;
+ };
+ class Item31
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.4407,-0.51203465,3324.2771};
+ position[]={2608.6428,-0.78786778,3355.9011};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=149;
+ id=77;
type="B_Soldier_F";
- atlOffset=185.45653;
+ atlOffset=185.18069;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=274;
+ atlOffset=185.18069;
+ };
+ class Item32
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4407,-0.43822789,3328.7166};
+ position[]={2598.6428,-0.69044042,3360.3406};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=150;
+ id=78;
type="B_Soldier_F";
- atlOffset=185.53033;
+ atlOffset=185.27812;
};
};
class Attributes
{
};
- id=145;
- atlOffset=185.53;
+ id=275;
+ atlOffset=185.27812;
};
- class Item20
+ class Item33
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.325,-0.44156957,3326.2542};
+ position[]={2598.585,-0.67856908,3357.2642};
};
side="West";
flags=2;
@@ -3359,15 +4945,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=152;
+ id=80;
type="B_Soldier_F";
- atlOffset=185.52699;
+ atlOffset=185.28999;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -3398,14 +4984,14 @@ class Mission
"SCALAR"
};
};
- value=1.02;
+ value=1.01;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -3424,94 +5010,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=276;
+ atlOffset=185.28999;
+ };
+ class Item34
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.325,-0.46548009,3324.6033};
+ position[]={2603.5847,-0.74161839,3355.6135};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=153;
+ id=81;
type="B_Soldier_F";
- atlOffset=185.50308;
+ atlOffset=185.22694;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=277;
+ atlOffset=185.22694;
+ };
+ class Item35
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.325,-0.40475011,3324.6033};
+ position[]={2593.5847,-0.5517838,3355.6135};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=154;
+ id=82;
type="B_Soldier_F";
- atlOffset=185.56381;
+ atlOffset=185.41678;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=278;
+ atlOffset=185.41678;
+ };
+ class Item36
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.325,-0.50164342,3321.864};
+ position[]={2608.5847,-0.78829503,3352.8743};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=155;
+ id=83;
type="B_Soldier_F";
- atlOffset=185.46692;
+ atlOffset=185.18027;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=279;
+ atlOffset=185.18027;
+ };
+ class Item37
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.325,-0.44102025,3326.3035};
+ position[]={2598.5847,-0.67835546,3357.3137};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=156;
+ id=84;
type="B_Soldier_F";
- atlOffset=185.52754;
+ atlOffset=185.29021;
};
};
class Attributes
{
};
- id=151;
- atlOffset=185.52699;
+ id=280;
+ atlOffset=185.29021;
};
- class Item21
+ class Item38
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4131,-0.44556737,3324.104};
+ position[]={2598.5559,-0.65856481,3354.644};
};
side="West";
flags=2;
@@ -3520,15 +5166,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=158;
+ id=86;
type="B_Soldier_F";
- atlOffset=185.52299;
+ atlOffset=185.31;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -3559,14 +5205,14 @@ class Mission
"SCALAR"
};
};
- value=1.02;
+ value=0.99000001;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -3585,94 +5231,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=281;
+ atlOffset=185.31;
+ };
+ class Item39
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.4128,-0.47066808,3322.4534};
+ position[]={2603.5564,-0.73394322,3352.9934};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=159;
+ id=87;
type="B_Soldier_F";
- atlOffset=185.49789;
+ atlOffset=185.23462;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=282;
+ atlOffset=185.23462;
+ };
+ class Item40
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.4128,-0.39335179,3322.4534};
+ position[]={2593.5564,-0.5159409,3352.9934};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=160;
+ id=88;
type="B_Soldier_F";
- atlOffset=185.57521;
+ atlOffset=185.45262;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=283;
+ atlOffset=185.45262;
+ };
+ class Item41
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.4128,-0.49970555,3319.7141};
+ position[]={2608.5564,-0.78623509,3350.2542};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=161;
+ id=89;
type="B_Soldier_F";
- atlOffset=185.46886;
+ atlOffset=185.18233;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=284;
+ atlOffset=185.18233;
+ };
+ class Item42
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.4128,-0.44565892,3324.1536};
+ position[]={2598.5564,-0.65871739,3354.6936};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=162;
+ id=90;
type="B_Soldier_F";
- atlOffset=185.5229;
+ atlOffset=185.30984;
};
};
class Attributes
{
};
- id=157;
- atlOffset=185.52299;
+ id=285;
+ atlOffset=185.30984;
};
- class Item22
+ class Item43
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.2681,-0.44556737,3321.864};
+ position[]={2598.5259,-0.62955785,3351.9341};
};
side="West";
flags=2;
@@ -3681,15 +5387,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=164;
+ id=92;
type="B_Soldier_F";
- atlOffset=185.52299;
+ atlOffset=185.339;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -3720,14 +5426,14 @@ class Mission
"SCALAR"
};
};
- value=1;
+ value=0.94999999;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -3746,94 +5452,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=286;
+ atlOffset=185.339;
+ };
+ class Item44
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.2678,-0.47600865,3320.2141};
+ position[]={2603.5261,-0.71898961,3350.2834};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=165;
+ id=93;
type="B_Soldier_F";
- atlOffset=185.49255;
+ atlOffset=185.24957;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=287;
+ atlOffset=185.24957;
+ };
+ class Item45
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.2678,-0.37206578,3320.2141};
+ position[]={2593.5261,-0.47931981,3350.2834};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=166;
+ id=94;
type="B_Soldier_F";
- atlOffset=185.5965;
+ atlOffset=185.48924;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=288;
+ atlOffset=185.48924;
+ };
+ class Item46
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.2678,-0.499614,3317.4749};
+ position[]={2608.5261,-0.78028417,3347.5442};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=167;
+ id=95;
type="B_Soldier_F";
- atlOffset=185.46895;
+ atlOffset=185.18828;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=289;
+ atlOffset=185.18828;
+ };
+ class Item47
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.2678,-0.44585729,3321.9143};
+ position[]={2598.5261,-0.62983251,3351.9836};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=168;
+ id=96;
type="B_Soldier_F";
- atlOffset=185.52271;
+ atlOffset=185.33873;
};
};
class Attributes
{
};
- id=163;
- atlOffset=185.52299;
+ id=290;
+ atlOffset=185.33873;
};
- class Item23
+ class Item48
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.24,-0.44056249,3319.5081};
+ position[]={2598.4951,-0.59456944,3349.2551};
};
side="West";
flags=2;
@@ -3842,15 +5608,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=170;
+ id=98;
type="B_Soldier_F";
- atlOffset=185.528;
+ atlOffset=185.37399;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -3881,14 +5647,14 @@ class Mission
"SCALAR"
};
};
- value=1.04;
+ value=0.95999998;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -3907,94 +5673,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=291;
+ atlOffset=185.37399;
+ };
+ class Item49
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.24,-0.47812963,3317.8577};
+ position[]={2603.4954,-0.69494176,3347.6047};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=171;
+ id=99;
type="B_Soldier_F";
- atlOffset=185.49043;
+ atlOffset=185.27362;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=292;
+ atlOffset=185.27362;
+ };
+ class Item50
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.24,-0.34675145,3317.8577};
+ position[]={2593.4954,-0.44816136,3347.6047};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=172;
+ id=100;
type="B_Soldier_F";
- atlOffset=185.62181;
+ atlOffset=185.5204;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=293;
+ atlOffset=185.5204;
+ };
+ class Item51
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.24,-0.49950719,3315.1184};
+ position[]={2608.4954,-0.76713109,3344.8655};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=173;
+ id=101;
type="B_Soldier_F";
- atlOffset=185.46906;
+ atlOffset=185.20143;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=294;
+ atlOffset=185.20143;
+ };
+ class Item52
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.24,-0.44088292,3319.5579};
+ position[]={2598.4954,-0.59493566,3349.3049};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=174;
+ id=102;
type="B_Soldier_F";
- atlOffset=185.52768;
+ atlOffset=185.37363;
};
};
class Attributes
{
};
- id=169;
- atlOffset=185.528;
+ id=295;
+ atlOffset=185.37363;
};
- class Item24
+ class Item53
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.27,-0.4295609,3317.415};
+ position[]={2598.4651,-0.552562,3346.335};
};
side="West";
flags=2;
@@ -4003,15 +5829,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=176;
+ id=104;
type="B_Soldier_F";
- atlOffset=185.539;
+ atlOffset=185.416;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -4042,14 +5868,14 @@ class Mission
"SCALAR"
};
};
- value=1.04;
+ value=0.94999999;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -4068,94 +5894,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=296;
+ atlOffset=185.416;
+ };
+ class Item54
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.2698,-0.47489476,3315.7644};
+ position[]={2603.4651,-0.65977025,3344.6843};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=177;
+ id=105;
type="B_Soldier_F";
- atlOffset=185.49367;
+ atlOffset=185.30879;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=297;
+ atlOffset=185.30879;
+ };
+ class Item55
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.2698,-0.32075047,3315.7644};
+ position[]={2593.4651,-0.42127538,3344.6843};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=178;
+ id=106;
type="B_Soldier_F";
- atlOffset=185.64781;
+ atlOffset=185.54729;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=298;
+ atlOffset=185.54729;
+ };
+ class Item56
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.2698,-0.4990952,3313.0251};
+ position[]={2608.4651,-0.74224401,3341.9451};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=179;
+ id=107;
type="B_Soldier_F";
- atlOffset=185.46947;
+ atlOffset=185.22632;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=299;
+ atlOffset=185.22632;
+ };
+ class Item57
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.2698,-0.42972875,3317.4646};
+ position[]={2598.4651,-0.55361485,3346.3845};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=180;
+ id=108;
type="B_Soldier_F";
- atlOffset=185.53883;
+ atlOffset=185.41495;
};
};
class Attributes
{
};
- id=175;
- atlOffset=185.539;
+ id=300;
+ atlOffset=185.41495;
};
- class Item25
+ class Item58
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.2991,-0.40955663,3315.187};
+ position[]={2598.4951,-0.51656651,3343.564};
};
side="West";
flags=2;
@@ -4164,15 +6050,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=182;
+ id=110;
type="B_Soldier_F";
- atlOffset=185.55901;
+ atlOffset=185.452;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -4203,14 +6089,14 @@ class Mission
"SCALAR"
};
};
- value=1.04;
+ value=0.99000001;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -4229,94 +6115,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=301;
+ atlOffset=185.452;
+ };
+ class Item59
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.2991,-0.46750951,3313.5364};
+ position[]={2603.4954,-0.62241673,3341.9138};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=183;
+ id=111;
type="B_Soldier_F";
- atlOffset=185.50105;
+ atlOffset=185.34615;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=302;
+ atlOffset=185.34615;
+ };
+ class Item60
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.2991,-0.29160619,3313.5364};
+ position[]={2593.4954,-0.40583348,3341.9138};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=184;
+ id=112;
type="B_Soldier_F";
- atlOffset=185.67696;
+ atlOffset=185.56273;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=303;
+ atlOffset=185.56273;
+ };
+ class Item61
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.2991,-0.49758458,3310.7971};
+ position[]={2608.4954,-0.70820165,3339.1746};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=185;
+ id=113;
type="B_Soldier_F";
- atlOffset=185.47098;
+ atlOffset=185.26036;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=304;
+ atlOffset=185.26036;
+ };
+ class Item62
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.2991,-0.41051793,3315.2366};
+ position[]={2598.4954,-0.51702428,3343.614};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=186;
+ id=114;
type="B_Soldier_F";
- atlOffset=185.55804;
+ atlOffset=185.45154;
};
};
class Attributes
{
};
- id=181;
- atlOffset=185.55901;
+ id=305;
+ atlOffset=185.45154;
};
- class Item26
+ class Item63
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.27,-0.38656163,3312.9761};
+ position[]={2598.4651,-0.48256993,3340.7642};
};
side="West";
flags=2;
@@ -4325,15 +6271,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=188;
+ id=116;
type="B_Soldier_F";
- atlOffset=185.582;
+ atlOffset=185.48599;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -4364,14 +6310,14 @@ class Mission
"SCALAR"
};
};
- value=1.03;
+ value=0.95999998;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -4390,94 +6336,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=306;
+ atlOffset=185.48599;
+ };
+ class Item64
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.2698,-0.45341039,3311.3259};
+ position[]={2603.4651,-0.5789597,3339.114};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=189;
+ id=117;
type="B_Soldier_F";
- atlOffset=185.51515;
+ atlOffset=185.3896;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=307;
+ atlOffset=185.3896;
+ };
+ class Item65
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.2698,-0.26218724,3311.3259};
+ position[]={2593.4651,-0.40227818,3339.114};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=190;
+ id=118;
type="B_Soldier_F";
- atlOffset=185.70638;
+ atlOffset=185.56628;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=308;
+ atlOffset=185.56628;
+ };
+ class Item66
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.2698,-0.49241185,3308.5867};
+ position[]={2608.4651,-0.66520238,3336.3748};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=191;
+ id=119;
type="B_Soldier_F";
- atlOffset=185.47615;
+ atlOffset=185.30336;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=309;
+ atlOffset=185.30336;
+ };
+ class Item67
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.2698,-0.38679051,3313.0261};
+ position[]={2598.4651,-0.48324132,3340.8142};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=192;
+ id=120;
type="B_Soldier_F";
- atlOffset=185.58177;
+ atlOffset=185.48532;
};
};
class Attributes
{
};
- id=187;
- atlOffset=185.582;
+ id=310;
+ atlOffset=185.48532;
};
- class Item27
+ class Item68
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3291,-0.36056066,3310.7939};
+ position[]={2598.439,-0.45556188,3338.188};
};
side="West";
flags=2;
@@ -4486,15 +6492,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=194;
+ id=122;
type="B_Soldier_F";
- atlOffset=185.608;
+ atlOffset=185.513;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -4532,7 +6538,7 @@ class Mission
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -4551,94 +6557,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=311;
+ atlOffset=185.513;
+ };
+ class Item69
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.3289,-0.43456578,3309.1433};
+ position[]={2603.4392,-0.54069066,3336.5378};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=195;
+ id=123;
type="B_Soldier_F";
- atlOffset=185.534;
+ atlOffset=185.42787;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=312;
+ atlOffset=185.42787;
+ };
+ class Item70
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.3289,-0.23745275,3309.1433};
+ position[]={2593.4392,-0.40557408,3336.5378};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=196;
+ id=124;
type="B_Soldier_F";
- atlOffset=185.73111;
+ atlOffset=185.56299;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=313;
+ atlOffset=185.56299;
+ };
+ class Item71
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.3289,-0.48235631,3306.4041};
+ position[]={2608.4392,-0.62359166,3333.7986};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=197;
+ id=125;
type="B_Soldier_F";
- atlOffset=185.48621;
+ atlOffset=185.34497;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=314;
+ atlOffset=185.34497;
+ };
+ class Item72
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3289,-0.36126256,3310.8435};
+ position[]={2598.4392,-0.45641637,3338.238};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=198;
+ id=126;
type="B_Soldier_F";
- atlOffset=185.6073;
+ atlOffset=185.51215;
};
};
class Attributes
{
};
- id=193;
- atlOffset=185.608;
+ id=315;
+ atlOffset=185.51215;
};
- class Item28
+ class Item73
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3579,-0.32856297,3308.5271};
+ position[]={2598.469,-0.44156957,3335.687};
};
side="West";
flags=2;
@@ -4647,15 +6713,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=200;
+ id=128;
type="B_Soldier_F";
- atlOffset=185.64;
+ atlOffset=185.52699;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -4686,14 +6752,14 @@ class Mission
"SCALAR"
};
};
- value=0.98000002;
+ value=1;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -4712,94 +6778,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=316;
+ atlOffset=185.52699;
+ };
+ class Item74
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.3582,-0.40886998,3306.8767};
+ position[]={2603.4685,-0.50998998,3334.0369};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=201;
+ id=129;
type="B_Soldier_F";
- atlOffset=185.55969;
+ atlOffset=185.45857;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=317;
+ atlOffset=185.45857;
+ };
+ class Item75
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.3582,-0.21575475,3306.8767};
+ position[]={2593.4685,-0.41176915,3334.0369};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=202;
+ id=130;
type="B_Soldier_F";
- atlOffset=185.75281;
+ atlOffset=185.55679;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=318;
+ atlOffset=185.55679;
+ };
+ class Item76
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.3582,-0.46525121,3304.1375};
+ position[]={2608.4685,-0.58608556,3331.2976};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=203;
+ id=131;
type="B_Soldier_F";
- atlOffset=185.50331;
+ atlOffset=185.38248;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=319;
+ atlOffset=185.38248;
+ };
+ class Item77
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3582,-0.32891393,3308.5769};
+ position[]={2598.4685,-0.44205785,3335.7371};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=204;
+ id=132;
type="B_Soldier_F";
- atlOffset=185.63965;
+ atlOffset=185.5265;
};
};
class Attributes
{
};
- id=199;
- atlOffset=185.64;
+ id=320;
+ atlOffset=185.5265;
};
- class Item29
+ class Item78
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3291,-0.29656529,3306.344};
+ position[]={2598.4399,-0.43755651,3333.1292};
};
side="West";
flags=2;
@@ -4808,15 +6934,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=206;
+ id=134;
type="B_Soldier_F";
- atlOffset=185.672;
+ atlOffset=185.53101;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -4847,14 +6973,14 @@ class Mission
"SCALAR"
};
};
- value=1;
+ value=0.95999998;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -4873,94 +6999,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=321;
+ atlOffset=185.53101;
+ };
+ class Item79
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.3289,-0.37876439,3304.6941};
+ position[]={2603.4402,-0.48527074,3331.4788};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=207;
+ id=135;
type="B_Soldier_F";
- atlOffset=185.5898;
+ atlOffset=185.48329;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=322;
+ atlOffset=185.48329;
+ };
+ class Item80
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.3289,-0.19993138,3304.6941};
+ position[]={2593.4402,-0.41526341,3331.4788};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=208;
+ id=136;
type="B_Soldier_F";
- atlOffset=185.76863;
+ atlOffset=185.5533;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=323;
+ atlOffset=185.5533;
+ };
+ class Item81
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.3289,-0.44184422,3301.9548};
+ position[]={2608.4402,-0.55095983,3328.7395};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=209;
+ id=137;
type="B_Soldier_F";
- atlOffset=185.52672;
+ atlOffset=185.4176;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=324;
+ atlOffset=185.4176;
+ };
+ class Item82
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3289,-0.2970078,3306.3943};
+ position[]={2598.4402,-0.43732762,3333.179};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=210;
+ id=138;
type="B_Soldier_F";
- atlOffset=185.67155;
+ atlOffset=185.53123;
};
};
class Attributes
{
};
- id=205;
- atlOffset=185.672;
+ id=325;
+ atlOffset=185.53123;
};
- class Item30
+ class Item83
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3291,-0.27256322,3304.4509};
+ position[]={2598.353,-0.4355576,3330.738};
};
side="West";
flags=2;
@@ -4969,15 +7155,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=212;
+ id=140;
type="B_Soldier_F";
- atlOffset=185.696;
+ atlOffset=185.533;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -5008,14 +7194,14 @@ class Mission
"SCALAR"
};
};
- value=1.05;
+ value=0.98000002;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -5034,94 +7220,154 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=326;
+ atlOffset=185.533;
+ };
+ class Item84
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.3289,-0.35119176,3302.801};
+ position[]={2603.3528,-0.47173619,3329.0876};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=213;
+ id=141;
type="B_Soldier_F";
- atlOffset=185.61737;
+ atlOffset=185.49683;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=327;
+ atlOffset=185.49683;
+ };
+ class Item85
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.3289,-0.19269872,3302.801};
+ position[]={2593.3528,-0.41552281,3329.0876};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=214;
+ id=142;
type="B_Soldier_F";
- atlOffset=185.77586;
+ atlOffset=185.55304;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=328;
+ atlOffset=185.55304;
+ };
+ class Item86
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.3289,-0.41794896,3300.0618};
+ position[]={2608.3528,-0.52444005,3326.3484};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=215;
+ id=143;
type="B_Soldier_F";
- atlOffset=185.55061;
+ atlOffset=185.44412;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=329;
+ atlOffset=185.44412;
+ };
+ class Item87
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3289,-0.27302098,3304.5012};
+ position[]={2598.3528,-0.43583226,3330.7878};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=216;
+ id=144;
type="B_Soldier_F";
- atlOffset=185.69554;
+ atlOffset=185.53273;
};
};
class Attributes
{
};
- id=211;
- atlOffset=185.696;
+ id=330;
+ atlOffset=185.53273;
};
- class Item31
+ class Item88
{
dataType="Group";
side="West";
class Entities
{
- items=5;
+ items=1;
class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.3,-0.25156713,3302.6201};
+ position[]={2598.4409,-0.43856359,3328.667};
};
side="West";
flags=2;
@@ -5130,15 +7376,15 @@ class Mission
skill=0.60000002;
isPlayable=1;
};
- id=218;
+ id=146;
type="B_Soldier_F";
- atlOffset=185.717;
+ atlOffset=185.53;
class CustomAttributes
{
class Attribute0
{
property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
class Value
{
class data
@@ -5169,14 +7415,14 @@ class Mission
"SCALAR"
};
};
- value=1;
+ value=0.99000001;
};
};
};
class Attribute2
{
property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
class Value
{
class data
@@ -5195,2327 +7441,2792 @@ class Mission
nAttributes=3;
};
};
- class Item1
+ };
+ class Attributes
+ {
+ };
+ id=331;
+ atlOffset=185.53;
+ };
+ class Item89
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2603.2996,-0.32499242,3300.97};
+ position[]={2603.4407,-0.46731114,3327.0164};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=219;
+ id=147;
type="B_Soldier_F";
- atlOffset=185.64357;
+ atlOffset=185.50125;
};
- class Item2
+ };
+ class Attributes
+ {
+ };
+ id=332;
+ atlOffset=185.50125;
+ };
+ class Item90
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2593.2996,-0.1888535,3300.97};
+ position[]={2593.4407,-0.4127152,3327.0164};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=220;
+ id=148;
type="B_Soldier_F";
- atlOffset=185.77971;
+ atlOffset=185.55585;
};
- class Item3
+ };
+ class Attributes
+ {
+ };
+ id=333;
+ atlOffset=185.55585;
+ };
+ class Item91
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2608.2996,-0.39176488,3298.2307};
+ position[]={2608.4407,-0.51203465,3324.2771};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=221;
+ id=149;
type="B_Soldier_F";
- atlOffset=185.5768;
+ atlOffset=185.45653;
};
- class Item4
+ };
+ class Attributes
+ {
+ };
+ id=334;
+ atlOffset=185.45653;
+ };
+ class Item92
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={2598.2996,-0.25193334,3302.6702};
+ position[]={2598.4407,-0.43822789,3328.7166};
};
side="West";
+ flags=2;
class Attributes
{
skill=0.60000002;
isPlayable=1;
};
- id=222;
+ id=150;
type="B_Soldier_F";
- atlOffset=185.71663;
+ atlOffset=185.53033;
};
};
class Attributes
{
};
- id=217;
- atlOffset=185.717;
+ id=335;
+ atlOffset=185.53033;
};
- class Item32
+ class Item93
{
- dataType="Logic";
- class PositionInfo
- {
- position[]={2900.7173,-9.0628815,3298.6672};
- };
- id=223;
- type="ace_zeus_moduleSettings";
- atlOffset=176.90712;
- class CustomAttributes
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
- {
- property="ace_zeus_moduleSettings_remoteWind";
- expression="_this setVariable ['remoteWind',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="ace_zeus_moduleSettings_zeusAscension";
- expression="_this setVariable ['zeusAscension',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute2
- {
- property="ace_zeus_moduleSettings_radioOrdnance";
- expression="_this setVariable ['radioOrdnance',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute3
- {
- property="ace_zeus_moduleSettings_revealMines";
- expression="_this setVariable ['revealMines',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
- };
- };
- class Attribute4
+ items=1;
+ class Item0
{
- property="ace_zeus_moduleSettings_zeusBird";
- expression="_this setVariable ['zeusBird',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2598.325,-0.44156957,3326.2542};
};
- };
- class Attribute5
- {
- property="ace_zeus_moduleSettings_autoAddObjects";
- expression="_this setVariable ['autoAddObjects',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
- };
- nAttributes=6;
- };
- };
- class Item33
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={2699.356,-1.4791107,2999.9539};
- };
- id=224;
- type="ACE_ModuleCheckPBOs";
- atlOffset=184.49089;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ACE_ModuleCheckPBOs_CheckAll";
- expression="_this setVariable ['CheckAll',_value,true];";
- class Value
+ id=152;
+ type="B_Soldier_F";
+ atlOffset=185.52699;
+ class CustomAttributes
{
- class data
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
- };
- };
- class Attribute1
- {
- property="ACE_ModuleCheckPBOs_Whitelist";
- expression="_this setVariable ['Whitelist',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "STRING"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.02;
};
};
- value="[]";
};
- };
- };
- class Attribute2
- {
- property="ACE_ModuleCheckPBOs_Action";
- expression="_this setVariable ['Action',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
+ nAttributes=3;
};
};
- nAttributes=3;
};
- };
- class Item34
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2700.9985,-3.4364319,3098.9578};
};
- id=225;
- type="ace_advanced_ballistics_ModuleSettings";
- atlOffset=182.53357;
- class CustomAttributes
+ id=336;
+ atlOffset=185.52699;
+ };
+ class Item94
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ace_advanced_ballistics_ModuleSettings_simulationRadius";
- expression="_this setVariable ['simulationRadius',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=3000;
- };
+ position[]={2603.325,-0.46548009,3324.6033};
};
- };
- class Attribute1
- {
- property="ace_advanced_ballistics_ModuleSettings_barrelLengthInfluenceEnabled";
- expression="_this setVariable ['barrelLengthInfluenceEnabled',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=153;
+ type="B_Soldier_F";
+ atlOffset=185.50308;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=337;
+ atlOffset=185.50308;
+ };
+ class Item95
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_ballistics_ModuleSettings_bulletTraceEnabled";
- expression="_this setVariable ['bulletTraceEnabled',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ position[]={2593.325,-0.40475011,3324.6033};
};
- };
- class Attribute3
- {
- property="ace_advanced_ballistics_ModuleSettings_simulationInterval";
- expression="_this setVariable ['simulationInterval',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=154;
+ type="B_Soldier_F";
+ atlOffset=185.56381;
};
- class Attribute4
+ };
+ class Attributes
+ {
+ };
+ id=338;
+ atlOffset=185.56381;
+ };
+ class Item96
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_ballistics_ModuleSettings_disabledInFullAutoMode";
- expression="_this setVariable ['disabledInFullAutoMode',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2608.325,-0.50164342,3321.864};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=155;
+ type="B_Soldier_F";
+ atlOffset=185.46692;
};
- class Attribute5
+ };
+ class Attributes
+ {
+ };
+ id=339;
+ atlOffset=185.46692;
+ };
+ class Item97
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_ballistics_ModuleSettings_simulateForEveryone";
- expression="_this setVariable ['simulateForEveryone',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2598.325,-0.44102025,3326.3035};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=156;
+ type="B_Soldier_F";
+ atlOffset=185.52754;
};
- class Attribute6
+ };
+ class Attributes
+ {
+ };
+ id=340;
+ atlOffset=185.52754;
+ };
+ class Item98
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_ballistics_ModuleSettings_simulateForSnipers";
- expression="_this setVariable ['simulateForSnipers',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.4131,-0.44556737,3324.104};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=158;
+ type="B_Soldier_F";
+ atlOffset=185.52299;
+ class CustomAttributes
{
- class data
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
- };
- };
- class Attribute7
- {
- property="ace_advanced_ballistics_ModuleSettings_simulateForGroupMembers";
- expression="_this setVariable ['simulateForGroupMembers',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.02;
};
};
- value=0;
};
- };
- };
- class Attribute8
- {
- property="ace_advanced_ballistics_ModuleSettings_ammoTemperatureEnabled";
- expression="_this setVariable ['ammoTemperatureEnabled',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
+ nAttributes=3;
};
};
- class Attribute9
+ };
+ class Attributes
+ {
+ };
+ id=341;
+ atlOffset=185.52299;
+ };
+ class Item99
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_ballistics_ModuleSettings_enabled";
- expression="_this setVariable ['enabled',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2603.4128,-0.47066808,3322.4534};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=159;
+ type="B_Soldier_F";
+ atlOffset=185.49789;
};
- nAttributes=10;
};
- };
- class Item35
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2700.8311,-15.908127,2799.2937};
};
- id=226;
- type="ACE_ModuleExplosive";
- atlOffset=170.06187;
- class CustomAttributes
+ id=342;
+ atlOffset=185.49789;
+ };
+ class Item100
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_ModuleExplosive_RequireSpecialist";
- expression="_this setVariable ['RequireSpecialist',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2593.4128,-0.39335179,3322.4534};
};
- };
- class Attribute1
- {
- property="ACE_ModuleExplosive_PunishNonSpecialists";
- expression="_this setVariable ['PunishNonSpecialists',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=160;
+ type="B_Soldier_F";
+ atlOffset=185.57521;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=343;
+ atlOffset=185.57521;
+ };
+ class Item101
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_ModuleExplosive_ExplodeOnDefuse";
- expression="_this setVariable ['ExplodeOnDefuse',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2608.4128,-0.49970555,3319.7141};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=161;
+ type="B_Soldier_F";
+ atlOffset=185.46886;
};
- nAttributes=3;
};
- };
- class Item36
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2901.502,-5.984024,3099.3596};
};
- id=227;
- type="ace_weather_ModuleSettings";
- atlOffset=179.98598;
- class CustomAttributes
+ id=344;
+ atlOffset=185.46886;
+ };
+ class Item102
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ace_weather_ModuleSettings_useACEWeather";
- expression="_this setVariable ['useACEWeather',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2598.4128,-0.44565892,3324.1536};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=162;
+ type="B_Soldier_F";
+ atlOffset=185.5229;
};
- class Attribute1
+ };
+ class Attributes
+ {
+ };
+ id=345;
+ atlOffset=185.5229;
+ };
+ class Item103
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_weather_ModuleSettings_serverUpdateInterval";
- expression="_this setVariable ['serverUpdateInterval',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.2681,-0.44556737,3321.864};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=164;
+ type="B_Soldier_F";
+ atlOffset=185.52299;
+ class CustomAttributes
{
- class data
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=60;
};
- };
- };
- class Attribute2
- {
- property="ace_weather_ModuleSettings_syncMisc";
- expression="_this setVariable ['syncMisc',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
};
};
- value=1;
};
- };
- };
- class Attribute3
- {
- property="ace_weather_ModuleSettings_syncRain";
- expression="_this setVariable ['syncRain',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
+ nAttributes=3;
};
};
- class Attribute4
+ };
+ class Attributes
+ {
+ };
+ id=346;
+ atlOffset=185.52299;
+ };
+ class Item104
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_weather_ModuleSettings_enableServerController";
- expression="_this setVariable ['enableServerController',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2603.2678,-0.47600865,3320.2141};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=165;
+ type="B_Soldier_F";
+ atlOffset=185.49255;
};
- class Attribute5
+ };
+ class Attributes
+ {
+ };
+ id=347;
+ atlOffset=185.49255;
+ };
+ class Item105
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_weather_ModuleSettings_syncWind";
- expression="_this setVariable ['syncWind',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ position[]={2593.2678,-0.37206578,3320.2141};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=166;
+ type="B_Soldier_F";
+ atlOffset=185.5965;
};
- nAttributes=6;
};
+ class Attributes
+ {
+ };
+ id=348;
+ atlOffset=185.5965;
};
- class Item37
+ class Item106
{
- dataType="Logic";
- class PositionInfo
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2608.2678,-0.499614,3317.4749};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=167;
+ type="B_Soldier_F";
+ atlOffset=185.46895;
+ };
+ };
+ class Attributes
{
- position[]={3101.1389,-8.8529968,2797.615};
};
- id=228;
- type="ACE_ModuleHearing";
- atlOffset=177.117;
- class CustomAttributes
+ id=349;
+ atlOffset=185.46895;
+ };
+ class Item107
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_ModuleHearing_autoAddEarplugsToUnits";
- expression="_this setVariable ['autoAddEarplugsToUnits',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2598.2678,-0.44585729,3321.9143};
};
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=168;
+ type="B_Soldier_F";
+ atlOffset=185.52271;
};
- class Attribute1
+ };
+ class Attributes
+ {
+ };
+ id=350;
+ atlOffset=185.52271;
+ };
+ class Item108
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_ModuleHearing_EnableCombatDeafness";
- expression="_this setVariable ['EnableCombatDeafness',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
+ position[]={2598.24,-0.44056249,3319.5081};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=170;
+ type="B_Soldier_F";
+ atlOffset=185.528;
+ class CustomAttributes
+ {
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
- };
- };
- class Attribute2
- {
- property="ACE_ModuleHearing_enabledForZeusUnits";
- expression="_this setVariable ['enabledForZeusUnits',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.04;
};
};
- value=0;
};
- };
- };
- class Attribute3
- {
- property="ACE_ModuleHearing_DisableEarRinging";
- expression="_this setVariable ['DisableEarRinging',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
+ nAttributes=3;
};
};
- nAttributes=4;
};
- };
- class Item38
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2800.4673,-2.8485718,2998.74};
};
- id=229;
- type="ace_spectator_moduleSettings";
- atlOffset=183.12143;
- class CustomAttributes
+ id=351;
+ atlOffset=185.528;
+ };
+ class Item109
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ace_spectator_moduleSettings_sidesFilter";
- expression="_this setVariable ['sidesFilter',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=3;
- };
+ position[]={2603.24,-0.47812963,3317.8577};
};
- };
- class Attribute1
- {
- property="ace_spectator_moduleSettings_cameraModes";
- expression="_this setVariable ['cameraModes',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=171;
+ type="B_Soldier_F";
+ atlOffset=185.49043;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=352;
+ atlOffset=185.49043;
+ };
+ class Item110
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_spectator_moduleSettings_unitsFilter";
- expression="_this setVariable ['unitsFilter',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=2;
- };
+ position[]={2593.24,-0.34675145,3317.8577};
};
- };
- class Attribute3
- {
- property="ace_spectator_moduleSettings_visionModes";
- expression="_this setVariable ['visionModes',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=172;
+ type="B_Soldier_F";
+ atlOffset=185.62181;
};
- nAttributes=4;
};
- };
- class Item39
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2900.3975,-8.8689423,2800.114};
};
- id=230;
- type="ACE_ModuleInteraction";
- atlOffset=177.10106;
- class CustomAttributes
+ id=353;
+ atlOffset=185.62181;
+ };
+ class Item111
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_ModuleInteraction_EnableTeamManagement";
- expression="_this setVariable ['EnableTeamManagement',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2608.24,-0.49950719,3315.1184};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=173;
+ type="B_Soldier_F";
+ atlOffset=185.46906;
};
- nAttributes=1;
};
+ class Attributes
+ {
+ };
+ id=354;
+ atlOffset=185.46906;
};
- class Item40
+ class Item112
{
- dataType="Logic";
- class PositionInfo
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.24,-0.44088292,3319.5579};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=174;
+ type="B_Soldier_F";
+ atlOffset=185.52768;
+ };
+ };
+ class Attributes
{
- position[]={2801.1401,-11.712524,2799.0422};
};
- id=232;
- type="ace_finger_moduleSettings";
- atlOffset=174.25748;
- class CustomAttributes
+ id=355;
+ atlOffset=185.52768;
+ };
+ class Item113
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ace_finger_moduleSettings_maxRange";
- expression="_this setVariable ['maxRange',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
+ position[]={2598.27,-0.4295609,3317.415};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=176;
+ type="B_Soldier_F";
+ atlOffset=185.539;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.04;
};
};
- value=4;
};
- };
- };
- class Attribute1
- {
- property="ace_finger_moduleSettings_enabled";
- expression="_this setVariable ['enabled',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
+ nAttributes=3;
};
};
- nAttributes=2;
};
- };
- class Item41
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2899.5742,-3.305481,2998.6399};
};
- id=233;
- type="ACE_ModuleNameTags";
- atlOffset=182.66452;
- class CustomAttributes
+ id=356;
+ atlOffset=185.539;
+ };
+ class Item114
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_ModuleNameTags_showCursorTagForVehicles";
- expression="_this setVariable ['showCursorTagForVehicles',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2603.2698,-0.47489476,3315.7644};
};
- };
- class Attribute1
- {
- property="ACE_ModuleNameTags_showNamesForAI";
- expression="_this setVariable ['showNamesForAI',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=-1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=177;
+ type="B_Soldier_F";
+ atlOffset=185.49367;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=357;
+ atlOffset=185.49367;
+ };
+ class Item115
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_ModuleNameTags_showVehicleCrewInfo";
- expression="_this setVariable ['showVehicleCrewInfo',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=-1;
- };
+ position[]={2593.2698,-0.32075047,3315.7644};
};
- };
- class Attribute3
- {
- property="ACE_ModuleNameTags_showPlayerNames";
- expression="_this setVariable ['showPlayerNames',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=178;
+ type="B_Soldier_F";
+ atlOffset=185.64781;
};
- class Attribute4
+ };
+ class Attributes
+ {
+ };
+ id=358;
+ atlOffset=185.64781;
+ };
+ class Item116
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_ModuleNameTags_playerNamesViewDistance";
- expression="_this setVariable ['playerNamesViewDistance',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=4;
- };
+ position[]={2608.2698,-0.4990952,3313.0251};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=179;
+ type="B_Soldier_F";
+ atlOffset=185.46947;
};
- nAttributes=5;
};
+ class Attributes
+ {
+ };
+ id=359;
+ atlOffset=185.46947;
};
- class Item42
+ class Item117
{
- dataType="Logic";
- class PositionInfo
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.2698,-0.42972875,3317.4646};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=180;
+ type="B_Soldier_F";
+ atlOffset=185.53883;
+ };
+ };
+ class Attributes
{
- position[]={2699.7627,-3.5797272,2899.8479};
};
- id=234;
- type="ACE_VehicleLock_ModuleSetup";
- atlOffset=182.39027;
- class CustomAttributes
+ id=360;
+ atlOffset=185.53883;
+ };
+ class Item118
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_VehicleLock_ModuleSetup_DefaultLockpickStrength";
- expression="_this setVariable ['DefaultLockpickStrength',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
+ position[]={2598.2991,-0.40955663,3315.187};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=182;
+ type="B_Soldier_F";
+ atlOffset=185.55901;
+ class CustomAttributes
+ {
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=180;
- };
- };
- };
- class Attribute1
- {
- property="ACE_VehicleLock_ModuleSetup_VehicleStartingLockState";
- expression="_this setVariable ['VehicleStartingLockState',_value,true];";
- class Value
- {
- class data
+ };
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.04;
};
};
- value=2;
};
- };
- };
- class Attribute2
- {
- property="ACE_VehicleLock_ModuleSetup_LockVehicleInventory";
- expression="_this setVariable ['LockVehicleInventory',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
+ nAttributes=3;
};
};
- nAttributes=3;
};
- };
- class Item43
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2800.3945,-5.4571838,3099.3591};
};
- id=235;
- type="ace_winddeflection_ModuleSettings";
- atlOffset=180.51282;
- class CustomAttributes
+ id=361;
+ atlOffset=185.55901;
+ };
+ class Item119
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ace_winddeflection_ModuleSettings_simulationInterval";
- expression="_this setVariable ['simulationInterval',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.1;
- };
+ position[]={2603.2991,-0.46750951,3313.5364};
};
- };
- class Attribute1
- {
- property="ace_winddeflection_ModuleSettings_enabled";
- expression="_this setVariable ['enabled',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=183;
+ type="B_Soldier_F";
+ atlOffset=185.50105;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=362;
+ atlOffset=185.50105;
+ };
+ class Item120
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_winddeflection_ModuleSettings_simulationRadius";
- expression="_this setVariable ['simulationRadius',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=3000;
- };
+ position[]={2593.2991,-0.29160619,3313.5364};
};
- };
- class Attribute3
- {
- property="ace_winddeflection_ModuleSettings_vehicleEnabled";
- expression="_this setVariable ['vehicleEnabled',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=184;
+ type="B_Soldier_F";
+ atlOffset=185.67696;
};
- nAttributes=4;
};
- };
- class Item44
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2799.751,-2.6606445,2899.6423};
};
- id=236;
- type="ACE_moduleRepairSettings";
- atlOffset=183.30936;
- class CustomAttributes
+ id=363;
+ atlOffset=185.67696;
+ };
+ class Item121
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_moduleRepairSettings_fullRepairLocation";
- expression="_this setVariable ['fullRepairLocation',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ position[]={2608.2991,-0.49758458,3310.7971};
};
- };
- class Attribute1
- {
- property="ACE_moduleRepairSettings_engineerSetting_fullRepair";
- expression="_this setVariable ['engineerSetting_fullRepair',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=185;
+ type="B_Soldier_F";
+ atlOffset=185.47098;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=364;
+ atlOffset=185.47098;
+ };
+ class Item122
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleRepairSettings_engineerSetting_Repair";
- expression="_this setVariable ['engineerSetting_Repair',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ position[]={2598.2991,-0.41051793,3315.2366};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=186;
+ type="B_Soldier_F";
+ atlOffset=185.55804;
};
- class Attribute3
+ };
+ class Attributes
+ {
+ };
+ id=365;
+ atlOffset=185.55804;
+ };
+ class Item123
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleRepairSettings_consumeItem_ToolKit";
- expression="_this setVariable ['consumeItem_ToolKit',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.27,-0.38656163,3312.9761};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=188;
+ type="B_Soldier_F";
+ atlOffset=185.582;
+ class CustomAttributes
{
- class data
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
- };
- };
- class Attribute4
- {
- property="ACE_moduleRepairSettings_repairDamageThreshold";
- expression="_this setVariable ['repairDamageThreshold',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
};
};
- value=0.60000002;
};
- };
- };
- class Attribute5
- {
- property="ACE_moduleRepairSettings_wheelRepairRequiredItems";
- expression="_this setVariable ['wheelRepairRequiredItems',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
+ nAttributes=3;
};
};
- class Attribute6
+ };
+ class Attributes
+ {
+ };
+ id=366;
+ atlOffset=185.582;
+ };
+ class Item124
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleRepairSettings_repairDamageThreshold_Engineer";
- expression="_this setVariable ['repairDamageThreshold_Engineer',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.40000001;
- };
+ position[]={2603.2698,-0.45341039,3311.3259};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=189;
+ type="B_Soldier_F";
+ atlOffset=185.51515;
};
- class Attribute7
+ };
+ class Attributes
+ {
+ };
+ id=367;
+ atlOffset=185.51515;
+ };
+ class Item125
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleRepairSettings_engineerSetting_Wheel";
- expression="_this setVariable ['engineerSetting_Wheel',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ position[]={2593.2698,-0.26218724,3311.3259};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=190;
+ type="B_Soldier_F";
+ atlOffset=185.70638;
};
- class Attribute8
+ };
+ class Attributes
+ {
+ };
+ id=368;
+ atlOffset=185.70638;
+ };
+ class Item126
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleRepairSettings_addSpareParts";
- expression="_this setVariable ['addSpareParts',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ position[]={2608.2698,-0.49241185,3308.5867};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=191;
+ type="B_Soldier_F";
+ atlOffset=185.47615;
};
- nAttributes=9;
};
+ class Attributes
+ {
+ };
+ id=369;
+ atlOffset=185.47615;
};
- class Item45
+ class Item127
{
- dataType="Logic";
- class PositionInfo
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.2698,-0.38679051,3313.0261};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=192;
+ type="B_Soldier_F";
+ atlOffset=185.58177;
+ };
+ };
+ class Attributes
{
- position[]={2699.2646,-5.5454865,3198.3997};
};
- id=237;
- type="ACE_ModuleRespawn";
- atlOffset=180.42451;
- class CustomAttributes
+ id=370;
+ atlOffset=185.58177;
+ };
+ class Item128
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_ModuleRespawn_RemoveDeadBodiesDisconnected";
- expression="_this setVariable ['RemoveDeadBodiesDisconnected',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
+ position[]={2598.3291,-0.36056066,3310.7939};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=194;
+ type="B_Soldier_F";
+ atlOffset=185.608;
+ class CustomAttributes
+ {
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
};
};
- value=0;
};
- };
- };
- class Attribute1
- {
- property="ACE_ModuleRespawn_SavePreDeathGear";
- expression="_this setVariable ['SavePreDeathGear',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
+ nAttributes=3;
};
};
- nAttributes=2;
};
- };
- class Item46
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2800.4299,-7.8200073,3199.887};
};
- id=238;
- type="ACE_moduleMedicalSettings";
- atlOffset=178.14999;
- class CustomAttributes
+ id=371;
+ atlOffset=185.608;
+ };
+ class Item129
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_litterCleanUpDelay";
- expression="_this setVariable ['litterCleanUpDelay',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1800;
- };
+ position[]={2603.3289,-0.43456578,3309.1433};
};
- };
- class Attribute1
- {
- property="ACE_moduleMedicalSettings_enableScreams";
- expression="_this setVariable ['enableScreams',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=195;
+ type="B_Soldier_F";
+ atlOffset=185.534;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=372;
+ atlOffset=185.534;
+ };
+ class Item130
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_preventInstaDeath";
- expression="_this setVariable ['preventInstaDeath',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2593.3289,-0.23745275,3309.1433};
};
- };
- class Attribute3
- {
- property="ACE_moduleMedicalSettings_bleedingCoefficient";
- expression="_this setVariable ['bleedingCoefficient',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=196;
+ type="B_Soldier_F";
+ atlOffset=185.73111;
};
- class Attribute4
+ };
+ class Attributes
+ {
+ };
+ id=373;
+ atlOffset=185.73111;
+ };
+ class Item131
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_increaseTrainingInLocations";
- expression="_this setVariable ['increaseTrainingInLocations',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ position[]={2608.3289,-0.48235631,3306.4041};
};
- };
- class Attribute5
- {
- property="ACE_moduleMedicalSettings_enableUnconsciousnessAI";
- expression="_this setVariable ['enableUnconsciousnessAI',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=197;
+ type="B_Soldier_F";
+ atlOffset=185.48621;
};
- class Attribute6
+ };
+ class Attributes
+ {
+ };
+ id=374;
+ atlOffset=185.48621;
+ };
+ class Item132
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_remoteControlledAI";
- expression="_this setVariable ['remoteControlledAI',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ position[]={2598.3289,-0.36126256,3310.8435};
};
- };
- class Attribute7
- {
- property="ACE_moduleMedicalSettings_painCoefficient";
- expression="_this setVariable ['painCoefficient',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=198;
+ type="B_Soldier_F";
+ atlOffset=185.6073;
};
- class Attribute8
+ };
+ class Attributes
+ {
+ };
+ id=375;
+ atlOffset=185.6073;
+ };
+ class Item133
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_AIDamageThreshold";
- expression="_this setVariable ['AIDamageThreshold',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.3579,-0.32856297,3308.5271};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=200;
+ type="B_Soldier_F";
+ atlOffset=185.64;
+ class CustomAttributes
{
- class data
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
- };
- };
- class Attribute9
- {
- property="ACE_moduleMedicalSettings_playerDamageThreshold";
- expression="_this setVariable ['playerDamageThreshold',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
};
};
- value=0.80000001;
};
- };
- };
- class Attribute10
- {
- property="ACE_moduleMedicalSettings_level";
- expression="_this setVariable ['level',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
+ nAttributes=3;
};
};
- class Attribute11
+ };
+ class Attributes
+ {
+ };
+ id=376;
+ atlOffset=185.64;
+ };
+ class Item134
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_allowLitterCreation";
- expression="_this setVariable ['allowLitterCreation',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ position[]={2603.3582,-0.40886998,3306.8767};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=201;
+ type="B_Soldier_F";
+ atlOffset=185.55969;
};
- class Attribute12
+ };
+ class Attributes
+ {
+ };
+ id=377;
+ atlOffset=185.55969;
+ };
+ class Item135
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_keepLocalSettingsSynced";
- expression="_this setVariable ['keepLocalSettingsSynced',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ position[]={2593.3582,-0.21575475,3306.8767};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=202;
+ type="B_Soldier_F";
+ atlOffset=185.75281;
};
- class Attribute13
+ };
+ class Attributes
+ {
+ };
+ id=378;
+ atlOffset=185.75281;
+ };
+ class Item136
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ACE_moduleMedicalSettings_medicSetting";
- expression="_this setVariable ['medicSetting',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ position[]={2608.3582,-0.46525121,3304.1375};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=203;
+ type="B_Soldier_F";
+ atlOffset=185.50331;
};
- nAttributes=14;
};
+ class Attributes
+ {
+ };
+ id=379;
+ atlOffset=185.50331;
};
- class Item47
+ class Item137
{
- dataType="Logic";
- class PositionInfo
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.3582,-0.32891393,3308.5769};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=204;
+ type="B_Soldier_F";
+ atlOffset=185.63965;
+ };
+ };
+ class Attributes
{
- position[]={2899.7222,-9.357132,3200.5168};
};
- id=239;
- type="ACE_moduleReviveSettings";
- atlOffset=176.61287;
- class CustomAttributes
+ id=380;
+ atlOffset=185.63965;
+ };
+ class Item138
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_moduleReviveSettings_amountOfReviveLives";
- expression="_this setVariable ['amountOfReviveLives',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
+ position[]={2598.3291,-0.29656529,3306.344};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=206;
+ type="B_Soldier_F";
+ atlOffset=185.672;
+ class CustomAttributes
+ {
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
- };
- value=-1;
- };
- };
- };
- class Attribute1
- {
- property="ACE_moduleReviveSettings_enableRevive";
- expression="_this setVariable ['enableRevive',_value,true];";
- class Value
- {
- class data
+ };
+ };
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
};
};
- value=0;
};
- };
- };
- class Attribute2
- {
- property="ACE_moduleReviveSettings_maxReviveTime";
- expression="_this setVariable ['maxReviveTime',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=120;
};
+ nAttributes=3;
};
};
- nAttributes=3;
};
- };
- class Item48
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2700.6992,-7.354538,3300.5618};
};
- id=240;
- type="ModuleCurator_F";
- atlOffset=178.61546;
- class CustomAttributes
+ id=381;
+ atlOffset=185.672;
+ };
+ class Item139
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ModuleCurator_F_Owner";
- expression="_this setVariable ['Owner',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="#adminLogged";
- };
+ position[]={2603.3289,-0.37876439,3304.6941};
};
- };
- class Attribute1
- {
- property="ModuleCurator_F_Forced";
- expression="_this setVariable ['Forced',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=207;
+ type="B_Soldier_F";
+ atlOffset=185.5898;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=382;
+ atlOffset=185.5898;
+ };
+ class Item140
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ModuleCurator_F_Name";
- expression="_this setVariable ['Name',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="";
- };
+ position[]={2593.3289,-0.19993138,3304.6941};
};
- };
- class Attribute3
- {
- property="ModuleInfo";
- expression="false";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=208;
+ type="B_Soldier_F";
+ atlOffset=185.76863;
};
- class Attribute4
+ };
+ class Attributes
+ {
+ };
+ id=383;
+ atlOffset=185.76863;
+ };
+ class Item141
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ModuleCurator_F_Addons";
- expression="_this setVariable ['Addons',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=2;
- };
+ position[]={2608.3289,-0.44184422,3301.9548};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=209;
+ type="B_Soldier_F";
+ atlOffset=185.52672;
};
- nAttributes=5;
};
+ class Attributes
+ {
+ };
+ id=384;
+ atlOffset=185.52672;
};
- class Item49
+ class Item142
{
- dataType="Logic";
- class PositionInfo
+ dataType="Group";
+ side="West";
+ class Entities
{
- position[]={2800.0166,-11.335938,3300.6594};
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.3289,-0.2970078,3306.3943};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=210;
+ type="B_Soldier_F";
+ atlOffset=185.67155;
+ };
};
- id=241;
- type="ModuleCurator_F";
- atlOffset=174.63406;
- class CustomAttributes
+ class Attributes
{
- class Attribute0
+ };
+ id=385;
+ atlOffset=185.67155;
+ };
+ class Item143
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ModuleCurator_F_Owner";
- expression="_this setVariable ['Owner',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="#adminVoted";
- };
+ position[]={2598.3291,-0.27256322,3304.4509};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
- };
- class Attribute1
- {
- property="ModuleCurator_F_Forced";
- expression="_this setVariable ['Forced',_value,true];";
- class Value
+ id=212;
+ type="B_Soldier_F";
+ atlOffset=185.696;
+ class CustomAttributes
{
- class data
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "SCALAR"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
- };
- };
- class Attribute2
- {
- property="ModuleCurator_F_Name";
- expression="_this setVariable ['Name',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "STRING"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.05;
};
};
- value="";
};
- };
- };
- class Attribute3
- {
- property="ModuleInfo";
- expression="false";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=1;
};
+ nAttributes=3;
};
};
- class Attribute4
+ };
+ class Attributes
+ {
+ };
+ id=386;
+ atlOffset=185.696;
+ };
+ class Item144
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ModuleCurator_F_Addons";
- expression="_this setVariable ['Addons',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=2;
- };
+ position[]={2603.3289,-0.35119176,3302.801};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=213;
+ type="B_Soldier_F";
+ atlOffset=185.61737;
};
- nAttributes=5;
};
- };
- class Item50
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2901.3623,-3.0949097,2899.7175};
};
- id=242;
- type="ACE_moduleCargoSettings";
- atlOffset=182.87509;
- class CustomAttributes
+ id=387;
+ atlOffset=185.61737;
+ };
+ class Item145
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_moduleCargoSettings_enable";
- expression="_this setVariable ['enable',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
+ position[]={2593.3289,-0.19269872,3302.801};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=214;
+ type="B_Soldier_F";
+ atlOffset=185.77586;
};
- nAttributes=1;
};
- };
- class Item51
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={2701.0769,-9.3999939,3398.9099};
};
- id=243;
- type="ace_viewdistance_ModuleSettings";
- atlOffset=176.57001;
- class CustomAttributes
+ id=388;
+ atlOffset=185.77586;
+ };
+ class Item146
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ace_viewdistance_ModuleSettings_moduleViewDistanceLimit";
- expression="_this setVariable ['moduleViewDistanceLimit',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=2500;
- };
+ position[]={2608.3289,-0.41794896,3300.0618};
};
- };
- class Attribute1
- {
- property="ace_viewdistance_ModuleSettings_moduleViewDistanceEnabled";
- expression="_this setVariable ['moduleViewDistanceEnabled',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=215;
+ type="B_Soldier_F";
+ atlOffset=185.55061;
};
- nAttributes=2;
};
+ class Attributes
+ {
+ };
+ id=389;
+ atlOffset=185.55061;
};
- class Item52
+ class Item147
{
- dataType="Logic";
- class PositionInfo
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.3289,-0.27302098,3304.5012};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=216;
+ type="B_Soldier_F";
+ atlOffset=185.69554;
+ };
+ };
+ class Attributes
{
- position[]={3201.511,-185.97,2799.1521};
};
- id=244;
- type="ACE_ModuleBlueForceTracking";
- class CustomAttributes
+ id=390;
+ atlOffset=185.69554;
+ };
+ class Item148
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ACE_ModuleBlueForceTracking_Interval";
- expression="_this setVariable ['Interval',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2598.3,-0.25156713,3302.6201};
+ };
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
- };
- class Attribute1
- {
- property="ACE_ModuleBlueForceTracking_Enabled";
- expression="_this setVariable ['Enabled',_value,true];";
- class Value
+ id=218;
+ type="B_Soldier_F";
+ atlOffset=185.717;
+ class CustomAttributes
{
- class data
+ class Attribute0
{
- class type
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
- };
- };
- class Attribute2
- {
- property="ACE_ModuleBlueForceTracking_HideAiGroups";
- expression="_this setVariable ['HideAiGroups',_value,true];";
- class Value
- {
- class data
+ class Attribute1
{
- class type
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
};
};
- value=0;
};
- };
- };
- class Attribute3
- {
- property="ACE_ModuleBlueForceTracking_ShowPlayerNames";
- expression="_this setVariable ['ShowPlayerNames',_value,true];";
- class Value
- {
- class data
+ class Attribute2
{
- class type
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull, [_this], true] call ace_captives_fnc_moduleSurrender}";
+ class Value
{
- type[]=
+ class data
{
- "BOOL"
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
};
};
- value=0;
};
+ nAttributes=3;
};
};
- nAttributes=4;
};
- };
- class Item53
- {
- dataType="Logic";
- class PositionInfo
+ class Attributes
{
- position[]={3301.1541,-185.97,2800.408};
};
- id=245;
- type="ace_advanced_fatigue_moduleSettings";
- class CustomAttributes
+ id=391;
+ atlOffset=185.717;
+ };
+ class Item149
+ {
+ dataType="Group";
+ side="West";
+ class Entities
{
- class Attribute0
+ items=1;
+ class Item0
{
- property="ace_advanced_fatigue_moduleSettings_TerrainGradientFactor";
- expression="_this setVariable ['TerrainGradientFactor',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ position[]={2603.2996,-0.32499242,3300.97};
};
- };
- class Attribute1
- {
- property="ace_advanced_fatigue_moduleSettings_Enabled";
- expression="_this setVariable ['Enabled',_value,true];";
- class Value
+ side="West";
+ flags=2;
+ class Attributes
{
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=219;
+ type="B_Soldier_F";
+ atlOffset=185.64357;
};
- class Attribute2
+ };
+ class Attributes
+ {
+ };
+ id=392;
+ atlOffset=185.64357;
+ };
+ class Item150
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_fatigue_moduleSettings_RecoveryFactor";
- expression="_this setVariable ['RecoveryFactor',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ position[]={2593.2996,-0.1888535,3300.97};
};
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
+ };
+ id=220;
+ type="B_Soldier_F";
+ atlOffset=185.77971;
};
- class Attribute3
+ };
+ class Attributes
+ {
+ };
+ id=393;
+ atlOffset=185.77971;
+ };
+ class Item151
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_fatigue_moduleSettings_LoadFactor";
- expression="_this setVariable ['LoadFactor',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ position[]={2608.2996,-0.39176488,3298.2307};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=221;
+ type="B_Soldier_F";
+ atlOffset=185.5768;
};
- class Attribute4
+ };
+ class Attributes
+ {
+ };
+ id=394;
+ atlOffset=185.5768;
+ };
+ class Item152
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
{
- property="ace_advanced_fatigue_moduleSettings_PerformanceFactor";
- expression="_this setVariable ['PerformanceFactor',_value,true];";
- class Value
+ dataType="Object";
+ class PositionInfo
{
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
+ position[]={2598.2996,-0.25193334,3302.6702};
+ };
+ side="West";
+ flags=2;
+ class Attributes
+ {
+ skill=0.60000002;
+ isPlayable=1;
};
+ id=222;
+ type="B_Soldier_F";
+ atlOffset=185.71663;
};
- nAttributes=5;
};
+ class Attributes
+ {
+ };
+ id=395;
+ atlOffset=185.71663;
};
};
};
diff --git a/node_modules/grad-islandconfig/LICENSE b/node_modules/grad-islandconfig/LICENSE
new file mode 100644
index 0000000..f288702
--- /dev/null
+++ b/node_modules/grad-islandconfig/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/node_modules/grad-islandconfig/README.md b/node_modules/grad-islandconfig/README.md
new file mode 100644
index 0000000..b996009
--- /dev/null
+++ b/node_modules/grad-islandconfig/README.md
@@ -0,0 +1,52 @@
+# GRAD IslandConfig
+![npm](https://img.shields.io/npm/v/grad-islandconfig)
+
+Mission-specific configs for a collection of islands. There won't be any GitHub releases, so whatever is in master branch (or released as an npm package) is what you need.
+
+## Installation
+
+### Variant 1: npm
+
+Highly recommended: `>= npm-3.x`, which comes with NodeJS 6.x. Don't use older versions!
+
+`npm install grad-islandconfig --save`
+
+For updating, change the desired version number in your mission's `package.json`, and do `npm install`
+
+### Variant 2: manually
+
+Alternatively, you can install `grad-islandconfig` manually.
+
+* download `grad-islandconfig` as a zipfile from github, and put the contents into a `node_modules` directory, so that you get:
+
+```
+myMission.altis/node_modules/grad-islandconfig
+```
+
+## Implementation
+
+Include in your `description.ext` like so:
+
+```
+#include node_modules\grad-islandconfig\cfgGradIslands.hpp
+```
+
+To get a value you can use:
+
+```
+_valueName = "isWoodland";
+_defaultValue = false;
+_return = [missionConfigFile >> "cfgGradIslands",_valueName,_defaultValue] call BIS_fnc_returnConfigEntry;
+
+// true and false are returned as strings --> convert to bool here
+if (_return isEqualType "" && {toLower _return in ["true","false"]}) then {_return = _return == "true"};
+```
+
+## Building
+
+The included file `islands.txt` aims to list all maps currently in our modset that are relevant to our multi-map missions. To use this list in your build script you can do:
+
+```
+islands=($(curl -k https://raw.githubusercontent.com/gruppe-adler/grad-islandconfig/master/islands.txt))
+islands=("${islands[@]%%:*}")
+```
diff --git a/node_modules/grad-islandconfig/cfgGradIslands.hpp b/node_modules/grad-islandconfig/cfgGradIslands.hpp
new file mode 100644
index 0000000..a9bed0c
--- /dev/null
+++ b/node_modules/grad-islandconfig/cfgGradIslands.hpp
@@ -0,0 +1,666 @@
+class cfgGradIslands {
+ class Altis {
+ displayName = "Altis";
+ type = "mediterranean";
+ isWoodland = true;
+ spawnPosBlu[] = {8782,25180,0};
+ spawnPosOpf[] = {8481,25263,0};
+ spawnPosInd[] = {8216,24939,0};
+ urbanops_locationBlacklist[] = {
+ "AAC airfield",
+ "Agios Georgios",
+ "Agios Georgios",
+ "Agios Kosmas",
+ "Agios Panagiotis",
+ "Aktinarki",
+ "Almyra",
+ "Atsalis",
+ "Bomos",
+ "Cap Agrios",
+ "Cap Drakontas",
+ "Cap Kategidis",
+ "Cap Makrinos",
+ "Cap Thelos",
+ "Cap Zefyris",
+ "Chelonisi",
+ "Drimea",
+ "dump",
+ "Edoris",
+ "Faros",
+ "Fournos",
+ "Gori",
+ "Kavala Pier",
+ "Limni",
+ "Livadi",
+ "Makrynisi",
+ "Mazi",
+ "mine",
+ "Molos Airfield",
+ "Monisi",
+ "Nychi",
+ "Ochrolimni",
+ "Pyrgi",
+ "quarry",
+ "Sagonisi",
+ "Savri",
+ "Sideras",
+ "Surf Club",
+ "Xirolimni Dam",
+ "Zeloran"
+ };
+ };
+
+ class Bootcamp_ACR {
+ displayName = "Bukovina";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {3225,4342,0};
+ spawnPosOpf[] = {3449,4376,0};
+ spawnPosInd[] = {3807,4346,0};
+ };
+
+ class Beketov {
+ displayName = "Beketov";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {-258.376,308.728,0};
+ spawnPosOpf[] = {-249.061,955.673,0};
+ urbanops_locationBlacklist[] = {
+ "Belokamenka",
+ "Dorogino",
+ "Limonovo",
+ "Malaevo",
+ "Oblepikhino",
+ "SWAMP"
+ };
+ };
+
+ class Chernarus {
+ displayName = "Chernarus (Autumn)";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {-599,2508,0};
+ spawnPosOpf[] = {-567,3402,0};
+ spawnPosInd[] = {-568,4180,0};
+ urbanops_locationBlacklist[] = {
+ "airfield",
+ "airstrip",
+ "Black Forest",
+ "Blunt Rocks",
+ "Cap Golova",
+ "Dichina",
+ "Drakon",
+ "Green Mountain",
+ "Grozovoy Pass",
+ "Kopyto",
+ "Krutoy Cap",
+ "Kumyrna",
+ "Novy Lug",
+ "Old Fields",
+ "Pass Oreshka",
+ "Pass Sosnovy",
+ "power plant",
+ "quarry",
+ "Skalisty Island",
+ "Skalka",
+ "Three Valleys",
+ "Vysota"
+ };
+ };
+
+ class Chernarus_Summer: Chernarus {};
+ class Chernarus_winter: Chernarus {};
+
+ class d41_ruegen {
+ displayName = "Ruegen";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {-312,604,0};
+ spawnPosOpf[] = {-364,1481,0};
+ spawnPosInd[] = {-474,2161,0};
+ };
+
+ class d41_ruegen_scorched: d41_ruegen {};
+
+ class dingor {
+ displayName = "Dingor";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {1096.81,9389.22,0};
+ spawnPosOpf[] = {889.053,9438.74,0};
+ urbanops_locationBlacklist[] = {
+ "Puente Malargo",
+ "Mt. Toris"
+ };
+ };
+
+ class Enoch {
+ displayName = "Livonia";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {-331,2112,0};
+ spawnPosOpf[] = {-288,3004,0};
+ spawnPosInd[] = {-313,3951,0};
+ };
+
+ class gm_weferlingen_summer {
+ displayName = "Weferlingen";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {602,-414,0};
+ spawnPosOpf[] = {1349,-483,0};
+ spawnPosInd[] = {2194,-376,0};
+ };
+
+ class gm_weferlingen_winter: gm_weferlingen_summer {};
+
+ class hellanmaa {
+ displayName = "hellanmaa";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {8199,8295,0};
+ spawnPosOpf[] = {7785,8293,0};
+ urbanops_locationBlacklist[] = {};
+ };
+
+ class Intro {
+ displayName = "Ramahdi";
+ type = "middle eastern";
+ isWoodland = false;
+ urbanops_sizeFactor = 0.30;
+ spawnPosBlu[] = {1604.93,1575.83,0};
+ spawnPosOpf[] = {1542.37,1750.86,0};
+
+ class customLocations {
+ class Ramahdi {
+ name = "Ramahdi";
+ type = "NameVillage";
+ pos[] = {2893.81,2879.46,0};
+ };
+ };
+ };
+
+ class fallujah {
+ displayName = "Fallujah";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {10226.5,605.61,0};
+ spawnPosOpf[] = {10204.2,1033.22,0};
+
+ class customLocations {
+ class airfieldN {
+ name = "Airfield North";
+ type = "NameCityCapital";
+ pos[] = {7972.45,2142.85,0};
+ };
+
+ class airfieldS {
+ name = "Airfield South";
+ type = "NameCityCapital";
+ pos[] = {8304.41,1593.64,0};
+ };
+
+ class hotel {
+ name = "Hotel";
+ type = "NameVillage";
+ pos[] = {8231.46,5520.07,0};
+ };
+
+ class village1 {
+ name = "Shakbur";
+ type = "NameVillage";
+ pos[] = {9068.4,9026.81,0};
+ };
+
+ class FOB {
+ name = "FOB";
+ type = "NameVillage";
+ pos[] = {5692.07,9856.37,0};
+ };
+
+ class powerplant {
+ name = "Power Plant";
+ type = "NameVillage";
+ pos[] = {687.158,8340.91,0};
+ };
+
+ class outskirts1 {
+ name = "Outskirts";
+ type = "NameVillage";
+ pos[] = {3890.94,2827.52,0};
+ };
+
+ class milbase {
+ name = "Military Base";
+ type = "NameCity";
+ pos[] = {2927.96,6340.07,0};
+ };
+ };
+ };
+
+ class fata {
+ displayName = "Fata";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {10616.3,8942.11,0};
+ spawnPosOpf[] = {10723.9,10105,0};
+ urbanops_locationBlacklist[] = {
+ "Goram Valley",
+ "Kabashir Forest",
+ "Mouaneb",
+ "Mussara Bridge",
+ "Paktita Valley",
+ "Serpent's Road",
+ "Sirika",
+ "Suhani Valley",
+ "Sukri River",
+ "Tamir Bridge",
+ "Tamir Highway",
+ "Tamir River"
+ };
+ };
+
+ class lingor3 {
+ displayName = "Lingor";
+ type = "tropical";
+ isWoodland = true;
+ spawnPosBlu[] = {1096.81,9389.22,0};
+ spawnPosOpf[] = {889.053,9438.74,0};
+ urbanops_locationBlacklist[] = {
+ "Puente Malargo",
+ "Mt. Toris"
+ };
+ };
+
+ class lythium {
+ displayName = "Lythium";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {-205,71,0};
+ spawnPosOpf[] = {-333,833,0};
+ spawnPosInd[] = {-286,1336,0};
+ urbanops_locationBlacklist[] = {};
+ };
+
+ class Malden {
+ displayName = "Malden";
+ type = "mediterranean";
+ isWoodland = true;
+ spawnPosBlu[] = {10035,2134,0};
+ spawnPosOpf[] = {10159,2200,0};
+ spawnPosInd[] = {9983,2289,0};
+ urbanops_locationBlacklist[] = {
+ "Pegasus Air Co.",
+ "Moray",
+ "Faro",
+ "harbor"
+ };
+ };
+
+ class mbg_celle2 {
+ displayName = "Celle";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {13121.7,12175.6,0};
+ spawnPosOpf[] = {12488.2,12689.2,0};
+ urbanops_locationBlacklist[] = {};
+ };
+
+ class Porto {
+ displayName = "Porto";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {1376.64,628.892,0};
+ spawnPosOpf[] = {1136.77,671.378,0};
+ urbanops_sizeFactor = 0.30;
+
+ class customLocations {
+ class portoHarbor {
+ name = "Porto Harbor";
+ type = "NameCity";
+ pos[] = {2589.53,2232.25,0};
+ };
+ };
+ };
+
+ class prei_khmaoch_luong {
+ displayName = "Prei Khmaoch Luong";
+ type = "tropical";
+ isWoodland = true;
+ spawnPosBlu[] = {-172,640,0};
+ spawnPosOpf[] = {-193,887,0};
+ spawnPosInd[] = {-253,1608,0};
+ };
+
+ class ruha {
+ displayName = "Ruha";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {-84,38,0};
+ spawnPosOpf[] = {-100,367,0};
+ spawnPosInd[] = {-91,629,0};
+ };
+
+ class Stratis {
+ displayName = "Stratis";
+ type = "mediterranean";
+ isWoodland = true;
+ spawnPosBlu[] = {7100,5936,0};
+ spawnPosOpf[] = {7106,5975,0};
+ spawnPosInd[] = {7109,6010,0};
+ urbanops_locationBlacklist[] = {
+ "airfield",
+ "Kamino Coast",
+ "LZ Baldy",
+ "Pythos",
+ "The Spartan",
+ "Xiros"
+ };
+ };
+
+ class sara_dbe1 {
+ displayName = "United Sahrani";
+ type = "mediterranean";
+ isWoodland = true;
+ spawnPosBlu[] = {1590,2190,0};
+ spawnPosOpf[] = {1475,2278,0};
+ spawnPosInd[] = {1641,2344,0};
+ urbanops_locationBlacklist[] = {
+ "Antigua",
+ "Cabo Canino",
+ "Cabo de Fidel",
+ "Cabo Gavio",
+ "Cabo Gavio",
+ "Cabo Indice",
+ "Cabo Juventudo",
+ "Cabo Santa Lucia",
+ "Cabo Valiente",
+ "Calha de Cayo",
+ "Calheta de Cedras",
+ "Calheta Demiseca",
+ "Calheta Seca",
+ "Cimas Dobles",
+ "El Gordo",
+ "Isla Arimar",
+ "Isla de la Caja",
+ "Isla de Libertad",
+ "Isla de los Tojos",
+ "Isla de Matey",
+ "Isla del Vassal",
+ "Isla del Vida",
+ "Isla del Zorra",
+ "Isla des Compadres",
+ "Islas Gatunas",
+ "Matas",
+ "Monte Asharah",
+ "Monte Galassi",
+ "Parvulo",
+ "Passo Epone",
+ "Passo Paradiso",
+ "Passo San Andres",
+ "Passo San Marco",
+ "Pesadas",
+ "Puntas Occidental",
+ "Puntas Oriental",
+ "Roca del Dror",
+ "Rocara",
+ "San Peregrino",
+ "San Tomas",
+ "Sierra de los Pinos",
+ "Sierra Madre",
+ "Sierra Masbete",
+ "Sierra Pita",
+ "Terra Acorcha",
+ "Terra Marismo",
+ "Trelobada",
+ "Tres Valles",
+ "Valle Azul",
+ "Valle de Carmen",
+ "Vallejo"
+ };
+ };
+
+ class Shapur_BAF {
+ displayName = "Shapur";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {-198,171,0};
+ spawnPosOpf[] = {-183,1006,0};
+ spawnPosInd[] = {-178,1787,0};
+ urbanops_sizeFactor = 0.75;
+ urbanops_locationBlacklist[] = {
+ "airfield"
+ };
+ };
+
+ class Takistan {
+ displayName = "Takistan";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {954,-672,0};
+ spawnPosOpf[] = {1508,-661,0};
+ spawnPosInd[] = {2074,-596,0};
+ urbanops_locationBlacklist[] = {
+ "airfield",
+ "Bala pass",
+ "Darbang pass",
+ "Jaza",
+ "Loy Manara oilfield",
+ "military base",
+ "Nagara-1 oilfield",
+ "Nar",
+ "Naran Darre pass",
+ "Naygul valley",
+ "Par-e Siah oilfield",
+ "Sar-e Sang pass"
+ };
+ };
+
+ class Tanoa {
+ displayName = "Tanoa";
+ type = "tropical";
+ isWoodland = true;
+ spawnPosBlu[] = {10513,14650,0};
+ spawnPosOpf[] = {10421,14542,0};
+ spawnPosInd[] = {10693,14660,0};
+ urbanops_locationBlacklist[] = {
+ "camp remnants",
+ "Ile Sainte-Marie",
+ "Ravi-ta Island",
+ "vehicle range",
+ "GSM station",
+ "Comms Whiskey",
+ "firing range",
+ "maze",
+ "Mont Tanoa",
+ "harbor remnants",
+ "Ile Douen",
+ "Red Spring surface mine",
+ "Yasa Island",
+ "Sosovu Island",
+ "railway depot",
+ "diesel power plant",
+ "temple ruins",
+ "banana plantations",
+ "plantation",
+ "lumberyard",
+ "fuel depot",
+ "Yani Islets",
+ "cocoa plantations",
+ "sawmill",
+ "Ile Saint-George",
+ "ferry",
+ "fortress ruins",
+ "Tuadua Island",
+ "Imuri Island"
+ };
+ };
+
+ class tem_cham {
+ displayName = "Cham";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {8158,8286,0};
+ spawnPosOpf[] = {7637,8314,0};
+ spawnPosInd[] = {7022,8327,0};
+ };
+
+ class tem_vinjesvingenc {
+ displayName = "Vinjesvingen";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {113,-136,0};
+ spawnPosOpf[] = {575,-173,0};
+ spawnPosInd[] = {1170,-176,0};
+ };
+
+ class Tembelan {
+ displayName = "Tembelan";
+ type = "tropical";
+ isWoodland = true;
+ spawnPosBlu[] = {457,5194,0};
+ spawnPosOpf[] = {943,5161,0};
+ spawnPosInd[] = {1120,5690,0};
+ };
+
+ class utes {
+ displayName = "Utes";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {1995,4349,0};
+ spawnPosOpf[] = {2342,4073,0};
+ spawnPosInd[] = {2168,3823,0};
+ urbanops_sizeFactor = 0.75;
+ urbanops_locationBlacklist[] = {
+ "USS Khe Sanh"
+ };
+ };
+
+ class vt5 {
+ displayName = "vt5";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {5709.2,6239.52,0};
+ spawnPosOpf[] = {6156.56,5841.48,0};
+ urbanops_sizeFactor = 0.75;
+ urbanops_locationBlacklist[] = {};
+ class customLocations {
+ class powerplant {
+ name = "power plant";
+ type = "NameCity";
+ pos[] = {3260.85,3464.43};
+ };
+ class radiotower {
+ name = "Mätäsvaara";
+ type = "NameVillage";
+ pos[] = {801.424,484.858};
+ };
+ class airfield {
+ name = "airfield";
+ type = "NameVillage";
+ pos[] = {212.334,405.515};
+ };
+ class gasStation {
+ name = "gas station";
+ type = "NameVillage";
+ pos[] = {2381.52,1499.99};
+ };
+ class factory {
+ name = "Röykkä";
+ type = "NameCity";
+ pos[] = {741.191,5601.93};
+ };
+ class garages {
+ name = "Klaukkala";
+ type = "NameCity";
+ pos[] = {4921.19,4142.72};
+ };
+ class fields {
+ name = "Hyrylä";
+ type = "NameCity";
+ pos[] = {5009.03,2233.1};
+ };
+ class haybales {
+ name = "Kärpänkylä";
+ type = "NameVillage";
+ pos[] = {4194.69,2172.19};
+ };
+ class forest {
+ name = "Parkumäki";
+ type = "NameVillage";
+ pos[] = {3900.89,2701.57};
+ };
+ class peninsula {
+ name = "Tuukkala";
+ type = "NameVillage";
+ pos[] = {3482.91,1596.57};
+ };
+ };
+ };
+
+ class WL_Rosche {
+ displayName = "Rosche";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {-128,60,0};
+ spawnPosOpf[] = {-146,519,0};
+ spawnPosInd[] = {-170,938,0};
+ };
+
+ class Woodland_ACR {
+ displayName = "Bystrica";
+ type = "russian";
+ isWoodland = true;
+ spawnPosBlu[] = {-582,-361,0};
+ spawnPosOpf[] = {1022,-770,0};
+ spawnPosInd[] = {2236,-679,0};
+ urbanops_locationBlacklist[] = {};
+ class customLocations {
+ class cherno {
+ name = "Chernogorsk";
+ type = "NameCityCapital";
+ pos[] = {1358.15,1684.27,0};
+ };
+ class elektro {
+ name = "Elektrozavodsk";
+ type = "NameCity";
+ pos[] = {5145.3,1462.94,0};
+ };
+ class elektroHarbor {
+ name = "Elektro Harbor";
+ type = "NameCity";
+ pos[] = {4735.83,1111.63,0};
+ };
+ class farms {
+ name = "Farms";
+ type = "NameCity";
+ pos[] = {2560.86,2637.29,0};
+ };
+ class pusta {
+ name = "Pusta";
+ type = "NameVillage";
+ pos[] = {3761.12,3020.14,0};
+ };
+ };
+ };
+
+ class Zargabad {
+ displayName = "Zargabad";
+ type = "middle eastern";
+ isWoodland = false;
+ spawnPosBlu[] = {-311,341,0};
+ spawnPosOpf[] = {17,945,0};
+ spawnPosInd[] = {371,1715,0};
+ urbanops_locationBlacklist[] = {
+ "airfield",
+ "Firuz Baharv"
+ };
+ class customLocations {
+ class barracks {
+ name = "Barracks";
+ type = "NameVillage";
+ pos[] = {3956.09,2787.43,0};
+ };
+ };
+ };
+};
diff --git a/node_modules/grad-islandconfig/islands.txt b/node_modules/grad-islandconfig/islands.txt
new file mode 100644
index 0000000..3afadf0
--- /dev/null
+++ b/node_modules/grad-islandconfig/islands.txt
@@ -0,0 +1,23 @@
+Altis
+Bootcamp_ACR
+Woodland_ACR
+tem_cham
+d41_ruegen
+d41_ruegen_scorched
+Enoch
+lythium
+Malden
+prei_khmaoch_luong
+WL_Rosche
+ruha
+sara_dbe1
+Shapur_BAF
+Stratis
+takistan
+Tanoa
+Tembelan
+utes
+tem_vinjesvingenc
+gm_weferlingen_summer
+gm_weferlingen_winter
+Zargabad
diff --git a/node_modules/grad-islandconfig/package.json b/node_modules/grad-islandconfig/package.json
new file mode 100644
index 0000000..a970bc7
--- /dev/null
+++ b/node_modules/grad-islandconfig/package.json
@@ -0,0 +1,78 @@
+{
+ "_args": [
+ [
+ {
+ "raw": "grad-islandconfig@0.2.2",
+ "scope": null,
+ "escapedName": "grad-islandconfig",
+ "name": "grad-islandconfig",
+ "rawSpec": "0.2.2",
+ "spec": "0.2.2",
+ "type": "version"
+ },
+ "E:\\Dokumente\\Arma 3 - Other Profiles\\McDiod\\mpmissions\\TvT_GameOfGuns.Altis"
+ ]
+ ],
+ "_from": "grad-islandconfig@0.2.2",
+ "_hasShrinkwrap": false,
+ "_id": "grad-islandconfig@0.2.2",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/grad-islandconfig",
+ "_nodeVersion": "4.4.7",
+ "_npmOperationalInternal": {
+ "host": "s3://npm-registry-packages",
+ "tmp": "tmp/grad-islandconfig_0.2.2_1568044841443_0.8798342235655698"
+ },
+ "_npmUser": {
+ "name": "gruppe-adler-admin",
+ "email": "admin@gruppe-adler.de"
+ },
+ "_npmVersion": "3.10.5",
+ "_phantomChildren": {},
+ "_requested": {
+ "raw": "grad-islandconfig@0.2.2",
+ "scope": null,
+ "escapedName": "grad-islandconfig",
+ "name": "grad-islandconfig",
+ "rawSpec": "0.2.2",
+ "spec": "0.2.2",
+ "type": "version"
+ },
+ "_requiredBy": [
+ "#USER",
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/grad-islandconfig/-/grad-islandconfig-0.2.2.tgz",
+ "_shasum": "6e1f7b1776d74e0893c6c26588421c247650073b",
+ "_shrinkwrap": null,
+ "_spec": "grad-islandconfig@0.2.2",
+ "_where": "E:\\Dokumente\\Arma 3 - Other Profiles\\McDiod\\mpmissions\\TvT_GameOfGuns.Altis",
+ "author": {
+ "name": "McDiod"
+ },
+ "dependencies": {},
+ "description": "Gruppe Adler configs for some maps",
+ "devDependencies": {},
+ "directories": {},
+ "dist": {
+ "shasum": "6e1f7b1776d74e0893c6c26588421c247650073b",
+ "tarball": "https://registry.npmjs.org/grad-islandconfig/-/grad-islandconfig-0.2.2.tgz",
+ "integrity": "sha512-Hjl7ebjOv+R1MVWNJu89J4fNi2p6xfjg9x2X4/g745rAuQHUeXyxWkRqmJ1p16yLixplaDiMz/mYSWi+H2E3/g==",
+ "fileCount": 5,
+ "unpackedSize": 56738,
+ "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddncqCRA9TVsSAnZWagAA/lMP/RhilR9hZ1YbOD4n1ZSy\n8pO61A+Yx0CiiQVc/8v0UNp6/Aa4E5yqNNclpOzmzWiWkb80AwNcY1msRy7s\nQBTDeLg6UB2QbbhsG9t8zGwpbyjvhqiOza+ABUgMw6Puxjg3I+LOijyRJq4O\nPM1U7drBvn0XZ3urxM/o6tp7HBSMb9eiBsaotq+UOCz3QKyhdPgfmX7aRQSr\nTILFs8RPBdSlLikDGAWnAEOEpOZaEQaamD8VG+Ghv2ciOLHaNTOUk52zE2nF\n6nvjITA37xCdFmw8IRH9uuVBwKSFtbtlNZB09eshsH9cJhYGopDLoh8KXXsL\n/JQnPHTGACtMSFCmyjeHda89MQgBpX8/INZsZle79r5JvgJfe5WPxuewxh+4\nt3OVUaX/SBUptvFoC2fEPw6nX/3+SNcgpUJ5xl6xHu5CWtqAV14AhFmKvuAO\nm+JzdWzF4lXg9lsIbsum+aAyTMHCIhgAKMtzvNTt1KjT1gMR7ZFFB7VN13we\nEbeNpGbEM++SCYXnK6pXrB/vVDzpTD0MdT7yBAxNSacMnSLLD3Ssv1RJCvQZ\nHtSILDI2xFwHw72i5kSVp6nyCoqeydHm0nFSdD65C0WU07uBsHXfqcTKMghq\nQNwYnGcR3Sd0DhZweLhAojN8kKLq5UWxX1R8ZRhOUpUFNFtfv4/eyA4LMS/I\nzKjz\r\n=fcTs\r\n-----END PGP SIGNATURE-----\r\n"
+ },
+ "gitHead": "02d62ba1dd6d096282818349211ff1b702d63ed0",
+ "maintainers": [
+ {
+ "name": "gruppe-adler-admin",
+ "email": "admin@gruppe-adler.de"
+ }
+ ],
+ "name": "grad-islandconfig",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "scripts": {},
+ "version": "0.2.2"
+}
diff --git a/node_modules/grad-scoreboard/README.md b/node_modules/grad-scoreboard/README.md
index b060749..53763bb 100644
--- a/node_modules/grad-scoreboard/README.md
+++ b/node_modules/grad-scoreboard/README.md
@@ -1,13 +1,104 @@
# GRAD Scoreboard
-**WIP**
+A dynamic scoreboard that displays what you feed it.
+Works well together with [GRAD Winrate Tracker](https://github.com/gruppe-adler/grad-winrateTracker).
-This won't:
-* record any kind of points or statistics througout the game
-* save statistics on the server
+![](http://i.imgur.com/DL7b4bG.png)
-This will:
+## Features
* take a specifically formatted array of statistics
* optionally sort it
* display it in a dialog
* adjust the dialog dimensions depending on array contents
* try to find the player's profile name and highlight their statistics
+
+## Dependencies
+The [CBA_A3](https://github.com/CBATeam/CBA_A3) mod is required.
+
+## Installation
+
+### Manually
+1. Create a folder in your mission root folder and name it `modules`. Then create one inside there and call it `grad-scoreboard`.
+2. Download the contents of this repository ( there's a download link at the side ) and put it into the directory you just created.
+3. see step 3 below in the npm part
+
+### Via `npm`
+_for details about what npm is and how to use it, look it up on [npmjs.com](https://www.npmjs.com/)_
+
+1. Install package `grad-scoreboard` : `npm install --save grad-scoreboard`
+2. Prepend your mission's `description.ext` with `#define MODULES_DIRECTORY node_modules`
+3. Append the following lines of code to the `description.ext`:
+
+```sqf
+#include "node_modules\grad-scoreboard\grad_scoreboard.hpp"
+
+class CfgFunctions {
+ #include "node_modules\grad-scoreboard\cfgFunctions.hpp"
+};
+```
+
+## Usage
+If no second statistics array is provided, the additional window will be hidden. The parameter array can be generated with [GRAD Winrate Tracker](https://github.com/gruppe-adler/grad-winrateTracker) (however, if you want any other stats than games, wins, losses, winrate, winrateTracker will not work for you).
+To open the scoreboard, use
+`[duration,main stats,main headline,rank numbers,sort,2nd stats,2nd headline,2nd rank numbers,2nd sort,disable simulation] call grad_scoreboard_fnc_loadScoreboard`:
+
+| Parameter | Explanation |
+|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| duration | Number - Duration for which the dialog is displayed. -1 to disable. |
+| main stats | Array - Contains all statistics to be displayed in main window (see below for correct syntax). |
+| main headline | String - Title of the main window. |
+| rank numbers (optional) | Bool - Display rank numbers as first column in main window? |
+| sort (optional) | Bool/Array - If array: [sort statistics? (bool), index to sort by (number), sort ascending (bool)]. If bool, true: Sort by first index, descending. |
+| 2nd stats (optional) | Array - Contains all statistics to be displayed in additional window (see below for correct syntax) |
+| 2nd headline (optional) | String - Title of additional window. |
+| 2nd rank numbers (optional) | Bool - Display rank numbers as first column in additional window? |
+| 2nd sort (optional) | Bool/Array - If array: [sort additional statistics? (bool), index to sort by (number), sort ascending (bool)]. If bool, true: Sort by first index, descending. |
+| disable simulation | Bool - Disable player simulation for the *duration*. |
+
+Example:
+`[20,_allStats,"statistics of my mission",true] call grad_scoreboard_fnc_loadScoreboard`
+
+## Statistics Arrays Syntax
+The statistics arrays passed to the scoreboard have to be formatted in a certain way:
+
+`_allStats = [array,array,array,...]`
+
+* the first nested array is interpreted as the headline
+* all nested arrays have to be the same length
+* all elements of the same index have to be of the same type
+* the main and additional stats arrays can be completely different
+
+Example:
+
+```sqf
+_allStats = [
+ ["Player name", "Points", "Kills"],
+ ["Hans", 12, 6],
+ ["Franz", 15, 5],
+ ["Alf", 9, 2]
+];
+```
+
+## Sorting
+If the statistics are to be sorted before displaying, the *sort* parameter is used.
+
+`[true,1,false]` would sort the stats array from the previous example descending by points:
+
+```sqf
+_allStats = [
+ ["Player name", "Points", "Kills"],
+ ["Franz", 15, 5],
+ ["Hans", 12, 6],
+ ["Alf", 9, 2]
+];
+```
+
+`[true,2,true]` would sort the stats array from the previous example ascending by kills:
+
+```sqf
+_allStats = [
+ ["Player name", "Points", "Kills"],
+ ["Alf", 9, 2]
+ ["Franz", 15, 5],
+ ["Hans", 12, 6],
+];
+```
diff --git a/node_modules/grad-scoreboard/functions/fn_loadScoreboard.sqf b/node_modules/grad-scoreboard/functions/fn_loadScoreboard.sqf
index a350c70..e693cff 100644
--- a/node_modules/grad-scoreboard/functions/fn_loadScoreboard.sqf
+++ b/node_modules/grad-scoreboard/functions/fn_loadScoreboard.sqf
@@ -1,7 +1,7 @@
#include "..\dialog\defines.hpp"
private ["_additionalWidth","_doSort","_subIndex","_ascending"];
-params [["_duration", -1],"_scoreArray","_dialogTitle",["_showRank",false],["_sort", false],["_additionalArray",[]],["_additionalTitle",""],["_additionalShowRank",false],["_additionalSort", false]];
+params [["_duration", -1],"_scoreArray","_dialogTitle",["_showRank",false],["_sort", false],["_additionalArray",[]],["_additionalTitle",""],["_additionalShowRank",false],["_additionalSort", false],["_disableSimulation",false]];
disableSerialization;
@@ -47,10 +47,20 @@ _additionalTitleBackground = _display displayCtrl grad_scoreboard_MSTITLEBACKGRO
//disable ESC key
if (_duration > 0) then {
[_display,true] call grad_scoreboard_fnc_disableESC;
+ if (_disableSimulation) then {
+ (vehicle player) enableSimulation false;
+ player enableSimulation false;
+ };
[{
+ params ["_display","_disableSimulation"];
[_display, false] call grad_scoreboard_fnc_disableESC;
- _this closeDisplay 2;
- }, _display, _duration] call CBA_fnc_waitAndExecute;
+ _display closeDisplay 2;
+
+ if (_disableSimulation) then {
+ (vehicle player) enableSimulation true;
+ player enableSimulation true;
+ };
+ }, [_display,_disableSimulation], _duration] call CBA_fnc_waitAndExecute;
};
diff --git a/node_modules/grad-scoreboard/functions/fn_setWidth.sqf b/node_modules/grad-scoreboard/functions/fn_setWidth.sqf
index 04310d5..7e49b7e 100644
--- a/node_modules/grad-scoreboard/functions/fn_setWidth.sqf
+++ b/node_modules/grad-scoreboard/functions/fn_setWidth.sqf
@@ -2,7 +2,7 @@
#include "..\dialog\defines.hpp"
params ["_totalWidth"];
-_width = ((_totalWidth/80) min 1) max 0.2;
+_width = ((_totalWidth/80) min 1) max 0.35;
_fnc_setPos = {
params ["_ctrl", "_w"];
diff --git a/node_modules/grad-scoreboard/package.json b/node_modules/grad-scoreboard/package.json
index 400112c..f6b7085 100644
--- a/node_modules/grad-scoreboard/package.json
+++ b/node_modules/grad-scoreboard/package.json
@@ -2,26 +2,26 @@
"_args": [
[
{
- "raw": "grad-scoreboard@0.0.1",
+ "raw": "grad-scoreboard@0.1.1",
"scope": null,
"escapedName": "grad-scoreboard",
"name": "grad-scoreboard",
- "rawSpec": "0.0.1",
- "spec": "0.0.1",
+ "rawSpec": "0.1.1",
+ "spec": "0.1.1",
"type": "version"
},
"E:\\Dokumente\\Arma 3 - Other Profiles\\McDiod\\mpmissions\\TvT_GameOfGuns.Altis"
]
],
- "_from": "grad-scoreboard@0.0.1",
- "_id": "grad-scoreboard@0.0.1",
+ "_from": "grad-scoreboard@0.1.1",
+ "_id": "grad-scoreboard@0.1.1",
"_inCache": true,
"_installable": true,
"_location": "/grad-scoreboard",
"_nodeVersion": "4.4.7",
"_npmOperationalInternal": {
- "host": "packages-18-east.internal.npmjs.com",
- "tmp": "tmp/grad-scoreboard-0.0.1.tgz_1481904116430_0.024963917210698128"
+ "host": "packages-12-west.internal.npmjs.com",
+ "tmp": "tmp/grad-scoreboard-0.1.1.tgz_1493754851399_0.39275208255276084"
},
"_npmUser": {
"name": "gruppe-adler",
@@ -30,32 +30,32 @@
"_npmVersion": "3.10.5",
"_phantomChildren": {},
"_requested": {
- "raw": "grad-scoreboard@0.0.1",
+ "raw": "grad-scoreboard@0.1.1",
"scope": null,
"escapedName": "grad-scoreboard",
"name": "grad-scoreboard",
- "rawSpec": "0.0.1",
- "spec": "0.0.1",
+ "rawSpec": "0.1.1",
+ "spec": "0.1.1",
"type": "version"
},
"_requiredBy": [
"#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/grad-scoreboard/-/grad-scoreboard-0.0.1.tgz",
- "_shasum": "3def5a960523facdede826099c85de0b4745bd81",
+ "_resolved": "https://registry.npmjs.org/grad-scoreboard/-/grad-scoreboard-0.1.1.tgz",
+ "_shasum": "9eb71b74a009790034d0357d6c759a02ea9fd0a8",
"_shrinkwrap": null,
- "_spec": "grad-scoreboard@0.0.1",
+ "_spec": "grad-scoreboard@0.1.1",
"_where": "E:\\Dokumente\\Arma 3 - Other Profiles\\McDiod\\mpmissions\\TvT_GameOfGuns.Altis",
"dependencies": {},
"description": "a dynamic scoreboard that displays what you feed it",
"devDependencies": {},
"directories": {},
"dist": {
- "shasum": "3def5a960523facdede826099c85de0b4745bd81",
- "tarball": "https://registry.npmjs.org/grad-scoreboard/-/grad-scoreboard-0.0.1.tgz"
+ "shasum": "9eb71b74a009790034d0357d6c759a02ea9fd0a8",
+ "tarball": "https://registry.npmjs.org/grad-scoreboard/-/grad-scoreboard-0.1.1.tgz"
},
- "gitHead": "03e2fc260624ef8b1297e1042b5cdb491f1a8909",
+ "gitHead": "6ab761d3fcb84caa8975a59e18fa99c91f5c73a3",
"maintainers": [
{
"name": "gruppe-adler",
@@ -66,5 +66,5 @@
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"scripts": {},
- "version": "0.0.1"
+ "version": "0.1.1"
}
diff --git a/onPlayerKilled.sqf b/onPlayerKilled.sqf
deleted file mode 100644
index 3e28ceb..0000000
--- a/onPlayerKilled.sqf
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Handles player respawn
-*
-* automatically executed locally, on death
-*/
-
-if (isSpectator) exitWith {};
-
-//check JIP player is spawning for the first time
-if (serverTime-joinTime < 20 && didJIP) exitWith {diag_log "Player is JIP, not executing onPlayerKilled.sqf"};
-
-//reset recent distance
-player setVariable ["recentDistanceArray", [0]];
-
-//send killer to server
-_shooter = player getVariable ["ACE_medical_lastDamageSource",player];
-[player, _shooter, getPos player, profileName] remoteExec ["mcd_fnc_setScore", 2, false];
-[getPos player, profileName] remoteExec ["mcd_fnc_weaponCleanup", 2, false];
-
-//create kill cam
-_killCamHandle = [(SOLORESPAWNTIME min TEAMRESPAWNTIME) min 10] execVM "player\killCam.sqf";
-player setVariable ["killCamHandle", [_killCamHandle]];
-
-//keep player from respawning
-setPlayerRespawnTime 9999;
-sleep 2;
-
-waitUntil {!isNil "SOLORESPAWNTIME"};
-_timeleft = SOLORESPAWNTIME;
-_teammates = player getVariable "teammates";
-_teammatesalive = true;
-
-//hint predefine ===============================================================
-_rule = parseText "-----------------------------------------------------
";
-_lineBreak = parseText "
";
-
-//main =========================================================================
-while {_timeleft > 0} do {
- if (GAMEENDED) exitWith {};
-
- _startTime = time;
-
- //hint
- _timestr = [_timeleft, "MM:SS"] call BIS_fnc_secondsToString;
- _respawnIn = parseText format ["Respawn in: %1", _timestr];
- hintSilent composeText [_rule,_respawnin,_linebreak,_rule];
-
- //check if teammates alive
- _teammatesalive = false;
- {
- _unit = [_x] call BIS_fnc_getUnitByUid;
- if (alive _unit) then {_teammatesalive = true};
- } forEach _teammates;
- if (!_teammatesalive) exitWith {diag_log "onPlayerKilled.sqf - All teammates are dead."};
-
- _timeleft = _timeleft - 1;
- sleep ((1-(time - _startTime)) max 0.1);
-};
-
-//team respawn - find positions ================================================
-//whole team is dead
-if (!_teammatesalive) then {
- _timeleft = TEAMRESPAWNTIME;
- _isTeamlead = player getVariable "isTeamlead";
- if (_isTeamlead) then {
- diag_log "onPlayerKilled.sqf - Player is teamlead. Asking server for spawnpositions...";
- [getPlayerUID player] remoteExec ["mcd_fnc_findGroupPosition",2,false];
- };
-
- diag_log "onPlayerKilled.sqf - Starting team respawn...";
- while {_timeleft > 0} do {
- if (GAMEENDED) exitWith {};
-
- _timestr = [_timeleft, "MM:SS"] call BIS_fnc_secondsToString;
- _teamDead = if (TEAMSIZE>1) then {parseText format ["Team is dead."]} else {parseText format ["You are dead."]};
- _respawnIn = parseText format ["Respawn in: %1", _timestr];
- hint composeText [_rule,_teamDead,_linebreak,_respawnin,_linebreak,_rule];
-
- _timeleft = _timeleft - 1;
- sleep 1;
- };
-
-//someone is alive
-} else {
- _teammates = player getVariable "teammates";
- [player, _teammates] call mcd_fnc_findSoloPosition;
- sleep 2;
-};
-
-//respawn ======================================================================
-if (GAMEENDED) exitWith {};
-//respawn hint
-_respawning = parseText format ["Respawning..."];
-hint composeText [_rule, _respawning, _lineBreak, _rule];
-
-//destroy killcam
-_camera = player getVariable "killCam";
-if (!isNil "_camera") then {
- _killCamHandle = (player getVariable ["killCamHandle", [scriptNull]]) select 0;
- terminate _killCamHandle;
- camDestroy _camera;
- showCinemaBorder false;
-};
-
-//respawn player
-iJustSpawned = true;
-setPlayerRespawnTime 0;
-forceRespawn player;
-cutText ["", "BLACK IN", 0.5];
-
-//make sure player doesn't instantly respawn next time
-sleep 1;
-setPlayerRespawnTime 9999;
-
-//close hint
-sleep 3;
-hint "";
diff --git a/onPlayerRespawn.sqf b/onPlayerRespawn.sqf
deleted file mode 100644
index 5e80843..0000000
--- a/onPlayerRespawn.sqf
+++ /dev/null
@@ -1,24 +0,0 @@
-//check JIP player is spawning for the first time
-if (serverTime-joinTime < 20 && didJIP) exitWith {diag_log "Player is JIP, not executing onPlayerRespawn.sqf"};
-if (isNil "STARTPOSDONE") exitWith {};
-
-[] call mcd_fnc_addGear;
-if (GAMEENDED) exitWith {};
-
-_groupname = player getVariable "groupname";
-_score = call compile _groupname;
-
-call compile format ["[%1] call mcd_fnc_upgradeWeapon", _score];
-
-player setVariable ["ACE_medical_lastDamageSource",player];
-
-_pos = player getVariable "spawnpos";
-[player, _pos] call mcd_fnc_teleport;
-waitUntil {(getPos player) distance2D _pos < 20};
-player setVariable ["lastPosition", getPos player];
-player setVariable ["recentDistance", 0];
-player setVariable ["isCamping", false];
-
-sleep 1;
-iJustSpawned = false;
-[] call mcd_fnc_scoreBoard;
diff --git a/package.json b/package.json
index 6b8c6d8..7ae0d67 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,6 @@
{
"dependencies": {
- "grad-scoreboard": ">=0.0.1"
+ "grad-scoreboard": ">=0.0.1",
+ "grad-islandconfig": ">0.0.1"
}
}
diff --git a/player/killCam.sqf b/player/killCam.sqf
deleted file mode 100644
index 40733cd..0000000
--- a/player/killCam.sqf
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "..\dialogs\killcam\defines.hpp"
-
-params ["_totalTime"];
-disableSerialization;
-
-_unit = player;
-_shooter = _unit getVariable ["ACE_medical_lastDamageSource",objNull];
-_shooterName = toUpper (if (!isNull _shooter && alive _shooter) then {name _shooter} else {"someone"});
-_killMessage = format ["YOU GOT KILLED BY %1", _shooterName];
-
-_layer = (["kcTitleLayer"] call BIS_fnc_rscLayer);
-_layer cutRsc ["KillCamTitle", "PLAIN", 1];
-_display = uiNamespace getVariable ["KillCamTitle_Display",displayNull];
-_title = _display displayCtrl KILLCAMTITLE_TITLE;
-_title ctrlSetText _killMessage;
-
-_camera = "camera" camCreate ((getPos _unit) vectorAdd [0,0,2]);
-player setVariable ["killCam", _camera];
-_camera cameraEffect ["internal","back"];
-
-showCinemaBorder true;
-_filmgrain = ppEffectCreate ["FilmGrain",2000];
-_filmgrain ppEffectEnable true;
-_filmgrain ppEffectAdjust [0.3,0.3,0.12,0.12,0.12,true];
-_filmgrain ppEffectCommit 0;
-
-_camera camSetTarget _unit;
-_camera camSetFov 0.4;
-_camera camCommit (_totalTime * 0.1);
-sleep (_totalTime * 0.1);
-
-_camera camSetTarget _shooter;
-_camera camSetFov 0.2;
-_camera camCommit ((_totalTime * 0.4) min 4);
-sleep (_totalTime * 0.7);
-
-
-cutRsc ["RscStatic", "PLAIN" , 3];
-sleep (_totalTime * 0.1);
-cutText ["", "BLACK OUT", 1];
-sleep (_totalTime * 0.1);
-
-_filmgrain ppEffectEnable false;
-ppEffectDestroy _filmgrain;
-_camera cameraEffect ["terminate","back"];
-camDestroy _camera;
-showCinemaBorder false;
diff --git a/player/punishPlayer.sqf b/player/punishPlayer.sqf
deleted file mode 100644
index c9c9197..0000000
--- a/player/punishPlayer.sqf
+++ /dev/null
@@ -1,22 +0,0 @@
-waitUntil {!isNil "isSpectator"};
-if (isSpectator) exitWith {};
-
-waitUntil {!isNil "GAMESTARTED"};
-waitUntil {GAMESTARTED};
-
-sleep 2;
-
-_mcd_fnc_punish = {
- [["GET BACK INSIDE"],["OR DIE!", "#ff0000"]] call mcd_fnc_formattedHint;
- sleep 5;
- if (player distance2D PLAYAREACENTER > PLAYAREASIZE+2) then {
- player setDamage 1;
- };
-};
-
-while {sleep 2; true} do {
- if (alive player && player distance2D PLAYAREACENTER > PLAYAREASIZE+2 && !iJustSpawned) then {
- _hndl = [] spawn _mcd_fnc_punish;
- waitUntil {scriptDone _hndl};
- };
-};
diff --git a/player/recordDistance.sqf b/player/recordDistance.sqf
deleted file mode 100644
index 5030941..0000000
--- a/player/recordDistance.sqf
+++ /dev/null
@@ -1,62 +0,0 @@
-waitUntil {!isNil "isSpectator"};
-if (isSpectator) exitWith {};
-
-waitUntil {!isNil "CAMPTIME"};
-waitUntil {!isNil "GAMESTARTED"};
-waitUntil {GAMESTARTED};
-
-
-#define CAMPTHRESHOLD 50 //distance you have to move in CAMPTIME to not be considered camping
-#define INTERVAL 5 //interval in which PFH is executed
-#define MAXDISTPERINTERVAL 30 //max distance that a player can travel per interval
-
-sleep 10;
-
-//PREPARE VARIABLES ============================================================
-player setVariable ["recentDistanceArray", [0]];
-player setVariable ["recentDistance", 0];
-player setVariable ["totalDistance", 0];
-player setVariable ["lastPosition", getPos player];
-player setVariable ["isCamping", false];
-
-//ADD PFH ======================================================================
-_delay = 5;
-_function = {
- if (!alive player) exitWith {};
- //update position
- _currentPosition = getPos player;
- _lastPosition = player getVariable ["lastPosition", _currentPosition];
- _currentDistance = _currentPosition distance2D _lastPosition;
- player setVariable ["lastPosition", _currentPosition];
-
- //calculate total distance
- player setVariable ["totalDistance", (player getVariable ["totalDistance", 0]) + _currentDistance];
-
- if (CAMPTIME <= 0) exitWith {};
-
- //calculate recent distance
- _recentDistanceArray = player getVariable ["recentDistanceArray", [0,0]];
- _recentDistance = player getVariable ["recentDistance", 0];
- if (count _recentDistanceArray >= CAMPTIME/INTERVAL) then {
- _recentDistance = _recentDistance - (_recentDistanceArray select 0) + (_currentDistance min MAXDISTPERINTERVAL);
- _recentDistanceArray deleteAt 0;
- } else {
- _recentDistance = _recentDistance + (_currentDistance min MAXDISTPERINTERVAL);
- };
- player setVariable ["recentDistance", _recentDistance];
- _recentDistanceArray pushBack _currentDistance;
-
- //camp warning
- if (count _recentDistanceArray >= CAMPTIME/INTERVAL && (player getVariable ["recentDistance", 0]) < CAMPTHRESHOLD) then {
- if !(player getVariable ["isCamping", false]) then {
- player setVariable ["isCamping", true];
- [player, profileName] remoteExec ["mcd_fnc_showCamper", 0, false];
- };
- } else {
- if (player getVariable ["isCamping", false]) then {
- player setVariable ["isCamping", false];
- [profileName] remoteExec ["mcd_fnc_hideCamper", 0, false];
- };
- };
-};
-[_function, _delay] call CBA_fnc_addPerFrameHandler;
diff --git a/player/scoreBoard.sqf b/player/scoreBoard.sqf
deleted file mode 100644
index f403709..0000000
--- a/player/scoreBoard.sqf
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "..\dialogs\scoreboard\defines.hpp"
-
-waitUntil {!isNil "isSpectator"};
-if (isSpectator) exitWith {};
-
-waitUntil {!isNil "CURRENTRANKING"};
-waitUntil {!isNil "GAMESTARTED"};
-waitUntil {GAMESTARTED};
-
-//ADD PVEH =====================================================================
-"CURRENTRANKING" addPublicVariableEventHandler {[] call mcd_fnc_scoreBoard};
-
-//RUN MANUALLY ONCE ============================================================
-[] call mcd_fnc_scoreBoard;
-
-//PLAYER HOST ==================================================================
-if (isServer && hasInterface) then {
- while {true} do {
- _oldRanking = str CURRENTRANKING;
- waitUntil {sleep 1; (str CURRENTRANKING) != _oldRanking};
- [] call mcd_fnc_scoreBoard;
- };
-};
diff --git a/player/setup/handleJIP.sqf b/player/setup/handleJIP.sqf
deleted file mode 100644
index 71fdfac..0000000
--- a/player/setup/handleJIP.sqf
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Handles JIP player
-*
-* executed via initPlayerLocal.sqf on players
-*/
-
-if (!didJIP) exitWith {isSpectator = false};
-if (isNil "VOTINGDONE") exitWith {isSpectator = false};
-if (!VOTINGDONE) exitWith {isSpectator = false};
-
-isSpectator = true;
-
-setPlayerRespawnTime 99999;
-player setDamage 1;
-["Initialize", [player, [], true]] call BIS_fnc_EGSpectator;
-
-_rule = parseText "-----------------------------------------------------
";
-_lineBreak = parseText "
";
-_message = parseText format ["Game has already started."];
-hint composeText [_rule, _message, _lineBreak, _rule];
-
-diag_log "handleJIP.sqf - Player joined after voting had already finished. Moving to spectator.";
-
-sleep 4;
-hint "";
diff --git a/player/setup/mapStartPos.sqf b/player/setup/mapStartPos.sqf
deleted file mode 100644
index 8fae0f3..0000000
--- a/player/setup/mapStartPos.sqf
+++ /dev/null
@@ -1,5 +0,0 @@
-waitUntil {!isNil "MAPSTARTPOS"};
-waitUntil {!isNull player};
-
-_pos = MAPSTARTPOS findEmptyPosition [0, 10];
-[player, _pos] call mcd_fnc_teleport;
diff --git a/player/setup/setRadioFreq.sqf b/player/setup/setRadioFreq.sqf
deleted file mode 100644
index 2943381..0000000
--- a/player/setup/setRadioFreq.sqf
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Sets SW frequency to what the server generated for their team
-*
-* executed on clients by setup\generateSWfreq.sqf
-*/
-
-if (!hasInterface) exitWith {};
-waitUntil {!isNil "GAMESTARTED"};
-waitUntil {GAMESTARTED};
-
-private ["_teamlead"];
-
-_teamlead = leader player;
-_freq = _teamlead getVariable "swfreq";
-
-[(call TFAR_fnc_activeSwRadio), _freq] call TFAR_fnc_setSwFrequency;
-
-diag_log format ["setRadioFreq.sqf - SW frequency set to %1.", _freq];
-
-
-if (SAMEALTCHANNEL && TEAMSIZE != 1) then {
- [(call TFAR_fnc_activeSwRadio), 3, "30"] call TFAR_fnc_SetChannelFrequency;
- [(call TFAR_fnc_activeSwRadio), 2] call TFAR_fnc_setAdditionalSwChannel;
- [(call TFAR_fnc_ActiveSWRadio), 1] call TFAR_fnc_setAdditionalSwStereo;
- diag_log "setRadioFreq.sqf - Added additional channel";
-};
diff --git a/player/setup/startGame.sqf b/player/setup/startGame.sqf
deleted file mode 100644
index e71b2ca..0000000
--- a/player/setup/startGame.sqf
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Starts the game for player
-*
-* executed via initPlayerLocal on player
-*/
-
-waitUntil {!isNil "isSpectator"};
-if (isSpectator) exitWith {};
-
-waitUntil {!isNil "STARTPOSDONE"};
-waitUntil {STARTPOSDONE};
-
-_spawnpos = player getVariable "spawnpos";
-_groupname = player getVariable "groupname";
-
-[0] call mcd_fnc_upgradeWeapon;
-[player, _spawnpos] spawn mcd_fnc_teleport;
-
-GAMESTARTED = true;
diff --git a/player/setup/startLoadout.sqf b/player/setup/startLoadout.sqf
deleted file mode 100644
index f3de0d6..0000000
--- a/player/setup/startLoadout.sqf
+++ /dev/null
@@ -1,32 +0,0 @@
-waitUntil {!isNil "isSpectator"};
-if (isSpectator) exitWith {};
-
-this = player;
-
-comment "Exported from Arsenal by McDiod";
-
-comment "Remove existing items";
-removeAllWeapons this;
-removeAllItems this;
-removeAllAssignedItems this;
-removeUniform this;
-removeVest this;
-removeBackpack this;
-removeHeadgear this;
-removeGoggles this;
-
-comment "Add containers";
-this forceAddUniform "U_BG_Guerilla1_1";
-for "_i" from 1 to 6 do {this addItemToUniform "ACE_fieldDressing";};
-for "_i" from 1 to 4 do {this addItemToUniform "ACE_morphine";};
-this addVest "V_BandollierB_rgr";
-
-comment "Add weapons";
-this addWeapon "Binocular";
-
-comment "Add items";
-this linkItem "ItemMap";
-this linkItem "ItemCompass";
-this linkItem "ItemWatch";
-this linkItem "tf_anprc152";
-this linkItem "ItemGPS";
diff --git a/player/setup/upgradeWeaponEH.sqf b/player/setup/upgradeWeaponEH.sqf
deleted file mode 100644
index 5a1ee14..0000000
--- a/player/setup/upgradeWeaponEH.sqf
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Adds public variable event handler that triggers when player's group gets a new score value
-*
-* executed via initPlayerLocal.sqf on player
-*/
-
-waitUntil {!isNil "isSpectator"};
-if (isSpectator) exitWith {};
-waitUntil {sleep 0.5; (player getVariable ["groupname", "GROUPNAMEUNDEFINED"]) != "GROUPNAMEUNDEFINED"};
-
-_groupname = player getVariable "groupname";
-call compile (format ["'%1' addPublicVariableEventHandler {[_this select 1] call mcd_fnc_upgradeWeapon; playSound 'switchsound'}", _groupname]);
-
-//do this shit on localhost
-if (isServer && hasInterface) then {
- [_groupname] spawn compile (format [
- "while {true} do {
- _oldValue = %1;
- waitUntil {_oldValue != %1};
- [%1] call mcd_fnc_upgradeWeapon;
- };", _groupname
- ]);
-};
diff --git a/player/setup/voteDialog.sqf b/player/setup/voteDialog.sqf
deleted file mode 100644
index 622ab4b..0000000
--- a/player/setup/voteDialog.sqf
+++ /dev/null
@@ -1,21 +0,0 @@
-waitUntil {!isNull player};
-waitUntil {player == player};
-waitUntil {!isNull (findDisplay 46)};
-waitUntil {!isNil "VOTINGTIMELEFT"};
-
-mcd_fnc_voteDialogText = {
- _skipText = if (playzoneSkipVote) then {"READY"} else {"PRESS ENTER TO SKIP"};
- _skipTextColor = if (playzoneSkipVote) then {[0,1,0,1]} else {[1,1,1,1]};
- ((_this select 0) displayCtrl 1402) ctrlSetText format ["TIME REMAINING: %1", ([VOTINGTIMELEFT,"MM:SS"] call BIS_fnc_secondsToString)];
- ((_this select 0) displayCtrl 1403) ctrlSetText _skipText;
- ((_this select 0) displayCtrl 1403) ctrlSetTextColor _skipTextColor;
-};
-
-_layer = (["wait1Layer"] call BIS_fnc_rscLayer);
-while {VOTINGTIMELEFT > 0} do {
- _layer cutRsc ["voteCountdownTitle", "PLAIN", 0.0001, true];
- sleep 1;
-};
-player say "taskSucceeded";
-_layer cutFadeOut 1;
-openMap [false, false];
diff --git a/player/setup/votePlayzone.sqf b/player/setup/votePlayzone.sqf
deleted file mode 100644
index a547606..0000000
--- a/player/setup/votePlayzone.sqf
+++ /dev/null
@@ -1,122 +0,0 @@
-waitUntil {!isNil "isSpectator"};
-if (isSpectator) exitWith {};
-
-waitUntil {!isNil "VOTESYSTEMINITIALIZED"};
-waitUntil {VOTESYSTEMINITIALIZED};
-waitUntil {!isNull player};
-waitUntil {player == player};
-waitUntil {!isNull (findDisplay 46)};
-openMap [true, true];
-
-playzoneSkipVote = false;
-vp_EventRunning = false;
-_recommendedMid = sqrt((count playableUnits) * (45000 / 3.1415));
-recommendedMin = ((round ((_recommendedMid * 0.75)/10)) *10);
-recommendedMax = ((round ((_recommendedMid * 1.25)/10)) *10);
-recommendedLabelDist = ((sin 45) * recommendedMax) * 1.1;
-
-[] execVM "player\setup\voteDialog.sqf";
-
-//MAP CLICK EVENT ==============================================================
-mcd_mouseButtonDownEvent = {
- params ["_control", "_button", "_xScreen", "_yScreen"];
- if (_button != 0) exitWith {};
- if (vp_EventRunning) exitWith {};
-
- vp_EventRunning = true;
- vp_start = _control ctrlMapScreenToWorld [_xScreen,_yScreen];
-
- deleteMarkerLocal "vp_currentMarker";
- vp_currentMarker = createMarkerLocal ["vp_currentMarker", vp_start];
- vp_currentMarker setMarkerColorLocal "COLORWEST";
- vp_currentMarker setMarkerShapeLocal "ELLIPSE";
- vp_currentMarker setMarkerBrushLocal "Border";
- vp_currentMarker setMarkerSizeLocal [1,1];
-
- deleteMarkerLocal "vp_distanceMarker";
- vp_distanceMarker = createMarkerLocal ["vp_distanceMarker", vp_start];
- vp_distanceMarker setMarkerColorLocal "COLORWEST";
- vp_distanceMarker setMarkerTypeLocal "hd_dot";
-
- deleteMarkerLocal "vp_recMin";
- vp_recMin = createMarkerLocal ["vp_recMin", vp_start];
- vp_recMin setMarkerColorLocal "COLORGUER";
- vp_recMin setMarkerShapeLocal "ELLIPSE";
- vp_recMin setMarkerBrushLocal "Border";
- vp_recMin setMarkerSizeLocal [recommendedMin,recommendedMin];
-
- deleteMarkerLocal "vp_recMax";
- vp_recMax = createMarkerLocal ["vp_recMax", vp_start];
- vp_recMax setMarkerColorLocal "COLORGUER";
- vp_recMax setMarkerShapeLocal "ELLIPSE";
- vp_recMax setMarkerBrushLocal "Border";
- vp_recMax setMarkerSizeLocal [recommendedMax,recommendedMax];
-
- deleteMarkerLocal "vp_recLabel";
- vp_recLabel = createMarkerLocal ["vp_recLabel", [(vp_start select 0) + recommendedLabelDist, (vp_start select 1) - recommendedLabelDist]];
- vp_recLabel setMarkerColorLocal "COLORGREEN";
- vp_recLabel setMarkerTypeLocal "hd_dot";
- vp_recLabel setMarkerTextLocal (format ["Recommended Diameter: %1m - %2m", recommendedMin*2, recommendedMax*2]);
-
-
- mcd_onMouseMoving = _control ctrlAddEventHandler ["MouseMoving", "_this call mcd_mouseMovingEvent"];
-};
-
-mcd_mouseMovingEvent = {
- params ["_control", "_deltaXScreen", "_deltaYScreen"];
- _currentPos = _control ctrlMapScreenToWorld [_deltaXScreen, _deltaYScreen];
- _distance = vp_start distance2D _currentPos;
-
- vp_distanceMarker setMarkerPosLocal [(_currentPos select 0)+100, (_currentPos select 1)-100];
- vp_distanceMarker setMarkerTextLocal (format ["Diameter: %1m", round (_distance*2)]);
- vp_currentMarker setMarkerSizeLocal [_distance,_distance];
- false
-};
-
-mcd_mouseButtonUpEvent = {
- params ["_control", "_button", "_xScreen", "_yScreen"];
- if (_button != 0) exitWith {};
-
- deleteMarkerLocal "vp_currentMarker";
- deleteMarkerLocal "vp_distanceMarker";
- deleteMarkerLocal "vp_recMin";
- deleteMarkerLocal "vp_recMax";
- deleteMarkerLocal "vp_recLabel";
-
- _control ctrlRemoveEventHandler ["MouseMoving", mcd_onMouseMoving];
- vp_end = _control ctrlMapScreenToWorld [_xScreen,_yScreen];
- _size = vp_start distance2D vp_end;
-
- [vp_start, player, _size] remoteExec ["mcd_fnc_receiveVote", 2, false];
- vp_EventRunning = false;
- true
-};
-
-
-//CONFIRM SELECTION ============================================================
-mcd_keyDownEvent = {
- _keyDown = _this select 1;
- if (_keyDown == 28 || _keyDown == 156) then {
- diag_log "votePlayzone.sqf - Player pressed enter...";
- (findDisplay 46) displayRemoveEventHandler ["KeyDown", mcd_onPlayzoneKeyDown];
- playzoneSkipVote = true;
- [player, true] remoteExec ["mcd_fnc_skipVote", 2, false];
- true
- };
-};
-
-
-//ADD EHs ======================================================================
-disableSerialization;
-_map = (findDisplay 12 displayCtrl 51);
-mcd_onMouseButtonDown = _map ctrlAddEventHandler ["MouseButtonDown", "_this call mcd_mouseButtonDownEvent"];
-mcd_onMouseButtonUp = _map ctrlAddEventHandler ["MouseButtonUp", "_this call mcd_mouseButtonUpEvent"];
-mcd_onPlayzoneKeyDown = (findDisplay 46) displayAddEventHandler ["KeyDown", "_this call mcd_keyDownEvent"];
-
-//==============================================================================
-waitUntil {!isNil "PLAYAREACENTER"};
-deleteMarkerLocal "vp_currentMarker";
-_map ctrlRemoveEventHandler ["MouseButtonDown", mcd_onMouseButtonDown];
-_map ctrlRemoveEventHandler ["MouseMoving", mcd_onMouseMoving];
-_map ctrlRemoveEventHandler ["MouseButtonUp", mcd_onMouseButtonUp];
-(findDisplay 46) displayRemoveEventHandler ["KeyDown", mcd_onPlayzoneKeyDown];
diff --git a/server/endGame.sqf b/server/endGame.sqf
deleted file mode 100644
index 9ffd8a1..0000000
--- a/server/endGame.sqf
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Game ending procedure
-*
-* executed on server via fn_setScore
-*/
-
-params ["_winner"];
-
-//start game end procedure on clients
-[getPos _winner, _winner] remoteExec ["mcd_fnc_endingCeremony", 0, false];
-
-if (RANKEDMODE) then {
- //update stats
- _startTime = serverTime;
- _stats = [] call mcd_fnc_updateLeaderboard;
- _compiledStats = [_stats] call mcd_fnc_compileForGRADScoreboard;
-
- //show on clients
- sleep 10;
- [_compiledStats] remoteExec ["mcd_fnc_showGRADScoreboard",0,false];
-};
-
-//end mission
-sleep 24;
-[_winner] remoteExec ["mcd_fnc_endMission",0,false];
diff --git a/server/setup/chooseWeapons.sqf b/server/setup/chooseWeapons.sqf
deleted file mode 100644
index 0ce4080..0000000
--- a/server/setup/chooseWeapons.sqf
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Chooses weapons and weapon attachments
-*
-* executed via init.sqf on server
-*/
-
-waitUntil {!isNil "KILLSFORWIN"};
-call compile preprocessFileLineNumbers "weaponConfig.sqf";
-
-private ["_allMuzzleItems","_scope"];
-
-CHOSENWEAPONS = [];
-MUZZLEITEMS = [];
-SCOPES = [];
-
-_diagReport = [];
-
-// CALCULATE NUMBER OF WEAPONS =================================================
-_weaponsNeeded = KILLSFORWIN;
-_weaponsPerTier = ceil (_weaponsNeeded / numberOfTiers);
-_diagReport pushBack (format ["%1 weapons total needed. %2 per tier.", _weaponsNeeded, _weaponsPerTier]);
-
-// CHOOSE WEAPONS ==============================================================
-_currentTier = 1;
-_tierWeaponsNeeded = _weaponsPerTier;
-while {_currentTier <= numberOfTiers} do {
-
- while {_tierWeaponsNeeded > 0} do {
- _countWeapons = {call compile format ["count weaponstier_%1", _currentTier]};
- _weaponsLeft = [] call _countWeapons;
- _randomID = round (random (_weaponsLeft-1));
- _weapon = call compile format ["_selected = weaponstier_%1 select %2; weaponstier_%1 deleteAt %2; _selected", _currentTier, _randomID];
- if ([] call _countWeapons == 0) then {
- call compile preprocessFileLineNumbers "weaponConfig.sqf";
- };
-
- CHOSENWEAPONS pushBack _weapon;
- _tierWeaponsNeeded = _tierWeaponsNeeded - 1;
- };
-
- _currentTier = _currentTier + 1;
- _tierWeaponsNeeded = _weaponsPerTier;
-};
-
-// CHOOSE MUZZLE ATTACHMENTS ===================================================
-{
- if (random 100 <= MUZZLEATTACHMENTPROB) then {
- _weapon = _x;
- _cfg = (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems");
- _allMuzzleItems = getArray _cfg;
-
- //RHS is stupid
- if (count _allMuzzleItems == 0) then {
- _attributes = configProperties [_cfg, "true", true];
- {
- _str = str (_x);
- _strArray = _str splitString "/";
- _attachmentName = _strArray select ((count _strArray) - 1);
- if ((getNumber (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems" >> _attachmentName)) == 1) then {
- _allMuzzleItems pushBack _attachmentName;
- };
- } forEach _attributes;
- };
-
- if (count _allMuzzleItems == 0) then {
- _diagReport pushBack (format ["No muzzle items found for weapon %1.",_x]);
- MUZZLEITEMS pushBack "EMPTY";
- } else {
- _muzzleItem = selectRandom _allMuzzleItems;
- MUZZLEITEMS pushBack _muzzleItem;
- };
- } else {
- MUZZLEITEMS pushBack "EMPTY";
- };
-} forEach CHOSENWEAPONS;
-
-
-// CHOOSE SCOPES ===============================================================
-_currentTier = 1;
-_tierScopesNeeded = _weaponsPerTier;
-{
- _weapon = _x;
- _probability = SCOPESPROB;
-
- //check if sniper
- _isSniper = true;
- _fireModes = getArray (configFile >> "CfgWeapons" >> _weapon >> "modes");
- if (_fireModes find "FullAuto" != -1) then {_isSniper = false};
- if (_fireModes find "Burst" != -1) then {_isSniper = false};
- if (_fireModes find "Single" == -1) then {_isSniper = false};
- if (count _fireModes <= 1) then {_isSniper = false};
- if (_isSniper) then {
- _probability = 100;
- _diagReport pushBack (format ["%1 is a sniper.", _weapon]);
- };
-
-
-
- if (random 100 <= _probability) then {
- _cfg = (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems");
- _attributes = configProperties [_cfg, "true", true];
- _compatibleScopes = [];
- {
- _str = str (_x);
- _strArray = _str splitString "/";
- _scopeName = _strArray select ((count _strArray) -1);
- _compatibleScopes pushBack _scopeName;
- } forEach _attributes;
- if (count _compatibleScopes == 0) then {
- _compatibleScopes = getArray (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems");
- };
-
- if (count _compatibleScopes > 0) then {
- _scopeFound = false;
- for [{_i=0}, {_i<50}, {_i=_i+1}] do {
- _randomID = round (random ((count _compatibleScopes) - 1));
- _scope = _compatibleScopes select _randomID;
- if (_isSniper) then {
- _scopeFound = [_scope] call compile format ["params ['_scope']; if (_scope in sniperscopes_0) then {true} else {false};"];
- } else {
- _scopeFound = [_scope] call compile format ["params ['_scope']; if (_scope in scopestier_%1) then {true} else {false};", _currentTier];
- };
-
- if (_scopeFound) exitWith {};
-
- _compatibleScopes deleteAt _randomID;
- if (count _compatibleScopes == 0) exitWith {_diagReport pushBack (format ["No scopes in compatible scopes allowed for weapon %1.", _weapon])};
- };
-
- if (_scopeFound) then {SCOPES pushBack _scope} else {SCOPES pushBack "EMPTY"};
- } else {
- _diagReport pushBack (format ["No compatible scopes found for weapon %1.", _x]);
- SCOPES pushBack "EMPTY";
- };
-
- } else {
- SCOPES pushBack "EMPTY";
- };
- _tierScopesNeeded = _tierScopesNeeded - 1;
-
- if (_tierScopesNeeded <= 0) then {
- _currentTier = _currentTier + 1;
- _tierScopesNeeded = _weaponsPerTier;
- };
-} forEach CHOSENWEAPONS;
-
-//GAME MODE ====================================================================
-switch (GAMEMODE) do {
- case 0: {};
- case 1: {
- reverse CHOSENWEAPONS;
- reverse MUZZLEITEMS;
- reverse SCOPES;
- };
- case 2: {
- [CHOSENWEAPONS, MUZZLEITEMS, SCOPES] call mcd_fnc_randomizeArrays;
- };
-};
-
-//BROADCAST ====================================================================
-publicVariable "CHOSENWEAPONS";
-publicVariable "MUZZLEITEMS";
-publicVariable "SCOPES";
-
-//LOG ==========================================================================
-if (count CHOSENWEAPONS < KILLSFORWIN) then {
- _diagReport pushBack (format ["ERROR: FEWER WEAPONS SELECTED THAN NEEDED (%1/%2)",count CHOSENWEAPONS, KILLSFORWIN]);
-};
-["chooseWeapons.sqf - REPORT:"] + _diagReport + ["","SELECTED WEAPONS:"] + CHOSENWEAPONS call mcd_fnc_formattedLog;
diff --git a/server/setup/playAreaSetup.sqf b/server/setup/playAreaSetup.sqf
deleted file mode 100644
index 319e118..0000000
--- a/server/setup/playAreaSetup.sqf
+++ /dev/null
@@ -1,121 +0,0 @@
-private ["_mostUpvotedIDs"];
-
-//DEFINE PLAY AREA SIZE ========================================================
-/*PLAYAREASIZE = "PlayAreaSize" call BIS_fnc_getParamValue;*/
-//automatic size
-/*if (PLAYAREASIZE < 0) then {
- _scalefactor = switch (PLAYAREASIZE) do {
- case (-1): {1}; //normal
- case (-2): {0.7}; //small
- case (-3): {1.4}; //large
- };
- _playerAmount = count playableUnits;
- PLAYAREASIZE = (((_playerAmount ^ 0.38) * 500 - 650) max 200) * _scalefactor;
-};
-publicVariable "PLAYAREASIZE";*/
-
-//wait for players to pick center
-waitUntil {!isNil "VOTINGDONE"};
-waitUntil {VOTINGDONE};
-
-//SELECT PLAYAREACENTER ========================================================
-_mostUpvotedID = [MARKERVOTES] call mcd_fnc_findGreatestNum;
-
-//no areas --> random center
-if (count AREAMARKERS == 0) then {
- diag_log format ["playAreaSetup.sqf - No play areas proposed. Selecting at random."];
- _isWater = true;
- while {_isWater} do {
- PLAYAREACENTER = [[worldSize/2, worldSize/2, 0], [0, 1000], [0,360], 1] call SHK_pos;
- _isWater = surfaceIsWater PLAYAREACENTER;
- };
- _playerAmount = count playableUnits;
- PLAYAREASIZE = (((_playerAmount ^ 0.38) * 500 - 650) max 200);
- publicVariable "PLAYAREASIZE";
-} else {
-
- //no single most upvoted
- if (_mostUpvotedID == -1) then {
- diag_log format ["playAreaSetup.sqf - No single most upvoted play area. Selecting at random from most upvoted."];
-
- _mostUpvotedIDs = [];
- _max = -999999;
- for [{_i=0}, {_i<(count MARKERVOTES)}, {_i=_i+1}] do {
- _element = MARKERVOTES select _i;
- if (_element == _max) then {
- _mostUpvotedIDs pushBack _i;
- };
-
- if (_element > _max) then {
- _max = _element;
- _mostUpvotedIDs = [];
- _mostUpvotedIDs pushBack _i;
- };
- };
-
- _randomID = selectRandom _mostUpvotedIDs;
- _selectedMarker = AREAMARKERS select _randomID;
- PLAYAREACENTER = getMarkerPos _selectedMarker;
- PLAYAREASIZE = (getMarkerSize _selectedMarker) select 0;
-
- //most upvoted
- } else {
- _selectedMarker = AREAMARKERS select _mostUpvotedID;
- PLAYAREACENTER = getMarkerPos _selectedMarker;
- PLAYAREASIZE = (getMarkerSize _selectedMarker) select 0;
- diag_log format ["playAreaSetup.sqf - Most upvoted playarea is %1", _selectedMarker];
- };
-};
-
-publicVariable "PLAYAREACENTER";
-publicVariable "PLAYAREASIZE";
-
-//DELETE VOTING MARKERS ========================================================
-{
- //delete voter markers
- _allfound = false;
- _i = 0;
- while {!_allFound} do {
- _oldVoterMarkerName = format ["%1_%2", _x, _i];
- if (str getMarkerPos _oldVoterMarkerName != "[0,0,0]") then {
- deleteMarker _oldVoterMarkerName;
- } else {
- _allFound = true;
- };
- _i = _i + 1;
- };
-
- deleteMarker _x;
-} forEach VOTEMARKERS;
-
-{
- deleteMarker _x;
-} forEach AREAMARKERS;
-
-//CREATE PLAY AREA MARKERS =====================================================
-_marker = createMarker ["PLAYAREAMARKER", PLAYAREACENTER];
-_marker setMarkerColor "COLORWEST";
-_marker setMarkerShape "ELLIPSE";
-_marker setMarkerBrush "Border";
-_marker setMarkerSize [PLAYAREASIZE, PLAYAREASIZE];
-
-
-//BUILD WALL ===================================================================
-_flag = createVehicle ["Flag_Blue_F", PLAYAREACENTER,[],0, "CAN_COLLIDE"];
-waitUntil {!isNull _flag};
-_wallCounter = 0;
-_pi = 3.1415;
-_wallX = 4;
-_step = (360*_wallX) / (2*_pi*PLAYAREASIZE);
-_maxDegree = (360+_step*(PLAYAREASIZE/230));
-for [{_i=1},{_i<=_maxDegree},{_i=_i+_step}] do {
- _pos = _flag getRelPos [PLAYAREASIZE, _i];
- _wall = createVehicle ["Land_Mil_WallBig_4m_F", _pos,[],0,"CAN_COLLIDE"];
- _wall setDir _i;
- _wall enableSimulationGlobal false;
- _wallCounter = _wallCounter + 1;
-};
-deleteVehicle _flag;
-
-
-diag_log format ["playAreaSetup.sqf - Playareasize is %1. %2 wall segments created.", PLAYAREASIZE, _wallCounter];
diff --git a/server/setup/setRadioFreq.sqf b/server/setup/setRadioFreq.sqf
deleted file mode 100644
index 6dfe179..0000000
--- a/server/setup/setRadioFreq.sqf
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Sets SW frequency per team to a random value
-*
-* executed via init.sqf on server
-*/
-
-waitUntil {!isNil "VOTINGDONE"};
-waitUntil {VOTINGDONE};
-waitUntil {!isNil "TEAMSETUPDONE"};
-waitUntil {TEAMSETUPDONE};
-
-private ["_swFrequencies", "_freq", "_alreadyIn", "_freqString", "_teamlead"];
-_swFrequencies = [];
-
-diag_log "setRadioFreq.sqf starting...";
-["Randomizing SW frequency...",0,0,2,0.3] remoteExec ["BIS_fnc_dynamicText",0,false];
-
-//Frequencies for PRC-152
-_radioMin = 31;
-_radioMax = 512;
-
-//Set x10 for random number generator
-_radioMin = _radioMin * 10;
-_radioMax = _radioMax * 10;
-
-
-//Generate frequencies if more than one player per team
-if (TEAMSIZE > 1) then {
- {
- _alreadyIn = 1000;
- while {_alreadyIn != -1} do {
- _freq = (floor ((random (_radioMax - _radioMin)) + _radioMin)) / 10;
- _alreadyIn = _swFrequencies find _freq;
-
- if (_alreadyIn == -1) then {
- _swFrequencies = _swFrequencies + [_freq];
- };
- };
- } forEach TEAMLEADERS;
-};
-
-//Put everyone on the same frequency if one player per team
-if (TEAMSIZE == 1) then {
- {
- _swFrequencies pushBack 100;
- } forEach TEAMLEADERS;
-};
-
-
-
-//Save frequencies as public variable in teamleaders
-for "_i" from 0 to count TEAMLEADERS -1 do {
-
- //Convert to string
- _freqString = str (_swFrequencies select _i);
- _teamlead = TEAMLEADERS select _i;
-
- //Save in teamleader and broadcast
- _teamlead setVariable ["swfreq", _freqString, true];
-
- sleep 0.1;
-};
-
-//Wait, so everyone has received their variables
-sleep 2;
-
-//Make players set their frequency
-[[], "player\setup\setRadioFreq.sqf"] remoteExec ["execVM",0,false];
-sleep 2;
-
-RADIOFREQDONE = true;
-publicVariable "RADIOFREQDONE";
diff --git a/server/setup/setTime.sqf b/server/setup/setTime.sqf
deleted file mode 100644
index a7f111d..0000000
--- a/server/setup/setTime.sqf
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Sets time
-*
-* executed via init.sqf on server
-*/
-
-//random
-if (TIME_OF_DAY == 1000) then {
- _availableSettings = getArray (missionConfigFile >> "Params" >> "TimeOfDay" >> "values");
- _availableSettings = _availableSettings - [1000];
- TIME_OF_DAY = selectRandom _availableSettings;
-};
-
-diag_log format ["setTime.sqf - Setting time to %1:00", TIME_OF_DAY];
-[[2015, 2, 5, TIME_OF_DAY, 0]] call bis_fnc_setDate;
diff --git a/server/setup/setWeather.sqf b/server/setup/setWeather.sqf
deleted file mode 100644
index e6dc6c3..0000000
--- a/server/setup/setWeather.sqf
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Sets weather
-*
-* executed via init.sqf on server
-*/
-
-private ["_overcast"];
-
-//OVERCAST =====================================================================
-//random
-if (WEATHER_SETTING == -1) then {
- _availableSettings = getArray (missionConfigFile >> "Params" >> "WeatherSetting" >> "values");
- _availableSettings = _availableSettings - [-1];
- _overcast = selectRandom _availableSettings;
-
-//fixed
-} else {
- _overcast = WEATHER_SETTING;
-};
-
-diag_log format ["setWeather.sqf - Setting overcast to %1.", _overcast];
-[_overcast * 0.01] call bis_fnc_setOvercast;
-
-//FOG ==========================================================================
-_mid = 0.03;
-
-//extra chance of fog when its raining
-if (_overcast >= 75) then {
- _mid = _mid + 0.08;
-};
-
-//extra chance of fog in the morning
-waitUntil {TIME_OF_DAY != 1000};
-if (TIME_OF_DAY <= 8) then {
- _mid = _mid + 0.12;
-};
-
-_fog = random [0,_mid,0.4];
-
-diag_log format ["setWeather.sqf - Setting fog to %1.", _fog];
-0 setFog _fog;
diff --git a/server/setup/startPositions.sqf b/server/setup/startPositions.sqf
deleted file mode 100644
index ba7a28c..0000000
--- a/server/setup/startPositions.sqf
+++ /dev/null
@@ -1,57 +0,0 @@
-waitUntil {!isNil "RADIOFREQDONE"};
-waitUntil {RADIOFREQDONE};
-
-diag_log "startPositions.sqf starting...";
-
-private ["_teamleadpos", "_memberpos"];
-
-STARTPOSITIONS = [];
-{
- diag_log format ["startPositions.sqf - Finding start positions for %1's team.", name _x];
-
- //Position for teamleader
- _repetitions = 0;
- _tooCloseFound = true;
- while {_tooCloseFound} do {
-
- //find position that is not over water
- _isWater = true;
- for [{_i=0}, {_i<100}, {_i = _i + 1}] do {
- _teamleadpos = [PLAYAREACENTER, [0, PLAYAREASIZE-25], [0,360], 1] call SHK_pos;
- _isWater = surfaceIsWater _teamleadpos;
- if (!_isWater) exitWith {};
- };
- if (_isWater) then {diag_log format ["startPositions.sqf - Server found only water positions in 100 cycles around %1 with a searchradius of %2.", PLAYAREACENTER, PLAYAREASIZE-25]};
-
- //make sure position is at least SPAWNGROUPMINDIST away from other positions
- _tooCloseFound = false;
- {
- if ((_x distance2D _teamleadpos) < SPAWNGROUPMINDIST) exitWith {_tooCloseFound = true; diag_log format ["startPositions.sqf - Start position for %1 to close to other position. Repeating.", name _x]};
- } forEach STARTPOSITIONS;
-
- //unless this has been repeated too often -> use position anyway
- if (_repetitions >= 10) then {
- _tooCloseFound = false;
- };
-
- _repetitions = _repetitions +1;
- };
- _x setVariable ["spawnpos", _teamleadpos, true];
-
- for [{_i = 0},{_i < (count (units group _x))},{_i = _i + 1}] do {
- _isWater = true;
- while {_isWater} do {
- _memberpos = [_teamleadpos, [0, STARTDISTTOLEADER], [0,360], 1] call SHK_pos;
- _isWater = surfaceIsWater _memberpos;
- };
-
- _unit = (units group _x) select _i;
- _unit setVariable ["spawnpos", _memberpos, true];
- sleep 0.1;
- };
-} forEach TEAMLEADERS;
-
-["Game starting in 10 seconds...",0,0,2,0.3] remoteExec ["BIS_fnc_dynamicText",0,false];
-sleep 10;
-STARTPOSDONE = true;
-publicVariable "STARTPOSDONE";
diff --git a/server/setup/teamSetup.sqf b/server/setup/teamSetup.sqf
deleted file mode 100644
index 5344c60..0000000
--- a/server/setup/teamSetup.sqf
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Randomizes teams as per mission parameters
-*
-* Executed via init.sqf on server
-*/
-
-private ["_players","_numberOfTeams", "_teammember", "_teamleadernames", "_teamleadID"];
-
-waitUntil {!isNil "VOTINGDONE"};
-waitUntil {VOTINGDONE};
-
-if (count playableUnits <= 2) then {
- TEAMSIZE = 1;
- publicVariable "TEAMSIZE";
-};
-
-//Setup for each player ========================================================
-_gogStats = profileNameSpace getVariable "mcd_gameofguns_stats";
-if (isNil "_gogStats") then {
- profileNameSpace setVariable ["mcd_gameofguns_stats", []];
- _gogStats = profileNameSpace getVariable "mcd_gameofguns_stats";
- diag_log "endGame.sqf - STATS NOT FOUND ON SERVER. STATS ARRAY HAS BEEN CREATED IN PROFILENAMESPACE.";
-};
-ALLPLAYERUIDS = [];
-{
- _x setVariable ["isTeamlead", false, true];
- _x setVariable ["spawnpos", [0,0,0], true];
- _x setVariable ["kills", 0, true];
- _x setVariable ["deaths", 0, true];
- _x setVariable ["longestKill", 0, true];
- _x setVariable ["eloThisGame", 0, true];
-
- //save UID of everyone who is playing
- _playerUID = getPlayerUID _x;
- ALLPLAYERUIDS pushBack _playerUID;
-
- //add new players to stats
- if ([_gogStats, _playerUID, 1] call mcd_fnc_findStringInArray == -1) then {
- //elo, uid, name, [kills, deaths, games]
- _gogStats pushBack [100, _playerUID, name _x, [0,0,0]];
- };
-
-} forEach allPlayers;
-saveProfileNamespace;
-
-//Define TEAMLEADERS if random groups are off ==================================
-if (!(RANDOMTEAMS) || ((count playableUnits) == 1)) then {
- TEAMLEADERS = [];
- {
- if (count units _x > 0) then {
- _groupLeader = leader _x;
- _groupLeader setVariable ["isTeamlead", true, true];
- TEAMLEADERS = TEAMLEADERS + [_groupleader];
- };
- } forEach allGroups;
-};
-
-//Define Teams and TEAMLEADERS if random groups are on =========================
-if (RANDOMTEAMS) then {
- ["Randomizing teams...",0,0,2,0.3] remoteExec ["BIS_fnc_dynamicText",0,false];
- sleep 5;
-
- diag_log "Team randomizer starting...";
-
- _players = playableUnits;
- _numberOfTeams = ceil ((count _players) / TEAMSIZE);
- TEAMLEADERS = [];
- _teamleadernames = [];
-
- //Delete existing groups
- {
- [_x] joinSilent grpNull;
- } forEach _players;
-
- //Enough players?
- if (_numberOfTeams < 2) then {
- diag_log "Unable to randomize teams - not enough players.";
- diag_log format ["Number of players: %1", (count _players)];
- diag_log format ["Teamsize selected: %1", TEAMSIZE];
- _numberOfTeams = 2;
- }
- else
- {
- diag_log format ["Randomizing %1 players into %2 teams", (count _players), _numberOfTeams];
- };
-
- if (count playableUnits == 1) then {
- _numberOfTeams = 1;
- };
-
- //Select teamleaders
- for [{_i = 0},{_i < _numberOfTeams},{_i = _i + 1}] do {
- _teamlead = selectRandom _players;
- _teamlead setVariable ["isTeamlead", true, true];
- _players = _players - [_teamlead];
- TEAMLEADERS = TEAMLEADERS + [_teamlead];
- };
-
- //Teamleader names for log
- {
- _teamleadernames = _teamleadernames + [name _x];
- } forEach TEAMLEADERS;
-
- diag_log format ["Teamleaders selected: %1", _teamleadernames];
-
- //Add remaining players to teamleaders
- for [{_i = 0},{_i < (TEAMSIZE - 1)}, {_i = _i + 1}] do {
- _teamleadID = 0;
- {
- if ((count _players) == 0) then {
- diag_log "No more players to add to teamleaders - uneven teams";
- }
- else
- {
- _teammember = selectRandom _players;
- _players = _players - [_teammember];
- [_teammember] joinSilent _x;
- diag_log format ["%1 added to %2's team.", (name _teammember), (_teamleadernames select _teamleadID)];
- };
-
- _teamleadID = _teamleadID +1;
-
- } forEach TEAMLEADERS;
- };
-};
-
-//Save teammates ===============================================================
-{
- _teamleader = _x;
- {
- _unit = _x;
- _teammates = [];
- {
- _teammate = getPlayerUID _x;
- _teammates pushBack _teammate;
- } forEach (units group _unit);
- _unit setVariable ["teammates", _teammates, true];
- diag_log format ["Teammates for %1 are: %2.",(name _unit), _teammates];
- } forEach (units group _teamleader);
-} forEach TEAMLEADERS;
-
-//Set groupnames ===============================================================
-CURRENTRANKING = [];
-{
- _group = _x;
- if (isPlayer (leader _group)) then {
- _leaderName = [name leader _group] call mcd_fnc_strToVar;
- _groupName = format ["group_%1", _leaderName];
- _groupDisplayName = if (TEAMSIZE > 1) then {format ["Team %1", _leaderName]} else {_leaderName};
-
- //create score variable
- call compile (format ["%1 = 0; publicVariable '%1'", _groupname, _groupDisplayName]);
- diag_log format ["teamSetup.sqf - score variable %1 created.", _groupname];
-
- //save groupname in players
- _groupPlayerUIDs = [];
- {
- _unit = _x;
- _groupPlayerUIDs pushBack (getPlayerUID _unit);
- _unit setVariable ["groupname", _groupname, true];
- _unit setVariable ["groupdisplayname", _groupDisplayName, true];
- } forEach (units _group);
-
- //add to ranking array
- call compile (format ["
- CURRENTRANKING pushBack [0, '%1', '%2', %3];
- ", _groupDisplayName, _groupName, _groupPlayerUIDs])
- };
-} forEach allGroups;
-publicVariable "CURRENTRANKING";
-
-//Set uniforms =================================================================
-call compile preprocessFileLineNumbers "uniformConfig.sqf";
-
-["Randomizing team uniforms...",0,0,2,0.3] remoteExec ["BIS_fnc_dynamicText",0,false];
-sleep 3;
-{
- _teamleader = _x;
-
- //select uniform
- _uniformsLeft = count randomUniforms;
- _randomID = round (random (_uniformsLeft-1));
- _uniform = randomUniforms select _randomID;
- randomUniforms deleteAt _randomID;
-
- //refill uniform array if all used up
- if (count randomUniforms == 0) then {
- call compile preprocessFileLineNumbers "uniformConfig.sqf";
- };
-
- //set variable
- {
- _x setVariable ["myUniform", _uniform, true];
- } forEach (units group _teamleader);
-
- diag_log format ["teamSetup.sqf - %1's team will wear uniform: %2", _teamleader, _uniform];
-} foreach TEAMLEADERS;
-[] remoteExec ["mcd_fnc_addGear", 0, false];
-sleep 2;
-
-//Done =========================================================================
-TEAMSETUPDONE = true;
-publicVariable "TEAMSETUPDONE";
diff --git a/server/setup/voteSystemInit.sqf b/server/setup/voteSystemInit.sqf
deleted file mode 100644
index 3917f6a..0000000
--- a/server/setup/voteSystemInit.sqf
+++ /dev/null
@@ -1,20 +0,0 @@
-AREAMARKERS = [];
-VOTEMARKERS = [];
-MARKERVOTES = [];
-VOTERS = [];
-
-//vote function
-[] spawn {
- VOTINGTIMELEFT = VOTINGTIME;
- while {VOTINGTIMELEFT > 0} do {
- sleep 1;
- VOTINGTIMELEFT = VOTINGTIMELEFT - 1;
- publicVariable "VOTINGTIMELEFT";
- };
-
- VOTINGDONE = true;
- publicVariable "VOTINGDONE";
-};
-
-VOTESYSTEMINITIALIZED = true;
-publicVariable "VOTESYSTEMINITIALIZED";
diff --git a/server/updateLeaderboard.sqf b/server/updateLeaderboard.sqf
deleted file mode 100644
index e4b54dc..0000000
--- a/server/updateLeaderboard.sqf
+++ /dev/null
@@ -1,120 +0,0 @@
-//get stats
-GOGSTATS = profileNameSpace getVariable "mcd_gameofguns_stats";
-if (isNil "GOGSTATS") exitWith {diag_log "updateLeaderboard.sqf - ERROR: STATS NOT FOUND IN SERVER PROFILENAMESPACE."};
-
-//UPDATE STATS =================================================================
-{
- _playerUID = _x;
- _ID = [GOGSTATS, _playerUID, 1] call mcd_fnc_findStringInArray;
- if (_ID == -1) then {
- diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND PLAYER %1 DURING UPDATE.", name _x];
- } else {
- _playerArray = GOGSTATS select _ID;
- _playerStats = _playerArray select 3;
-
- //name
- _playerUnit = [_playerUID] call BIS_fnc_getUnitByUID;
- if (!isNull _playerUnit) then {
- _newName = name _playerUnit;
- if (_newName != "Error: No vehicle" && _newName != "Error: No unit") then {
- _playerArray set [2, _newName];
- };
- };
-
- //kills
- _oldKills = _playerStats select 0;
- _playerStats set [0, _oldKills + (_playerUnit getVariable ["kills",0])];
- diag_log format ["updateLeaderboard.sqf - Player %1 scored %2 kills this game.", name _playerUnit, _playerUnit getVariable ["kills",0]];
-
- //deaths
- _oldDeaths = _playerStats select 1;
- _playerStats set [1, _oldDeaths + (_playerUnit getVariable ["deaths", 0])];
- diag_log format ["updateLeaderboard.sqf - Player %1 died %2 times this game.", name _playerUnit, _playerUnit getVariable ["deaths", 0]];
-
- //games
- _oldGames = _playerStats select 2;
- _playerStats set [2, _oldGames + 1];
- diag_log format ["updateLeaderboard.sqf - Player %1 now has a total of %2 games.", name _playerUnit, _playerStats select 3];
- };
-} forEach ALLPLAYERUIDS;
-
-diag_log "updateLeaderboard.sqf - Stats have been updated. Here is the new array:";
-diag_log "NAME, KILLS, DEATHS, GAMES ===========================================";
-{
- diag_log str _x;
-} forEach GOGSTATS;
-diag_log "======================================================================";
-
-
-//UPDATE POINTS ================================================================
-//CURRENTRANKING: [score, group displayname, groupname, [groupmemberUID, groupmemberUID, ...]]
-
-//get average elo of all teams
-_eloArray = [];
-_memberPoints = 100;
-{
- _groupArray = _x;
- _groupMemberUIDs = _groupArray select 3;
- _totalPoints = 0;
- {
- _memberUID = _x;
- _pointsID = [GOGSTATS, _memberUID, 1] call mcd_fnc_findStringInArray;
- if (_pointsID == -1) then {
- diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND %1 POINTS.", _memberUID];
- _memberPoints = 100;
- } else {
- _memberPoints = (GOGSTATS select _pointsID) select 0;
- diag_log format ["updateLeaderboard.sqf - Group %1: Player %2 currently has %3 points.", _groupArray select 0, _memberUID, _memberPoints];
- };
- _totalPoints = _totalPoints + _memberPoints;
- } forEach _groupMemberUIDs;
-
- _averagePoints = _totalPoints / (count _groupMemberUIDs);
- _eloArray pushBack _averagePoints;
-
- diag_log format ["updateLeaderboard.sqf - Team %1 has an average of %2 points.", _groupArray select 1, _averagePoints];
-} forEach CURRENTRANKING;
-
-//update elo for all players
-{
- _playerUID = _x;
- _playerUnit = [_playerUID] call BIS_fnc_getUnitByUID;
- _playerEloGain = 0;
- _playerEloIndex = [GOGSTATS, _playerUID, 1] call mcd_fnc_findStringInArray;
- if (_playerEloIndex == -1) exitWith {diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND %1 POINTS.", name _playerUnit]};
- _playerStats = GOGSTATS select _playerEloIndex;
- _playerElo = _playerStats select 0;
-
- _rankIndex = [CURRENTRANKING, _playerUID, 3] call mcd_fnc_findStringInArray;
- if (_rankIndex == -1) exitWith {diag_log format ["updateLeaderboard.sqf - ERROR: COULD NOT FIND %1 IN CURRENTRANKING.", name _playerUnit]};
-
- //negative points
- for [{_i=0}, {_i<_rankIndex}, {_i=_i+1}] do {
- _otherPlayerElo = _eloArray select _i;
- _playerEloGain = _playerEloGain - (_playerElo/_otherPlayerElo);
- };
-
- //positive points
- for [{_i=_rankIndex+1}, {_i<(count _eloArray)}, {_i=_i+1}] do {
- _otherPlayerElo = _eloArray select _i;
- _playerEloGain = _playerEloGain + (_otherPlayerElo/_playerElo);
- };
-
- //elo gain factor
- _playerEloGain = _playerEloGain * 2;
-
- diag_log format ["updateLeaderboard.sqf - Player %1 gained %2 points this game for a new total of %3.", name _playerUnit, _playerEloGain, _playerElo + _playerEloGain];
- _playerUnit setVariable ["eloThisGame", _playerEloGain, true];
- _playerStats set [0, (_playerElo + _playerEloGain) max 0];
-} forEach ALLPLAYERUIDS;
-
-
-diag_log "updateLeaderboard.sqf - Points have been updated. Here is the new array:";
-diag_log "NAME, POINTS =========================================================";
-{
- diag_log str _x;
-} forEach GOGSTATS;
-diag_log "======================================================================";
-
-GOGSTATS sort false;
-saveProfileNamespace;
diff --git a/tfarsettings.sqf b/tfarsettings.sqf
deleted file mode 100644
index 0397f3e..0000000
--- a/tfarsettings.sqf
+++ /dev/null
@@ -1,13 +0,0 @@
-// tfarSettings.sqf
-
-TF_GIVE_MICRODAGR_TO_SOLDIER = false;
-TF_SAME_LR_FREQUENCIES_FOR_SIDE = false;
-TF_SAME_SW_FREQUENCIES_FOR_SIDE = false;
-TF_TERRAIN_INTERCEPTION_COEFFICIENT = 6.0;
-tf_no_auto_long_range_radio = true;
-
-publicVariable "tf_no_auto_long_range_radio";
-publicVariable "TF_GIVE_MICRODAGR_TO_SOLDIER";
-publicVariable "TF_SAME_LR_FREQUENCIES_FOR_SIDE";
-publicVariable "TF_SAME_SW_FREQUENCIES_FOR_SIDE";
-publicVariable "TF_TERRAIN_INTERCEPTION_COEFFICIENT";
diff --git a/uniformConfig.sqf b/uniformConfig.sqf
deleted file mode 100644
index 05ab2b8..0000000
--- a/uniformConfig.sqf
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Defines uniforms and vests available to teams
-*
-*/
-
-waitUntil {!isNil "ISWOODLAND"};
-
-//WOODLAND =====================================================================
-if (ISWOODLAND) then {
- randomUniforms = [
- //VANILLA
- ['U_B_CombatUniform_mcam', 'V_PlateCarrier1_rgr'],
- ['U_I_CombatUniform', 'V_Chestrig_oli'],
- ['U_B_CTRG_1', 'V_PlateCarrier1_rgr'],
- ['U_O_CombatUniform_ocamo', 'V_TacVest_khk'],
- ['U_B_CombatUniform_mcam_vest', 'V_PlateCarrier1_rgr'],
-
- //ARC
- ['ARC_GER_Flecktarn_Uniform', 'ARC_GER_Flecktarn_Plate_Carrier'],
-
- //THAI
- /*['U_AFASoldierUni_A', 'V_PlateCarrier1_rgr'],
- ['U_CombatUniVest_A', 'V_Chestrig_blk'],
- ['U_CDFSoldierUni_A', 'V_PlateCarrier1_rgr'],
- ['U_CombatUniLong_A', 'V_PlateCarrier1_rgr'],
- ['U_CombatUniFatigue_A', 'V_PlateCarrier1_blk'],
- ['U_CDGCombatUni_C', 'V_TacVest_khk'],
- ['U_CDGCombatUni_B', 'V_TacVest_khk'],
- ['U_InsUniShirt_B', 'V_I_G_resistanceLeader_F'],
- ['U_InsUniShirt_A', 'V_I_G_resistanceLeader_F'],
- ['U_TKOfficerUni_B', 'V_TacVest_TK'],
- ['U_TKSoldierUni_B', 'V_TacVestEX_C'],
- ['U_CombatUniShirtMercB_D', 'V_TacVestEX_C'],
- ['U_CombatUniShirtMercB_H', 'V_TacVest_camo'],
- ['U_MilitiaSport_C', 'V_TacVest_brn'],
- ['U_CombatUniSleevesShort_C', 'V_FlakJacket_SH_Woodland'],
- ['U_CombatUniSleeves_B', 'V_TacVest_oli'],
- ['U_CombatUniSleeves_A', 'V_TacVest_oli'],
- ['U_CombatUniSleeves_D', 'V_TacVest_oli'],*/
-
- //RHS
- ['rhs_uniform_cu_ocp', 'rhsusf_iotv_ocp_SAW'],
- ['rhs_uniform_emr_patchless', 'rhs_6b23_digi_rifleman'],
- ['rhs_uniform_flora_patchless_alt', 'rhs_6b23_ML'],
- ['rhs_uniform_FROG01_wd', 'rhsusf_spc'],
- ['rhs_uniform_g3_blk', 'V_TacVest_oli'],
- ['rhs_uniform_g3_m81', 'V_TacVest_oli'],
- ['rhs_uniform_g3_mc', 'rhsusf_spc'],
- ['rhs_uniform_g3_rgr', 'V_TacVest_khk'],
- ['rhs_uniform_mvd_izlom', 'V_I_G_resistanceLeader_F'],
- ['rhsgref_uniform_para_ttsko_mountain', 'rhsgref_6b23_ttsko_mountain'],
- ['rhsgref_uniform_para_ttsko_urban', 'rhsgref_6b23_ttsko_mountain'],
- ['rhsgref_uniform_vsr', 'rhsgref_6b23_khaki_rifleman'],
- ['rhsgref_uniform_ttsko_forest', 'rhsgref_6b23_khaki_rifleman'],
- ['rhsgref_uniform_ttsko_mountain', 'rhsgref_6b23_ttsko_mountain'],
- ['rhsgref_uniform_alpenflage', 'rhs_6b23'],
- ['rhsgref_uniform_tigerstripe', 'rhs_6b13_Flora'],
- ['rhsgref_uniform_woodland', 'rhs_6b13_Flora'],
- ['rhsgref_uniform_specter', 'rhsgref_6b23_khaki_rifleman']
- ];
-
-//DESERT =======================================================================
-} else {
- randomUniforms = [
- //VANILLA
- ['U_O_CombatUniform_oucamo', 'V_TacVest_blk'],
-
- //ARC
- ['ARC_GER_Tropentarn_Uniform', 'ARC_GER_Tropentarn_Plate_Carrier'],
-
- //THAI
- /*['U_MilitiaUniTShirt_E', 'V_TacVest_brn'],
- ['U_InsUniShirt_C', 'V_ChestRig_light_A'],
- ['U_TKSpecialUni_A', 'V_TacVestEX_A'],
- ['U_TKSoldierUni_A', 'V_TacVestEX_A'],
- ['U_CombatUniShirtMercB_C', 'V_TacVestEX_A'],
- ['U_CombatUniShirtMercC_B', 'V_TacVest_khk'],
- ['U_CombatUniShirtMercC_A', 'V_TacVest_khk'],
- ['U_DressTKLocalUni_E_A', 'V_TacVest_khk'],
- ['U_TKLocalUni_A', 'V_Vest_light_Invisible'],
- ['U_MilitiaUniShirt_E', 'V_Chestrig_khk'],
- ['U_CombatUniSleeves_F', 'V_ChestRig_light_C'],*/
-
- //RHS
- ['rhs_uniform_cu_ucp', 'rhsusf_iotv_ucp_SAW'],
- ['rhs_uniform_emr_des_patchless', 'V_TacVest_brn'],
- ['rhs_uniform_FROG01_d', 'rhsusf_spc'],
- ['rhs_uniform_g3_tan', 'V_TacVest_khk'],
- ['rhs_uniform_m88_patchless', 'rhs_6b23_ML'],
- ['rhs_uniform_mflora_patchless', 'rhs_6b13_6sh92_vog']
- ];
-};
diff --git a/weaponConfig.sqf b/weaponConfig.sqf
deleted file mode 100644
index d21a24e..0000000
--- a/weaponConfig.sqf
+++ /dev/null
@@ -1,428 +0,0 @@
-/* Available weapons and scopes, sorted by tier
-*
-* preprocessed in server\setup\chooseWeapons.sqf
-*
-* keep numberOfTiers updated when adding new tiers!
-*/
-
-numberOfTiers = 5;
-
-sniperscopes_0 = [
- //vanilla
- "optic_AMS",
- "optic_DMS",
- "optic_KHS_blk",
- "optic_KHS_old",
- "optic_SOS",
- "optic_LRPS",
-
- //rhs
- "rhs_acc_pso1m2",
- "rhs_acc_pso1m21",
- "rhs_acc_rakursPM",
- "rhsusf_acc_premier",
- "rhsusf_acc_LEUPOLDMK4",
- "rhsusf_acc_LEUPOLDMK4_2",
- "rhsusf_acc_LEUPOLDMK4_2_d",
-
- //fhq
- "FHQ_optic_LeupoldERT",
- "FHQ_optic_LeupoldERT_tan"
-];
-
-weaponstier_1 = [
- //vanilla
- "srifle_GM6_camo_F",
- "srifle_GM6_F",
- "MMG_01_hex_F",
- "MMG_01_tan_F",
- "arifle_Katiba_F",
- "MMG_02_black_F",
- "MMG_02_camo_F",
- "srifle_LRR_F",
- "srifle_LRR_camo_F",
- "arifle_MX_F",
- "arifle_MX_Black_F",
- "arifle_MX_SW_F",
- "arifle_MX_SW_Black_F",
- "arifle_MXM_F",
- "arifle_MXM_Black_F",
- "LMG_Zafir_F",
- "srifle_DMR_01_F",
-
- //rhs
- "rhs_weap_hk416d145",
- "rhs_weap_M107_d",
- "rhs_weap_M107",
- "rhs_weap_m14ebrri",
- "rhs_weap_XM2010",
- "rhs_weap_XM2010_wd",
- "rhs_weap_m240B",
- "rhs_weap_m240G",
- "rhs_weap_m249_pip_L",
- "rhs_weap_m27iar",
- "rhs_weap_sr25",
- "rhs_weap_pkp",
- "rhs_weap_svdp",
- "rhs_weap_svdp_npz",
- "rhs_weap_svds",
- "rhs_weap_svds_npz"
-
- //thai
- /*"Auto762x54_SVD63",
- "Auto556x45_Minimi_A",
- "Auto762x51_SCARH_DES",
- "Auto762x51_SCARH",
- "Bolt762x51_M24SWS_Blk",
- "Bolt762x51_M24SWS_Grn",
- "Auto762x51_SR25EC"*/
-
- //sma
- /*"SMA_ACRREM",
- "SMA_ACRREMblk",
- "SMA_HK417_16in_afg",
- "SMA_HK417_16in_afg_tan",
- "SMA_ACR",
- "SMA_ACRblk",
- "SMA_Mk17_16",
- "SMA_Mk17_16_black"*/
-];
-
-scopestier_1 = [
- //vanilla
- "optic_Arco",
- "optic_SOS",
- "optic_MRCO",
- "optic_Hamr",
- "optic_Holosight",
- "optic_ACO_grn",
- "optic_Aco",
-
- //rhs
- "rhsusf_acc_ACOG_USMC",
- "rhsusf_acc_ACOG",
- "rhsusf_acc_eotech_552",
- "rhsusf_acc_SpecterDR",
- "rhsusf_acc_SpecterDR_OD",
- "rhsusf_acc_ACOG_d",
- "rhsusf_acc_ACOG_wd",
- "rhs_acc_1p29",
- "rhs_acc_1p63",
- "rhs_acc_pso1m2",
- "rhs_acc_pso1m21",
- "rhs_acc_pkas",
- "rhs_acc_ekp1",
-
- //fhq
- "FHQ_optic_AC11704",
- "FHQ_optic_AC11704_tan",
- "FHQ_optic_ACOG",
- "FHQ_optic_ACOG_tan",
- "FHQ_optic_AimM_BLK",
- "FHQ_optic_AimM_TAN",
- "FHQ_optic_AIM",
- "FHQ_optic_AIM_tan",
- "FHQ_optic_HWS_G33",
- "FHQ_optic_HWS_G33_tan",
- "FHQ_optic_MCCO_M_BLK",
- "FHQ_optic_MCCO_M_TAN",
- "FHQ_optic_MicroCCO",
- "FHQ_optic_MicroCCO_tan"
-];
-
-//MODERN ASSAULT RIFLES 5.56, SHITTY MGs, SHITTY SNIPERS =======================
-weaponstier_2 = [
- //vanilla
- "srifle_DMR_03_F",
- "arifle_TRG21_F",
-
- //rhs
- "rhs_weap_ak103",
- "rhs_weap_ak104",
- "rhs_weap_ak104_npz",
- "rhs_weap_ak105",
- "rhs_weap_ak105_npz",
- "rhs_weap_hk416d10",
- "rhs_weap_hk416d145",
- "rhs_weap_m249_pip_L",
- "rhs_weap_m249_pip_S",
- "rhs_weap_m27iar",
- "rhs_weap_m4",
- "rhs_weap_m4a1_carryhandle",
- "rhs_weap_m4a1_blockII",
- "rhs_weap_m4a1",
- "rhs_weap_mk18",
- "rhs_weap_pkm"
-
- //thai
- /*"Auto762x39_AK104",
- "Auto556x45_TAR20",
- "Auto556x45_Minimi_A",
- "Auto556x45_SCARL",
- "Auto556x45_HK416",
- "Auto556x45_M4A3",
- "Auto762x51_MG3",
- "Auto556x45_MK18SBR",
- "Auto556x45_CQM4",
- "Auto762x51_SR25",
- "Auto556x45_TAR21",
- "Auto762x54_UK59L"*/
-
- //sma
- /*"SMA_HK416afg",
- "SMA_M4afg",
- "SMA_M4afg_OD",
- "SMA_ACR",
- "SMA_ACRblk",
- "SMA_MK18afgBLK",
- "SMA_MK18afgTANBLK_SM",
- "SMA_Mk16QCB",
- "SMA_MK16"*/
-];
-
-scopestier_2 = [
- //vanilla
- "optic_ACO_grn",
- "optic_Aco",
- "optic_Holosight",
-
- //rhs
- "rhs_acc_1p29",
- "rhs_acc_1p63",
- "rhs_acc_1p78",
- "rhs_acc_ekp1",
- "rhs_acc_pkas",
- "rhs_acc_rakursPM",
- "rhsusf_acc_EOTECH",
- "rhsusf_acc_eotech_552",
- "rhsusf_acc_eotech_552_d",
- "rhsusf_acc_compm4",
- "rhsusf_acc_eotech_xps3",
-
- //fhq
- "FHQ_optic_AC11704",
- "FHQ_optic_AC11704_tan",
- "FHQ_optic_AC12136_tan",
- "FHQ_optic_AIM",
- "FHQ_optic_AIM_tan",
- "FHQ_optic_AimM_BLK",
- "FHQ_optic_AimM_TAN",
- "FHQ_optic_HWS_G33",
- "FHQ_optic_HWS_G33_tan",
- "FHQ_optic_HWS",
- "FHQ_optic_HWS_tan",
- "FHQ_optic_MARS",
- "FHQ_optic_MARS_tan",
- "FHQ_optic_MicroCCO",
- "FHQ_optic_MicroCCO_tan",
- "FHQ_optic_MCCO_M_BLK",
- "FHQ_optic_MCCO_M_TAN",
- "FHQ_optic_MicroCCO_low",
- "FHQ_optic_MicroCCO_low_tan",
- "FHQ_optic_VCOG",
- "FHQ_optic_VCOG_tan",
- "FHQ_optic_ACOG",
- "FHQ_optic_ACOG_tan"
-
- //sma
- /*"SMA_AIMPOINT",
- "SMA_AIMPOINT_GLARE"*/
-];
-
-
-// SHITTY ASSAULT RIFLES =======================================================
-weaponstier_3 = [
- //vanilla
- "arifle_Mk20_plain_F",
- "arifle_MXC_F",
-
- //rhs
- "rhs_weap_akm",
- "rhs_weap_akms",
- "rhs_weap_aks74u",
- "rhs_weap_aks74un",
- "rhs_weap_m21a",
- "rhs_weap_m21a_pr",
- "rhs_weap_m70ab2",
- "rhs_weap_m70b1",
- "rhs_weap_m92",
- "rhs_weap_m16a4",
- "rhs_weap_sr25",
- "rhs_weap_ak74m",
- "rhs_weap_ak74m_camo",
- "rhs_weap_ak74m_camo_npz"
-
- //thai
- /*"Auto762x39_AKMSU_RIS",
- "Auto545x39_AKS74U_RIS",
- "Auto762x51_FAL",
- "Auto762x51_MAG58",
- "Auto556x45_G36C",
- "Auto762x51_G3A3",
- "Auto762x51_G3A4",
- "Auto556x45_HK33_A",
- "Auto556x45_M16A1_RIS",
- "Auto556x45_M16A2_RIS",
- "Auto556x45_M16A4",
- "Auto762x54_UK59L",
- "Auto556x45_FAMASG2",
- "Auto556x45_FAMASG2_C"*/
-
- //sma
- /*"SMA_ACRREMblk",
- "SMA_ACRREM"*/
-];
-
-scopestier_3 = [
- //vanilla
- "optic_ACO_grn",
- "optic_Holosight",
-
- //rhs
- "rhs_acc_rakursPM",
- "rhsusf_acc_EOTECH",
- "rhsusf_acc_eotech_552",
- "rhsusf_acc_eotech_552_d",
- "rhsusf_acc_compm4",
- "rhsusf_acc_eotech_xps3",
- "rhs_acc_1p29",
- "rhs_acc_1p63",
- "rhs_acc_ekp1",
- "rhs_acc_pkas",
- "rhs_acc_1p78",
-
- //fhq
- "FHQ_optic_AC11704",
- "FHQ_optic_AC11704_tan",
- "FHQ_optic_AC12136",
- "FHQ_optic_AIM",
- "FHQ_optic_AIM_tan",
- "FHQ_optic_AimM_BLK",
- "FHQ_optic_AimM_TAN",
- "FHQ_optic_HWS_G33",
- "FHQ_optic_HWS",
- "FHQ_optic_HWS_tan",
- "FHQ_optic_MARS",
- "FHQ_optic_MARS_tan",
- "FHQ_optic_MicroCCO",
- "FHQ_optic_MicroCCO_tan",
- "FHQ_optic_MCCO_M_BLK",
- "FHQ_optic_MCCO_M_TAN",
- "FHQ_optic_MicroCCO_low_tan"
-
- //sma
- /*"SMA_AIMPOINT"*/
-];
-
-//SMGs, SHOTGUNS, OLD RIFLES ===================================================
-weaponstier_4 = [
- //vanilla
- "hgun_PDW2000_F",
- "srifle_DMR_04_F",
- "srifle_DMR_04_Tan_F",
- "SMG_02_F",
- "SMG_01_F",
-
- //rhs
- "rhs_weap_kar98k",
- "rhs_weap_M590_8RD",
- "rhs_weap_M590_5RD",
- "rhs_weap_m38",
- "rhsusf_weap_MP7A1_base_f",
- "rhsusf_weap_MP7A1_aor1",
- "rhsusf_weap_MP7A1_desert",
- "rhs_weap_pp2000",
- "rhs_weap_asval",
- "rhs_weap_asval_grip",
- "rhs_weap_asval_npz"
-
- //thai
- /*"Bolt792x57_Kar98K_RIS",
- "Bolt762x54_M9130_RIS",
- "Bolt792x57_CZ550",
- "Bolt77x56_SMLE_RIS",
- "Smg9x19_BTMP9",
- "Smg9x19_PP19",
- "Smg9x19_MP5A5",
- "Smg762x25_PPK74U",
- "Smg762x25_PPS43",
- "Smg762x25_PPSh41_A",
- "Smg762x25_PPSh41_B",
- "Auto792x33_MP44",
- "Auto762x39_Type63",
- "Auto762x51_M14_RIS"*/
-];
-
-scopestier_4 = [
- //vanilla
- "optic_Holosight",
- "optic_Holosight_smg",
-
- //rhs
- "rhs_acc_rakursPM",
- "rhsusf_acc_EOTECH",
- "rhsusf_acc_eotech_552",
- "rhsusf_acc_eotech_552_d",
- "rhsusf_acc_compm4",
- "rhsusf_acc_eotech_xps3",
- "rhs_acc_1p63",
- "rhs_acc_pkas",
- "rhs_acc_ekp1",
-
- //fhq
- "FHQ_optic_AC12136",
- "FHQ_optic_AC12136_tan",
- "FHQ_optic_AIM",
- "FHQ_optic_AIM_tan",
- "FHQ_optic_HWS",
- "FHQ_optic_HWS_tan",
- "FHQ_optic_MARS",
- "FHQ_optic_MARS_tan",
- "FHQ_optic_MicroCCO",
- "FHQ_optic_MicroCCO_tan",
- "FHQ_optic_MicroCCO_low",
- "FHQ_optic_MicroCCO_low_tan"
-
- //sma
- /*"SMA_AIMPOINT",
- "SMA_AIMPOINT_GLARE"*/
-];
-
-
-//PISTOLS ======================================================================
-weaponstier_5 = [
- //vanilla
- "hgun_Pistol_heavy_02_F",
- "hgun_ACPC2_F",
- "hgun_Pistol_heavy_01_F",
- "hgun_Rook40_F",
- "hgun_P07_F",
-
- //rhs
- "rhsusf_weap_glock17g4",
- "rhsusf_weap_m1911a1",
- "rhsusf_weap_m9",
- "rhs_weap_pya",
- "rhs_weap_makarov_pm",
- "rhs_weap_makarov_pmm"
-
- //thai
- /*"Pstl9x19_92FS",
- "Pstl9x19_FNGP35",
- "Pstl762x25_CZ52",
- "Pstl9x19_CZSP01",
- "Pstl9x19_CZ75B",
- "Pstl11x23_M1911",
- "Pstl9x19_N213B",
- "Pstl9x19_NP22",
- "Pstl9x19_NP42",
- "Pstl9x19_P99",
- "Pstl11x23_SAARevolver",
- "Pstl762x25_TT33",
- "Pstl11x23_Revolver"*/
-];
-
-scopestier_5 = [
- "optic_Yorris",
- "optic_MRD"
-];