View difference between Paste ID: A2zQLQBM and CeUPwPma
SHOW: | | - or go back to the newest paste.
1
/**
2
 * ExileClient_util_playerEquipment_add
3
 *
4
 * Exile Mod
5
 * www.exilemod.com
6
 * © 2015 Exile Mod Team
7
 * 
8
 * Arma_3_AServer > mpmissions > Exile.Altis > config.cpp search for "class CfgExileCustomCode"
9
 *
10
 * Add this overwrite:  ExileClient_util_playerEquipment_add = "custom\rockets\ExileClient_util_playerEquipment_add.sqf";  // Rocket launcher fix 
11
 *
12
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. 
13
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
14
 */
15
 
16
private["_player","_itemClassName","_bulletCount","_itemInformation","_itemCategory","_itemType","_added","_compatibleWeaponItems"];
17
_player = _this select 0;
18
_itemClassName = toLower (_this select 1); 
19
_bulletCount = [_this, 2, -1] call BIS_fnc_param; 
20
_itemInformation = [_itemClassName] call BIS_fnc_itemType;
21
_itemCategory = _itemInformation select 0;
22
_itemType = _itemInformation select 1;
23
_added = false;
24
if (_itemCategory isEqualTo "Magazine") then
25
{
26
	{
27
		if !(_x isEqualTo "") then
28
		{
29
			switch (_forEachIndex) do
30
			{
31
				case 0: 
32
				{ 
33
					if ((primaryWeaponMagazine _player) isEqualTo []) then 
34
					{ 
35
						_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
36
						if (_itemClassName in _compatibleWeaponItems) then
37
						{	
38
							if (_bulletCount isEqualTo -1) then 
39
							{
40
								_player addPrimaryWeaponItem _itemClassName; 
41
							}
42
							else 
43
							{
44
								_player addWeaponItem [_x, [_itemClassName, _bulletCount]];
45
							};
46
							_added = true;
47
						};
48
					}; 
49
				};
50
				case 1: 
51
				{ 
52
					if ((secondaryWeaponMagazine _player) isEqualTo []) then 
53
					{ 
54
						_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
55
						if (_itemClassName in _compatibleWeaponItems) then
56
						{	
57
							if (_bulletCount isEqualTo -1) then 
58
							{
59
								_player addSecondaryWeaponItem _itemClassName; 
60
							}
61
							else 
62
							{
63
								_player addWeaponItem [_x, [_itemClassName, _bulletCount]];
64
							};
65
							_added = true;
66
						};
67
					}; 
68
				};
69
				case 2: 
70
				{ 
71
					if ((handgunMagazine _player) isEqualTo []) then 
72
					{ 
73
						_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
74
						if (_itemClassName in _compatibleWeaponItems) then
75
						{	
76
							if (_bulletCount isEqualTo -1) then 
77
							{
78
								_player addHandgunItem _itemClassName; 
79
							}
80
							else 
81
							{
82
								_player addWeaponItem [_x, [_itemClassName, _bulletCount]];
83
							};
84
							_added = true;
85
						};
86
					}; 
87
				};
88
			};
89
		};
90
		if (_added) exitWith {};
91
	}
92
	forEach [primaryWeapon _player, secondaryWeapon _player, handgunWeapon _player];
93
}
94
else 
95
{
96
	switch (_itemType) do 
97
	{
98
		case "AssaultRifle", 
99
		case "Rifle", 
100
		case "SniperRifle", 
101
		case "SubmachineGun",
102
		case "MachineGun",
103
		case "Launcher",
104
        case "RocketLauncher",
105
        case "MissileLauncher",
106
        case "GrenadeLauncher":
107
		{
108
			_player addWeaponGlobal _itemClassName;
109
			_added = true;
110
		};
111
		case "Handgun": 
112
		{
113
			_player addWeaponGlobal _itemClassName;	 
114
			_added = true;
115
		};
116
		case "LaserDesignator", 
117
		case "Throw",
118
		case "Binocular": 
119
		{
120
			_player addWeaponGlobal _itemClassName;	 
121
			_added = true;
122
		};
123
		case "GPS", 
124
		case "Map", 
125
		case "Radio", 
126
		case "UAVTerminal", 
127
		case "Watch", 
128
		case "Compass", 
129
		case "NVGoggles", 
130
		case "Glasses": 
131
		{
132
			_player linkItem _itemClassName;
133
			_added = true;
134
		};
135
		case "Headgear": 	{ _player addHeadgear _itemClassName; _added = true; }; 
136
		case "Backpack": 	{ _player addBackpackGlobal _itemClassName; _added = true; }; 
137
		case "Uniform": 	{ _player forceAddUniform _itemClassName; _added = true; }; 
138
		case "Vest": 		{ _player addVest _itemClassName; _added = true; }; 
139
		case "AccessorySights", 
140
		case "AccessoryPointer", 
141
		case "AccessoryMuzzle", 
142
		case "AccessoryBipod": 
143
		{
144
			{
145
				if !(_x isEqualTo "") then
146
				{
147
					_compatibleWeaponItems = _x call ExileClient_util_gear_getCompatibleWeaponItems;
148
					if (_itemClassName in _compatibleWeaponItems) exitWith
149
					{	
150
						switch (_forEachIndex) do
151
						{
152
							case 0: { _player addPrimaryWeaponItem _itemClassName; _added = true; }; 
153
							case 1: { _player addSecondaryWeaponItem _itemClassName; _added = true; }; 
154
							case 2: { _player addHandgunItem _itemClassName; _added = true; }; 
155
						};
156
					};
157
				};
158
				if (_added) exitWith {};
159
			}
160
			forEach [primaryWeapon _player, secondaryWeapon _player, handgunWeapon _player];
161
		};
162
	};
163
};
164
_added