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 |