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" -];