Jump to content

Rosso777

Member
  • Content Count

    130
  • Joined

  • Last visited

  • Medals

Posts posted by Rosso777


  1. I have been trying for DAYS to get triggers/hints working in my dedicated server (everything works perfectly in the editor, but no triggers/hints on my dedi server). Ideally I would like the player to activate a trigger (making an AI standing there talk in chat with unit globalChat "Hello";) , but even when I spawn an AI in the editor and then add a HINT comment to the activation of each waypoint, nothing.

    I don't understand what I am missing. I have scoured several forums for nearly a week, but nothing seems to work. ANY and ALL help is greatly appreciated, as I have simply no idea wtf is wrong.

    Here is my test script so you can see what I am looking at; this is the AI walking to different waypoints and then SHOULD either say a HINT or a GLOBALCHAT comment.  He spawns and follows his path, but no text. I have called this file from init, initplayerlocal, and initserver... by using [] execVm "trigger.sqf";    no success.
     

    Spoiler


    // Init
    params [["_layerWhiteList",[],[[]]],["_layerBlacklist",[],[[]]],["_posCenter",[0,0,0],[[]]],["_dir",0,[0]],["_idBlacklist",[],[[]]]];
    private _allWhitelisted = _layerWhiteList isEqualTo [];
    private _layerRoot = (_allWhitelisted || {true in _layerWhiteList}) && {!(true in _layerBlackList)};


    // Markers
    private _markers = [];
    private _markerIDs = [];


    // Groups
    private _groups = [];
    private _groupIDs = [];

    private _item1 = grpNull;
    if (_layerRoot) then {
        _item1 = createGroup resistance;
        _this = _item1;
        _groups pushback _this;
        _groupIDs pushback 1;
    };


    // Objects
    private _objects = [];
    private _objectIDs = [];

    private _item2 = objNull;
    if (_layerRoot) then {
        _item2 = _item1 createUnit ["Exile_Unit_Player",[4021.73,5363.2,-3.05176e-005],[],0,"CAN_COLLIDE"];
        _item1 selectLeader _item2;
        _this = _item2;
        _objects pushback _this;
        _objectIDs pushback 2;
        _this setPosWorld [4021.73,5363.25,293.058];
        _this setVectorDirAndUp [[-0.374348,-0.927288,0],[0,0,1]];
        talker = _this;
        _this setVehicleVarName "talker";
        _this setname "Gregor Costas";;
        _this setface "GreekHead_A3_09";;
        _this setspeaker "Male02GRE";;
        _this setpitch 1.03;;
        _this setUnitTrait ['Medic',false];
        _this setUnitTrait ['Engineer',false];
        _this setUnitTrait ['ExplosiveSpecialist',false];
        _this setUnitTrait ['UAVHacker',false];
    };


    // Triggers
    private _triggers = [];
    private _triggerIDs = [];

    private _item0 = objNull;
    if (_layerRoot) then {
        _item0 = createTrigger ["EmptyDetectorArea10x10",[3999.66,5236.21,0],true];
        _this = _item0;
        _triggers pushback _this;
        _triggerIDs pushback 0;
        _item0 setPosATL [3999.66,5236.21,0];
        _this setTriggerArea [5,5,198.688,true,5];
        _this setTriggerActivation ["VEHICLE","PRESENT",false];
        _this setTriggerStatements ["call{this}","call{hint ""this trigger worked!"";}",""];
    };


    // Group attributes (applied only once group units exist)
    _this = _item1;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-1"] call CBA_fnc_setCallsign;
        _this setCombatMode "BLUE";
        _this setBehaviour "CARELESS";
        _this setSpeedMode "LIMITED";
                    if (!is3DEN && {!(["","ColorGUER","Alpha 1-1",true] isEqualTo ['','','',true])}) then            {                [_this,["","ColorGUER","Alpha 1-1",true]] spawn                {                    params ['_group','["","ColorGUER","Alpha 1-1",true]'];                    ["","ColorGUER","Alpha 1-1",true] params ['_type','_color','_text','_showGroupSize'];                    private _leader = leader _group;                    private _marker = createMarker                    [                        format ['ENH_GroupMarker_["","ColorGUER","Alpha 1-1",true]',str floor random 10e5],                        _leader                    ];                    _marker setMarkerType _type;                    _marker setMarkerColor _color;                    _marker setMarkerText _text;                    while {true} do                    {                        sleep 1;                        if (units _group isEqualTo []) exitWith {deleteMarker _marker};                        if (_group getVariable ['ENH_GroupMarker_Update',true]) then                        {                            _marker setMarkerPos _leader;                            if (_showGroupSize) then                            {                                _marker setMarkerText format ['["","ColorGUER","Alpha 1-1",true] ()',groupId _group, count units _group];                            };                        };                    };                };            };;
    };


    // Waypoints
    private _waypoints = [];
    private _waypointIDs = [];

    private _item3 = [];
    if (_layerRoot) then {
        _item3 = _item1 addWaypoint [[3956.35,5277.08,0],0];
        _this = _item3;
        _waypoints pushback _this;
        _waypointIDs pushback 3;
        _this setWaypointStatements ["call{true}","call{hint ""Waypoint 1"";}"];
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [30,45,60];
    };

    private _item4 = [];
    if (_layerRoot) then {
        _item4 = _item1 addWaypoint [[4103.43,5270.44,0],0];
        _this = _item4;
        _waypoints pushback _this;
        _waypointIDs pushback 4;
        _this setWaypointStatements ["call{true}","call{hintSilent """";
    hint ""Waypoint 2"";}"];
        _this setWaypointType "MOVE";
    };

    private _item5 = [];
    if (_layerRoot) then {
        _item5 = _item1 addWaypoint [[4043.08,5308.32,0],0];
        _this = _item5;
        _waypoints pushback _this;
        _waypointIDs pushback 5;
        _this setWaypointStatements ["call{true}","call{talker globalChat ""This is globalChat."";}"];
        _this setWaypointType "MOVE";
    };

    private _item6 = [];
    if (_layerRoot) then {
        _item6 = _item1 addWaypoint [[3997.52,5236.5,0],0];
        _this = _item6;
        _waypoints pushback _this;
        _waypointIDs pushback 6;
        _this setWaypointStatements ["call{true}","call{talker sideChat ""this is sideChat."";}"];
        _this setWaypointType "MOVE";
        _this setWaypointSpeed "LIMITED";
    };


    // Logics
    private _logics = [];
    private _logicIDs = [];


    // Connections
    if (!isNull _item0 && !isNull _item2) then {_item0 triggerAttachVehicle [_item2];};


    // Inits (executed only once all entities exist; isNil used to ensure non-scheduled environment)
    isNil {
    };


    [[_objects,_groups,_triggers,_waypoints,_logics,_markers],[_objectIDs,_groupIDs,_triggerIDs,_waypointIDs,_logicIDs,_markerIDs]]
     

     


  2. For the sake of anyone else who may encounter a similar issue in the future,  I will continue to update as I progress (or otherwise). I have discussed through very thorough testing that my triggers are NOT firing on the dedicated server. They run local with zero issues, but will not figure at all on the server. I was wrong to say that things were working a bit and it was only the chat that was flawed. I have tried every variable I could think of to activate the trigger, to no avail:

     

    For this line essentially, 

        _this setTriggerActivation ["ANYPLAYER","PRESENT",false];
        _this setTriggerStatements ["call{this}","call{hint ""Hello."";}","call{this}"];

     

    I have tried replacing ANYPLAYER with ANYBODY, BLUFOR, OPFOR, GUER, and even so far as trying to name specific players by their in-game name ("Roscoe"). No luck so far. 

    I have been scouring these and other forums like a madman, and have learned a TON, but no success just yet. I read somewhere that if things are working in the editor on the local machine, they should also be working on the dedi, and I even went so far as to start adding the isServer()  stuff in the beginning of each trigger Condition or Activation. Nada.

     

    I will continue to update as I go. Hopefully success will be found and it will help someone else someday. SO MANY TIMES am I seeing where someone had the SAME problem, said they solved it, and never said how. Ouch.


  3. Spawned an AI that I want to say things in Chat when the player is within 5 meters.

    I've done a TON of research on AI Chat Addons/Scripts, etc. None of them have instructions, so I couldn't quite figure out how to make AI give info to players (Dedicated Server, Exile). In the editor, everything works FLAWLESSLY. But when I add it to the server, the only thing that won't happen is the actual CHAT. The Ai waits a certain amount of time and then walks away, which is also based on a player-activated trigger. Can anyone see why this cat won't speak?
     

    Spoiler

    // Export of 'messenger1.chernarusredux' by Roscoe on v0.9

    ///////////////////////////////////////////////////////////////////////////////////////////
    // Init
    params [["_layerWhiteList",[],[[]]],["_layerBlacklist",[],[[]]],["_posCenter",[0,0,0],[[]]],["_dir",0,[0]],["_idBlacklist",[],[[]]]];
    private _allWhitelisted = _layerWhiteList isEqualTo [];
    private _layerRoot = (_allWhitelisted || {true in _layerWhiteList}) && {!(true in _layerBlackList)};


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Markers
    private _markers = [];
    private _markerIDs = [];


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Groups
    private _groups = [];
    private _groupIDs = [];

    private _item0 = grpNull;
    if (_layerRoot) then {
        _item0 = createGroup civilian;
        _this = _item0;
        _groups pushback _this;
        _groupIDs pushback 0;
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Objects
    private _objects = [];
    private _objectIDs = [];

    private _item5 = objNull;
    if (_layerRoot) then {
        _item5 = _item0 createUnit ["CUP_C_TK_Man_04",[4010.99,5228.43,0],[],0,"CAN_COLLIDE"];
        _item0 selectLeader _item5;
        _this = _item5;
        _objects pushback _this;
        _objectIDs pushback 5;
        _this setPosWorld [4010.99,5228.48,265.093];
        _this setVectorDirAndUp [[-0.192267,-0.968325,-0.159312],[-0.0349693,-0.155478,0.98722]];
        _this setUnitLoadout [["srifle_LeeEnfield","","","",["10x_303_M",10],[],""],[],["CHR_FlashLight","","","",[],[],""],["CUP_U_I_GUE_Anorak_01",[["10x_303_M",3,10]]],["CUP_V_OI_TKI_Jacket6_06",[]],["B_RadioBag_01_black_F",[]],"","",["Binocular","","","",[],[],""],["","","ItemRadio","ItemCompass","ItemWatch",""]];
        Man1 = _this;
        _this setVehicleVarName "Man1";
        _this setSkill 1;
        _this setUnitPos "DOWN";
        _this allowFleeing 0;
        _this allowdamage false;;
        _this setname "Luqman Jalali";;
        _this setface "PersianHead_A3_03";;
        _this setspeaker "CUP_D_Male01_TK";;
        _this setpitch 0.99;;
        _this setSkill ['aimingShake',1];
        _this setSkill ['aimingSpeed',1];
        _this setSkill ['aimingAccuracy',1];
        _this setSkill ['commanding',1];
        _this setSkill ['courage',1];
        _this setSkill ['general',1];
        _this setSkill ['reloadSpeed',1];
        _this setSkill ['spotDistance',1];
        _this setSkill ['spotTime',1];
        _this setUnitTrait ['Medic',false];
        _this setUnitTrait ['Engineer',false];
        _this setUnitTrait ['ExplosiveSpecialist',false];
        _this setUnitTrait ['UAVHacker',false];
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Triggers
    private _triggers = [];
    private _triggerIDs = [];

    private _item2 = objNull;
    if (_layerRoot) then {
        _item2 = createTrigger ["EmptyDetector",[4011.75,5228.66,0.071991],true];
        _this = _item2;
        _triggers pushback _this;
        _triggerIDs pushback 2;
        _item2 setPosATL [4011.75,5228.66,0.071991];
        _this setTriggerArea [5,5,0,false,-1];
        _this setTriggerActivation ["ANYPLAYER","PRESENT",false];
        _this setTriggerStatements ["call{this}","call{hint ""Hello."";}","call{this}"];
        _this setSoundEffect ["$NONE$","cough1","",""];
        say1 = _this;
        _this setTriggerTimeout [2,2,2,false];
    };

    private _item7 = objNull;
    if (_layerRoot) then {
        _item7 = createTrigger ["EmptyDetector",[4011.59,5228.86,0.154999],true];
        _this = _item7;
        _triggers pushback _this;
        _triggerIDs pushback 7;
        _item7 setPosATL [4011.59,5228.86,0.154999];
        _this setTriggerArea [4,4,0,false,-1];
        _this setTriggerActivation ["ANYPLAYER","PRESENT",false];
        _this setTriggerStatements ["call{this}","call{hintSilent """";
    Hint ""Is your group the ones who were fighting on Green Mountain recently?"";}","call{this}"];
        say2 = _this;
        _this setTriggerTimeout [10,10,10,false];
    };

    private _item8 = objNull;
    if (_layerRoot) then {
        _item8 = createTrigger ["EmptyDetector",[4011.06,5229.02,0],true];
        _this = _item8;
        _triggers pushback _this;
        _triggerIDs pushback 8;
        _item8 setPosATL [4011.06,5229.02,0];
        _this setTriggerArea [4,4,0,false,-1];
        _this setTriggerActivation ["ANYPLAYER","PRESENT",false];
        _this setTriggerStatements ["call{this}","call{hintSilent """";
    Hint ""Please... seek out the G.O.T.I. Group in the North; they can help you greatly..."";}","call{this}"];
        _this setSoundEffect ["$NONE$","cough6","",""];
        say3 = _this;
        _this setTriggerTimeout [20,20,20,false];
    };

    private _item9 = objNull;
    if (_layerRoot) then {
        _item9 = createTrigger ["EmptyDetector",[4011.17,5228.94,0.411987],true];
        _this = _item9;
        _triggers pushback _this;
        _triggerIDs pushback 9;
        _item9 setPosATL [4011.17,5228.94,0.411987];
        _this setTriggerArea [4,4,0,false,-1];
        _this setTriggerActivation ["ANYPLAYER","PRESENT",false];
        _this setTriggerStatements ["call{this}","call{Man1 sideChat ""Last I heard, they had an outpost in Chezniki, but now I am not so sure."";}","call{this}"];
        say4 = _this;
        _this setTriggerTimeout [30,30,30,false];
    };

    private _item10 = objNull;
    if (_layerRoot) then {
        _item10 = createTrigger ["EmptyDetector",[4011.34,5228.85,0.231995],true];
        _this = _item10;
        _triggers pushback _this;
        _triggerIDs pushback 10;
        _item10 setPosATL [4011.34,5228.85,0.231995];
        _this setTriggerArea [4,4,0,false,-1];
        _this setTriggerActivation ["ANYPLAYER","PRESENT",false];
        _this setTriggerStatements ["call{this}","call{Man1 globalChat ""Please be safe out here."";}","call{this}"];
        say5 = _this;
        _this setTriggerTimeout [40,40,40,false];
    };

    private _item29 = objNull;
    if (_layerRoot) then {
        _item29 = createTrigger ["EmptyDetector",[4011.37,5228.97,0.476013],true];
        _this = _item29;
        _triggers pushback _this;
        _triggerIDs pushback 29;
        _item29 setPosATL [4011.37,5228.97,0.476013];
        _this setTriggerArea [4,4,0,false,-1];
        _this setTriggerActivation ["ANYPLAYER","PRESENT",false];
        _this setTriggerStatements ["call{this}","","call{this}"];
        say6LEAVE = _this;
        _this setTriggerTimeout [40,40,40,false];
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Group attributes (applied only once group units exist)
    _this = _item0;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-1"] call CBA_fnc_setCallsign;
        _this setBehaviour "SAFE";
        _this setSpeedMode "LIMITED";
        _this enableDynamicSimulation true;
                    if (!is3DEN && {!(["","ColorCIV","Alpha 1-1",true] isEqualTo ['','','',true])}) then            {                [_this,["","ColorCIV","Alpha 1-1",true]] spawn                {                    params ['_group','["","ColorCIV","Alpha 1-1",true]'];                    ["","ColorCIV","Alpha 1-1",true] params ['_type','_color','_text','_showGroupSize'];                    private _leader = leader _group;                    private _marker = createMarker                    [                        format ['ENH_GroupMarker_["","ColorCIV","Alpha 1-1",true]',str floor random 10e5],                        _leader                    ];                    _marker setMarkerType _type;                    _marker setMarkerColor _color;                    _marker setMarkerText _text;                    while {true} do                    {                        sleep 1;                        if (units _group isEqualTo []) exitWith {deleteMarker _marker};                        if (_group getVariable ['ENH_GroupMarker_Update',true]) then                        {                            _marker setMarkerPos _leader;                            if (_showGroupSize) then                            {                                _marker setMarkerText format ['["","ColorCIV","Alpha 1-1",true] ()',groupId _group, count units _group];                            };                        };                    };                };            };;
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Waypoints
    private _waypoints = [];
    private _waypointIDs = [];

    private _item13 = [];
    if (_layerRoot) then {
        _item13 = _item0 addWaypoint [[4010.85,5228.57,0.121582],0];
        _this = _item13;
        _waypoints pushback _this;
        _waypointIDs pushback 13;
        _this setWaypointType "MOVE";
        _this setWaypointCombatMode "WHITE";
        _this setWaypointBehaviour "CARELESS";
        _this setWaypointSpeed "LIMITED";
    };

    private _item14 = [];
    if (_layerRoot) then {
        _item14 = _item0 addWaypoint [[4320.68,5014.3,0],0];
        _this = _item14;
        _waypoints pushback _this;
        _waypointIDs pushback 14;
        _this setWaypointType "MOVE";
    };

    private _item20 = [];
    if (_layerRoot) then {
        _item20 = _item0 addWaypoint [[4772.14,4896.85,3.05176e-005],0];
        _this = _item20;
        _waypoints pushback _this;
        _waypointIDs pushback 20;
        _this setWaypointType "MOVE";
    };

    private _item23 = [];
    if (_layerRoot) then {
        _item23 = _item0 addWaypoint [[5820.37,4776.62,3.05176e-005],0];
        _this = _item23;
        _waypoints pushback _this;
        _waypointIDs pushback 23;
        _this setWaypointType "MOVE";
    };

    private _item26 = [];
    if (_layerRoot) then {
        _item26 = _item0 addWaypoint [[5859.85,4822.22,0],0];
        _this = _item26;
        _waypoints pushback _this;
        _waypointIDs pushback 26;
        _this setWaypointType "MOVE";
    };

    private _item27 = [];
    if (_layerRoot) then {
        _item27 = _item0 addWaypoint [[5895.55,4847.48,-1.52588e-005],0];
        _this = _item27;
        _waypoints pushback _this;
        _waypointIDs pushback 27;
        _this setWaypointType "MOVE";
    };

    private _item28 = [];
    if (_layerRoot) then {
        _item28 = _item0 addWaypoint [[5905.84,4846.84,0.0735779],0];
        _this = _item28;
        _waypoints pushback _this;
        _waypointIDs pushback 28;
        _this setWaypointType "SCRIPTED";
        _this setWaypointScript "\x\cba\addons\ai\fnc_waypointGarrison.sqf";
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Logics
    private _logics = [];
    private _logicIDs = [];


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Layers


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Crews


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Vehicle cargo


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Connections
    if (!isNull _item5 && !isNull _item2) then {_item5 synchronizeObjectsAdd [_item2]; _item2 synchronizeObjectsAdd [_item5];};
    if (!isNull _item29 && !(_item13 isEqualTo [])) then {_item29 synchronizeWaypoint [_item13];};


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Inits (executed only once all entities exist; isNil used to ensure non-scheduled environment)
    isNil {
        if !(isnull _item5) then {
            this = _item5;
            call{this setunitpos "UP";};
        };
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Module activations (only once everything is spawned and connected)


    ///////////////////////////////////////////////////////////////////////////////////////////
    [[_objects,_groups,_triggers,_waypoints,_logics,_markers],[_objectIDs,_groupIDs,_triggerIDs,_waypointIDs,_logicIDs,_markerIDs]]
     

     


  4. Using Exile on a private dedicated server. Is it possible to change the current player damage handler with the one from AGM? I know there are AGM functions in there, so would I need to change all that to BIS functions (i.e. Changing AGM_ to BIS_)? Or am I just WAY over my head here? Are the functions written specifically for the mod itself? Or are they all a reference to BIS functions anyway?

     

    Here is the AGM file:

    Spoiler

    /*
     * Author: KoffeinFlummi
     *
     * Called when some dude gets shot. Or stabbed. Or blown up. Or pushed off a cliff. Or hit by a car. Or burnt. Or poisoned. Or gassed. Or cut. You get the idea.
     *
     * Arguments:
     * 0: Unit that got hit (Object)
     * 1: Name of the selection that was hit (String); "" for structural damage
     * 2: Amount of damage inflicted (Number)
     * 3: Shooter (Object); Null for explosion damage, falling, fire etc.
     * 4: Projectile (Object or String)
     *
     * Return value:
     * Damage value to be inflicted (optional)
     */

    #define UNCONSCIOUSNESSTRESHOLD 0.6

    #define PAINKILLERTRESHOLD 0.1
    #define PAINLOSS 0.0001

    #define BLOODTRESHOLD1 0.35
    #define BLOODTRESHOLD2 0
    #define BLOODLOSSRATE 0.04

    #define ARMOURCOEF 2

    private ["_unit", "_selectionName", "_damage", "_source", "_source", "_projectile", "_hitSelections", "_hitPoints", "_newDamage", "_found", "_cache_projectiles", "_cache_hitpoints", "_cache_damages"];

    _unit          = _this select 0;
    _selectionName = _this select 1;
    _damage        = _this select 2;
    _source        = _this select 3;
    _projectile    = _this select 4;

    if (!local _unit) exitWith {nil}; //if not local, then return value shouldn't have any effect

    if (typeName _projectile == "OBJECT") then {
      _projectile = typeOf _projectile;
    };

    // Prevent unnecessary processing
    if (damage _unit >= 1) exitWith {};

    // Only broadcast the isDiagnosed status if it changed
    if (_unit getVariable ["AGM_isDiagnosed", False]) then {
      _unit setVariable ["AGM_isDiagnosed", False, True];
    };

    // @todo: figure out if this still applies.

    // For some reason, everything is backwards in MP,
    // so we need to untangle some things.
    // -- seems fixed as of v1.36
    /*if (isMultiplayer) then {
      _selectionName = switch (_selectionName) do {
        case "hand_r" : {"leg_l"};
        case "leg_r"  : {"hand_l"};
        case "legs"   : {"hand_r"};
        default         {_selectionName};
      };
    };*/

    // This seems to only show up in MP too, but since it doesn't
    // collide with anything, I'll check it in SP as well.
    if (_selectionName == "r_femur_hit") then {
      _selectionName = "leg_r";
    };

    _hitSelections = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"];
    _hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"];

    // If the damage is being weird, we just tell it to fuck off.
    // (Returning 0 seems to cause issues though, so return 0.01)
    if !(_selectionName in (_hitSelections + [""])) exitWith {0.01};

    // Calculate change in damage.
    _newDamage = _damage - (damage _unit);
    if (_selectionName in _hitSelections) then {
      _newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName)));
    };

    // Finished with the current frame, reset variables
    // Note: sometimes handleDamage spans over 2 or even 3 frames.
    if (diag_frameno > (_unit getVariable ["AGM_Medical_FrameNo", -3]) + 2) then {
      _unit setVariable ["AGM_Medical_FrameNo", diag_frameno];
      _unit setVariable ["AGM_Medical_isFalling", False];
      _unit setVariable ["AGM_Medical_Projectiles", []];
      _unit setVariable ["AGM_Medical_HitPoints", []];
      _unit setVariable ["AGM_Medical_Damages", []];
      _unit setVariable ["AGM_Medical_PreventDeath", False];
      if (([_unit] call AGM_Core_fnc_isPlayer) or _unit getVariable ["AGM_allowUnconscious", False]) then {
        if (!(_unit getVariable ["AGM_isUnconscious", False]) and
            {_unit getVariable ["AGM_Medical_PreventInstaDeath", AGM_Medical_PreventInstaDeath]}) then {
          _unit setVariable ["AGM_Medical_PreventDeath", True];
        };
        if ((_unit getVariable ["AGM_isUnconscious", False]) and
            {_unit getVariable ["AGM_Medical_PreventDeathWhileUnconscious", AGM_Medical_PreventDeathWhileUnconscious]}) then {
          _unit setVariable ["AGM_Medical_PreventDeath", True];
        };
      };
    };

    _damage = _damage - _newDamage;

    if !(_unit getVariable ["AGM_allowDamage", True]) exitWith {_damage max 0.01};

    _newDamage = _newDamage * (_unit getVariable ["AGM_Medical_CoefDamage", AGM_Medical_CoefDamage]);

    // Exclude falling damage to everything other than legs; reduce structural damage.
    if (((velocity _unit) select 2 < -5) and (vehicle _unit == _unit)) then {
      _unit setVariable ["AGM_Medical_isFalling", True];
    };
    if (_unit getVariable "AGM_Medical_isFalling" and !(_selectionName in ["", "leg_l", "leg_r"])) exitWith {
      (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))) max 0.01;
    };
    if (_unit getVariable "AGM_Medical_isFalling") then {
      _newDamage = _newDamage * 0.7;
    };

    // Increase damage for kinetic penetrators for people inside vehicles
    // to simulate hot spikey things flying around (generally unpleasant).
    // (only if AGM_Armour is used)
    if (isClass (configFile >> "CfgPatches" >> "AGM_Armour") and _projectile != "" and vehicle _unit != _unit) then {
      _hit = getNumber (configFile >> "CfgAmmo" >> _projectile >> "hit");
      if (_hit >= 100) then {
        _hit = linearConversion [100, 1000, _hit, 0, ARMOURCOEF, True];
        _newDamage = _newDamage * (1 + _hit);
      };
    };

    // Make sure there's only one damaged selection per projectile per frame.
    _cache_projectiles = _unit getVariable "AGM_Medical_Projectiles";
    _cache_hitpoints = _unit getVariable "AGM_Medical_HitPoints";
    _cache_damages = _unit getVariable "AGM_Medical_Damages";
    if (_selectionName != "" and !(_unit getVariable "AGM_Medical_isFalling")) then {
      if (_projectile in _cache_projectiles) then {
        _index = _cache_projectiles find _projectile;
        _otherDamage = (_cache_damages select _index);
        if (_otherDamage > _newDamage) then {
          _newDamage = 0;
        } else {
          _hitPoint = _cache_hitpoints select _index;
          _restore = ((_unit getHitPointDamage _hitPoint) - _otherDamage) max 0;
          _unit setHitPointDamage [_hitPoint, _restore];
          // Make entry unfindable
          _cache_projectiles set [_index, objNull];
          _cache_projectiles pushBack _projectile;
          _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName));
          _cache_damages pushBack _newDamage;
        };
      } else {
        _cache_projectiles pushBack _projectile;
        _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName));
        _cache_damages pushBack _newDamage;
      };
    };
    _unit setVariable ["AGM_Medical_Projectiles", _cache_projectiles];
    _unit setVariable ["AGM_Medical_HitPoints", _cache_hitpoints];
    _unit setVariable ["AGM_Medical_Damages", _cache_damages];

    // we want to move damage to another selection; have to do it ourselves.
    // this is only the case for limbs, so this will not impact the killed EH.
    if (_selectionName != (_this select 1)) then {
      _unit setHitPointDamage [_hitPoints select (_hitSelections find _selectionName), _damage + _newDamage];
      _newDamage = 0;
    };

    _damage = _damage + _newDamage;

    // Assign orphan structural damage to torso;
    // using spawn with custom damage handling here, but since I just
    // move damage, this shouldn't be any issue for the Killed EH
    _unit spawn {
      sleep 0.001;

      _damagesum = (_this getHitPointDamage "HitHead")
        + (_this getHitPointDamage "HitBody")
        + (_this getHitPointDamage "HitLeftArm")
        + (_this getHitPointDamage "HitRightArm")
        + (_this getHitPointDamage "HitLeftLeg")
        + (_this getHitPointDamage "HitRightLeg");
      if (_damagesum <= 0.06 and (damage _this) > 0.01) then {
        _damage = damage _this;
        _this setDamage 0;
        _this setHitPointDamage ["HitBody", (_damage min 0.89)]; // just to be sure.
      };
    };

    // Leg & Arm Damage
    _legdamage = (_unit getHitPointDamage "HitLeftLeg") + (_unit getHitPointDamage "HitRightLeg");
    if (_selectionName == "leg_l") then {
      _legdamage = _damage + (_unit getHitPointDamage "HitRightLeg");
    };
    if (_selectionName == "leg_r") then {
      _legdamage = (_unit getHitPointDamage "HitLeftLeg") + _damage;
    };

    _armdamage = (_unit getHitPointDamage "HitLeftArm") + (_unit getHitPointDamage "HitRightArm");
    if (_selectionName == "hand_l") then {
      _armdamage = _damage + (_unit getHitPointDamage "HitRightArm");
    };
    if (_selectionName == "hand_r") then {
      _armdamage = (_unit getHitPointDamage "HitLeftArm") + _damage;
    };

    [_unit, _legdamage, _armdamage] call AGM_Medical_fnc_checkDamage;

    // Unconsciousness
    if (_selectionName == "" and
        _damage >= UNCONSCIOUSNESSTRESHOLD and
        _damage < 1 and
        !(_unit getVariable ["AGM_isUnconscious", False]
      )) then {
      // random chance to kill AI instead of knocking them out, otherwise
      // there'd be shittons of unconscious people after every firefight,
      // causing executions. And nobody likes executions.
      if (_unit getVariable ["AGM_allowUnconscious", ([_unit] call AGM_Core_fnc_isPlayer) or random 1 > 0.5]) then {
        [_unit] call AGM_Medical_fnc_knockOut;
      } else {
        _damage = 1;
      };
    };

    // Bleeding
    if (_selectionName == "" and damage _unit == 0) then {
      _unit spawn {
        while {damage _this > 0 and damage _this < 1} do {
          if !([_this] call AGM_Medical_fnc_isInMedicalVehicle) then {
            _blood = _this getVariable ["AGM_Blood", 1];
            _blood = _blood - BLOODLOSSRATE * (_this getVariable ["AGM_Medical_CoefBleeding", AGM_Medical_CoefBleeding]) * (damage _this);
            _this setVariable ["AGM_Blood", _blood max 0, true];
            if (_blood <= BLOODTRESHOLD1 and !(_this getVariable ["AGM_isUnconscious", False])) then {
              [_this] call AGM_Medical_fnc_knockOut;
            };
            if (_blood <= BLOODTRESHOLD2 and {!AGM_Medical_PreventDeathWhileUnconscious}) then {
              //_this setDamage 1;
              _this setHitPointDamage ["HitHead", 1]; // fx: don't get the uniform bloody if there are no wounds
            };
          };
          sleep 10;
        };
      };
    };

    // Pain Reduction
    if (_unit getVariable ["AGM_Pain", 0] == 0) then {
      _unit spawn {
        while {_this getVariable ["AGM_Pain", 0] > 0} do {
          sleep 1;
          _pain = ((_this getVariable ["AGM_Pain", 0]) - 0.001) max 0;
          _this setVariable ["AGM_Pain", _pain, True];
        };
      };
    };
    // Set Pain
    _potentialPain = _damage * (_unit getVariable ["AGM_Painkiller", 1]);
    if ((_selectionName == "") and (_potentialPain > _unit getVariable ["AGM_Pain", 0])) then {
      _unit setVariable ["AGM_Pain", (_damage * (_unit getVariable ["AGM_Painkiller", 1])) min 1, True];
    };

    // again, using spawn, but there shouldn't be any death, so the killed EH should be fine.
    if ((_unit getVariable "AGM_Medical_PreventDeath") and {vehicle _unit != _unit} and {damage (vehicle _unit) >= 1}) then {
      _unit setPosATL [
        (getPos _unit select 0) + (random 3) - 1.5,
        (getPos _unit select 1) + (random 3) - 1.5,
        0
      ];
      if !(_unit getVariable ["AGM_isUnconscious", False]) then {
        [_unit] call AGM_Medical_fnc_knockOut;
      };
      _unit setVariable ["AGM_allowDamage", False];
      _unit spawn {
        sleep 1;
        _this setVariable ["AGM_allowDamage", True];
      };
    };

    if ((_unit getVariable "AGM_Medical_PreventDeath")) then {
      if ((_damage > 0.89) && (_selectionName in ["", "head", "body"])) then { //only change damage on hits that would be lethal
        _damage = 0.89;
        [_unit, "preventedDeath", [_unit]] call AGM_Core_fnc_callCustomEventHandlersGlobal;
        if (!(_unit getVariable ["AGM_isUnconscious", False])) then {
          [_unit] call AGM_Medical_fnc_knockOut; //knockOut when taking damage that should be lethal
        };
      };
    };

    _damage
     

     


  5. I will be as succinct as I can.

     

    Dedicated Server, Exilemod. Family only, completely private.

     

    Using 3Den Editor, I created a mission placing soldiers, vehicles, triggers, etc.  All vehicles exploded on server start, and every soldier had multiples in its place. If anyone can tell me WHY and how to resolve this, I would be forever in your debt and will name my 11th child after you


    I called the script from the mission file with [] ExecVM “script.sqf”.

     

    Spoiler

    // Export of 'Green_Mountain.chernarusredux' by Ross on v0.9

    ///////////////////////////////////////////////////////////////////////////////////////////
    // Init
    params [["_layerWhiteList",[],[[]]],["_layerBlacklist",[],[[]]],["_posCenter",[0,0,0],[[]]],["_dir",0,[0]],["_idBlacklist",[],[[]]]];
    private _allWhitelisted = _layerWhiteList isEqualTo [];
    private _layerRoot = (_allWhitelisted || {true in _layerWhiteList}) && {!(true in _layerBlackList)};


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Markers
    private _markers = [];
    private _markerIDs = [];


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Groups
    private _groups = [];
    private _groupIDs = [];

    private _item0 = grpNull;
    if (_layerRoot) then {
        _item0 = createGroup east;
        _this = _item0;
        _groups pushback _this;
        _groupIDs pushback 0;
    };

    private _item2 = grpNull;
    if (_layerRoot) then {
        _item2 = createGroup east;
        _this = _item2;
        _groups pushback _this;
        _groupIDs pushback 2;
    };

    private _item6 = grpNull;
    if (_layerRoot) then {
        _item6 = createGroup east;
        _this = _item6;
        _groups pushback _this;
        _groupIDs pushback 6;
    };

    private _item12 = grpNull;
    if (_layerRoot) then {
        _item12 = createGroup east;
        _this = _item12;
        _groups pushback _this;
        _groupIDs pushback 12;
    };

    private _item15 = grpNull;
    if (_layerRoot) then {
        _item15 = createGroup east;
        _this = _item15;
        _groups pushback _this;
        _groupIDs pushback 15;
    };

    private _item21 = grpNull;
    if (_layerRoot) then {
        _item21 = createGroup east;
        _this = _item21;
        _groups pushback _this;
        _groupIDs pushback 21;
    };

    private _item30 = grpNull;
    if (_layerRoot) then {
        _item30 = createGroup east;
        _this = _item30;
        _groups pushback _this;
        _groupIDs pushback 30;
    };

    private _item47 = grpNull;
    if (_layerRoot) then {
        _item47 = createGroup east;
        _this = _item47;
        _groups pushback _this;
        _groupIDs pushback 47;
    };

    private _item50 = grpNull;
    if (_layerRoot) then {
        _item50 = createGroup east;
        _this = _item50;
        _groups pushback _this;
        _groupIDs pushback 50;
    };

    private _item52 = grpNull;
    if (_layerRoot) then {
        _item52 = createGroup east;
        _this = _item52;
        _groups pushback _this;
        _groupIDs pushback 52;
    };

    private _item85 = grpNull;
    if (_layerRoot) then {
        _item85 = createGroup east;
        _this = _item85;
        _groups pushback _this;
        _groupIDs pushback 85;
    };

    private _item87 = grpNull;
    if (_layerRoot) then {
        _item87 = createGroup east;
        _this = _item87;
        _groups pushback _this;
        _groupIDs pushback 87;
    };

    private _item103 = grpNull;
    if (_layerRoot) then {
        _item103 = createGroup east;
        _this = _item103;
        _groups pushback _this;
        _groupIDs pushback 103;
    };

    private _item123 = grpNull;
    if (_layerRoot) then {
        _item123 = createGroup east;
        _this = _item123;
        _groups pushback _this;
        _groupIDs pushback 123;
    };

    private _item143 = grpNull;
    if (_layerRoot) then {
        _item143 = createGroup east;
        _this = _item143;
        _groups pushback _this;
        _groupIDs pushback 143;
    };

    private _item155 = grpNull;
    if (_layerRoot) then {
        _item155 = createGroup east;
        _this = _item155;
        _groups pushback _this;
        _groupIDs pushback 155;
    };

    private _item159 = grpNull;
    if (_layerRoot) then {
        _item159 = createGroup east;
        _this = _item159;
        _groups pushback _this;
        _groupIDs pushback 159;
    };

    private _item164 = grpNull;
    if (_layerRoot) then {
        _item164 = createGroup east;
        _this = _item164;
        _groups pushback _this;
        _groupIDs pushback 164;
    };

    private _item183 = grpNull;
    if (_layerRoot) then {
        _item183 = createGroup east;
        _this = _item183;
        _groups pushback _this;
        _groupIDs pushback 183;
    };

    private _item198 = grpNull;
    if (_layerRoot) then {
        _item198 = createGroup east;
        _this = _item198;
        _groups pushback _this;
        _groupIDs pushback 198;
    };

    private _item229 = grpNull;
    if (_layerRoot) then {
        _item229 = createGroup west;
        _this = _item229;
        _groups pushback _this;
        _groupIDs pushback 229;
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Objects
    private _objects = [];
    private _objectIDs = [];

    private _item1 = objNull;
    if (_layerRoot) then {
        _item1 = objNull;
        if (random 1 < 0.903697) then {
            _item1 = _item0 createUnit ["CUP_O_RU_Soldier_AR_M_EMR",[3741.98,5988.17,0],[],0,"CAN_COLLIDE"];
            _item0 selectLeader _item1;
            _this = _item1;
            _objects pushback _this;
            _objectIDs pushback 1;
            _this setPosWorld [3741.98,5988.22,402.803];
            _this setVectorDirAndUp [[0.957031,-0.289984,0],[0,0,1]];
            _this setSkill 1;
            _this setUnitPos "DOWN";
            _this setname "Vasili Vasilyev";;
            _this setface "WhiteHead_20";;
            _this setspeaker "Male03RUS";;
            _this setpitch 0.95;;
            if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
            _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
            _this setVariable ['ACE_isEOD',false,true];
            if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
            if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
        };
    };

    private _item3 = objNull;
    if (_layerRoot) then {
        _item3 = objNull;
        if (random 1 < 0.645833) then {
            _item3 = _item2 createUnit ["CUP_O_RU_Soldier_M_EMR",[3718.21,6008.31,0],[],15,"CAN_COLLIDE"];
            _item2 selectLeader _item3;
            _this = _item3;
            _objects pushback _this;
            _objectIDs pushback 3;
            _this setPosWorld [3718.21,6008.36,401.658];
            _this setVectorDirAndUp [[0.967674,0.252205,0],[0,0,1]];
            _this setSkill 0.84672;
            _this setUnitPos "DOWN";
            _this setname "Yuri Zhitkov";;
            _this setface "WhiteHead_12";;
            _this setspeaker "Male02RUS";;
            _this setpitch 0.95;;
            if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
            _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
            _this setVariable ['ACE_isEOD',false,true];
            if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
            if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
        };
    };

    private _item7 = objNull;
    if (_layerRoot) then {
        _item7 = objNull;
        if (random 1 < 0.500084) then {
            _item7 = _item6 createUnit ["CUP_O_RU_Soldier_Saiga_M_EMR",[3745.12,5989.86,0],[],0,"CAN_COLLIDE"];
            _item6 selectLeader _item7;
            _this = _item7;
            _objects pushback _this;
            _objectIDs pushback 7;
            _this setPosWorld [3745.12,5989.91,403.086];
            _this setVectorDirAndUp [[0.742724,-0.669597,0],[0,0,1]];
            _this setSkill 0.765997;
            _this setname "Ruslan Pashinin";;
            _this setface "RussianHead_2";;
            _this setspeaker "Male03RUS";;
            _this setpitch 1;;
            if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
            _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
            _this setVariable ['ACE_isEOD',false,true];
            if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
            if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
        };
    };

    private _item13 = objNull;
    if (_layerRoot) then {
        _item13 = _item12 createUnit ["CUP_O_RU_Medic_M_EMR",[3719.41,5997,0],[],0,"CAN_COLLIDE"];
        _item12 selectLeader _item13;
        _this = _item13;
        _objects pushback _this;
        _objectIDs pushback 13;
        _this setPosWorld [3719.41,5997.05,402.075];
        _this setVectorDirAndUp [[-0.581129,0.813811,0],[0,0,1]];
        _this setname "Nikolay Sudakov";;
        _this setface "WhiteHead_09";;
        _this setspeaker "Male03RUS";;
        _this setpitch 0.99;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (1 != -1 && {1 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 1, true]};
    };

    private _item14 = objNull;
    if (_layerRoot) then {
        _item14 = _item12 createUnit ["CUP_O_RU_Officer_M_EMR",[3718.17,5997.27,0],[],0,"CAN_COLLIDE"];
        _this = _item14;
        _objects pushback _this;
        _objectIDs pushback 14;
        _this setPosWorld [3718.17,5997.32,402.066];
        _this setVectorDirAndUp [[0.143855,0.989599,0],[0,0,1]];
        _this setname "Aleksander Tolstoy";;
        _this setface "LivonianHead_3";;
        _this setspeaker "Male01RUS";;
        _this setpitch 0.95;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item16 = objNull;
    if (_layerRoot) then {
        _item16 = _item15 createUnit ["CUP_O_RU_Soldier_Marksman_M_EMR",[3683.84,5995.78,8.918],[],0,"CAN_COLLIDE"];
        _item15 selectLeader _item16;
        _this = _item16;
        _objects pushback _this;
        _objectIDs pushback 16;
        _this setPosWorld [3683.84,5995.83,410.989];
        _this setVectorDirAndUp [[0.618518,0.785771,0],[0,0,1]];
        _this setUnitLoadout [["CUP_srifle_SVD","","","CUP_optic_PSO_1",["CUP_10Rnd_762x54_SVD_M",10],[],""],[],["CUP_hgun_Makarov","","","",["CUP_8Rnd_9x18_Makarov_M",8],[],""],["CUP_U_O_RUS_EMR_1",[["FirstAidKit",1],["ACE_EarPlugs",1],["CUP_10Rnd_762x54_SVD_M",6,10],["CUP_8Rnd_9x18_Makarov_M",1,8]]],["CUP_V_RUS_6B45_1",[["ACE_fieldDressing",1],["ACE_quikclot",1],["CUP_10Rnd_762x54_SVD_M",1,10],["CUP_HandGrenade_RGD5",2,1],["SmokeShell",2,1],["CUP_8Rnd_9x18_Makarov_M",3,8]]],[],"CUP_H_RUS_6B46","CUP_RUS_Balaclava_emr",["Binocular","","","",[],[],""],["","","ItemRadio","","ItemWatch",""]];
        _this setSkill 0.826539;
        _this setRank "CORPORAL";
        _this setname "Arkadiy Morozov";;
        _this setface "RussianHead_3";;
        _this setspeaker "Male01RUS";;
        _this setpitch 0.98;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item22 = objNull;
    if (_layerRoot) then {
        _item22 = _item21 createUnit ["CUP_O_RU_Soldier_Marksman_M_EMR",[3688.33,5983.78,9.07401],[],0,"CAN_COLLIDE"];
        _item21 selectLeader _item22;
        _this = _item22;
        _objects pushback _this;
        _objectIDs pushback 22;
        _this setPosWorld [3688.33,5983.83,411.145];
        _this setVectorDirAndUp [[0.998081,0.0619196,0],[0,0,1]];
        _this setUnitLoadout [["CUP_srifle_SVD","","","CUP_optic_PSO_1",["CUP_10Rnd_762x54_SVD_M",10],[],""],[],["CUP_hgun_Makarov","","","",["CUP_8Rnd_9x18_Makarov_M",8],[],""],["CUP_U_O_RUS_EMR_1",[["FirstAidKit",1],["CUP_10Rnd_762x54_SVD_M",6,10]]],["CUP_V_RUS_6B45_1",[["ACE_Banana",1],["ACE_packingBandage",2],["ACE_epinephrine",1],["CUP_10Rnd_762x54_SVD_M",1,10],["CUP_HandGrenade_RGD5",2,1],["SmokeShell",2,1],["CUP_8Rnd_9x18_Makarov_M",3,8]]],[],"CUP_H_RUS_6B46","CUP_G_Beard_Shades_Black",["Rangefinder","","","",[],[],""],["","","ItemRadio","","ItemWatch",""]];
        _this setSkill 0.851204;
        _this setRank "CORPORAL";
        _this setname "Abram Golovko";;
        _this setface "LivonianHead_10";;
        _this setspeaker "Male01RUS";;
        _this setpitch 0.98;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item31 = objNull;
    if (_layerRoot) then {
        _item31 = _item30 createUnit ["CUP_O_RU_Soldier_Light_M_EMR",[3717.69,5955.15,0.144989],[],0,"CAN_COLLIDE"];
        _item30 selectLeader _item31;
        _this = _item31;
        _objects pushback _this;
        _objectIDs pushback 31;
        _this setPosWorld [3717.69,5955.2,402.198];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setUnitLoadout [[],[],[],["CUP_U_B_CZ_WDL_TShirt",[["FirstAidKit",1]]],[],[],"","",[],["","","","","",""]];
        _this setSkill 0.25251;
        _this setname "Aleksander Doronin";;
        _this setface "RussianHead_3";;
        _this setspeaker "Male01RUS";;
        _this setpitch 1;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item48 = objNull;
    if (_layerRoot) then {
        _item48 = _item47 createUnit ["CUP_O_RU_Sniper_M_EMR",[3717.48,5977.08,25.706],[],0,"CAN_COLLIDE"];
        _item47 selectLeader _item48;
        _this = _item48;
        _objects pushback _this;
        _objectIDs pushback 48;
        _this setPosWorld [3717.48,5977.13,427.777];
        _this setVectorDirAndUp [[0.485451,-0.874264,0],[0,0,1]];
        _this setSkill 0.900535;
        _this setRank "SERGEANT";
        _this setname "Dimitri Tolstoy";;
        _this setface "LivonianHead_9";;
        _this setspeaker "Male01RUS";;
        _this setpitch 0.96;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item51 = objNull;
    if (_layerRoot) then {
        _item51 = _item50 createUnit ["CUP_O_RU_Sniper_M_EMR",[3717.49,5991.66,20.655],[],0,"CAN_COLLIDE"];
        _item50 selectLeader _item51;
        _this = _item51;
        _objects pushback _this;
        _objectIDs pushback 51;
        _this setPosWorld [3717.49,5991.71,422.729];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setSkill 0.927442;
        _this setRank "SERGEANT";
        _this setname "Vasil Kirygin";;
        _this setface "LivonianHead_2";;
        _this setspeaker "Male03RUS";;
        _this setpitch 0.99;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1.5215,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item53 = objNull;
    if (_layerRoot) then {
        _item53 = _item52 createUnit ["CUP_O_RU_Soldier_TL",[3739.59,6016.24,0],[],0,"CAN_COLLIDE"];
        _item52 selectLeader _item53;
        _this = _item53;
        _objects pushback _this;
        _objectIDs pushback 53;
        _this setPosWorld [3739.59,6016.29,401.564];
        _this setVectorDirAndUp [[-0.197589,0.980285,0],[0,0,1]];
        _this setRank "SERGEANT";
        _this setname "Nikolay Baranov";;
        _this setface "LivonianHead_4";;
        _this setspeaker "male03rus";;
        _this setpitch 1.00119;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item54 = objNull;
    if (_layerRoot) then {
        _item54 = _item52 createUnit ["CUP_O_RU_Soldier_AR",[3743.52,6011.94,0],[],0,"CAN_COLLIDE"];
        _this = _item54;
        _objects pushback _this;
        _objectIDs pushback 54;
        _this setPosWorld [3743.52,6011.99,401.908];
        _this setVectorDirAndUp [[-0.197589,0.980285,0],[0,0,1]];
        _this setSkill 0.45;
        _this setRank "CORPORAL";
        _this setname "Arkadiy Potapenko";;
        _this setface "LivonianHead_1";;
        _this setspeaker "male01rus";;
        _this setpitch 1.02716;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item55 = objNull;
    if (_layerRoot) then {
        _item55 = _item52 createUnit ["CUP_O_RU_Soldier_AT",[3745.48,6012.33,0],[],0,"CAN_COLLIDE"];
        _this = _item55;
        _objects pushback _this;
        _objectIDs pushback 55;
        _this setPosWorld [3745.48,6012.38,401.704];
        _this setVectorDirAndUp [[-0.197589,0.980285,0],[0,0,1]];
        _this setSkill 0.45;
        _this setRank "CORPORAL";
        _this setname "Leonid Strugackiy";;
        _this setface "LivonianHead_3";;
        _this setspeaker "male02rus";;
        _this setpitch 1.00535;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item56 = objNull;
    if (_layerRoot) then {
        _item56 = _item52 createUnit ["CUP_O_RU_Soldier_GL",[3747.44,6012.73,0],[],0,"CAN_COLLIDE"];
        _this = _item56;
        _objects pushback _this;
        _objectIDs pushback 56;
        _this setPosWorld [3747.44,6012.78,401.474];
        _this setVectorDirAndUp [[-0.197589,0.980285,0],[0,0,1]];
        _this setSkill 0.4;
        _this setname "Konstantin Dobryakov";;
        _this setface "WhiteHead_15";;
        _this setspeaker "male03rus";;
        _this setpitch 1.03647;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item57 = objNull;
    if (_layerRoot) then {
        _item57 = _item52 createUnit ["CUP_O_RU_Soldier",[3749.4,6013.12,0],[],0,"CAN_COLLIDE"];
        _this = _item57;
        _objects pushback _this;
        _objectIDs pushback 57;
        _this setPosWorld [3749.4,6013.17,401.224];
        _this setVectorDirAndUp [[-0.197589,0.980285,0],[0,0,1]];
        _this setSkill 0.4;
        _this setname "Vasil Fisenko";;
        _this setface "LivonianHead_5";;
        _this setspeaker "male03rus";;
        _this setpitch 0.99977;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item86 = objNull;
    if (_layerRoot) then {
        _item86 = _item85 createUnit ["CUP_O_RU_Sniper_M_EMR",[3719.44,5981.23,42.523],[],0,"CAN_COLLIDE"];
        _item85 selectLeader _item86;
        _this = _item86;
        _objects pushback _this;
        _objectIDs pushback 86;
        _this setPosWorld [3719.44,5981.28,444.594];
        _this setVectorDirAndUp [[0.925157,-0.379585,0],[0,0,1]];
        _this setSkill 0.927442;
        _this setRank "SERGEANT";
        _this setname "Pyotr Soloveychik";;
        _this setface "WhiteHead_09";;
        _this setspeaker "Male03RUS";;
        _this setpitch 0.99;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1.5215,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item88 = objNull;
    if (_layerRoot) then {
        _item88 = _item87 createUnit ["CUP_O_RU_Soldier_TL",[3593.09,6141.7,0],[],0,"CAN_COLLIDE"];
        _item87 selectLeader _item88;
        _this = _item88;
        _objects pushback _this;
        _objectIDs pushback 88;
        _this setPosWorld [3593.09,6141.75,374.365];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setRank "SERGEANT";
        _this setname "Daniil Zhegalov";;
        _this setface "LivonianHead_5";;
        _this setspeaker "male02rus";;
        _this setpitch 1.03847;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item89 = objNull;
    if (_layerRoot) then {
        _item89 = _item87 createUnit ["CUP_O_RU_Soldier_MG",[3596.09,6136.7,0],[],0,"CAN_COLLIDE"];
        _this = _item89;
        _objects pushback _this;
        _objectIDs pushback 89;
        _this setPosWorld [3596.09,6136.75,375.396];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setSkill 0.45;
        _this setRank "CORPORAL";
        _this setname "Vasili Lermontov";;
        _this setface "WhiteHead_07";;
        _this setspeaker "male02rus";;
        _this setpitch 1.01832;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item90 = objNull;
    if (_layerRoot) then {
        _item90 = _item87 createUnit ["CUP_O_RU_Soldier_MG",[3598.09,6136.7,0],[],0,"CAN_COLLIDE"];
        _this = _item90;
        _objects pushback _this;
        _objectIDs pushback 90;
        _this setPosWorld [3598.09,6136.75,375.621];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setSkill 0.45;
        _this setRank "CORPORAL";
        _this setname "Ilya Strugackiy";;
        _this setface "WhiteHead_14";;
        _this setspeaker "male02rus";;
        _this setpitch 1.03467;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item91 = objNull;
    if (_layerRoot) then {
        _item91 = _item87 createUnit ["CUP_O_RU_Soldier_GL",[3600.09,6136.7,0],[],0,"CAN_COLLIDE"];
        _this = _item91;
        _objects pushback _this;
        _objectIDs pushback 91;
        _this setPosWorld [3600.09,6136.75,375.846];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setSkill 0.4;
        _this setname "Pyotr Strugackiy";;
        _this setface "LivonianHead_9";;
        _this setspeaker "male02rus";;
        _this setpitch 0.956754;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item92 = objNull;
    if (_layerRoot) then {
        _item92 = _item87 createUnit ["CUP_O_RU_Soldier_AT",[3602.09,6136.7,0],[],0,"CAN_COLLIDE"];
        _this = _item92;
        _objects pushback _this;
        _objectIDs pushback 92;
        _this setPosWorld [3602.09,6136.75,376.056];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setSkill 0.4;
        _this setname "Aleksander Potapenko";;
        _this setface "WhiteHead_01";;
        _this setspeaker "male01rus";;
        _this setpitch 1.0469;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item104 = objNull;
    if (_layerRoot) then {
        _item104 = _item103 createUnit ["CUP_O_RU_Soldier_SL_M_EMR",[3592.72,6125.17,0],[],0,"CAN_COLLIDE"];
        _item103 selectLeader _item104;
        _this = _item104;
        _objects pushback _this;
        _objectIDs pushback 104;
        _this setPosWorld [3592.72,6125.22,376.576];
        _this setVectorDirAndUp [[0.228181,0.973619,0],[0,0,1]];
        _this setname "Viktor Mamayev";;
        _this setface "RussianHead_3";;
        _this setspeaker "Male03RUS";;
        _this setpitch 0.99;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item125 = objNull;
    if (_layerRoot) then {
        _item125 = _item123 createUnit ["CUP_O_RU_Pilot",[-184.054,7648.21,0],[],0,"CAN_COLLIDE"];
        _item123 selectLeader _item125;
        _this = _item125;
        _objects pushback _this;
        _objectIDs pushback 125;
        _this setPosWorld [-183.896,7648.61,220.198];
        _this setVectorDirAndUp [[0,0.980814,-0.194947],[0.0755584,0.19439,0.97801]];
        _this setname "Fyodor Malyukov";;
        _this setface "WhiteHead_03";;
        _this setspeaker "male02rus";;
        _this setpitch 1.01182;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item126 = objNull;
    if (_layerRoot) then {
        _item126 = _item123 createUnit ["CUP_O_RU_Pilot",[-184.054,7648.21,0],[],0,"CAN_COLLIDE"];
        _this = _item126;
        _objects pushback _this;
        _objectIDs pushback 126;
        _this setPosWorld [-183.896,7648.61,220.198];
        _this setVectorDirAndUp [[0,0.980814,-0.194947],[0.0755584,0.19439,0.97801]];
        _this setname "Nikolay Lermontov";;
        _this setface "RussianHead_4";;
        _this setspeaker "male01rus";;
        _this setpitch 1.00191;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item129 = objNull;
    if (_layerRoot) then {
        _item129 = _item123 createUnit ["CUP_O_RU_Pilot",[-190.124,7684.73,0],[],0,"CAN_COLLIDE"];
        _this = _item129;
        _objects pushback _this;
        _objectIDs pushback 129;
        _this setPosWorld [-190.272,7685.75,219.123];
        _this setVectorDirAndUp [[0,0.981879,0.189507],[0.0242232,-0.189451,0.981591]];
        _this setname "Vitaly Produnov";;
        _this setface "LivonianHead_2";;
        _this setspeaker "male03rus";;
        _this setpitch 0.958747;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item130 = objNull;
    if (_layerRoot) then {
        _item130 = _item123 createUnit ["CUP_O_RU_Pilot",[-190.124,7684.73,0],[],0,"CAN_COLLIDE"];
        _this = _item130;
        _objects pushback _this;
        _objectIDs pushback 130;
        _this setPosWorld [-190.272,7685.75,219.123];
        _this setVectorDirAndUp [[0,0.981879,0.189507],[0.0242232,-0.189451,0.981591]];
        _this setname "Ivan Kirygin";;
        _this setface "RussianHead_5";;
        _this setspeaker "male02rus";;
        _this setpitch 1.01279;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };
    /*
    private _item124 = objNull;
    if (_layerRoot) then {
        _item124 = createVehicle ["CUP_O_Mi24_V_Dynamic_RU",[-184.081,7648.07,-0.00419617],[],0,"CAN_COLLIDE"];
        _this = _item124;
        _objects pushback _this;
        _objectIDs pushback 124;
        _this setPosWorld [-183.896,7648.61,220.198];
        _this setVectorDirAndUp [[0,0.980814,-0.194947],[0.0755584,0.19439,0.97801]];
        _this setPylonLoadout [1,"CUP_PylonPod_2Rnd_AT6_M"];
        _this setPylonLoadout [2,"CUP_PylonPod_20Rnd_S8N_CCIP_M"];
        _this setPylonLoadout [3,"CUP_PylonPod_20Rnd_S8N_CCIP_M"];
        _this setPylonLoadout [4,"CUP_PylonPod_20Rnd_S8N_CCIP_M"];
        _this setPylonLoadout [5,"CUP_PylonPod_20Rnd_S8N_CCIP_M"];
        _this setPylonLoadout [6,"CUP_PylonPod_2Rnd_AT6_M"];
        [_this,"[[[[""CUP_arifle_AKS74U"",""FirstAidKit""],[1,4]],[[""CUP_30Rnd_545x39_AK_M"",""SmokeShell"",""SmokeShellOrange"",""Chemlight_red""],[10,2,2,2]],[[],[]],[[],[]]],false]"] call bis_fnc_initAmmoBox;;
        [_this,8] call ace_cargo_fnc_setSpace;;
    };

    private _item128 = objNull;
    if (_layerRoot) then {
        _item128 = createVehicle ["CUP_O_Mi24_P_Dynamic_RU",[-190.338,7686.28,-0.451874],[],0,"CAN_COLLIDE"];
        _this = _item128;
        _objects pushback _this;
        _objectIDs pushback 128;
        _this setPosWorld [-190.272,7685.75,219.123];
        _this setVectorDirAndUp [[0,0.981879,0.189507],[0.0242232,-0.189451,0.981591]];
        _this setPylonLoadout [1,"CUP_PylonPod_2Rnd_Ataka_M"];
        _this setPylonLoadout [2,"CUP_PylonPod_20Rnd_S8N_CCIP_M"];
        _this setPylonLoadout [3,"CUP_PylonPod_1Rnd_FAB250_M"];
        _this setPylonLoadout [4,"CUP_PylonPod_1Rnd_FAB250_M"];
        _this setPylonLoadout [5,"CUP_PylonPod_20Rnd_S8N_CCIP_M"];
        _this setPylonLoadout [6,"CUP_PylonPod_2Rnd_Ataka_M"];
        [_this,"[[[[""CUP_arifle_AKS74U"",""FirstAidKit""],[1,4]],[[""CUP_30Rnd_545x39_AK_M"",""SmokeShell"",""SmokeShellOrange"",""Chemlight_red""],[10,2,2,2]],[[],[]],[[],[]]],false]"] call bis_fnc_initAmmoBox;;
        [_this,8] call ace_cargo_fnc_setSpace;;
    };

    private _item140 = objNull;
    if (_layerRoot) then {
        _item140 = objNull;
        if (random 1 < 0.502886) then {
            _item140 = createVehicle ["CUP_O_UAZ_Unarmed_RU",[3693.94,5967.63,0],[],0,"CAN_COLLIDE"];
            _this = _item140;
            _objects pushback _this;
            _objectIDs pushback 140;
            _this setPosWorld [3693.94,5967.63,402.451];
            _this setVectorDirAndUp [[0.396683,-0.917956,0],[0,0,1]];
            _this lock 0;
            _this setFuel 0.026398;
            _this setVehicleAmmo 0;
            [_this,"[[[[""CUP_arifle_AKS74U"",""FirstAidKit""],[2,10]],[[""CUP_30Rnd_545x39_AK_M"",""CUP_RPG18_M"",""SmokeShell"",""SmokeShellOrange"",""Chemlight_red""],[20,2,2,2,2]],[[],[]],[[""CUP_B_CivPack_WDL""],[4]]],false]"] call bis_fnc_initAmmoBox;;
            if !(false) then {_this setVariable ['s', false, true];};;
            _this setVariable ['s',1];;
            [_this,4] call ace_cargo_fnc_setSpace;;
        };
    };
    */

    private _item142 = objNull;
    if (_layerRoot) then {
        _item142 = objNull;
        if (random 1 < 0.247825) then {
            _item142 = createVehicle ["EBM_woodencrate",[3682.48,5994.64,0.658997],[],0,"CAN_COLLIDE"];
            _this = _item142;
            _objects pushback _this;
            _objectIDs pushback 142;
            _this setPosWorld [3682.48,5994.64,402.729];
            _this setVectorDirAndUp [[0.952635,0.304116,0],[0,0,1]];
            [_this,"[[[[""CUP_arifle_AK101"",""CUP_arifle_AK101_GL"",""CUP_arifle_AK108"",""CUP_arifle_M16A2"",""CUP_arifle_M16A4_Base"",""CUP_arifle_M4A1_black"",""CUP_srifle_Mosin_Nagant""],[1,1,1,1,1,1,1]],[[""CUP_20Rnd_556x45_Stanag"",""30Rnd_556x45_Stanag_Tracer_Red"",""30Rnd_556x45_Stanag_Tracer_Green"",""30Rnd_556x45_Stanag_Sand"",""30Rnd_556x45_Stanag_Sand_green"",""30Rnd_556x45_Stanag_Sand_red"",""30Rnd_556x45_Stanag_Sand_Tracer_Green"",""30Rnd_556x45_Stanag_Sand_Tracer_Yellow"",""CUP_20Rnd_556x45_Stanag_Tracer_Green"",""CUP_100Rnd_556x45_BetaCMag_camo"",""20Rnd_556x45_UW_mag"",""30Rnd_545x39_Mag_Tracer_F"",""CUP_30Rnd_TE1_Green_Tracer_545x39_AK_M"",""CUP_30Rnd_Subsonic_545x39_AK74M_M"",""CUP_20Rnd_Subsonic_545x39_AKSU_M"",""CUP_60Rnd_545x39_AK74M_M"",""Exile_Magazine_30Rnd_545x39_AK_Yellow"",""Exile_Magazine_45Rnd_545x39_RPK_Green"",""Exile_Magazine_75Rnd_545x39_RPK_Green"",""CUP_30Rnd_TE1_Red_Tracer_545x39_AK_camo_M"",""CUP_30Rnd_TE1_White_Tracer_545x39_AK_desert_M""],[3,2,2,3,1,1,1,2,2,1,6,3,3,2,2,1,2,1,1,2,1]],[[],[]],[[],[]]],false]"] call bis_fnc_initAmmoBox;;
            if !(false) then {_this setVariable ['s', false, true];};;
            [_this,2] call ace_cargo_fnc_setSize;;
        };
    };

    private _item144 = objNull;
    if (_layerRoot) then {
        _item144 = objNull;
        if (random 1 < 0.500084) then {
            _item144 = _item143 createUnit ["CUP_O_RU_Soldier_Saiga_M_EMR",[3714.48,6005.23,0],[],0,"CAN_COLLIDE"];
            _item143 selectLeader _item144;
            _this = _item144;
            _objects pushback _this;
            _objectIDs pushback 144;
            _this setPosWorld [3714.48,6005.28,401.925];
            _this setVectorDirAndUp [[0.931628,0.363414,0],[0,0,1]];
            _this setSkill 0.810843;
            _this setRank "CORPORAL";
            _this setname "Boris Kamenev";;
            _this setface "WhiteHead_14";;
            _this setspeaker "Male03RUS";;
            _this setpitch 1;;
            if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
            _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
            _this setVariable ['ACE_isEOD',false,true];
            if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
            if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
        };
    };

    private _item156 = objNull;
    if (_layerRoot) then {
        _item156 = _item155 createUnit ["CUP_O_RU_Soldier_TL_M_EMR",[3690.62,5990.6,0],[],0,"CAN_COLLIDE"];
        _item155 selectLeader _item156;
        _this = _item156;
        _objects pushback _this;
        _objectIDs pushback 156;
        _this setPosWorld [3690.62,5990.65,402.071];
        _this setVectorDirAndUp [[0.999652,0.0263864,0],[0,0,1]];
        _this setSkill 0.900535;
        _this setRank "LIEUTENANT";
        _this setUnitPos "DOWN";
        _this setname "German Zubov";;
        _this setface "WhiteHead_20";;
        _this setspeaker "Male02RUS";;
        _this setpitch 0.96;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item160 = objNull;
    if (_layerRoot) then {
        _item160 = objNull;
        if (random 1 < 0.797188) then {
            _item160 = _item159 createUnit ["CUP_O_RU_Soldier_M_EMR",[3702.98,5962.24,0],[],0,"CAN_COLLIDE"];
            _item159 selectLeader _item160;
            _this = _item160;
            _objects pushback _this;
            _objectIDs pushback 160;
            _this setPosWorld [3702.98,5962.29,402.071];
            _this setVectorDirAndUp [[-0.45584,-0.890062,0],[0,0,1]];
            _this setSkill 0.815327;
            _this setUnitPos "DOWN";
            _this setname "Boris Privalov";;
            _this setface "RussianHead_3";;
            _this setspeaker "Male01RUS";;
            _this setpitch 0.95;;
            if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
            _this setVariable ["ace_advanced_fatigue_performanceFactor",1.35333,true];
            _this setVariable ['ACE_isEOD',false,true];
            if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
            if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
        };
    };

    private _item165 = objNull;
    if (_layerRoot) then {
        _item165 = _item164 createUnit ["CUP_O_RU_Soldier_LAT_M_EMR",[3699.17,5960.46,0],[],0,"CAN_COLLIDE"];
        _item164 selectLeader _item165;
        _this = _item165;
        _objects pushback _this;
        _objectIDs pushback 165;
        _this setPosWorld [3699.17,5960.51,402.071];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setname "Vitaly Morozov";;
        _this setface "WhiteHead_01";;
        _this setspeaker "Male03RUS";;
        _this setpitch 0.98;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item184 = objNull;
    if (_layerRoot) then {
        _item184 = _item183 createUnit ["CUP_O_INS_Soldier_GL",[4912.61,9958.73,0],[],0,"CAN_COLLIDE"];
        _item183 selectLeader _item184;
        _this = _item184;
        _objects pushback _this;
        _objectIDs pushback 184;
        _this setPosWorld [4912.61,9958.78,339.061];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setSkill 0.45;
        _this setRank "CORPORAL";
        _this setname "Roman Macura";;
        _this setface "WhiteHead_01";;
        _this setspeaker "Male01RUS";;
        _this setpitch 0.993712;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item186 = objNull;
    if (_layerRoot) then {
        _item186 = _item183 createUnit ["CUP_O_INS_Soldier_AK74",[4913.64,9957.43,0],[],0,"CAN_COLLIDE"];
        _this = _item186;
        _objects pushback _this;
        _objectIDs pushback 186;
        _this setPosWorld [4913.64,9957.43,339.918];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setname "Otakar Nedbal";;
        _this setface "WhiteHead_20";;
        _this setspeaker "male01rus";;
        _this setpitch 1.04487;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item187 = objNull;
    if (_layerRoot) then {
        _item187 = _item183 createUnit ["CUP_O_INS_Soldier_AK74",[4913.64,9957.43,0],[],0,"CAN_COLLIDE"];
        _this = _item187;
        _objects pushback _this;
        _objectIDs pushback 187;
        _this setPosWorld [4913.64,9957.43,339.918];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setname "Rostislav Dvorak";;
        _this setface "LivonianHead_9";;
        _this setspeaker "male01rus";;
        _this setpitch 0.951718;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item189 = objNull;
    if (_layerRoot) then {
        _item189 = _item183 createUnit ["CUP_O_INS_Soldier_AK74",[4929.29,9966.21,0],[],0,"CAN_COLLIDE"];
        _this = _item189;
        _objects pushback _this;
        _objectIDs pushback 189;
        _this setPosWorld [4929.29,9966.21,339.078];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setname "Vadim Vymazal";;
        _this setface "WhiteHead_20";;
        _this setspeaker "male02rus";;
        _this setpitch 0.995235;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item190 = objNull;
    if (_layerRoot) then {
        _item190 = _item183 createUnit ["CUP_O_INS_Soldier_AK74",[4929.29,9966.21,0],[],0,"CAN_COLLIDE"];
        _this = _item190;
        _objects pushback _this;
        _objectIDs pushback 190;
        _this setPosWorld [4929.29,9966.21,339.078];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setname "Matous Guglava";;
        _this setface "RussianHead_2";;
        _this setspeaker "male01rus";;
        _this setpitch 0.986778;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item192 = objNull;
    if (_layerRoot) then {
        _item192 = _item183 createUnit ["CUP_O_INS_Soldier_AK74",[4921.85,9980.49,0],[],0,"CAN_COLLIDE"];
        _this = _item192;
        _objects pushback _this;
        _objectIDs pushback 192;
        _this setPosWorld [4921.85,9980.49,339.918];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setname "Vlastimil Vitek";;
        _this setface "LivonianHead_10";;
        _this setspeaker "male01rus";;
        _this setpitch 1.03331;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item193 = objNull;
    if (_layerRoot) then {
        _item193 = _item183 createUnit ["CUP_O_INS_Soldier_AK74",[4921.85,9980.49,0],[],0,"CAN_COLLIDE"];
        _this = _item193;
        _objects pushback _this;
        _objectIDs pushback 193;
        _this setPosWorld [4921.85,9980.49,339.918];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setname "Stepan Valenta";;
        _this setface "WhiteHead_06";;
        _this setspeaker "male03rus";;
        _this setpitch 1.00271;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item194 = objNull;
    if (_layerRoot) then {
        _item194 = _item183 createUnit ["CUP_O_INS_Soldier",[4921.5,9982.61,0],[],0,"CAN_COLLIDE"];
        _this = _item194;
        _objects pushback _this;
        _objectIDs pushback 194;
        _this setPosWorld [4921.5,9982.66,339.061];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setSkill 0.4;
        _this setname "Miro Horvat";;
        _this setface "LivonianHead_6";;
        _this setspeaker "Male01RUS";;
        _this setpitch 0.967103;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    private _item195 = objNull;
    if (_layerRoot) then {
        _item195 = _item183 createUnit ["CUP_O_INS_Soldier_MG",[4928.83,9967.62,0],[],0,"CAN_COLLIDE"];
        _this = _item195;
        _objects pushback _this;
        _objectIDs pushback 195;
        _this setPosWorld [4928.83,9967.67,339.061];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        _this setSkill 0.4;
        _this setname "Miro Kravchuk";;
        _this setface "WhiteHead_13";;
        _this setspeaker "Male01RUS";;
        _this setpitch 0.990416;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };

    /*
    private _item185 = objNull;
    if (_layerRoot) then {
        _item185 = createVehicle ["CUP_O_UAZ_MG_CHDKZ",[4913.64,9957.43,0],[],0,"CAN_COLLIDE"];
        _this = _item185;
        _objects pushback _this;
        _objectIDs pushback 185;
        _this setPosWorld [4913.64,9957.43,339.918];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        [_this,"[[[[],[]],[[],[]],[[],[]],[[],[]]],false]"] call bis_fnc_initAmmoBox;;
        _this setVariable ['s',1];;
        [_this,4] call ace_cargo_fnc_setSpace;;
    };

    private _item188 = objNull;
    if (_layerRoot) then {
        _item188 = createVehicle ["CUP_O_UAZ_SPG9_CHDKZ",[4929.29,9966.21,0],[],0,"CAN_COLLIDE"];
        _this = _item188;
        _objects pushback _this;
        _objectIDs pushback 188;
        _this setPosWorld [4929.29,9966.21,339.078];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        [_this,"[[[[],[]],[[],[]],[[],[]],[[],[]]],false]"] call bis_fnc_initAmmoBox;;
        _this setVariable ['s',1];;
        [_this,4] call ace_cargo_fnc_setSpace;;
    };

    private _item191 = objNull;
    if (_layerRoot) then {
        _item191 = createVehicle ["CUP_O_UAZ_MG_CHDKZ",[4921.85,9980.49,0],[],0,"CAN_COLLIDE"];
        _this = _item191;
        _objects pushback _this;
        _objectIDs pushback 191;
        _this setPosWorld [4921.85,9980.49,339.918];
        _this setVectorDirAndUp [[-0.909193,-0.416376,0],[0,0,1]];
        [_this,"[[[[],[]],[[],[]],[[],[]],[[],[]]],false]"] call bis_fnc_initAmmoBox;;
        _this setVariable ['s',1];;
        [_this,4] call ace_cargo_fnc_setSpace;;
    };
    */

    private _item230 = objNull;
    if (_layerRoot) then {
        _item230 = _item229 createUnit ["CUP_B_BAF_Soldier_Diver_MTP",[4058.35,6159.72,0],[],0,"CAN_COLLIDE"];
        _item229 selectLeader _item230;
        _this = _item230;
        _objects pushback _this;
        _objectIDs pushback 230;
        _this setPosWorld [4058.35,6159.77,355.18];
        _this setVectorDirAndUp [[0,1,0],[0,0,1]];
        _this setname "Samuel Nelson";;
        _this setface "WhiteHead_04";;
        _this setspeaker "Male03ENGB";;
        _this setpitch 0.98;;
        if !(0 == ([0,1] select (_this getUnitTrait 'engineer'))|| {0 == -1}) then {_this setVariable ['s', 0, true]};
        _this setVariable ["ace_advanced_fatigue_performanceFactor",1,true];
        _this setVariable ['ACE_isEOD',false,true];
        if (0 >= 0.1) then {_this setVariable ["ace_medical_damageThreshold", 0, true]};
        if (0 != -1 && {0 != (parseNumber (_this getUnitTrait 'medic'))}) then {_this setVariable ["ace_medical_medicClass", 0, true]};
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Triggers
    private _triggers = [];
    private _triggerIDs = [];

    private _item105 = objNull;
    if (_layerRoot) then {
        _item105 = createTrigger ["EmptyDetectorAreaR250",[3723.1,5982.06,0],true];
        _this = _item105;
        _triggers pushback _this;
        _triggerIDs pushback 105;
        _item105 setPosATL [3723.1,5982.06,0];
        _this setTriggerArea [100,100,0,false,-1];
        _this setTriggerActivation ["WEST","PRESENT",false];
    };

    private _item182 = objNull;
    if (_layerRoot) then {
        _item182 = createTrigger ["EmptyDetectorAreaR250",[3726.48,5983.8,0],true];
        _this = _item182;
        _triggers pushback _this;
        _triggerIDs pushback 182;
        _item182 setPosATL [3726.48,5983.8,0];
        _this setTriggerArea [250,250,0,false,-1];
        _this setTriggerActivation ["WEST","PRESENT",false];
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Group attributes (applied only once group units exist)
    _this = _item0;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-1"] call CBA_fnc_setCallsign;
    };
    _this = _item2;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-2"] call CBA_fnc_setCallsign;
    };
    _this = _item6;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-3"] call CBA_fnc_setCallsign;
    };
    _this = _item12;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-4"] call CBA_fnc_setCallsign;
        _this setCombatMode "RED";
        _this setBehaviour "SAFE";
        _this setSpeedMode "LIMITED";
    };
    _this = _item15;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-5"] call CBA_fnc_setCallsign;
    };
    _this = _item21;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-6"] call CBA_fnc_setCallsign;
    };
    _this = _item30;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 2-1"] call CBA_fnc_setCallsign;
    };
    _this = _item47;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 2-2"] call CBA_fnc_setCallsign;
    };
    _this = _item50;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 2-3"] call CBA_fnc_setCallsign;
    };
    _this = _item52;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 2-4"] call CBA_fnc_setCallsign;
        _this setBehaviour "SAFE";
        _this setSpeedMode "LIMITED";
        _this enableDynamicSimulation true;
        if (true) then {[{(_this select 0) setVariable ['s', _this select 1, true];},[_this,true]] call CBA_fnc_execNextFrame};;
    };
    _this = _item85;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 2-5"] call CBA_fnc_setCallsign;
    };
    _this = _item87;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 2-6"] call CBA_fnc_setCallsign;
        _this setBehaviour "SAFE";
        _this setFormation "STAG COLUMN";
        _this setSpeedMode "LIMITED";
    };
    _this = _item103;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 3-1"] call CBA_fnc_setCallsign;
    };
    _this = _item123;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 3-2"] call CBA_fnc_setCallsign;
        _this setCombatMode "RED";
        _this setSpeedMode "FULL";
    };
    _this = _item143;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 3-3"] call CBA_fnc_setCallsign;
    };
    _this = _item155;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 3-4"] call CBA_fnc_setCallsign;
    };
    _this = _item159;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 3-5"] call CBA_fnc_setCallsign;
    };
    _this = _item164;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 3-6"] call CBA_fnc_setCallsign;
    };
    _this = _item183;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 4-1"] call CBA_fnc_setCallsign;
        _this setBehaviour "SAFE";
        _this setFormation "FILE";
    };
    _this = _item198;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 4-2"] call CBA_fnc_setCallsign;
    };
    _this = _item229;
    if !(units _this isEqualTo []) then {
        [_this,0] setWaypointPosition [position leader _this,0];
        [_this, "Alpha 1-1"] call CBA_fnc_setCallsign;
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Waypoints
    private _waypoints = [];
    private _waypointIDs = [];

    private _item5 = [];
    if (_layerRoot) then {
        _item5 = _item2 addWaypoint [[3727.36,6004.6,0.5],0];
        _this = _item5;
        _waypoints pushback _this;
        _waypointIDs pushback 5;
        _this setWaypointLoiterRadius 10;
        _this setWaypointType "LOITER";
        _this setWaypointBehaviour "SAFE";
        _this setWaypointSpeed "LIMITED";
        _this setWaypointTimeout [30,150,300];
    };

    private _item83 = [];
    if (_layerRoot) then {
        _item83 = _item2 addWaypoint [[3720.17,6009.5,0],0];
        _this = _item83;
        _waypoints pushback _this;
        _waypointIDs pushback 83;
        _this setWaypointType "CYCLE";
    };

    private _item8 = [];
    if (_layerRoot) then {
        _item8 = _item6 addWaypoint [[3745.12,5989.86,0.5],0];
        _this = _item8;
        _waypoints pushback _this;
        _waypointIDs pushback 8;
        _this setWaypointLoiterRadius 10;
        _this setWaypointType "LOITER";
        _this setWaypointBehaviour "SAFE";
        _this setWaypointSpeed "LIMITED";
        _this setWaypointTimeout [10,20,30];
    };

    private _item9 = [];
    if (_layerRoot) then {
        _item9 = _item6 addWaypoint [[3734.32,6016.98,0],0];
        _this = _item9;
        _waypoints pushback _this;
        _waypointIDs pushback 9;
        _this setWaypointLoiterRadius 25;
        _this setWaypointType "LOITER";
        _this setWaypointTimeout [15,30,45];
    };

    private _item82 = [];
    if (_layerRoot) then {
        _item82 = _item6 addWaypoint [[3750.58,5985.35,0],0];
        _this = _item82;
        _waypoints pushback _this;
        _waypointIDs pushback 82;
        _this setWaypointType "CYCLE";
        _this setWaypointTimeout [60,180,270];
    };

    private _item23 = [];
    if (_layerRoot) then {
        _item23 = _item15 addWaypoint [[3683.84,5995.78,9.418],0];
        _this = _item23;
        _waypoints pushback _this;
        _waypointIDs pushback 23;
        _this setWaypointType "SENTRY";
        _this setWaypointCompletionRadius 5;
        _this setWaypointCombatMode "RED";
        _this setWaypointBehaviour "SAFE";
        _this setWaypointSpeed "LIMITED";
    };

    private _item33 = [];
    if (_layerRoot) then {
        _item33 = _item30 addWaypoint [[3717.78,5954.94,0.145996],0];
        _this = _item33;
        _waypoints pushback _this;
        _waypointIDs pushback 33;
        _this setWaypointType "MOVE";
        _this setWaypointBehaviour "SAFE";
        _this setWaypointSpeed "LIMITED";
    };

    private _item34 = [];
    if (_layerRoot) then {
        _item34 = _item30 addWaypoint [[3704.25,5950.38,0.13858],0];
        _this = _item34;
        _waypoints pushback _this;
        _waypointIDs pushback 34;
        _this setWaypointType "MOVE";
    };

    private _item35 = [];
    if (_layerRoot) then {
        _item35 = _item30 addWaypoint [[3702.37,5949.83,0],0];
        _this = _item35;
        _waypoints pushback _this;
        _waypointIDs pushback 35;
        _this setWaypointType "MOVE";
    };

    private _item36 = [];
    if (_layerRoot) then {
        _item36 = _item30 addWaypoint [[3701.7,5950.18,0],0];
        _this = _item36;
        _waypoints pushback _this;
        _waypointIDs pushback 36;
        _this setWaypointType "MOVE";
    };

    private _item37 = [];
    if (_layerRoot) then {
        _item37 = _item30 addWaypoint [[3698.88,5960.67,0],0];
        _this = _item37;
        _waypoints pushback _this;
        _waypointIDs pushback 37;
        _this setWaypointType "MOVE";
    };

    private _item38 = [];
    if (_layerRoot) then {
        _item38 = _item30 addWaypoint [[3691.58,6000.59,0.0400085],0];
        _this = _item38;
        _waypoints pushback _this;
        _waypointIDs pushback 38;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [30,45,60];
    };

    private _item39 = [];
    if (_layerRoot) then {
        _item39 = _item30 addWaypoint [[3701.33,6008.65,0.326996],0];
        _this = _item39;
        _waypoints pushback _this;
        _waypointIDs pushback 39;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [5,30,60];
    };

    private _item40 = [];
    if (_layerRoot) then {
        _item40 = _item30 addWaypoint [[3707.28,6002.02,0],0];
        _this = _item40;
        _waypoints pushback _this;
        _waypointIDs pushback 40;
        _this setWaypointType "MOVE";
    };

    private _item41 = [];
    if (_layerRoot) then {
        _item41 = _item30 addWaypoint [[3719.72,6000.09,1.05304],0];
        _this = _item41;
        _waypoints pushback _this;
        _waypointIDs pushback 41;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 5;
        _this setWaypointTimeout [30,60,90];
    };

    private _item42 = [];
    if (_layerRoot) then {
        _item42 = _item30 addWaypoint [[3717.69,5955.15,0.644989],0];
        _this = _item42;
        _waypoints pushback _this;
        _waypointIDs pushback 42;
        _this setWaypointType "CYCLE";
    };

    private _item58 = [];
    if (_layerRoot) then {
        _item58 = _item52 addWaypoint [[3701.97,6050.42,3.05176e-005],0];
        _this = _item58;
        _waypoints pushback _this;
        _waypointIDs pushback 58;
        _this setWaypointType "MOVE";
        _this setWaypointBehaviour "SAFE";
        _this setWaypointSpeed "LIMITED";
    };

    private _item59 = [];
    if (_layerRoot) then {
        _item59 = _item52 addWaypoint [[3683.73,6087.42,3.05176e-005],0];
        _this = _item59;
        _waypoints pushback _this;
        _waypointIDs pushback 59;
        _this setWaypointType "MOVE";
    };

    private _item60 = [];
    if (_layerRoot) then {
        _item60 = _item52 addWaypoint [[3640.13,6141.67,9.15527e-005],0];
        _this = _item60;
        _waypoints pushback _this;
        _waypointIDs pushback 60;
        _this setWaypointType "MOVE";
    };

    private _item61 = [];
    if (_layerRoot) then {
        _item61 = _item52 addWaypoint [[3593.85,6201.51,-3.05176e-005],0];
        _this = _item61;
        _waypoints pushback _this;
        _waypointIDs pushback 61;
        _this setWaypointType "MOVE";
    };

    private _item62 = [];
    if (_layerRoot) then {
        _item62 = _item52 addWaypoint [[3585.14,6222.52,0],0];
        _this = _item62;
        _waypoints pushback _this;
        _waypointIDs pushback 62;
        _this setWaypointType "LOITER";
        _this setWaypointTimeout [30,45,60];
    };

    private _item63 = [];
    if (_layerRoot) then {
        _item63 = _item52 addWaypoint [[3600.32,6188.44,0],0];
        _this = _item63;
        _waypoints pushback _this;
        _waypointIDs pushback 63;
        _this setWaypointType "MOVE";
    };

    private _item64 = [];
    if (_layerRoot) then {
        _item64 = _item52 addWaypoint [[3621.44,6170.09,9.15527e-005],0];
        _this = _item64;
        _waypoints pushback _this;
        _waypointIDs pushback 64;
        _this setWaypointType "MOVE";
    };

    private _item65 = [];
    if (_layerRoot) then {
        _item65 = _item52 addWaypoint [[3653.42,6122.64,-3.05176e-005],0];
        _this = _item65;
        _waypoints pushback _this;
        _waypointIDs pushback 65;
        _this setWaypointType "MOVE";
    };

    private _item66 = [];
    if (_layerRoot) then {
        _item66 = _item52 addWaypoint [[3688.76,6077,3.05176e-005],0];
        _this = _item66;
        _waypoints pushback _this;
        _waypointIDs pushback 66;
        _this setWaypointType "MOVE";
    };

    private _item67 = [];
    if (_layerRoot) then {
        _item67 = _item52 addWaypoint [[3741.97,6020.24,0],0];
        _this = _item67;
        _waypoints pushback _this;
        _waypointIDs pushback 67;
        _this setWaypointType "MOVE";
    };

    private _item68 = [];
    if (_layerRoot) then {
        _item68 = _item52 addWaypoint [[3754.79,6004.53,9.15527e-005],0];
        _this = _item68;
        _waypoints pushback _this;
        _waypointIDs pushback 68;
        _this setWaypointType "MOVE";
    };

    private _item69 = [];
    if (_layerRoot) then {
        _item69 = _item52 addWaypoint [[3765.96,5990.73,-9.15527e-005],0];
        _this = _item69;
        _waypoints pushback _this;
        _waypointIDs pushback 69;
        _this setWaypointType "MOVE";
    };

    private _item70 = [];
    if (_layerRoot) then {
        _item70 = _item52 addWaypoint [[3764.06,5969.14,0],0];
        _this = _item70;
        _waypoints pushback _this;
        _waypointIDs pushback 70;
        _this setWaypointType "MOVE";
    };

    private _item71 = [];
    if (_layerRoot) then {
        _item71 = _item52 addWaypoint [[3774.32,5951.26,3.05176e-005],0];
        _this = _item71;
        _waypoints pushback _this;
        _waypointIDs pushback 71;
        _this setWaypointType "MOVE";
    };

    private _item72 = [];
    if (_layerRoot) then {
        _item72 = _item52 addWaypoint [[3794,5936.62,3.05176e-005],0];
        _this = _item72;
        _waypoints pushback _this;
        _waypointIDs pushback 72;
        _this setWaypointType "MOVE";
    };

    private _item73 = [];
    if (_layerRoot) then {
        _item73 = _item52 addWaypoint [[3841.7,5912,0],0];
        _this = _item73;
        _waypoints pushback _this;
        _waypointIDs pushback 73;
        _this setWaypointType "MOVE";
    };

    private _item74 = [];
    if (_layerRoot) then {
        _item74 = _item52 addWaypoint [[3908.27,5863.42,0],0];
        _this = _item74;
        _waypoints pushback _this;
        _waypointIDs pushback 74;
        _this setWaypointType "MOVE";
    };

    private _item75 = [];
    if (_layerRoot) then {
        _item75 = _item52 addWaypoint [[3967.68,5806.57,-6.10352e-005],0];
        _this = _item75;
        _waypoints pushback _this;
        _waypointIDs pushback 75;
        _this setWaypointType "MOVE";
    };

    private _item76 = [];
    if (_layerRoot) then {
        _item76 = _item52 addWaypoint [[4000.7,5769.62,0],0];
        _this = _item76;
        _waypoints pushback _this;
        _waypointIDs pushback 76;
        _this setWaypointLoiterRadius 10;
        _this setWaypointType "LOITER";
        _this setWaypointTimeout [60,90,120];
    };

    private _item77 = [];
    if (_layerRoot) then {
        _item77 = _item52 addWaypoint [[3914.48,5854.63,3.05176e-005],0];
        _this = _item77;
        _waypoints pushback _this;
        _waypointIDs pushback 77;
        _this setWaypointType "MOVE";
    };

    private _item78 = [];
    if (_layerRoot) then {
        _item78 = _item52 addWaypoint [[3821.32,5932.19,-3.05176e-005],0];
        _this = _item78;
        _waypoints pushback _this;
        _waypointIDs pushback 78;
        _this setWaypointType "MOVE";
    };

    private _item79 = [];
    if (_layerRoot) then {
        _item79 = _item52 addWaypoint [[3750.42,6006.69,0],0];
        _this = _item79;
        _waypoints pushback _this;
        _waypointIDs pushback 79;
        _this setWaypointType "CYCLE";
        _this setWaypointCompletionRadius 20;
    };

    private _item93 = [];
    if (_layerRoot) then {
        _item93 = _item87 addWaypoint [[3501.93,6097.63,0],0];
        _this = _item93;
        _waypoints pushback _this;
        _waypointIDs pushback 93;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item94 = [];
    if (_layerRoot) then {
        _item94 = _item87 addWaypoint [[3480.81,5988.51,0],0];
        _this = _item94;
        _waypoints pushback _this;
        _waypointIDs pushback 94;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item95 = [];
    if (_layerRoot) then {
        _item95 = _item87 addWaypoint [[3564.83,5832.98,0],0];
        _this = _item95;
        _waypoints pushback _this;
        _waypointIDs pushback 95;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item96 = [];
    if (_layerRoot) then {
        _item96 = _item87 addWaypoint [[3711.32,5758.95,0],0];
        _this = _item96;
        _waypoints pushback _this;
        _waypointIDs pushback 96;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item97 = [];
    if (_layerRoot) then {
        _item97 = _item87 addWaypoint [[3852.29,5720.29,0],0];
        _this = _item97;
        _waypoints pushback _this;
        _waypointIDs pushback 97;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item98 = [];
    if (_layerRoot) then {
        _item98 = _item87 addWaypoint [[3977.77,5879.08,0],0];
        _this = _item98;
        _waypoints pushback _this;
        _waypointIDs pushback 98;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item99 = [];
    if (_layerRoot) then {
        _item99 = _item87 addWaypoint [[3983.99,6022.03,0],0];
        _this = _item99;
        _waypoints pushback _this;
        _waypointIDs pushback 99;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item100 = [];
    if (_layerRoot) then {
        _item100 = _item87 addWaypoint [[3904.09,6100.85,0],0];
        _this = _item100;
        _waypoints pushback _this;
        _waypointIDs pushback 100;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item101 = [];
    if (_layerRoot) then {
        _item101 = _item87 addWaypoint [[3773.27,6164.41,0],0];
        _this = _item101;
        _waypoints pushback _this;
        _waypointIDs pushback 101;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
    };

    private _item102 = [];
    if (_layerRoot) then {
        _item102 = _item87 addWaypoint [[3666.31,6174.63,0],0];
        _this = _item102;
        _waypoints pushback _this;
        _waypointIDs pushback 102;
        _this setWaypointType "CYCLE";
        _this setWaypointCompletionRadius 50;
    };

    private _item132 = [];
    if (_layerRoot) then {
        _item132 = _item123 addWaypoint [[-129.304,7666.9,0],0];
        _this = _item132;
        _waypoints pushback _this;
        _waypointIDs pushback 132;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 50;
        _this setWaypointCombatMode "RED";
        _this setWaypointBehaviour "CARELESS";
        _this setWaypointSpeed "FULL";
    };

    private _item133 = [];
    if (_layerRoot) then {
        _item133 = _item123 addWaypoint [[3681.14,6022.28,0],0];
        _this = _item133;
        _waypoints pushback _this;
        _waypointIDs pushback 133;
        _this setWaypointType "SAD";
        _this setWaypointCompletionRadius 150;
        _this setWaypointCombatMode "RED";
        _this setWaypointBehaviour "COMBAT";
        _this setWaypointSpeed "LIMITED";
        _this setWaypointVisible false;
        _this setWaypointTimeout [120,180,240];
    };

    private _item134 = [];
    if (_layerRoot) then {
        _item134 = _item123 addWaypoint [[-468.137,7718.44,0],0];
        _this = _item134;
        _waypoints pushback _this;
        _waypointIDs pushback 134;
        _this setWaypointType "VEHICLEINVEHICLEGETOUT";
    };

    private _item145 = [];
    if (_layerRoot) then {
        _item145 = _item143 addWaypoint [[3691.49,5992.65,0],0];
        _this = _item145;
        _waypoints pushback _this;
        _waypointIDs pushback 145;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 25;
        _this setWaypointCombatMode "RED";
        _this setWaypointBehaviour "SAFE";
        _this setWaypointSpeed "LIMITED";
        _this setWaypointTimeout [1,60,90];
    };

    private _item146 = [];
    if (_layerRoot) then {
        _item146 = _item143 addWaypoint [[3699.3,5965.12,0],0];
        _this = _item146;
        _waypoints pushback _this;
        _waypointIDs pushback 146;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 10;
        _this setWaypointSpeed "LIMITED";
    };

    private _item147 = [];
    if (_layerRoot) then {
        _item147 = _item143 addWaypoint [[3685.32,5962.18,0],0];
        _this = _item147;
        _waypoints pushback _this;
        _waypointIDs pushback 147;
        _this setWaypointType "MOVE";
    };

    private _item148 = [];
    if (_layerRoot) then {
        _item148 = _item143 addWaypoint [[3682.55,5967.74,-3.05176e-005],0];
        _this = _item148;
        _waypoints pushback _this;
        _waypointIDs pushback 148;
        _this setWaypointType "MOVE";
    };

    private _item149 = [];
    if (_layerRoot) then {
        _item149 = _item143 addWaypoint [[3679.86,5968.12,0],0];
        _this = _item149;
        _waypoints pushback _this;
        _waypointIDs pushback 149;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [1,30,60];
    };

    private _item150 = [];
    if (_layerRoot) then {
        _item150 = _item143 addWaypoint [[3671.01,5986.18,0],0];
        _this = _item150;
        _waypoints pushback _this;
        _waypointIDs pushback 150;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [1,60,120];
    };

    private _item151 = [];
    if (_layerRoot) then {
        _item151 = _item143 addWaypoint [[3670.22,5994.02,0],0];
        _this = _item151;
        _waypoints pushback _this;
        _waypointIDs pushback 151;
        _this setWaypointType "MOVE";
    };

    private _item152 = [];
    if (_layerRoot) then {
        _item152 = _item143 addWaypoint [[3681.37,6000.27,0],0];
        _this = _item152;
        _waypoints pushback _this;
        _waypointIDs pushback 152;
        _this setWaypointType "MOVE";
    };

    private _item153 = [];
    if (_layerRoot) then {
        _item153 = _item143 addWaypoint [[3689.16,6010.89,0],0];
        _this = _item153;
        _waypoints pushback _this;
        _waypointIDs pushback 153;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 5;
        _this setWaypointTimeout [30,60,90];
    };

    private _item154 = [];
    if (_layerRoot) then {
        _item154 = _item143 addWaypoint [[3706.12,6000.1,0],0];
        _this = _item154;
        _waypoints pushback _this;
        _waypointIDs pushback 154;
        _this setWaypointType "CYCLE";
    };

    private _item157 = [];
    if (_layerRoot) then {
        _item157 = _item155 addWaypoint [[3690.62,5990.6,0.5],0];
        _this = _item157;
        _waypoints pushback _this;
        _waypointIDs pushback 157;
        _this setWaypointType "LOITER";
    };

    private _item158 = [];
    if (_layerRoot) then {
        _item158 = _item155 addWaypoint [[3694.59,5978.66,0],0];
        _this = _item158;
        _waypoints pushback _this;
        _waypointIDs pushback 158;
        _this setWaypointType "CYCLE";
    };

    private _item161 = [];
    if (_layerRoot) then {
        _item161 = _item159 addWaypoint [[3700.03,5953.72,0],0];
        _this = _item161;
        _waypoints pushback _this;
        _waypointIDs pushback 161;
        _this setWaypointType "MOVE";
    };

    private _item162 = [];
    if (_layerRoot) then {
        _item162 = _item159 addWaypoint [[3703.49,5944.63,0],0];
        _this = _item162;
        _waypoints pushback _this;
        _waypointIDs pushback 162;
        _this setWaypointType "MOVE";
    };

    private _item163 = [];
    if (_layerRoot) then {
        _item163 = _item159 addWaypoint [[3703.51,5943.13,5.06799],0];
        _this = _item163;
        _waypoints pushback _this;
        _waypointIDs pushback 163;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [60,120,240];
    };

    private _item166 = [];
    if (_layerRoot) then {
        _item166 = _item159 addWaypoint [[3682.77,5965.01,0],0];
        _this = _item166;
        _waypoints pushback _this;
        _waypointIDs pushback 166;
        _this setWaypointType "MOVE";
    };

    private _item167 = [];
    if (_layerRoot) then {
        _item167 = _item159 addWaypoint [[3681.43,5964.24,5.06601],0];
        _this = _item167;
        _waypoints pushback _this;
        _waypointIDs pushback 167;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [60,120,240];
    };

    private _item168 = [];
    if (_layerRoot) then {
        _item168 = _item159 addWaypoint [[3666.68,5991.37,0],0];
        _this = _item168;
        _waypoints pushback _this;
        _waypointIDs pushback 168;
        _this setWaypointType "MOVE";
    };

    private _item169 = [];
    if (_layerRoot) then {
        _item169 = _item159 addWaypoint [[3674.51,5998.07,0],0];
        _this = _item169;
        _waypoints pushback _this;
        _waypointIDs pushback 169;
        _this setWaypointType "MOVE";
    };

    private _item170 = [];
    if (_layerRoot) then {
        _item170 = _item159 addWaypoint [[3672.98,5999.28,5.05701],0];
        _this = _item170;
        _waypoints pushback _this;
        _waypointIDs pushback 170;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [60,120,240];
    };

    private _item171 = [];
    if (_layerRoot) then {
        _item171 = _item159 addWaypoint [[3674.68,5998.43,0],0];
        _this = _item171;
        _waypoints pushback _this;
        _waypointIDs pushback 171;
        _this setWaypointType "MOVE";
    };

    private _item172 = [];
    if (_layerRoot) then {
        _item172 = _item159 addWaypoint [[3702.56,6016.33,3.05176e-005],0];
        _this = _item172;
        _waypoints pushback _this;
        _waypointIDs pushback 172;
        _this setWaypointType "MOVE";
    };

    private _item173 = [];
    if (_layerRoot) then {
        _item173 = _item159 addWaypoint [[3703.88,6017.55,5.133],0];
        _this = _item173;
        _waypoints pushback _this;
        _waypointIDs pushback 173;
        _this setWaypointType "MOVE";
        _this setWaypointTimeout [60,120,240];
    };

    private _item174 = [];
    if (_layerRoot) then {
        _item174 = _item159 addWaypoint [[3703.06,6016.5,3.05176e-005],0];
        _this = _item174;
        _waypoints pushback _this;
        _waypointIDs pushback 174;
        _this setWaypointType "MOVE";
    };

    private _item175 = [];
    if (_layerRoot) then {
        _item175 = _item159 addWaypoint [[3706.14,6015.33,-6.10352e-005],0];
        _this = _item175;
        _waypoints pushback _this;
        _waypointIDs pushback 175;
        _this setWaypointType "MOVE";
    };

    private _item176 = [];
    if (_layerRoot) then {
        _item176 = _item159 addWaypoint [[3718.89,5999.45,0],0];
        _this = _item176;
        _waypoints pushback _this;
        _waypointIDs pushback 176;
        _this setWaypointType "MOVE";
        _this setWaypointCompletionRadius 10;
        _this setWaypointTimeout [60,120,240];
    };

    private _item177 = [];
    if (_layerRoot) then {
        _item177 = _item159 addWaypoint [[3709.31,5989.6,0],0];
        _this = _item177;
        _waypoints pushback _this;
        _waypointIDs pushback 177;
        _this setWaypointType "MOVE";
    };

    private _item178 = [];
    if (_layerRoot) then {
        _item178 = _item159 addWaypoint [[3700.42,5957.34,0],0];
        _this = _item178;
        _waypoints pushback _this;
        _waypointIDs pushback 178;
        _this setWaypointType "CYCLE";
        _this setWaypointCombatMode "RED";
        _this setWaypointBehaviour "SAFE";
        _this setWaypointSpeed "LIMITED";
    };

    private _item197 = [];
    if (_layerRoot) then {
        _item197 = _item183 addWaypoint [[4931.28,9976.21,0],0];
        _this = _item197;
        _waypoints pushback _this;
        _waypointIDs pushback 197;
        _this setWaypointType "LOAD";
    };

    private _item200 = [];
    if (_layerRoot) then {
        _item200 = _item183 addWaypoint [[4931.99,9744.35,0],0];
        _this = _item200;
        _waypoints pushback _this;
        _waypointIDs pushback 200;
        _this setWaypointType "MOVE";
    };

    private _item201 = [];
    if (_layerRoot) then {
        _item201 = _item183 addWaypoint [[5126.34,9676.34,0],0];
        _this = _item201;
        _waypoints pushback _this;
        _waypointIDs pushback 201;
        _this setWaypointType "MOVE";
    };

    private _item202 = [];
    if (_layerRoot) then {
        _item202 = _item183 addWaypoint [[5104.41,9731.13,24.0983],0];
        _this = _item202;
        _waypoints pushback _this;
        _waypointIDs pushback 202;
        _this setWaypointType "MOVE";
    };

    private _item203 = [];
    if (_layerRoot) then {
        _item203 = _item183 addWaypoint [[5105.47,9765.1,0],0];
        _this = _item203;
        _waypoints pushback _this;
        _waypointIDs pushback 203;
        _this setWaypointType "MOVE";
    };

    private _item204 = [];
    if (_layerRoot) then {
        _item204 = _item183 addWaypoint [[5119.8,9775.74,0],0];
        _this = _item204;
        _waypoints pushback _this;
        _waypointIDs pushback 204;
        _this setWaypointType "MOVE";
    };

    private _item205 = [];
    if (_layerRoot) then {
        _item205 = _item183 addWaypoint [[5155.81,9777.96,0],0];
        _this = _item205;
        _waypoints pushback _this;
        _waypointIDs pushback 205;
        _this setWaypointType "MOVE";
    };

    private _item206 = [];
    if (_layerRoot) then {
        _item206 = _item183 addWaypoint [[5177.65,9779.37,0],0];
        _this = _item206;
        _waypoints pushback _this;
        _waypointIDs pushback 206;
        _this setWaypointType "MOVE";
    };

    private _item207 = [];
    if (_layerRoot) then {
        _item207 = _item183 addWaypoint [[5200.31,9783.67,0],0];
        _this = _item207;
        _waypoints pushback _this;
        _waypointIDs pushback 207;
        _this setWaypointType "MOVE";
    };

    private _item208 = [];
    if (_layerRoot) then {
        _item208 = _item183 addWaypoint [[5242.64,9781.91,0],0];
        _this = _item208;
        _waypoints pushback _this;
        _waypointIDs pushback 208;
        _this setWaypointType "MOVE";
    };

    private _item209 = [];
    if (_layerRoot) then {
        _item209 = _item183 addWaypoint [[5267.7,9771.34,0],0];
        _this = _item209;
        _waypoints pushback _this;
        _waypointIDs pushback 209;
        _this setWaypointType "MOVE";
    };

    private _item210 = [];
    if (_layerRoot) then {
        _item210 = _item183 addWaypoint [[5289.08,9747.81,-6.10352e-005],0];
        _this = _item210;
        _waypoints pushback _this;
        _waypointIDs pushback 210;
        _this setWaypointType "MOVE";
    };

    private _item211 = [];
    if (_layerRoot) then {
        _item211 = _item183 addWaypoint [[5294.8,9717.1,0],0];
        _this = _item211;
        _waypoints pushback _this;
        _waypointIDs pushback 211;
        _this setWaypointType "MOVE";
    };

    private _item212 = [];
    if (_layerRoot) then {
        _item212 = _item183 addWaypoint [[5292.36,9628.43,0],0];
        _this = _item212;
        _waypoints pushback _this;
        _waypointIDs pushback 212;
        _this setWaypointType "MOVE";
    };

    private _item213 = [];
    if (_layerRoot) then {
        _item213 = _item183 addWaypoint [[5293.81,9543.41,0],0];
        _this = _item213;
        _waypoints pushback _this;
        _waypointIDs pushback 213;
        _this setWaypointType "MOVE";
    };

    private _item214 = [];
    if (_layerRoot) then {
        _item214 = _item183 addWaypoint [[5268.57,9442.1,0],0];
        _this = _item214;
        _waypoints pushback _this;
        _waypointIDs pushback 214;
        _this setWaypointType "MOVE";
    };

    private _item215 = [];
    if (_layerRoot) then {
        _item215 = _item183 addWaypoint [[5325.17,9315.34,-3.05176e-005],0];
        _this = _item215;
        _waypoints pushback _this;
        _waypointIDs pushback 215;
        _this setWaypointType "MOVE";
    };

    private _item216 = [];
    if (_layerRoot) then {
        _item216 = _item183 addWaypoint [[5410.14,9220.2,0],0];
        _this = _item216;
        _waypoints pushback _this;
        _waypointIDs pushback 216;
        _this setWaypointType "MOVE";
    };

    private _item217 = [];
    if (_layerRoot) then {
        _item217 = _item183 addWaypoint [[5338.77,8826.08,3.05176e-005],0];
        _this = _item217;
        _waypoints pushback _this;
        _waypointIDs pushback 217;
        _this setWaypointType "MOVE";
    };

    private _item218 = [];
    if (_layerRoot) then {
        _item218 = _item183 addWaypoint [[4843.49,8746.88,-3.05176e-005],0];
        _this = _item218;
        _waypoints pushback _this;
        _waypointIDs pushback 218;
        _this setWaypointType "MOVE";
    };

    private _item219 = [];
    if (_layerRoot) then {
        _item219 = _item183 addWaypoint [[4853.5,8396.71,0],0];
        _this = _item219;
        _waypoints pushback _this;
        _waypointIDs pushback 219;
        _this setWaypointType "MOVE";
    };

    private _item220 = [];
    if (_layerRoot) then {
        _item220 = _item183 addWaypoint [[4953.58,8006.51,3.05176e-005],0];
        _this = _item220;
        _waypoints pushback _this;
        _waypointIDs pushback 220;
        _this setWaypointType "MOVE";
    };

    private _item221 = [];
    if (_layerRoot) then {
        _item221 = _item183 addWaypoint [[4713.04,7741.7,0],0];
        _this = _item221;
        _waypoints pushback _this;
        _waypointIDs pushback 221;
        _this setWaypointType "MOVE";
    };

    private _item222 = [];
    if (_layerRoot) then {
        _item222 = _item183 addWaypoint [[4640.69,7542.82,0],0];
        _this = _item222;
        _waypoints pushback _this;
        _waypointIDs pushback 222;
        _this setWaypointType "MOVE";
    };

    private _item223 = [];
    if (_layerRoot) then {
        _item223 = _item183 addWaypoint [[4610.54,7313.8,-3.05176e-005],0];
        _this = _item223;
        _waypoints pushback _this;
        _waypointIDs pushback 223;
        _this setWaypointType "MOVE";
    };

    private _item224 = [];
    if (_layerRoot) then {
        _item224 = _item183 addWaypoint [[4164.39,6617.7,0],0];
        _this = _item224;
        _waypoints pushback _this;
        _waypointIDs pushback 224;
        _this setWaypointType "MOVE";
    };

    private _item225 = [];
    if (_layerRoot) then {
        _item225 = _item183 addWaypoint [[4134.25,5665.45,0],0];
        _this = _item225;
        _waypoints pushback _this;
        _waypointIDs pushback 225;
        _this setWaypointType "MOVE";
    };

    private _item226 = [];
    if (_layerRoot) then {
        _item226 = _item183 addWaypoint [[4094.81,5685.84,3.05176e-005],0];
        _this = _item226;
        _waypoints pushback _this;
        _waypointIDs pushback 226;
        _this setWaypointType "MOVE";
    };

    private _item227 = [];
    if (_layerRoot) then {
        _item227 = _item183 addWaypoint [[4027.86,5748.15,0],0];
        _this = _item227;
        _waypoints pushback _this;
        _waypointIDs pushback 227;
        _this setWaypointType "MOVE";
    };

    private _item228 = [];
    if (_layerRoot) then {
        _item228 = _item183 addWaypoint [[3757.2,5978.93,0],0];
        _this = _item228;
        _waypoints pushback _this;
        _waypointIDs pushback 228;
        _this setWaypointType "TR UNLOAD";
    };

    private _item231 = [];
    if (_layerRoot) then {
        _item231 = _item183 addWaypoint [[4931.42,9976.67,0],0];
        _this = _item231;
        _waypoints pushback _this;
        _waypointIDs pushback 231;
        _this setWaypointType "MOVE";
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Logics
    private _logics = [];
    private _logicIDs = [];


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Layers


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Crews
    if (!isNull _item125 && !isNull _item124) then {_item125 moveInDriver _item124;};
    if (!isNull _item126 && !isNull _item124) then {_item126 moveInTurret [_item124,[0]];};
    if (!isNull _item129 && !isNull _item128) then {_item129 moveInDriver _item128;};
    if (!isNull _item130 && !isNull _item128) then {_item130 moveInTurret [_item128,[0]];};
    if (!isNull _item186 && !isNull _item185) then {_item186 moveInDriver _item185;};
    if (!isNull _item187 && !isNull _item185) then {_item187 moveInTurret [_item185,[1]];};
    if (!isNull _item189 && !isNull _item188) then {_item189 moveInDriver _item188;};
    if (!isNull _item190 && !isNull _item188) then {_item190 moveInTurret [_item188,[1]];};
    if (!isNull _item192 && !isNull _item191) then {_item192 moveInDriver _item191;};
    if (!isNull _item193 && !isNull _item191) then {_item193 moveInTurret [_item191,[1]];};


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Vehicle cargo


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Connections
    //if (!isNull _item105 && !(_item132 isEqualTo [])) then {_item105 synchronizeWaypoint [_item132];};
    //if (!isNull _item182 && !(_item197 isEqualTo [])) then {_item182 synchronizeWaypoint [_item197];};


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Inits (executed only once all entities exist; isNil used to ensure non-scheduled environment)
    isNil {
        if !(isnull _item12) then {
            this = _item12;
            call{this disableAI "PATH";};
        };
        if !(isnull _item1) then {
            this = _item1;
            call{this disableAI "PATH";};
        };
        if !(isnull _item13) then {
            this = _item13;
            call{this disableAI "PATH";};
        };
        if !(isnull _item14) then {
            this = _item14;
            call{this disableAI "PATH";};
        };
        if !(isnull _item16) then {
            this = _item16;
            call{this disableAI "PATH";};
        };
        if !(isnull _item22) then {
            this = _item22;
            call{this disableAI "PATH";};
        };
        if !(isnull _item48) then {
            this = _item48;
            call{this disableAI "PATH";};
        };
        if !(isnull _item51) then {
            this = _item51;
            call{this disableAI "PATH";};
        };
        if !(isnull _item86) then {
            this = _item86;
            call{this disableAI "PATH";};
        };
    };


    ///////////////////////////////////////////////////////////////////////////////////////////
    // Module activations (only once everything is spawned and connected)


    ///////////////////////////////////////////////////////////////////////////////////////////
    [[_objects,_groups,_triggers,_waypoints,_logics,_markers],[_objectIDs,_groupIDs,_triggerIDs,_waypointIDs,_logicIDs,_markerIDs]]
     

     


  6. 3 hours ago, ZN Anhor said:

     

    If you are looking for something you should find appropriate tutorials either here in the club or in the Arma 3 forum.

     

    That's exactly what I am in sure of. I can use the editor easily for the initServer and initPlayerLocal stuff, but I've heard rumblings over the years of people using "Arma Dev Tools" or something like that which allows actual map modification. So maybe I guess I -am- looking for some hellish map creation, after all. 🙂 


  7. On 9/11/2020 at 8:06 AM, ZN Anhor said:

     

    Correct me if I´m wrong ...... but did Chernarus Redux 2.0 not exist?

     

    Your question (or intention) is a bit unclear for me. Do you wanna make some changes on a existing map? Or do you create a new map?

     

    If is the second one ....... well, let me know in about 2 or 3 years if you made progress ...... map building is some of the most horror I can imagine.

     

    I really just want to know how to edit existing maps for now, to include even changing the terrain. I know how to use the Eden editor to add objects through the .sqf files, but I am curious about the deeper methods of creating more permanent modifications to maps.


  8. I found an old addon that seemed to have a similar idea; would this be right?

     

     

        tools[] =
        {       
    {"Exile_Item_Shovel",“Exile_Item_Screwdriver"}
        };

     

    UPDATE: This did not work. I saw a code somewhere that was using an OR so I will try that next. I’ll update in case it helps others in the future. 

     

     


  9. 35 minutes ago, noelite said:

    NEW Updates

    - Added  New Trader,

    - Moved  Aircraft  Trader
    - Added  Aircraft Traders To Safe Zone,

    - Added  Skalisty Bridge marker

    - Added Some  more Objects on Skalisty Island,

    - removed some buildings and Objects,

    - Added Big Castle,

     

    noelite, your work is much appreciated. Can I ask, are you editing the source files, or the editor and making .SQFs?


  10. For a crafting recipe, how do I allow MULTIPLE tools to be used for a recipe (not requiring ALL, just 1 OR the other)?

     

        tools[] =
        {
            "Exile_Item_Shovel",

            "Exile_Item_Screwdriver"
        };
     


  11. I’m really just looking for a link to a tutorial on how to edit/build maps. For instance, if I wanted to edit Chernarus and make Chernarus Redux 2.0 (I don’t... CHR nailed it), I know I’d need some Arma 3 dev tools and all; but I also need a rough tutorial on how to get started. 


    Any help is appreciated!


  12. Disregard. Apparently I did. If anyone might need some in the future, here are some examples from my old files.

     

     

    //TROOPS
    ["VehicleRange",[3894.75,13393.5,0],15,3,3,false] call A3XAI_createCustomInfantryQueue;
     

    //HELO PATROLS
    ["SectorBHelo",[2902.41,12332.8,400],"Exile_Chopper_Huey_Armed_Green",1500,[1,2],3,false] call A3XAI_createCustomVehicleQueue;

     

    //Anti-Air Defenses
    ["AA_Launcher",[4037.91,11724.1,0],"B_MRAP_01_hmg_F",0,[1,1],3,false] call A3XAI_createCustomVehicleQueue;

     

    //VEHICLE PATROLS

    ["PatTruck",[12263.9,10292.6,0],"I_G_Offroad_01_armed_F",100,[1,1],2,false] call A3XAI_createCustomVehicleQueue;
     

    /*
    'AreaName1': The name to assign to the spawn area (must be unique).
    [Co-ords]
    15: The radius of the patrol area.
    6: Number of AI units to spawn.
    1: Level of AI (0-3).
    true: Respawn setting. true: Enable respawn. false: Disable respawn.
    3600: If respawn setting is enabled, this is the respawn timer in seconds. If respawn setting is disabled, either don't add a number or set it to 0.
    */

    • Like 1

  13. Does anyone have any examples of custom spawns for A3XAI? There isn't an example provided in the custom spawn file, and I don't seem to have any old files that feature them. 


  14. Does anyone have any idea on how I can make this dynamic location invasion occur in a specific location? Here is the original code:

     

    Spoiler

    /*
        DynamicLocationInvasion by IT07
    */

    VEMFrMissionCount = VEMFrMissionCount + 1;
    if ( isNil "VEMFrInvasionCount" ) then { VEMFrInvasionCount = 0; };
    VEMFrInvasionCount = VEMFrInvasionCount + 1;
    _this0 = _this select 0;
    if ( VEMFrInvasionCount <= ( ( [ [ "missionSettings", _this0 ], [ "maxInvasions" ] ] call VEMFr_fnc_config ) select 0 ) ) then
    {
        scopeName "outer";
        _mod = call VEMFr_fnc_whichMod;

        // Define the settings
        ( [
            [ "missionSettings", _this0 ],
            [ "groupCount", "groupUnits", "maxDistancePrefered", "skipDistance", "useMarker", "markCrateVisual", "markCrateOnMap", "announce", "streetLightsEnabled", "streetLightsRestore", "streetLightsRange", "allowCrateLift", "allowRepeat", "randomModes", "spawnCrateFirst", "flairTypes", "smokeTypes", "skipDistanceReversed", "ApexEnabled", "missionrange" ]
        ] call VEMFr_fnc_config ) params [ "_ms0", "_ms1", "_ms2", "_ms3", "_ms4", "_ms5", "_ms6", "_ms7", "_ms8", "_ms9", "_ms10", "_ms11", "_ms12", "_ms13", "_ms14", "_ms15", "_ms16", "_ms17", "_Apex", "_msra" ];
        //diag_log format ["vemf_Debug: %1",_msra];
        ( [ [ "missionSettings", _this0, "crateParachute" ], [ "enabled", "altitude" ] ] call VEMFr_fnc_config ) params [ "_cp0", "_cp1" ];

        ( [ [ "missionSettings", _this0, "mines" ], [ "cleanup", "guerMine", "polrMine", "polsMine", "gendMine", "banditMine"  ] ] call VEMFr_fnc_config ) params [ "_ms19", "_guerM", "_polrM", "_polsM", "_gendM", "_banditM"  ];

        _l = [ "loc", false, position ( selectRandom allPlayers ), if ( _ms17 > 0 ) then { _ms17 } else { _ms3 }, _ms2, if ( _ms17 > 0 ) then { _ms17 } else { _ms3 }, _this0 ] call VEMFr_fnc_findPos;
        if not ( isNil "_l" ) then
        {
            _ln = text _l;
            _lp = position _l;
            if ( _ln isEqualTo "" ) then { _ln = "Area" };
            [ _this0, 1, format [ "invading %1...", _ln ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
            
            _m = ( [ [ _mod ], [ "aiMode" ] ] call VEMFr_fnc_config ) select 0;
            if ( _ms13 isEqualTo "yes" ) then { _m = [ 0, 1, 2 ]; if ( ( "ApexEnabled" call VEMFr_fnc_config ) isEqualTo "yes" ) then { _m pushBack 3; _m pushBack 4 }; _m = selectRandom _m };
            //diag_log format ["vemf Debug: missions %1 ",_m];
            if ( _ms7 isEqualTo "yes" ) then
                {
                    if ( _m isEqualTo 0 ) then { [ "ColorEAST", "NEW MISSION", format [ "%1 Armed Guerillas have invaded %2 @ %3", worldName, _ln, mapGridPosition _lp ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                    if ( _m isEqualTo 1 ) then { [ "ColorWEST", "NEW MISSION", format [ "%1 Corrupt Police forces are now controlling %2 @ %3", worldName, _ln, mapGridPosition _lp ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                    if ( _m isEqualTo 2 ) then { [ "ColorPink", "NEW MISSION", format [ "%1 Special Forces are now raiding %2 @ %3", worldName, _ln, mapGridPosition _lp ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                    if ( _m isEqualTo 3 ) then { [ "ColorBrown", "NEW MISSION", format [ "The Gendarmerie has invaded %1 @ %2", _ln, mapGridPosition _lp ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                    if ( _m isEqualTo 4 ) then { [ "ColorYellow", "NEW MISSION", format [ "%1 bandits have taken %2 @ %3", worldName, _ln, mapGridPosition _lp ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                    //diag_log format ["vemf Debug: %1",_m];
                };

            private "_mrkr";
            if ( _ms4 isEqualTo "yes" ) then
            { // Create/place the marker if enabled
                _mrkr = createMarker [ format [ "VEMFrMarker%1", _ln ], _lp ];
                _mrkr setMarkerShape "ICON";
                _mrkr setMarkerType "o_art";
                _mrkr setMarkerSize [ 0.1, 0.1 ];

                if ( _m isEqualTo 0 ) then { _mrkr setMarkerColor "ColorEAST" };
                if ( _m isEqualTo 1 ) then { _mrkr setMarkerColor "ColorWEST" };
                if ( _m isEqualTo 2 ) then { _mrkr setMarkerColor "ColorPink" };
                if ( _m isEqualTo 3 ) then { _mrkr setMarkerColor "ColorBrown" };
                if ( _m isEqualTo 4 ) then { _mrkr setMarkerColor "ColorYellow" };
                
            };

            // If enabled, kill all the lights
            if ( _ms8 isEqualTo "no" ) then
            {
                {
                    if ( ( damage _x ) < 0.95 ) then
                    {
                        _x setDamage 0.95;
                        uiSleep 0.1;
                    };
                } forEach ( nearestObjects [ _lp, [ "Lamps_Base_F", "PowerLines_base_F", "Land_PowerPoleWooden_L_F", "Land_LampDecor_F", "Land_LampShabby_F", "Land_LampStreet_small_F", "Land_LampStreet_F", "Land_LampSolar_F", "Land_LampAirport_F", "land_LampHalogen_F", "Land_LampHarbour_F", "Land_LampStadium_F", "Land_PowerLine_01_pole_small_F", "Land_fs_roof_F" ], _ms10 ] );
                // tanoa  Land_PowerLine_01_pole_lamp_F    
            };

            private "_crate";
            _dSpwnCrt =
            {
                // Choose a box
                _bx = selectRandom ( ( [ [ "missionSettings", _this0], [ "crateTypes" ] ] call VEMFr_fnc_config ) select 0 );
                _ps = [ _lp, 0, 200, 0, 0, 300, 0 ] call bis_fnc_findSafePos;
                if ( _cp0 isEqualTo "yes" ) then
                {
                    _cht = createVehicle [ "I_Parachute_02_F", _ps, [], 0, "FLY" ];
                    if ( _mod isEqualTo "Epoch" ) then { _cht call EPOCH_server_setVToken };
                    _cht setPos [ ( getPos _cht ) select 0, ( getPos _cht ) select 1, _cp1 ];
                    _cht enableSimulationGlobal true;

                    if not ( isNull _cht ) then
                    {
                        _crate = createVehicle [ _bx, getPos _cht, [], 0, "NONE" ];
                        _crate allowDamage false;
                        _crate enableSimulationGlobal true;
                        _crate attachTo [ _cht, [ 0, 0, 0 ] ];
                        [ _this0, 1, format [ "crate parachuted at: %1 / Grid: %2", ( getPosATL _crate ), mapGridPosition ( getPosATL _crate ) ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                        [ _crate, _ln, _lp ] ExecVM ( "loadLoot" call VEMFr_fnc_scriptPath );
                        waitUntil { if ( ( ( getPos _crate ) select 2 ) < 7 ) then { true } else { uiSleep 1; false } };
                        detach _crate;
                    } else { [ _this0, 0, "where is the chute??" ] ExecVM ( "log" call VEMFr_fnc_scriptPath ) };
                } else
                {
                    _crate = createVehicle [ _bx, _ps, [], 0, "NONE" ];
                    _crate allowDamage false;
                    [ _crate, _ln, _lp ] ExecVM ( "loadLoot" call VEMFr_fnc_scriptPath );
                };

                if ( _ms11 > 0 ) then { _crate enableRopeAttach false } else { _crate enableRopeAttach true };
            };

            if ( [ _lp, _msra ] call VEMFr_fnc_waitForPlayers ) then
            {
                _spwnd = [ _lp, _m, _this0, 200 ] call VEMFr_fnc_spawnInvasionAI;
                _nts = [ ];
                {
                    [ _x ] ExecVM ( "signAI" call VEMFr_fnc_scriptPath );
                    {
                        _nts pushBack _x;
                    } forEach ( units _x );
                } forEach ( _spwnd select 0 );

                _cl50s = _spwnd select 1;
                ///////     heli   patrol   ////
                ( [ [ "missionSettings", _this0, "heliPatrol" ], [ "classesVanilla", "classesHeliDLC", "classesApex", "locked", "guerChance", "polrChance", "polsChance", "gendChance", "banditChance" ] ] call VEMFr_fnc_config ) params [ "_hp1", "_hp2", "_hp3", "_hp4", "_guerCh", "_polrCh", "_polsCh", "_gendCh", "_bandCh" ];
                //if ( ( (random 100) <= _hp0) ) then
                if ( ( _m isEqualTo 0 ) AND ( ( random 100) <= _guerCh ) OR ( _m isEqualTo 1 ) AND ( ( random 100) <= _polrCh ) OR ( _m isEqualTo 2 ) AND ( ( random 100) <= _polsCh ) OR ( _m isEqualTo 3 ) AND ( ( random 100) <= _gendCh ) OR ( _m isEqualTo 4 ) AND ( (random 100) <= _bandCh ) ) then
                    {
                        [ _this0, 1, format [ "adding a heli patrol to the invasion of %1 at %2", _ln, mapGridPosition _lp ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                        _classes = _hp1;
                        //if ( ( "Heli" call VEMFr_fnc_modAppID ) in ( getDLCs 1 ) ) then { _classes append _hp2 };
                        if ( ( "ApexEnabled" call VEMFr_fnc_config ) isEqualTo "yes" ) then { _classes append _hp3 };
                        _heli = createVehicle [ selectRandom _classes, _lp, [], 5, "FLY" ];
                        if ( _mod isEqualTo "Epoch" ) then { _heli call EPOCH_server_setVToken };
                        _heli setPosATL [ ( getPos _heli ) select 0, ( getPos _heli ) select 1, 13 ];
                        _heli flyInHeight 10;

                        /////
                        if ( _hp4 isEqualTo "yes" ) then { _heli lock true };

                        _trrts = allTurrets [ _heli, true ];

                        _hlGrp = ( [ _lp, 1, ( ( count _trrts ) + ( _heli emptyPositions "commander" ) + 1 ), _m, _this0 ] call VEMFr_fnc_spawnVEMFrAI ) select 0;
                        {
                            if ( ( ( _heli emptyPositions "driver" ) isEqualTo 1 ) AND ( _x isEqualTo ( leader ( group _x ) ) ) ) then { _x moveInDriver _heli }
                                else
                                    {
                                        private "_path";
                                        {
                                            if ( isNull ( _heli turretUnit _x ) ) then { _path = _x };
                                        } forEach _trrts;
                                        
                                        if not ( isNil "_path" ) then { _x moveInTurret [ _heli, _path ] }
                                            else
                                                {
                                                    if ( ( _heli emptyPositions "commander" ) > 0 ) then { _x moveInCommander _heli };
                                                };
                                    };

                            if not ( ( backPack _x ) isEqualTo "" ) then { removeBackpack _x };
                            _x addBackpack "B_Parachute";
                            _x disableAI "LIGHTS";
                            _nts pushBack _x;
                        } forEach ( units _hlGrp );
                        _nighttime = (sunOrMoon != 1);
                        if _nighttime then{ 
                                _heli disableAI "LIGHTS";
                                _heli turretUnit [0] action ["SearchLightOn", _heli];
                                _heli setPilotLight true;    
                                _heli setCollisionLight true; 
                                /////  Lightpoint for heli
                                _light = "#lightpoint" createVehicle position _heli;
                                [_light,1.9] remoteExec ["setLightBrightness",0,_light];
                                [_light,[2.3, 2.3, 2.55]] remoteExec ["setLightAmbient",0,_light];
                                [_light,[230, 230, 255]] remoteExec ["setLightColor",0,_light];
                                [_light,500] remoteExec ["setLightIntensity",0,_light];
                                [_light,true] remoteExec ["setLightUseFlare",0,_light];
                                [_light,(getpos _heli select 2)] remoteExec ["setLightFlareSize",0,_light];
                                [_light,[_heli, [0,30,- (getpos _heli select 2)] ]] remoteExec ["lightAttachObject",0,_light];
                                
                            };
                        ///  lights  //
                        _wp = _hlGrp addWaypoint [ [ _lp select 0, _lp select 1, 30 ], 1, 1 ];
                        _wp setWaypointBehaviour "AWARE";
                        _wp setWaypointCombatMode "RED";
                        _wp setWaypointSpeed "LIMITED";
                        _wp setWaypointType "SAD";
                        //_wp setWaypointLoiterType "CIRCLE";
                        //_wp setWaypointLoiterRadius 200;
                        _hlGrp setCurrentWaypoint _wp;
                        //[ _hlGrp ] ExecVM ( "signAI" call VEMFr_fnc_scriptPath );
                    };
                ///////     Vehicle   patrol   //////////
                ( [ [ "missionSettings", _this0, "vehiclePatrol" ], [ "classesVanilla", "classesHeliDLC", "classesApex", "locked", "maxVehicles", "guerChance", "polrChance", "polsChance", "gendChance", "banditChance" ] ] call VEMFr_fnc_config ) params [ "_hp1", "_hp2", "_hp3", "_hp4", "_mV", "_guerCh", "_polrCh", "_polsCh", "_gendCh", "_bandCh" ];

                //if (random 100 <= _vc) then { for "_i" from 1 to ( 1 max random (_mv) ) } do    
                if ( ( _m isEqualTo 0 ) AND ( ( random 100) <= _guerCh ) OR ( _m isEqualTo 1 ) AND ( ( random 100) <= _polrCh ) OR ( _m isEqualTo 2 ) AND ( ( random 100) <= _polsCh ) OR ( _m isEqualTo 3 ) AND ( ( random 100) <= _gendCh ) OR ( _m isEqualTo 4 ) AND ( (random 100) <= _bandCh ) ) then
                    {
                        [ _this0, 1, format [ "adding a mean vehicle patrol to the invasion of %1 at %2", _ln, mapGridPosition _lp ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                        _classes = _hp1;
                        //if ( ( "Heli" call VEMFr_fnc_modAppID ) in ( getDLCs 1 ) ) then { _classes append _hp2 };
                         if ( ( "ApexEnabled" call VEMFr_fnc_config ) isEqualTo "yes" ) then { _classes append _hp3 };
                        /////////////////////
                        //private ["_croad","_direction"];
                        _ps = [ _lp, 0, 100, 0, 0, 300, 0 ] call bis_fnc_findSafePos;  
                        _roadList = _ps nearRoads 100;
                        _roadlist=_roadlist call BIS_fnc_arrayShuffle;     
                        _cRoad=_roadlist select 0;   
                        _roadConnectedTo = roadsConnectedTo _cRoad;   
                        _connectedRoad = _roadConnectedTo select 0; 
                        _direction = [_cRoad, _connectedRoad] call BIS_fnc_DirTo;   
                        _veh = createVehicle [ selectRandom _classes, _cRoad, [], 0, "NONE"];
                        _veh setdir _direction;   
                        _veh setPosATL [ ( getPos _veh ) select 0, ( getPos _veh ) select 1, 0 ];
                        //_veh setPos [(getPos _veh select 0), getPos _veh select 1, getPos _veh select 2];
                                        
                        if ( _mod isEqualTo "Epoch" ) then { _veh call EPOCH_server_setVToken };
                        if ( _hp4 isEqualTo "yes" ) then { _veh lock true };

                        _trrts = allTurrets [ _veh, true ];
                        
                        
                        _hlGrp = ( [ _lp, 1, ( ( count _trrts ) + ( _veh emptyPositions "commander" ) + 1 ), _m, _this0 ] call VEMFr_fnc_spawnVEMFrAI ) select 0;
                        {
                            if ( ( ( _veh emptyPositions "driver" ) isEqualTo 1 ) AND ( _x isEqualTo ( leader ( group _x ) ) ) ) then { _x moveInDriver _veh }
                                else
                                    {
                                        private "_path";
                                        {
                                            if ( isNull ( _veh turretUnit _x ) ) then { _path = _x };
                                        } forEach _trrts;

                                        if not ( isNil "_path" ) then { _x moveInTurret [ _veh, _path ] }
                                            else
                                                {
                                                    if ( ( _veh emptyPositions "commander" ) > 0 ) then { _x moveInCommander _veh };
                                                };
                                    };

                            _veh disableAI "LIGHTS";                              
                            _veh setPilotLight true;   
                            _nts pushBack _x;
                        } forEach ( units _hlGrp );

                        _wp = _hlGrp addWaypoint [ [ _lp select 0, _lp select 1, 50 ], 1, 1 ];
                        _wp setWaypointBehaviour "AWARE";
                        _wp setWaypointCombatMode "RED";
                        _wp setWaypointSpeed "LIMITED";
                        _wp setWaypointType "SAD";
                        //_wp setWaypointLoiterType "CIRCLE";
                        //_wp setWaypointLoiterRadius 200;
                        _hlGrp setCurrentWaypoint _wp;

                        [ _hlGrp ] ExecVM ( "signAI" call VEMFr_fnc_scriptPath );
                    };
                ////  End of vehicle patrol  //////////
                ///////////////////////////////////////
                
                
                // Place the crate if enabled
                if (_ms14 isEqualTo "yes") then { call _dSpwnCrt };

                // Place mines if enabled
                private [ "_mnsPlcd", "_mines" ];
                if ( ( _m isEqualTo 0 ) AND ( _guerM isEqualTo "yes" ) OR ( _m isEqualTo 1 ) AND ( _polrM isEqualTo "yes" ) OR ( _m isEqualTo 2 ) AND ( _polsM isEqualTo "yes" ) OR ( _m isEqualTo 3 ) AND ( _gendM isEqualTo "yes" ) OR ( _m isEqualTo 4 ) AND ( _banditM isEqualTo "yes" ) ) then
                //if ( _ms18 isEqualTo "yes" ) then
                    {
                        _mnsPlcd = [ _lp, 5, 100, _this0 ] call VEMFr_fnc_mines;
                        if not ( isNil "_mnsPlcd" ) then { [ _this0, 1, format [ "%1 mines placed at %2", count _mnsPlcd, _ln ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath ) }
                        else { [ _this0, 0, format [ "failed to place %1 mines at %2", count _mnsPlcd, _ln ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath ) };
                    };

                // Wait for Mission Completion
                _h = [ _nts, _this0 ] ExecVM ( "killedMonitor" call VEMFr_fnc_scriptPath );
                waitUntil { if ( scriptDone _h ) then { true } else { uiSleep 1; false } };

                [ "DynamicLocationInvasion", 1, format [ "mission in %1 has been completed!", _ln ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );

                if ( _ms12 isEqualTo "yes" ) then
                    {
                        _u = uiNamespace getVariable "VEMFrUsedLocs";
                        _u deleteAt (_u find _l);
                    };

                // Broadcast
                if ( _ms7 isEqualTo "yes" ) then
                    {
                        if ( _m isEqualTo 0 ) then { [ "ColorEAST", "MISSION ENDED", format [ "%1 @ %2 is now clear of %3 Guerillas", _ln, mapGridPosition _lp, worldName ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                        if ( _m isEqualTo 1 ) then { [ "ColorWEST", "MISSION ENDED", format [ "%1 @ %2 is now clear of %3 Police Forces", _ln, mapGridPosition _lp, worldName ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                        if ( _m isEqualTo 2 ) then { [ "ColorPink", "MISSION ENDED", format [ "%1 @ %2 is now clear of %3 Special Forces", _ln, mapGridPosition _lp, worldName ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                        if ( _m isEqualTo 3 ) then { [ "ColorBrown", "MISSION ENDED", format [ "%1 @ %2 is now clear of %3 Gendarmerie", _ln, mapGridPosition _lp, worldName ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                        if ( _m isEqualTo 4 ) then { [ "ColorYellow", "MISSION ENDED", format [ "%1 @ %2 is now clear of %3 bandits", _ln, mapGridPosition _lp, worldName ] ] ExecVM ( "notificationToClient" call VEMFr_fnc_scriptPath ) };
                    };

                // Deal with the 50s
                if not ( isNil "_cl50s" ) then
                    {
                        _d = ( [ [ "missionSettings", _this0 ], [ "cal50sDelete" ] ] call VEMFr_fnc_config ) select 0;
                        if ( _d isEqualTo "yes" ) then { { deleteVehicle _x } forEach _cl50s };
                        if ( _d isEqualTo "destroy" ) then { { _x setDamage 1 } forEach _cl50s };
                    };

                if not ( isNil "_mrkr" ) then { deleteMarker _mrkr };
                if ( _ms14 isEqualTo "no" ) then { call _dSpwnCrt };

                // Put a marker on the crate if enabled
                if not ( isNil "_crate" ) then
                    {
                        if not ( isNull _crate ) then
                            {
                                if not ( [ getPos _crate, 3 ] call VEMFr_fnc_playerNear ) then
                                    {
                                        if ( _ms5 isEqualTo "yes" ) then
                                            {
                                                // If night, attach a chemlight
                                                if ( sunOrMoon <= 0.35 ) then
                                                    {
                                                        [ _this0, 1, "attaching a chemlight to the crate" ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                                                        _lightType = selectRandom _ms15;
                                                        ( _lightType createVehicle ( position _crate ) ) attachTo [ _crate, [ 0, 0, 0 ] ];
                                                    } else
                                                    {
                                                        [ _this0, 1, "attaching smoke to the crate" ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                                                        // Attach smoke
                                                        _rndmColor = selectRandom _ms16;
                                                        ( createVehicle [ _rndmColor, getPos _crate, [], 0, "CAN_COLLIDE" ] ) attachTo [ _crate, [ 0, 0, 0 ] ];
                                                    };
                                            };

                                        if ( _ms6 isEqualTo "yes" ) then
                                            {
                                                private "_mrkr";
                                                _mrkr = createMarker [ format [ "VEMF_lootCrate_ID%1", random 9000 ], position _crate ];
                                                _mrkr setMarkerShape "ICON";
                                                _mrkr setMarkerType "mil_box";
                                                _mrkr setMarkerColor "colorBlack";
                                                _mrkr setMarkerText " Loot";
                                                [ _crate, _mrkr ] spawn
                                                    {
                                                        _crate = _this select 0;
                                                        _mrkr = _this select 1;
                                                        waitUntil { if ( [ getPos _crate, 3 ] call VEMFr_fnc_playerNear ) then { true } else { uiSleep 4; false } };
                                                        deleteMarker _mrkr;
                                                    };
                                            };
                                    };
                            } else
                            {
                                [ _this0, 0, "isNull _crate!" ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                            };
                    } else
                    {
                        [ _this0, 0, "isNil _crate!" ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                    };


                // Explode or remove the mines
                if not ( isNil "_mnsPlcd" ) then
                    {
                        if ( _ms19 isEqualTo "explode" ) then
                            {
                                [ _this0, _ln, _mnsPlcd ] spawn
                                    {
                                        uiSleep ( 5 + ( random 2 ) );
                                        [ _this select 0, 1, format [ "starting to explode all %1 mines at %2", count ( _this select 2 ), _this select 1 ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                                        {
                                            if not ( isNull _x ) then
                                                {
                                                    _x setDamage 1;
                                                    uiSleep ( 1.25 + ( random 3.5 ) );
                                                };
                                        } forEach ( _this select 2 );
                                        [ _this select 0, 1, format [ "successfully exploded all %1 mines at %2", count ( _this select 2 ), ( _this select  1 ) ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                                    };

                                _mnsPlcd = nil;
                            };
                        if ( _ms19 isEqualTo "yes" ) then
                            {
                                [ _mnsPlcd ] spawn
                                    {
                                        {
                                            if not ( isNull _x ) then { deleteVehicle _x };
                                        } forEach ( _this select 0 );
                                    };

                                [ _this0, 1, format [ "successfully deleted all %1 mines at %2", count _mnsPlcd, _ln ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                            };
                    };

                // If enabled, fix all the lights
                if ( _ms9 isEqualTo "yes" ) then
                    {
                        {
                            if ( ( damage _x ) > 0.94 ) then
                            {
                                _x setDamage 0;
                                uiSleep ( 1 + ( random 2 ) );
                            };
                        } forEach ( nearestObjects [ _lp, [ "Lamps_Base_F", "PowerLines_base_F", "Land_PowerPoleWooden_L_F", "Land_LampDecor_F", "Land_LampShabby_F", "Land_LampStreet_small_F", "Land_LampStreet_F", "Land_LampSolar_F", "Land_LampAirport_F", "land_LampHalogen_F", "Land_LampHarbour_F", "Land_LampStadium_F", "Land_PowerLine_01_pole_small_F", "Land_fs_roof_F" ], _ms10 ] );
                // tanoa  Land_PowerLine_01_pole_lamp_F    
                    };
            } else
            { // If done waiting, and no players were detected
                [ _this0, 1, format [ "invasion of %1 @ %2 timed out.", _ln, mapGridPosition _lp ] ] ExecVM ( "log" call VEMFr_fnc_scriptPath );
                if not ( isNil "_mrkr" ) then { deleteMarker _mrkr };
                _arr = uiNamespace getVariable "VEMFrUsedLocs";
                _arr deleteAt ( _arr find _l );
            };
        };
    };

    VEMFrInvasionCount = VEMFrInvasionCount - 1;
    VEMFrMissionCount = VEMFrMissionCount - 1;
     

     


  15. I've used DMS and Occupation for a couple years now, and I've never seen this issue:  The static helicopters I've placed at specific locations show up, fly around, but their rotors don't move, and they just fly around in small, strange circles. Sometimes you can even see the crew floating behind the helos. Has anyone else ever dealt with this? Nothing shows up in the report, so I am not quite sure how to deal with it. 


  16. When complete, the files should all be located in your Mission file (Chernarus.pbo, for example). Everything is contained within that PBO, so when players connect, the first thing that happens is: they automatically download the PBO. Not sure if that helps or not.

     

    Unfortunately, unless you can post a copy of your server report (in a Spoiler format, please), there's not much else anyone can do in helping you troubleshoot the issue.


  17. Running ChernarusRedux, and even with help from some pros, I can't seem to get Radiation working on my map. The symbol is there (in the mission.sqm), but no radiation effect. Here is what I have in my config, if anyone has any ideas.

     

        class ChernarusRedux: Altis 
        {
            class FireFlies: FireFlies
            {
                enable = 0;
            };

            class Anomalies: Anomalies
            {
                enable = 0;
            };

            class Breathing: Breathing
            {
                enable = 0;
            };

            class Snow: Snow
            {
                enable = 0;
                surfaces[] = {"#nam_snow"};
            };

            class Radiation: Radiation
            {
                enable = 1;
                contaminatedZones[] = 
                {
                    {{4579, 10220, 0},     400,     500}
                };
            };

            class Temperature: Temperature
            {
                daytimeTemperature[] = {-2.00,-1.77,-1.12,-0.10,1.24,2.78,4.40,6.00,7.46,8.65,9.50,9.90,9.90,9.50,8.65,7.46,6.00,4.40,2.78,1.24,-0.10,-1.12,-1.77,-2.00,-2.00};
            };
        };
    };


  18. Can't seem to fill water bottles at pumps, not sure why. My config reads as such:

     

    class CleanWaterSource
        {
            name = "Water cooler";
            models[] =     
            {
                "watercooler",
                "waterpump_01_f",
                "wellpump",
                "Land_Pumpa",
                "CUP_A1_pumpa",
                "CUP_A2_pumpa",
                "CUP_A2_wellpump"
            };
        };

     

    Any ideas?


  19. I know it's been a few months since the last post, but after installing, I have group spawns, but they stand in one place, will engage players, but will not move or even turn around. They stand completely still. Has anyone else experienced this?

     


  20. 57 minutes ago, DEH4NK said:

    Your code shown above is not a static mission. This is a dynamic mission (bandit).

     

    I hadn't realized that, but you are correct. I feel like I remember there being a way to make it static, though. I thought it was something like:

     

    _pos = [ [12345,54321,0] , [2345,5432,0] , [76543,3245,0] ];

     

     


  21. And  I guess this also begs the question: If I add @newmap to my start, change the pbo in the server config, is that all i need to do on the server side of things?

     

    UPDATE: Apparently not. I have tried at least 20 times today to make Al Rayak work on the server. No matter what I do, the report tells me: "Cannot find bin\config.bin/CfgWorlds.map"

×