/**
* ExileClient_util_playerEquipment_add
*
* Exile Mod
* www.exilemod.com
* © 2015 Exile Mod Team
*
* Arma_3_AServer > mpmissions > Exile.Altis > config.cpp search for "class CfgExileCustomCode"
*
* Add this overwrite: ExileClient_util_playerEquipment_add = "custom\rockets\ExileClient_util_playerEquipment_add.sqf"; // Rocket launcher fix
*
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
*/
private["_player","_itemClassName","_bulletCount","_itemInformation","_itemCategory","_itemType","_added","_compatibleWeaponItems"];
_player = _this select 0;
_itemClassName = toLower (_this select 1);
_bulletCount = [_this, 2, -1] call BIS_fnc_param;
_itemInformation = [_itemClassName] call BIS_fnc_itemType;
_itemCategory = _itemInformation select 0;
_itemType = _itemInformation select 1;
_added = false;
if (_itemCategory isEqualTo "Magazine") then
{
{
if !(_x isEqualTo "") then
{
switch (_forEachIndex) do
{
case 0:
{
if ((primaryWeaponMagazine _player) isEqualTo []) then
{
_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
if (_itemClassName in _compatibleWeaponItems) then
{
if (_bulletCount isEqualTo -1) then
{
_player addPrimaryWeaponItem _itemClassName;
}
else
{
_player addWeaponItem [_x, [_itemClassName, _bulletCount]];
};
_added = true;
};
};
};
case 1:
{
if ((secondaryWeaponMagazine _player) isEqualTo []) then
{
_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
if (_itemClassName in _compatibleWeaponItems) then
{
if (_bulletCount isEqualTo -1) then
{
_player addSecondaryWeaponItem _itemClassName;
}
else
{
_player addWeaponItem [_x, [_itemClassName, _bulletCount]];
};
_added = true;
};
};
};
case 2:
{
if ((handgunMagazine _player) isEqualTo []) then
{
_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
if (_itemClassName in _compatibleWeaponItems) then
{
if (_bulletCount isEqualTo -1) then
{
_player addHandgunItem _itemClassName;
}
else
{
_player addWeaponItem [_x, [_itemClassName, _bulletCount]];
};
_added = true;
};
};
};
};
};
if (_added) exitWith {};
}
forEach [primaryWeapon _player, secondaryWeapon _player, handgunWeapon _player];
}
else
{
switch (_itemType) do
{
case "AssaultRifle",
case "Rifle",
case "SniperRifle",
case "SubmachineGun",
case "MachineGun",
case "Launcher",
case "RocketLauncher",
case "MissileLauncher",
case "GrenadeLauncher":
{
_player addWeaponGlobal _itemClassName;
_added = true;
};
case "Handgun":
{
_player addWeaponGlobal _itemClassName;
_added = true;
};
case "LaserDesignator",
case "Throw",
case "Binocular":
{
_player addWeaponGlobal _itemClassName;
_added = true;
};
case "GPS",
case "Map",
case "Radio",
case "UAVTerminal",
case "Watch",
case "Compass",
case "NVGoggles",
case "Glasses":
{
_player linkItem _itemClassName;
_added = true;
};
case "Headgear": { _player addHeadgear _itemClassName; _added = true; };
case "Backpack": { _player addBackpackGlobal _itemClassName; _added = true; };
case "Uniform": { _player forceAddUniform _itemClassName; _added = true; };
case "Vest": { _player addVest _itemClassName; _added = true; };
case "AccessorySights",
case "AccessoryPointer",
case "AccessoryMuzzle",
case "AccessoryBipod":
{
{
if !(_x isEqualTo "") then
{
_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
if (_itemClassName in _compatibleWeaponItems) exitWith
{
switch (_forEachIndex) do
{
case 0: { _player addPrimaryWeaponItem _itemClassName; _added = true; };
case 1: { _player addSecondaryWeaponItem _itemClassName; _added = true; };
case 2: { _player addHandgunItem _itemClassName; _added = true; };
};
};
};
if (_added) exitWith {};
}
forEach [primaryWeapon _player, secondaryWeapon _player, handgunWeapon _player];
};
};
};
_added
Comments