SHARE
TWEET

onPlayerRespawn

Pwner-Actual Mar 8th, 2019 (edited) 71 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  2. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  3. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  4.  
  5.                                 DO NOT MODIFY WHAT IS BELOW
  6.  
  7. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  8. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  9. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
  10. // =======================================================================================
  11. // CLIENT &  HOST ONLY
  12. // =======================================================================================
  13. if (!hasInterface) exitWith {};
  14. // =======================================================================================
  15. // RESPAWN TYPES 4 & 5 PARTICULARITIES
  16. // =======================================================================================
  17. private _rType = 0 call BIS_fnc_missionRespawnType;
  18. if ((_rType == 4) || (_rType == 5)) then {
  19. // =======================================================================================
  20. //      REMOVE ACTIONS FOR DEAD PLAYER FOR RESPAWN TYPES 4 AND 5 (INTO A.I. UNIT)
  21. //      onPlayerKilled.sqf DOES NOT SEEM TO REMOVE THE ACTION ON DEAD UNIT
  22. // =======================================================================================
  23. [0,1,2,3,4,5,6,7,8] apply {[_this select 1, _x] call BIS_fnc_holdActionRemove;};
  24. // =======================================================================================
  25. //      GIVE BACK PLAYER-SPECIFIC EVENT HANDLERS THAT DON'T CARRY OVER
  26. // =======================================================================================
  27. //          EVENT HANDLERS — WEAPON ACCESSORIES ANIM — INVENTORY OPENED
  28. // =======================================================================================
  29. if (UAF_gunMod == 1) then {
  30.     gunModEH = player addEventHandler ["InventoryOpened",
  31.         {
  32.         _acc    = player weaponAccessories primaryWeapon player;
  33.         _wpn    = primaryWeapon player;
  34.         player  setVariable ["mySetup",[_wpn,_acc]];       
  35.         }
  36.     ];
  37. // =======================================================================================
  38. //          EVENT HANDLERS — WEAPON ACCESSORIES ANIM — INVENTORY CLOSED
  39. // =======================================================================================
  40.     gunMod2EH = player addEventHandler ["InventoryClosed",
  41.         {_this execVM "UAF\gunMod.sqf";}
  42.     ];
  43. };
  44. // =======================================================================================
  45. //          EVENT HANDLERS — VIEWDISTANCE
  46. // =======================================================================================
  47. if  (UAF_forceVD == 1) then {
  48.     dynVDEH2 = player addEventHandler ["GetInMan",
  49.         {
  50.         params ["_unit", "_role", "_vehicle", "_turret"];
  51.         if      (_vehicle isKindOf "ParachuteBase")
  52.         then    {
  53.                 setViewDistance UAF_paraVD;
  54.                 if (UAF_matchOVD == 1) then {setObjectViewDistance UAF_paraVD};
  55.                 };
  56.         }
  57.     ];
  58. };
  59. // =======================================================================================
  60. //      EVENT HANDLERS — LOCATION OUTPUT — SHOW LOCATION NAME AND TIME WHEN MAP CLOSED
  61. // ======================================================================================= 
  62. if  (UAF_locName == 1) then {
  63.     private _nearestLoc = nearestLocation [player, ""];
  64.     player setVariable ["myLocation", _nearestLoc];
  65. };
  66. // =======================================================================================
  67. //      EVENT HANDLERS — GETINMAN / SEATSWITCHEDMAN — QUALIFIED CREW
  68. // =======================================================================================
  69. if (UAF_roleQualif == 1) then {
  70.     qualifCrewEH = player addEventHandler ["GetInMan",
  71.         {
  72.         params ["_unit", "_role", "_vehicle", "_turret"];
  73.         // driver and gunner and copilot
  74.         switch (_role) do {
  75.             case "driver":
  76.                 {
  77.                 if  ((_vehicle isKindOf "Helicopter") && !(_vehicle isKindOf "ParachuteBase") && !(["civil", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_heliPilots)) then {
  78.                             moveOut _unit;
  79.                             if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified helicopter pilot</t>"]};
  80.                     };
  81.                 if  (_vehicle isKindOf "Plane") then {
  82.                         if  ((["VTOL",          typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_vtolPilots))   then {
  83.                                 moveOut _unit;
  84.                                 if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified VTOL pilot</t>"]};
  85.                             };
  86.                         if  ((["Plane_Fighter", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_jetPilots))    then {
  87.                                 moveOut _unit;
  88.                                 if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified fighter pilot</t>"]};
  89.                             };
  90.                         if  ((["Plane_CAS",     typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_jetPilots))    then {
  91.                                 moveOut _unit;
  92.                                 if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified fighter pilot</t>"]};
  93.                             };
  94.                     };
  95.                 if  ((_vehicle isKindOf "Tank") && !(typeOf _unit in UAF_tankDrivers)) then {
  96.                         moveOut _unit;
  97.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified tank driver</t>"]};
  98.                     };
  99.                 if  ((_vehicle isKindOf "Wheeled_APC_F") && !(typeOf _unit in UAF_apcDrivers)) then {
  100.                         moveOut _unit;
  101.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified APC driver</t>"]};
  102.                     };
  103.                 };
  104.             case "gunner":
  105.                 {
  106.                 if  ((_vehicle isKindOf "Helicopter") && (!(_vehicle isKindOf "ParachuteBase")) && !(["civil", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_heliGuns)) then {
  107.                         moveOut _unit;
  108.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified helicopter crewman</t>"]};
  109.                     };
  110.                 if  ((_vehicle isKindOf "Plane") && (["VTOL", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_vtolGuns)) then {
  111.                         moveOut _unit;
  112.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified VTOL crewman</t>"]};
  113.                     };
  114.                 if  ((_vehicle isKindOf "Tank") && !(typeOf _unit in UAF_tankGuns)) then {
  115.                         moveOut _unit;
  116.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified tank crewman</t>"]};
  117.                     };
  118.                 if  ((_vehicle isKindOf "Wheeled_APC_F") && !(typeOf _unit in UAF_apcGuns)) then {
  119.                         moveOut _unit;
  120.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified APC crewman</t>"]};
  121.                     };
  122.                 };
  123.             };
  124.         // commander
  125.         switch (_turret) do {
  126.             case [0,0]:
  127.                 {
  128.                 if  ((_vehicle isKindOf "Tank") && !(typeOf _unit in UAF_tankGuns)) then {
  129.                         moveOut _unit;
  130.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified tank crewman</t>"]};
  131.                     };
  132.                 if  ((_vehicle isKindOf "Wheeled_APC_F") && !(typeOf _unit in UAF_apcGuns)) then {
  133.                         moveOut _unit;
  134.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified APC crewman</t>"]};
  135.                     };
  136.                 };
  137.             };
  138.         }
  139.     ];
  140.    
  141.     qualifCrewEH2 = player addEventHandler ["SeatSwitchedMan",
  142.         {
  143.         params ["_unit", "_unit2", "_vehicle"];
  144.         private _role = (assignedVehicleRole _unit) select 0;
  145.         switch (_role) do {
  146.             case "driver":
  147.                 {
  148.                 if  ((_vehicle isKindOf "Helicopter") && !(_vehicle isKindOf "ParachuteBase") && !(["civil", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_heliPilots)) then {
  149.                         moveOut _unit;
  150.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified helicopter pilot</t>"]};
  151.                     };
  152.                 if  (_vehicle isKindOf "Plane") then {
  153.                         if  ((["VTOL",          typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_vtolPilots))   then {
  154.                                 moveOut _unit;
  155.                                 if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified VTOL pilot</t>"]};
  156.                             };
  157.                         if  ((["Plane_Fighter", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_jetPilots))    then {
  158.                                 moveOut _unit;
  159.                                 if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified fighter pilot</t>"]};
  160.                             };
  161.                         if  ((["Plane_CAS",     typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_jetPilots))    then {
  162.                                 moveOut _unit;
  163.                                 if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified fighter pilot</t>"]};
  164.                             };
  165.                     };
  166.                 if  ((_vehicle isKindOf "Tank") && !(typeOf _unit in UAF_tankDrivers)) then {
  167.                         moveOut _unit;
  168.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified tank driver</t>"]};
  169.                     };
  170.                 if  ((_vehicle isKindOf "Wheeled_APC_F") && !(typeOf _unit in UAF_apcDrivers)) then {
  171.                         moveOut _unit;
  172.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified APC driver</t>"]};
  173.                     };
  174.                 };
  175.             // gunner and commander
  176.             case "Turret":
  177.                 {
  178.                 if  ((_vehicle isKindOf "Helicopter") && (!(_vehicle isKindOf "ParachuteBase")) && !(["civil", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_heliGuns)) then {
  179.                         moveOut _unit;
  180.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified helicopter crewman</t>"]};
  181.                     };
  182.                 if  ((_vehicle isKindOf "Plane") && (["VTOL", typeOf _vehicle] call BIS_fnc_inString) && !(typeOf _unit in UAF_vtolGuns)) then {
  183.                         moveOut _unit;
  184.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified VTOL crewman</t>"]};
  185.                     };
  186.                 if  ((_vehicle isKindOf "Tank") && !(typeOf _unit in UAF_tankGuns)) then {
  187.                         moveOut _unit;
  188.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified tank crewman</t>"]};
  189.                     };
  190.                 if  ((_vehicle isKindOf "Wheeled_APC_F") && !(typeOf _unit in UAF_apcGuns)) then {
  191.                         moveOut _unit;
  192.                         if (UAF_roleHint == 1) then {hintSilent parseText format ["<t size='1.15' color='#FFFF00'>You are not a qualified APC crewman</t>"]};
  193.                     };
  194.                 };
  195.             };
  196.         }
  197.     ];
  198. };
  199. // =======================================================================================
  200. // END OF RESPAWN TYPES 4 & 5
  201. // =======================================================================================
  202. };
  203. // =======================================================================================
  204. // RESPAWN TYPES 2 & 3
  205. // =======================================================================================
  206. //      PERKS & ATTRIBUTES
  207. // =======================================================================================
  208. //          PERKS & ATTRIBUTES — GOD MODE
  209. // =======================================================================================
  210. if (UAF_godMode == 1) then {player allowDamage false};
  211. // =======================================================================================
  212. //          PERKS & ATTRIBUTES — NO ROGUE PLAYERS
  213. // =======================================================================================
  214. if (UAF_noRogue == 1) then {player addEventHandler ["HandleRating", {0}];};
  215. // =======================================================================================
  216. //          PERKS & ATTRIBUTES — WEAPON LOWERED
  217. // =======================================================================================
  218. if ((UAF_wpnLow == 1) && (!(weaponLowered player))) then {player action ["WeaponOnBack", player]};
  219. // =======================================================================================
  220. //      ADD ACTIONS ( https://community.bistudio.com/wiki/addAction )
  221. // =======================================================================================
  222. //          ADD ACTIONS — TELEPORT
  223. // =======================================================================================
  224. if  (UAF_teleport == 1) then {
  225.     UAF_tele = [
  226.         player,                                                                             // Object the action is attached to
  227.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Teleport</t>",           // Title of the action
  228.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_takeOff2_ca.paa",                    // Idle icon shown on screen
  229.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_takeOff2_ca.paa",                    // Progress icon shown on screen
  230.         "(alive _target)",                                                                  // Conditions for the action to be shown
  231.         "(alive _target)",                                                                  // Conditions for the action to progress
  232.         {},                                                                                 // Code executed when action starts
  233.         {},                                                                                 // Code executed on every progress tick
  234.         {
  235.             openMap     [true, false];
  236.             hintSilent parseText format ["<t size='1.15' color='#FFFF00'>Select your destination</t>"];
  237.             onMapSingleClick "
  238.                 if      (isNull objectParent player)
  239.                 then    {
  240.                         private _vel    = velocity  player;
  241.                         private _dir    = direction player;                    
  242.                         private _realZ = getPos player;
  243.                         player setDir (getDir player);
  244.                         player setPos [(_pos select 0),(_pos select 1),(_realZ select 2)];                     
  245.                         player setVelocity [(_vel select 0)+(sin _dir),(_vel select 1)+(cos _dir),(_vel select 2)];
  246.                         }
  247.                 else    {
  248.                         private _vel    = velocity  (objectParent player);
  249.                         private _dir    = direction (objectParent player);                     
  250.                         private _realZ = getPos (objectParent player);
  251.                         (objectParent player) setDir (getDir (objectParent player));
  252.                         (objectParent player) setPos [(_pos select 0),(_pos select 1),(_realZ select 2)];                      
  253.                         (objectParent player) setVelocity [(_vel select 0)+(sin _dir),(_vel select 1)+(cos _dir),(_vel select 2)];
  254.                         };
  255.                 hintSilent '';
  256.                 openMap [false,false];
  257.                 onMapSingleClick '';
  258.             ";
  259.         },                                                                                  // Code executed on completion
  260.         {},                                                                                 // Code executed on interrupted
  261.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  262.         0.5,                                                                                // Action duration [s]
  263.         0,                                                                                  // Priority
  264.         false,                                                                              // Remove on completion
  265.         false                                                                               // Show in unconscious state
  266.     ] call BIS_fnc_holdActionAdd;
  267. };
  268. // =======================================================================================
  269. //      ADD ACTIONS — BASE JUMPING
  270. // =======================================================================================
  271. if (UAF_baseJump == 1) then {  
  272.     UAF_baseJ = [
  273.         player,                                                                             // Object the action is attached to
  274.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Deploy parachute</t>",   // Title of the action
  275.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_takeOff1_ca.paa",                    // Idle icon shown on screen
  276.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_takeOff1_ca.paa",                    // Progress icon shown on screen
  277.         "(
  278.             (alive _target)
  279.             &&
  280.             (backpack _target == 'B_parachute')
  281.             &&
  282.             (vehicle _target == _target)
  283.             &&
  284.             (isTouchingGround _target)
  285.         )",                                                                                 // Conditions for the action to be shown
  286.         "(alive _target)",                                                                  // Conditions for the action to progress
  287.         {},                                                                                 // Code executed when action starts
  288.         {},                                                                                 // Code executed on every progress tick
  289.         {
  290.             private _alt    = getPos _target select 2;
  291.             private _hgt    = _alt + 20;
  292.             private _vel    = velocity  _target;
  293.             private _dir    = direction _target;
  294.             private _spd    = 1;
  295.             playSound "UAF_baseJ";
  296.             _target setVelocity [(_vel select 0)+(sin _dir*_spd),(_vel select 1)+(cos _dir*_spd),(_vel select 2)+_hgt];
  297.             sleep 0.1;             
  298.             _target action ["OpenParachute", _target];
  299.         },                                                                                  // Code executed on completion
  300.         {},                                                                                 // Code executed on interrupted
  301.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  302.         0.5,                                                                                // Action duration [s]
  303.         0,                                                                                  // Priority
  304.         false,                                                                              // Remove on completion
  305.         false                                                                               // Show in unconscious state
  306.     ] call BIS_fnc_holdActionAdd;
  307. };
  308. // =======================================================================================
  309. //      ADD ACTIONS — DYNAMIC GROUP MEMBERSHIP
  310. // =======================================================================================
  311. //              ADD ACTIONS — DYNAMIC GROUP MEMBERSHIP — JOIN COMBATANT PLAYER'S GROUP
  312. // =======================================================================================
  313. if (UAF_DGM == 1) then {
  314.     UAF_DGM_J = [
  315.         player,                                                                             // Object the action is attached to
  316.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Join my group</t>",      // Title of the action
  317.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Idle icon shown on screen
  318.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Progress icon shown on screen
  319.         "(
  320.             (vehicle _target == _target)
  321.             &&
  322.             (vehicle cursorTarget == cursorTarget)
  323.             &&
  324.             !(isPlayer cursorTarget)
  325.             &&
  326.             (alive _target)
  327.             &&
  328.             (alive cursorTarget)
  329.             &&
  330.             (cursorTarget isKindOf 'Man')
  331.             &&
  332.             (group _target != group cursorTarget)
  333.             &&
  334.             ((side(group _target)) getFriend (side(group cursorTarget)) >= 0.6)
  335.             &&
  336.             (side _target != SideEnemy)
  337.             &&
  338.             (side cursorTarget != SideEnemy)
  339.             &&
  340.             (side (group cursorTarget) != civilian)
  341.             &&
  342.             (side (cursorTarget) != civilian)
  343.             &&
  344.             (side (group _target) != civilian)
  345.             &&
  346.             (({(alive _x) && !(captive _x)} count units group _target) <= UAF_dgmCap)
  347.             &&
  348.             (_target distance cursorTarget < 3)
  349.             &&
  350.             !(cursorTarget in UAF_dgmEx)
  351.         )",                                                                                 // Conditions for the action to be shown
  352.         "(
  353.             (alive _target)
  354.             &&
  355.             (alive cursorTarget)
  356.         )",                                                                                 // Conditions for the action to progress
  357.         {
  358.             if !(weaponLowered player) then {_target action ["WeaponOnBack", _target];};
  359.         },                                                                                  // Code executed when action starts
  360.         {},                                                                                 // Code executed on every progress tick
  361.         {
  362.             [cursorTarget,""] remoteExec ["switchMove",[0,-2] select isDedicated];
  363.             [cursorTarget] joinSilent grpNull;
  364.             [cursorTarget] joinSilent (group _target);
  365.             cursorTarget setBehaviour "AWARE";
  366.             cursorTarget setUnitPos "AUTO";
  367.             if      ((UAF_useLights == 1) && (UAF_noTeamFL == 1))
  368.             then    {cursorTarget enableGunLights "forceOff";};
  369.         },                                                                                  // Code executed on completion
  370.         {},                                                                                 // Code executed on interrupted
  371.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  372.         0.5,                                                                                // Action duration [s]
  373.         0,                                                                                  // Priority
  374.         false,                                                                              // Remove on completion
  375.         false                                                                               // Show in unconscious state
  376.     ] call BIS_fnc_holdActionAdd;
  377. // =======================================================================================
  378. //              ADD ACTIONS — DYNAMIC GROUP MEMBERSHIP — LEAVE COMBATANT PLAYER'S GROUP
  379. // =======================================================================================
  380.     UAF_DGM_L = [
  381.         player,                                                                             // Object the action is attached to
  382.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Leave my group</t>",     // Title of the action
  383.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Idle icon shown on screen
  384.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Progress icon shown on screen
  385.         "(
  386.             (alive _target)
  387.             &&
  388.             (alive cursorTarget)
  389.             &&
  390.             (group _target == group cursorTarget)
  391.             &&
  392.             (_target distance cursorTarget < 4)
  393.             &&
  394.             !(isPlayer cursorTarget)
  395.             &&
  396.             !(captive cursorTarget)
  397.             &&
  398.             !(cursorTarget in UAF_dgmEx)
  399.         )",                                                                                 // Conditions for the action to be shown
  400.         "(
  401.             (alive _target)
  402.             &&
  403.             (alive cursorTarget)
  404.         )",                                                                                 // Conditions for the action to progress
  405.         {
  406.             if !(weaponLowered player) then {_target action ["WeaponOnBack", _target];};
  407.         },                                                                                  // Code executed when action starts
  408.         {},                                                                                 // Code executed on every progress tick
  409.         {
  410.             [_target,"Acts_PercMstpSlowWrflDnon_handup2b"] remoteExec ["switchMove",[0,-2] select isDedicated];
  411.             [cursorTarget,""] remoteExec ["switchMove",[0,-2] select isDedicated];
  412.             [cursorTarget] joinSilent grpNull;
  413.             cursorTarget setBehaviour "AWARE";
  414.             cursorTarget setUnitPos "AUTO";
  415.             if      (UAF_useLights == 1)
  416.             then    {cursorTarget enableGunLights "forceOn";};
  417.         },                                                                                  // Code executed on completion
  418.         {},                                                                                 // Code executed on interrupted
  419.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  420.         0.5,                                                                                // Action duration [s]
  421.         0,                                                                                  // Priority
  422.         false,                                                                              // Remove on completion
  423.         false                                                                               // Show in unconscious state
  424.     ] call BIS_fnc_holdActionAdd;
  425. };
  426. // =======================================================================================
  427. //              ADD ACTIONS — DYNAMIC GROUP MEMBERSHIP — CIV FOLLOW COMBATANT PLAYER'S GROUP
  428. // =======================================================================================
  429. if (UAF_DGMC == 1) then {
  430.     UAF_DGMC_J = [
  431.         player,                                                                             // Object the action is attached to
  432.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Follow me</t>",          // Title of the action
  433.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Idle icon shown on screen
  434.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Progress icon shown on screen
  435.         "(
  436.             (vehicle _target == _target)
  437.             &&
  438.             (vehicle cursorTarget == cursorTarget)
  439.             &&
  440.             !(isPlayer cursorTarget)
  441.             &&
  442.             (alive _target)
  443.             &&
  444.             (alive cursorTarget)
  445.             &&
  446.             (cursorTarget isKindOf 'Man')
  447.             &&
  448.             (group _target != group cursorTarget)
  449.             &&
  450.             (side _target != SideEnemy)
  451.             &&
  452.             (side (group cursorTarget) == civilian)
  453.             &&
  454.             (side (group _target) != civilian)
  455.             &&
  456.             (({(alive _x) && (captive _x)} count units group _target) < UAF_dgmcCap)
  457.             &&
  458.             (_target distance cursorTarget < 3)
  459.             &&
  460.             (animationState cursorTarget != 'acts_executionvictim_loop')
  461.             &&
  462.             !(cursorTarget in UAF_dgmcEx)
  463.         )",                                                                                 // Conditions for the action to be shown
  464.         "(
  465.             (alive _target)
  466.             &&
  467.             (alive cursorTarget)
  468.         )",                                                                                 // Conditions for the action to progress
  469.         {
  470.             if !(weaponLowered player) then {_target action ["WeaponOnBack", _target];};
  471.         },                                                                                  // Code executed when action starts
  472.         {},                                                                                 // Code executed on every progress tick
  473.         {
  474.             [cursorTarget,""] remoteExec ["switchMove",[0,-2] select isDedicated];
  475.             [cursorTarget] joinSilent grpNull;
  476.             [cursorTarget] joinSilent (group _target);
  477.             cursorTarget setBehaviour "AWARE";
  478.             cursorTarget setUnitPos "AUTO";
  479.             cursorTarget setCaptive true;
  480.         },                                                                                  // Code executed on completion
  481.         {},                                                                                 // Code executed on interrupted
  482.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  483.         0.5,                                                                                // Action duration [s]
  484.         0,                                                                                  // Priority
  485.         false,                                                                              // Remove on completion
  486.         false                                                                               // Show in unconscious state
  487.     ] call BIS_fnc_holdActionAdd;
  488. // =======================================================================================
  489. //              ADD ACTIONS — DYNAMIC GROUP MEMBERSHIP — CIV LEAVE COMBATANT PLAYER'S GROUP
  490. // =======================================================================================
  491.     UAF_DGMC_L = [
  492.         player,                                                                             // Object the action is attached to
  493.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Stay here</t>",          // Title of the action
  494.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Idle icon shown on screen
  495.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",                     // Progress icon shown on screen
  496.         "(
  497.             (alive _target)
  498.             &&
  499.             (alive cursorTarget)
  500.             &&
  501.             (group _target == group cursorTarget)
  502.             &&
  503.             (_target distance cursorTarget < 4)
  504.             &&
  505.             !(isPlayer cursorTarget)
  506.             &&
  507.             (captive cursorTarget)
  508.             &&
  509.             !(cursorTarget in UAF_dgmcEx)
  510.             &&
  511.             (animationState cursorTarget != 'acts_executionvictim_loop')
  512.         )",                                                                                 // Conditions for the action to be shown
  513.         "(
  514.             (alive _target)
  515.             &&
  516.             (alive cursorTarget)
  517.         )",                                                                                 // Conditions for the action to progress
  518.         {
  519.             if !(weaponLowered player) then {_target action ["WeaponOnBack", _target];};
  520.         },                                                                                  // Code executed when action starts
  521.         {},                                                                                 // Code executed on every progress tick
  522.         {
  523.             [cursorTarget,""] remoteExec ["switchMove",[0,-2] select isDedicated];
  524.             [cursorTarget] joinSilent createGroup civilian;
  525.             cursorTarget setBehaviour "AWARE";
  526.             cursorTarget setUnitPos "AUTO";
  527.         },                                                                                  // Code executed on completion
  528.         {},                                                                                 // Code executed on interrupted
  529.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  530.         0.5,                                                                                // Action duration [s]
  531.         0,                                                                                  // Priority
  532.         false,                                                                              // Remove on completion
  533.         false                                                                               // Show in unconscious state
  534.     ] call BIS_fnc_holdActionAdd;
  535. };
  536. // =======================================================================================
  537. //      ADD ACTIONS — HOSTAGE RESCUE
  538. // =======================================================================================
  539. if (UAF_hostages == 1) then {
  540.     UAF_hos = [
  541.         player,                                                                             // Object the action is attached to
  542.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Free the hostage</t>",   // Title of the action
  543.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_unbind_ca.paa",                      // Idle icon shown on screen
  544.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_unbind_ca.paa",                      // Progress icon shown on screen
  545.         "(
  546.             (alive _target)
  547.             &&
  548.             (alive cursorTarget)
  549.             &&
  550.             (animationState cursorTarget == 'acts_executionvictim_loop')
  551.             &&
  552.             (_target distance cursorTarget <= 1)
  553.             &&
  554.             ((side(group _target)) getFriend (side(group cursorTarget)) >= 0.6)
  555.             &&
  556.             (stance _target != 'PRONE')
  557.         )",                                                                                 // Conditions for the action to be shown
  558.         "(
  559.             (alive _target)
  560.             &&
  561.             (alive cursorTarget)
  562.         )",                                                                                 // Conditions for the action to progress
  563.         {
  564.             if  (stance _target == "STAND") then {
  565.                 [_this select 0,"AmovPercMstpSlowWrflDnon_AmovPknlMstpSlowWrflDnon"]
  566.                 remoteExec ["switchMove",[0,-2] select isDedicated];
  567.                 };
  568.         },                                                                                  // Code executed when action starts
  569.         {},                                                                                 // Code executed on every progress tick
  570.         {
  571.             [_this select 0,"AinvPknlMstpSrasWrflDnon_Putdown_AmovPknlMstpSrasWrflDnon"]
  572.                 remoteExec ["switchMove",[0,-2] select isDedicated];
  573.             [cursorTarget,"Acts_ExecutionVictim_Unbow"]
  574.                 remoteExec ["switchMove",[0,-2] select isDedicated];
  575.             cursorTarget setCaptive false;
  576.             sleep 1;
  577.             if !(weaponLowered player) then {_target action ["WeaponOnBack", _target];};
  578.             cursorTarget enableAI "AUTOCOMBAT";
  579.             cursorTarget enableAI "AUTOTARGET";
  580.             cursorTarget enableAI "TARGET";
  581.             cursorTarget enableAI "MOVE";
  582.             cursorTarget enableAI "FSM";
  583.         },                                                                                  // Code executed on completion
  584.         {},                                                                                 // Code executed on interrupted
  585.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  586.         0.5,                                                                                // Action duration [s]
  587.         0,                                                                                  // Priority
  588.         false,                                                                              // Remove on completion
  589.         false                                                                               // Show in unconscious state
  590.     ] call BIS_fnc_holdActionAdd;
  591. };
  592. // =======================================================================================
  593. //      ADD ACTIONS — DEBUG HINT
  594. // =======================================================================================
  595. if (UAF_debug == 1) then {
  596.     UAF_debugAct = [
  597.         player,                                                                             // Object the action is attached to
  598.         "<t size='1.15' font='RobotoCondensedBold' color='#FFFF00'>Debug Info</t>",         // Title of the action
  599.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa",                        // Idle icon shown on screen
  600.         "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa",                        // Progress icon shown on screen
  601.         "alive _target",                                                                    // Conditions for the action to be shown
  602.         "alive _target",                                                                    // Conditions for the action to progress
  603.         {},                                                                                 // Code executed when action starts
  604.         {},                                                                                 // Code executed on every progress tick
  605.         {
  606.             // delete previous markers
  607.             private _clientID = owner player;      
  608.             // markers created with client ID attached to marker name
  609.             allMapMarkers apply {
  610.                 if ([format["_ID%1",_clientID], _x] call BIS_fnc_inString)
  611.                 then {deleteMarkerLocal _x;};
  612.                 };
  613.            
  614.             // get array of empty vehicles (no crew alive instead of side civilian)
  615.             private _empVeh = [];
  616.             private _veh = (vehicles - entities "WeaponHolderSimulated" - allDead);
  617.             for [{_i=(count _veh)-1},{_i>-1},{_i=_i-1}] do {
  618.                     if  ({alive _x} count crew (_veh select _i) < 1) then {
  619.                         _empVeh append [(_veh select _i)];
  620.                         };
  621.                 };
  622.                
  623.             // show hint
  624.             hintSilent parseText format
  625.             [
  626.             "
  627.             <t size='2' color='#D4FF00' align='Center'>DEBUG INFO</t>
  628.             <br/><br/>
  629.             <t size='1.15' color='#FFFF00' align='Left'>DATE</t>   
  630.             <t size='1.15' color='#FFFF00' align='Right'>%1-%2-%3</t>          
  631.             <br/>
  632.             <t size='1.15' color='#FFFFFF' align='Left'>TIME</t>   
  633.             <t size='1.15' color='#FFFFFF' align='Right'>%4</t>
  634.             <br/>
  635.             <t size='1.15' color='#FFFF00' align='Left'>ELAPSED TIME</t>
  636.             <t size='1.15' color='#FFFF00' align='Right'>%5 seconds</t>
  637.             <br/>
  638.             <t size='1.15' color='#FFFFFF' align='Left'>GRID COORDINATES</t>
  639.             <t size='1.15' color='#FFFFFF' align='Right'>%6</t>
  640.             <br/>
  641.             <t size='1.15' color='#FFFF00' align='Left'>NEAREST LOCATION</t>
  642.             <t size='1.15' color='#FFFF00' align='Right'>%7</t>
  643.             <br/>
  644.             <t size='1.15' color='#FFFFFF' align='Left'>VIEW DISTANCE</t>
  645.             <t size='1.15' color='#FFFFFF' align='Right'>%8 meters</t>
  646.             <br/>
  647.             <t size='1.15' color='#FFFF00' align='Left'>PLAYER SIDE</t>
  648.             <t size='1.15' color='#FFFF00' align='Right'>%9</t>
  649.             <br/>
  650.             <t size='1.15' color='#FFFFFF' align='Left'>PLAYER FACTION</t>
  651.             <t size='1.15' color='#FFFFFF' align='Right'>%10</t>
  652.             <br/>
  653.             <t size='1.15' color='#FFFF00' align='Left'>PLAYER DAMAGE</t>
  654.             <t size='1.15' color='#FFFF00' align='Right'>%11 %12</t>
  655.             <br/>
  656.             <t size='1.15' color='#FFFFFF' align='Left'>PLAYER COUNT</t>
  657.             <t size='1.15' color='#FFFFFF' align='Right'>%13 / %14</t>
  658.             <br/>
  659.             <t size='1.15' color='#FFFF00' align='Left'>HEADLESS CLIENTS</t>
  660.             <t size='1.15' color='#FFFF00' align='Right'>%15</t>
  661.             <br/>
  662.             <t size='1.15' color='#FFFFFF' align='Left'>ALL MEN COUNT</t>
  663.             <t size='1.15' color='#FFFFFF' align='Right'>%16</t>
  664.             <br/>
  665.             <t size='1.15' color='#FFFF00' align='Left'>VEHICLE COUNT</t>
  666.             <t size='1.15' color='#FFFF00' align='Right'>%17</t>
  667.             <br/>
  668.             <t size='1.15' color='#FFFFFF' align='Left'>DEAD MEN</t>
  669.             <t size='1.15' color='#FFFFFF' align='Right'>%18</t>
  670.             <br/>
  671.             <t size='1.15' color='#FFFF00' align='Left'>DESTROYED VEHICLES</t>
  672.             <t size='1.15' color='#FFFF00' align='Right'>%19</t>
  673.             <br/>
  674.             <t size='1.15' color='#FFFFFF' align='Left'>GROUP COUNT</t>
  675.             <t size='1.15' color='#FFFFFF' align='Right'>%20 / 144</t>
  676.             <br/>
  677.             <t size='1.15' color='#11FBFF' align='Left'>WEST UNITS</t>
  678.             <t size='1.15' color='#11FBFF' align='Right'>%21</t>
  679.             <br/>
  680.             <t size='1.15' color='#11FBFF' align='Left'>WEST VEHICLES</t>
  681.             <t size='1.15' color='#11FBFF' align='Right'>%22</t>
  682.             <br/>
  683.             <t size='1.15' color='#FF0000' align='Left'>EAST UNITS</t>
  684.             <t size='1.15' color='#FF0000' align='Right'>%23</t>
  685.             <br/>
  686.             <t size='1.15' color='#FF0000' align='Left'>EAST VEHICLES</t>
  687.             <t size='1.15' color='#FF0000' align='Right'>%24</t>
  688.             <br/>
  689.             <t size='1.15' color='#00FF4C' align='Left'>INDEP UNITS</t>
  690.             <t size='1.15' color='#00FF4C' align='Right'>%25</t>
  691.             <br/>
  692.             <t size='1.15' color='#00FF4C' align='Left'>INDEP VEHICLES</t>
  693.             <t size='1.15' color='#00FF4C' align='Right'>%26</t>
  694.             <br/>
  695.             <t size='1.15' color='#FF00FF' align='Left'>CIVILIAN UNITS</t>
  696.             <t size='1.15' color='#FF00FF' align='Right'>%27</t>
  697.             <br/>
  698.             <t size='1.15' color='#FF00FF' align='Left'>CIVILIAN VEHICLES</t>
  699.             <t size='1.15' color='#FF00FF' align='Right'>%28</t>
  700.             <br/>
  701.             <t size='1.15' color='#FFBB00' align='Left'>EMPTY VEHICLES</t>
  702.             <t size='1.15' color='#FFBB00' align='Right'>%29</t>
  703.             ",
  704.             date select 0,
  705.             (if (date select 1 < 10) then {"0"} else {""}) + str(date select 1),
  706.             (if (date select 2 < 10) then {"0"} else {""}) + str(date select 2),
  707.             daytime call BIS_fnc_timeToString,
  708.             round time,
  709.             mapGridPosition player,
  710.             toUpper(text (nearestLocation [player, ""])),
  711.             viewDistance,
  712.             playerSide,
  713.             faction player,
  714.             (damage player)*100,
  715.             "%",
  716.             count (allPlayers - entities "HeadlessClient_F"),
  717.             count playableUnits,
  718.             count (entities "HeadlessClient_F"),
  719.             count (allUnits - entities "HeadlessClient_F"),
  720.             count (vehicles - entities "WeaponHolderSimulated" - allDead),
  721.             count allDeadMen,
  722.             count (allDead - allDeadMen),
  723.             count allGroups,
  724.             count ((allUnits - entities "HeadlessClient_F") select {side group _x == WEST}),
  725.             count ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == WEST}),
  726.             count ((allUnits - entities "HeadlessClient_F") select {side group _x == EAST}),
  727.             count ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == EAST}),
  728.             count ((allUnits - entities "HeadlessClient_F") select {side group _x == INDEPENDENT}),
  729.             count ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == INDEPENDENT}),
  730.             count ((allUnits - entities "HeadlessClient_F") select {side group _x == CIVILIAN}),
  731.             count ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == CIVILIAN}),
  732.             count _empVeh
  733.             ];
  734.            
  735.             // create new markers  
  736.             (allPlayers - entities "HeadlessClient_F") apply {
  737.                 _playerMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  738.                 _playerMkr  = createMarkerLocal [_playerMkrN, getPos _x];
  739.                 _playerMkr  setMarkerShapeLocal "ICON";
  740.                 _playerMkr  setMarkerTypeLocal  "hd_dot";
  741.                 _playerMkr  setMarkerColorLocal "ColorBlack";
  742.                 _playerMkr  setMarkerTextLocal  "Player";
  743.             };
  744.             (playableUnits - allPlayers) apply {
  745.                 _plybUnMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  746.                 _plybUnMkr  = createMarkerLocal [_plybUnMkrN, getPos _x];
  747.                 _plybUnMkr  setMarkerShapeLocal "ICON";
  748.                 _plybUnMkr  setMarkerTypeLocal  "hd_dot";
  749.                 _plybUnMkr  setMarkerColorLocal "ColorOrange";
  750.                 _plybUnMkr  setMarkerTextLocal  "Playable";
  751.             };
  752.             (entities "HeadlessClient_F") apply {
  753.                 _headClMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  754.                 _headClMkr  = createMarkerLocal [_headClMkrN, getPos _x];
  755.                 _headClMkr  setMarkerShapeLocal "ICON";
  756.                 _headClMkr  setMarkerTypeLocal  "hd_dot";
  757.                 _headClMkr  setMarkerColorLocal "ColorGrey";
  758.                 _headClMkr  setMarkerTextLocal  "Headless";
  759.             };
  760.             ((allUnits - allPlayers - playableUnits) select {side group _x == WEST && vehicle _x == _x}) apply {
  761.                 _westUnMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  762.                 _westUnMkr  = createMarkerLocal [_westUnMkrN, getPos _x];
  763.                 _westUnMkr  setMarkerShapeLocal "ICON";
  764.                 _westUnMkr  setMarkerTypeLocal  "hd_dot";
  765.                 _westUnMkr  setMarkerColorLocal "colorBLUFOR";
  766.                 _westUnMkr  setMarkerTextLocal  "West";
  767.             };
  768.             ((allUnits - allPlayers - playableUnits) select {side group _x == EAST && vehicle _x == _x}) apply {
  769.                 _eastUnMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  770.                 _eastUnMkr  = createMarkerLocal [_eastUnMkrN, getPos _x];
  771.                 _eastUnMkr  setMarkerShapeLocal "ICON";
  772.                 _eastUnMkr  setMarkerTypeLocal  "hd_dot";
  773.                 _eastUnMkr  setMarkerColorLocal "colorOPFOR";
  774.                 _eastUnMkr  setMarkerTextLocal  "East";
  775.             };
  776.             ((allUnits - allPlayers - playableUnits) select {side group _x == INDEPENDENT && vehicle _x == _x}) apply {
  777.                 _indpUnMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  778.                 _indpUnMkr  = createMarkerLocal [_indpUnMkrN, getPos _x];
  779.                 _indpUnMkr  setMarkerShapeLocal "ICON";
  780.                 _indpUnMkr  setMarkerTypeLocal  "hd_dot";
  781.                 _indpUnMkr  setMarkerColorLocal "colorIndependent";
  782.                 _indpUnMkr  setMarkerTextLocal  "Indep";
  783.             };
  784.             ((allUnits - allPlayers - playableUnits) select {side group _x == CIVILIAN && vehicle _x == _x}) apply {
  785.                 _civiUnMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  786.                 _civiUnMkr  = createMarkerLocal [_civiUnMkrN, getPos _x];
  787.                 _civiUnMkr  setMarkerShapeLocal "ICON";
  788.                 _civiUnMkr  setMarkerTypeLocal  "hd_dot";
  789.                 _civiUnMkr  setMarkerColorLocal "colorCivilian";
  790.                 _civiUnMkr  setMarkerTextLocal  "Civ";
  791.             };
  792.             (allDeadMen) apply {
  793.                 _deadUnMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  794.                 _deadUnMkr  = createMarkerLocal [_deadUnMkrN, getPos _x];
  795.                 _deadUnMkr  setMarkerShapeLocal "ICON";
  796.                 _deadUnMkr  setMarkerTypeLocal  "hd_dot";
  797.                 _deadUnMkr  setMarkerColorLocal "ColorPink";
  798.                 _deadUnMkr  setMarkerTextLocal  "Dead";
  799.             };
  800.             (allDead - allDeadMen) apply {
  801.                 _wrecksMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  802.                 _wrecksMkr  = createMarkerLocal [_wrecksMkrN, getPos _x];
  803.                 _wrecksMkr  setMarkerShapeLocal "ICON";
  804.                 _wrecksMkr  setMarkerTypeLocal  "mil_triangle";
  805.                 _wrecksMkr  setMarkerColorLocal "ColorBrown";
  806.                 _wrecksMkr  setMarkerTextLocal  "Wreck";
  807.             };
  808.             _empVeh apply {
  809.                 _emptyVMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  810.                 _emptyVMkr  = createMarkerLocal [_emptyVMkrN, getPos _x];
  811.                 _emptyVMkr  setMarkerShapeLocal "ICON";
  812.                 _emptyVMkr  setMarkerTypeLocal  "mil_box";
  813.                 _emptyVMkr  setMarkerColorLocal "ColorUNKNOWN";
  814.                 _emptyVMkr  setMarkerTextLocal  "Empty";
  815.             };
  816.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == WEST}) select {_x isKindOf "LandVehicle"} apply {
  817.                 _westVLMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  818.                 _westVLMkr  = createMarkerLocal [_westVLMkrN, getPos _x];
  819.                 _westVLMkr  setMarkerShapeLocal "ICON";
  820.                 _westVLMkr  setMarkerTypeLocal  "c_car";
  821.                 _westVLMkr  setMarkerColorLocal "colorBLUFOR";
  822.                 _westVLMkr  setMarkerTextLocal  "West";
  823.             };
  824.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == EAST}) select {_x isKindOf "LandVehicle"} apply {
  825.                 _eastVLMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  826.                 _eastVLMkr  = createMarkerLocal [_eastVLMkrN, getPos _x];
  827.                 _eastVLMkr  setMarkerShapeLocal "ICON";
  828.                 _eastVLMkr  setMarkerTypeLocal  "c_car";
  829.                 _eastVLMkr  setMarkerColorLocal "colorOPFOR";
  830.                 _eastVLMkr  setMarkerTextLocal  "East";
  831.             };
  832.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == INDEPENDENT}) select {_x isKindOf "LandVehicle"} apply {
  833.                 _indeVLMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  834.                 _indeVLMkr  = createMarkerLocal [_indeVLMkrN, getPos _x];
  835.                 _indeVLMkr  setMarkerShapeLocal "ICON";
  836.                 _indeVLMkr  setMarkerTypeLocal  "c_car";
  837.                 _indeVLMkr  setMarkerColorLocal "colorIndependent";
  838.                 _indeVLMkr  setMarkerTextLocal  "Indep";
  839.             };
  840.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == CIVILIAN}) select {_x isKindOf "LandVehicle"} apply {
  841.                 _civiVLMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  842.                 _civiVLMkr  = createMarkerLocal [_civiVLMkrN, getPos _x];
  843.                 _civiVLMkr  setMarkerShapeLocal "ICON";
  844.                 _civiVLMkr  setMarkerTypeLocal  "c_car";
  845.                 _civiVLMkr  setMarkerColorLocal "colorCivilian";
  846.                 _civiVLMkr  setMarkerTextLocal  "Civ";
  847.             };
  848.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == WEST}) select {_x isKindOf "Helicopter"} apply {
  849.                 _westVHMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  850.                 _westVHMkr  = createMarkerLocal [_westVHMkrN, getPos _x];
  851.                 _westVHMkr  setMarkerShapeLocal "ICON";
  852.                 _westVHMkr  setMarkerTypeLocal  "c_air";
  853.                 _westVHMkr  setMarkerColorLocal "colorBLUFOR";
  854.                 _westVHMkr  setMarkerTextLocal  "West";
  855.             };
  856.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == EAST}) select {_x isKindOf "Helicopter"} apply {
  857.                 _eastVHMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  858.                 _eastVHMkr  = createMarkerLocal [_eastVHMkrN, getPos _x];
  859.                 _eastVHMkr  setMarkerShapeLocal "ICON";
  860.                 _eastVHMkr  setMarkerTypeLocal  "c_air";
  861.                 _eastVHMkr  setMarkerColorLocal "colorOPFOR";
  862.                 _eastVHMkr  setMarkerTextLocal  "East";
  863.             };
  864.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == INDEPENDENT}) select {_x isKindOf "Helicopter"} apply {
  865.                 _indeVHMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  866.                 _indeVHMkr  = createMarkerLocal [_indeVHMkrN, getPos _x];
  867.                 _indeVHMkr  setMarkerShapeLocal "ICON";
  868.                 _indeVHMkr  setMarkerTypeLocal  "c_air";
  869.                 _indeVHMkr  setMarkerColorLocal "colorIndependent";
  870.                 _indeVHMkr  setMarkerTextLocal  "Indep";
  871.             };
  872.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == CIVILIAN}) select {_x isKindOf "Helicopter"} apply {
  873.                 _civiVHMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  874.                 _civiVHMkr  = createMarkerLocal [_civiVHMkrN, getPos _x];
  875.                 _civiVHMkr  setMarkerShapeLocal "ICON";
  876.                 _civiVHMkr  setMarkerTypeLocal  "c_air";
  877.                 _civiVHMkr  setMarkerColorLocal "colorCivilian";
  878.                 _civiVHMkr  setMarkerTextLocal  "Civ";
  879.             };
  880.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == WEST}) select {_x isKindOf "Plane"} apply {
  881.                 _westVPMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  882.                 _westVPMkr  = createMarkerLocal [_westVPMkrN, getPos _x];
  883.                 _westVPMkr  setMarkerShapeLocal "ICON";
  884.                 _westVPMkr  setMarkerTypeLocal  "c_plane";
  885.                 _westVPMkr  setMarkerColorLocal "colorBLUFOR";
  886.                 _westVPMkr  setMarkerTextLocal  "West";
  887.             };
  888.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == EAST}) select {_x isKindOf "Plane"} apply {
  889.                 _eastVPMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  890.                 _eastVPMkr  = createMarkerLocal [_eastVPMkrN, getPos _x];
  891.                 _eastVPMkr  setMarkerShapeLocal "ICON";
  892.                 _eastVPMkr  setMarkerTypeLocal  "c_plane";
  893.                 _eastVPMkr  setMarkerColorLocal "colorOPFOR";
  894.                 _eastVPMkr  setMarkerTextLocal  "East";
  895.             };
  896.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == INDEPENDENT}) select {_x isKindOf "Plane"} apply {
  897.                 _indeVPMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  898.                 _indeVPMkr  = createMarkerLocal [_indeVPMkrN, getPos _x];
  899.                 _indeVPMkr  setMarkerShapeLocal "ICON";
  900.                 _indeVPMkr  setMarkerTypeLocal  "c_plane";
  901.                 _indeVPMkr  setMarkerColorLocal "colorIndependent";
  902.                 _indeVPMkr  setMarkerTextLocal  "Indep";
  903.             };
  904.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == CIVILIAN}) select {_x isKindOf "Plane"} apply {
  905.                 _civiVPMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  906.                 _civiVPMkr  = createMarkerLocal [_civiVPMkrN, getPos _x];
  907.                 _civiVPMkr  setMarkerShapeLocal "ICON";
  908.                 _civiVPMkr  setMarkerTypeLocal  "c_plane";
  909.                 _civiVPMkr  setMarkerColorLocal "colorCivilian";
  910.                 _civiVPMkr  setMarkerTextLocal  "Civ";
  911.             };
  912.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == WEST}) select {_x isKindOf "Ship"} apply {
  913.                 _westVBMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  914.                 _westVBMkr  = createMarkerLocal [_westVBMkrN, getPos _x];
  915.                 _westVBMkr  setMarkerShapeLocal "ICON";
  916.                 _westVBMkr  setMarkerTypeLocal  "c_ship";
  917.                 _westVBMkr  setMarkerColorLocal "colorBLUFOR";
  918.                 _westVBMkr  setMarkerTextLocal  "West";
  919.             };
  920.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == EAST}) select {_x isKindOf "Ship"} apply {
  921.                 _eastVBMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  922.                 _eastVBMkr  = createMarkerLocal [_eastVBMkrN, getPos _x];
  923.                 _eastVBMkr  setMarkerShapeLocal "ICON";
  924.                 _eastVBMkr  setMarkerTypeLocal  "c_ship";
  925.                 _eastVBMkr  setMarkerColorLocal "colorOPFOR";
  926.                 _eastVBMkr  setMarkerTextLocal  "East";
  927.             };
  928.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == INDEPENDENT}) select {_x isKindOf "Ship"} apply {
  929.                 _indeVBMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  930.                 _indeVBMkr  = createMarkerLocal [_indeVBMkrN, getPos _x];
  931.                 _indeVBMkr  setMarkerShapeLocal "ICON";
  932.                 _indeVBMkr  setMarkerTypeLocal  "c_ship";
  933.                 _indeVBMkr  setMarkerColorLocal "colorIndependent";
  934.                 _indeVBMkr  setMarkerTextLocal  "Indep";
  935.             };
  936.             ((vehicles - entities "WeaponHolderSimulated" - allDead) select {side group _x == CIVILIAN}) select {_x isKindOf "Ship"} apply {
  937.                 _civiVBMkrN = format ["debugMkr_%1_ID%2",floor(random 1000),_clientID];
  938.                 _civiVBMkr  = createMarkerLocal [_civiVBMkrN, getPos _x];
  939.                 _civiVBMkr  setMarkerShapeLocal "ICON";
  940.                 _civiVBMkr  setMarkerTypeLocal  "c_ship";
  941.                 _civiVBMkr  setMarkerColorLocal "colorCivilian";
  942.                 _civiVBMkr  setMarkerTextLocal  "Civ";
  943.             };
  944.            
  945.             openMap [true, false];
  946.         },                                                                                  // Code executed on completion
  947.         {},                                                                                 // Code executed on interrupted
  948.         [],                                                                                 // Arguments passed to the scripts as _this select 3
  949.         0.5,                                                                                // Action duration [s]
  950.         0,                                                                                  // Priority
  951.         false,                                                                              // Remove on completion
  952.         false                                                                               // Show in unconscious state
  953.     ] call BIS_fnc_holdActionAdd;
  954. };
  955. /*****************************************************************************************
  956. ******************************************************************************************
  957. ******************************************************************************************
  958.  
  959.                                 YOU CAN MODIFY WHAT IS BELOW
  960.  
  961. ******************************************************************************************
  962. ******************************************************************************************
  963. *****************************************************************************************/
  964. // =======================================================================================
  965. // USER CODE
  966. // =======================================================================================
  967.  
  968.  
  969. /*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  970. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  971. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  972.  
  973.                                 DO NOT MODIFY WHAT IS BELOW
  974.  
  975. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  976. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  977. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
  978. // =======================================================================================
  979. //      PERKS & ATTRIBUTES
  980. // =======================================================================================
  981. //          PERKS & ATTRIBUTES — RESPAWN WITH LAST GEAR
  982. // =======================================================================================
  983. if  (UAF_respawnGear == 1) then {
  984.     waitUntil {playerRespawnTime >= 0};
  985.         private _wpn    = primaryWeapon         player;
  986.         private _mag    = primaryWeaponMagazine player;
  987.         private _items  = primaryWeaponItems    player;
  988.         private _gear   = getUnitLoadout        player;
  989.     waitUntil {playerRespawnTime < 0};
  990.         _mag apply  {player addMagazine _x;};
  991.         player      addWeapon _wpn;
  992.         {player     addPrimaryWeaponItem _x} forEach _items;
  993.         player      setUnitLoadout _gear;
  994. };
  995. // DO NOT PUT ANYTHING UNDER THIS CODE (IT WILL NOT RUN)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top