Advertisement
Guest User

Untitled

a guest
Jun 4th, 2016
491
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 2.86 KB | None | 0 0
  1. [30,        // Delay, in seconds
  2. {
  3. private _fnc_isValid =
  4. {
  5.     private _linkedItems = configFile >> "CfgWeapons" >> _this >> "LinkedItems";
  6.  
  7.     private _isValid = true;
  8.     {
  9.         if !((getText (_linkedItems >> _x >> "item")) isEqualTo "") exitWith {_isValid = false};
  10.     } forEach ["LinkedItemsOptic","LinkedItemsAcc","LinkedItemsMuzzle","LinkedItemsUnder"];
  11.  
  12.     _isValid
  13. };
  14. private _fnc_getLoadedMags =
  15. {
  16.     private _loadedMags = [];
  17.     {
  18.         if ((_x select 3) isEqualTo _this) then
  19.         {
  20.             _loadedMags pushBack [_x select 0,_x select 1];
  21.         };
  22.     } forEach (magazinesAmmoFull player);
  23.     _loadedMags
  24. };
  25.  
  26. private _primary = primaryWeapon player;
  27. if (!(_primary isEqualTo "") && {!(_primary call _fnc_isValid)}) then
  28. {
  29.     private _replacement = "";
  30.  
  31.     {
  32.         if ((configName _x) call _fnc_isValid) exitWith {_replacement = configName _x;};
  33.     } forEach ((configFile >> "CfgWeapons" >> _primary) call BIS_fnc_returnParents);
  34.  
  35.  
  36.     if (isText (configFile >> "CfgWeapons" >> _replacement >> "displayName")) then      // This bit ensures that the replacement weapon is an actual weapon, and not just a base class.
  37.     {
  38.         private _currentWeaponItems = primaryWeaponItems player;
  39.         private _loadedMags_Original = 1 call _fnc_getLoadedMags;
  40.  
  41.         private _currentWeapon = currentWeapon player;
  42.  
  43.         player removeWeapon _primary;
  44.         player addWeapon _replacement;
  45.  
  46.         private _loadedMags_Replacement = 1 call _fnc_getLoadedMags;
  47.  
  48.         if (_currentWeapon isEqualTo _primary) then
  49.         {
  50.             player selectWeapon _replacement;
  51.         };
  52.  
  53.         {
  54.             if !(_x isEqualTo "") then
  55.             {
  56.                 player addPrimaryWeaponItem _x;
  57.             };
  58.         } forEach _currentWeaponItems;
  59.  
  60.         {
  61.             player addWeaponItem [_replacement, _x];
  62.         } forEach _loadedMags_Original;
  63.  
  64.         {player addMagazine _x} forEach _loadedMags_Replacement;
  65.     };
  66. };
  67.  
  68. private _handgun = handgunWeapon player;
  69. if (!(_handgun isEqualTo "") && {!(_handgun call _fnc_isValid)}) then
  70. {
  71.     private _replacement = "";
  72.  
  73.     {
  74.         if ((configName _x) call _fnc_isValid) exitWith {_replacement = configName _x;};
  75.     } forEach ((configFile >> "CfgWeapons" >> _handgun) call BIS_fnc_returnParents);
  76.  
  77.  
  78.     if (isText (configFile >> "CfgWeapons" >> _replacement >> "displayName")) then
  79.     {
  80.         private _currentWeaponItems = handgunItems player;
  81.         private _loadedMags_Original = 2 call _fnc_getLoadedMags;
  82.  
  83.         private _currentWeapon = currentWeapon player;
  84.  
  85.         player removeWeapon _handgun;
  86.         player addWeapon _replacement;
  87.  
  88.         private _loadedMags_Replacement = 2 call _fnc_getLoadedMags;
  89.  
  90.         if (_currentWeapon isEqualTo _handgun) then
  91.         {
  92.             player selectWeapon _replacement;
  93.         };
  94.  
  95.         {
  96.             if !(_x isEqualTo "") then
  97.             {
  98.                 player addHandgunItem _x;
  99.             };
  100.         } forEach _currentWeaponItems;
  101.  
  102.         {
  103.             player addWeaponItem [_replacement, _x];
  104.         } forEach _loadedMags_Original;
  105.  
  106.         {player addMagazine _x} forEach _loadedMags_Replacement;
  107.     };
  108. };
  109. },[],true] call ExileClient_system_thread_addTask;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement