Skip to content

Commit 160a64c

Browse files
CasperentoBoGuu
authored andcommitted
first approach for new loadouts
1 parent 9d4ee25 commit 160a64c

File tree

2 files changed

+106
-118
lines changed

2 files changed

+106
-118
lines changed

Altis_Life.Altis/config/Config_Loadouts.hpp

Lines changed: 94 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2,77 +2,118 @@
22
class PLAYERSIDE { // PLAYERSIDE can be: WEST (for cops), CIV (for civ/reb), GUER (for medics), EAST (for opfor)
33
// NOTES:
44
// empty array means that nothing will be add on players
5-
// if you put more than a uniform on the CIV's class, they will be selected randonly,
5+
// CIV's loadout are selected randonly if he is not in jail,
66
// otherwise, for the other teams, player will get the uniform related to his level
77
8-
itemType[] = { // itemType can be: uniform, vest, backpack, weapon, items or linkedItems
9-
{ "classname", "conditions" }
8+
class lvl_X : lvl_base { // where X is a level of the selected team and inherits from lvl_base
9+
uniformClass = "";
10+
backpack = "";
11+
linkedItems[] = {};
12+
weapons[] = {};
13+
items[] = {};
14+
magazines[] = {};
1015
};
1116
};
1217
*/
18+
class lvl_base {
19+
uniformClass = "";
20+
backpack = "";
21+
linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};
22+
weapons[] = {};
23+
items[] = {};
24+
magazines[] = {};
25+
};
26+
1327
class Loadouts {
14-
// COP
15-
class WEST {
16-
uniform[] = {
17-
{"U_Rangemaster", "call life_copLevel >= 0"}
28+
// CIV
29+
class CIV {
30+
class lvl_arrested : lvl_base {
31+
uniformClass = "U_C_WorkerCoveralls"; // Arrested player's uniform
32+
linkedItems[] = {};
1833
};
19-
vest[] = {
20-
{"V_Rangemaster_belt", "call life_copLevel >= 0"}
34+
class lvl_1 : lvl_base {
35+
uniformClass = "U_C_Poloshirt_blue";
2136
};
22-
backpack[] = {};
23-
weapon[] = {
24-
{"hgun_P07_snds_F", "call life_copLevel >= 0"}
37+
class lvl_2 : lvl_base {
38+
uniformClass = "U_C_Poloshirt_burgundy";
2539
};
26-
mags[] = {
27-
{"16Rnd_9x21_Mag", 6, "call life_copLevel >= 0"}
40+
class lvl_3 : lvl_base {
41+
uniformClass = "U_C_Poloshirt_stripped";
2842
};
29-
items[] = {};
30-
linkedItems[] = {
31-
{"ItemMap", "call life_copLevel >= 0"},
32-
{"ItemCompass", "call life_copLevel >= 0"},
33-
{"ItemWatch", "call life_copLevel >= 0"}
43+
class lvl_4 : lvl_base {
44+
uniformClass = "U_C_Poloshirt_tricolour";
45+
};
46+
class lvl_5 : lvl_base {
47+
uniformClass = "U_C_Poloshirt_salmon";
48+
};
49+
class lvl_6 : lvl_base {
50+
uniformClass = "U_C_Poloshirt_redwhite";
51+
};
52+
class lvl_7 : lvl_base {
53+
uniformClass = "U_C_Commoner1_1";
3454
};
3555
};
3656

37-
// CIV
38-
class CIV {
39-
uniform[] = {
40-
{"U_C_Poloshirt_blue", "!life_is_arrested"},
41-
{"U_C_Poloshirt_burgundy", "!life_is_arrested"},
42-
{"U_C_Poloshirt_stripped", "!life_is_arrested"},
43-
{"U_C_Poloshirt_tricolour", "!life_is_arrested"},
44-
{"U_C_Poloshirt_salmon", "!life_is_arrested"},
45-
{"U_C_Poloshirt_redwhite", "!life_is_arrested"},
46-
{"U_C_Commoner1_1", "!life_is_arrested"}
47-
};
48-
vest[] = {};
49-
backpack[] = {};
50-
weapon[] = {};
51-
mags[] = {};
52-
items[] = {};
53-
linkedItems[] = {
54-
{"ItemMap", ""},
55-
{"ItemCompass", ""},
56-
{"ItemWatch", ""}
57+
// COP
58+
class WEST {
59+
class lvl_1 : lvl_base {
60+
uniformClass = "U_Rangemaster";
61+
weapons[] = {"hgun_P07_snds_F"};
62+
magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag"};
63+
};
64+
class lvl_2 : lvl_base {
65+
uniformClass = "U_Rangemaster";
66+
weapons[] = {"hgun_P07_snds_F"};
67+
magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag"};
68+
};
69+
class lvl_3 : lvl_base {
70+
uniformClass = "U_Rangemaster";
71+
weapons[] = {"hgun_P07_snds_F"};
72+
magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag"};
73+
};
74+
class lvl_4 : lvl_base {
75+
uniformClass = "U_Rangemaster";
76+
weapons[] = {"hgun_P07_snds_F"};
77+
magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag"};
78+
};
79+
class lvl_5 : lvl_base {
80+
uniformClass = "U_Rangemaster";
81+
weapons[] = {"hgun_P07_snds_F"};
82+
magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag"};
83+
};
84+
class lvl_6 : lvl_base {
85+
uniformClass = "U_Rangemaster";
86+
weapons[] = {"hgun_P07_snds_F"};
87+
magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag"};
88+
};
89+
class lvl_7 : lvl_base {
90+
uniformClass = "U_Rangemaster";
91+
weapons[] = {"hgun_P07_snds_F"};
92+
magazines[] = {"16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag"};
5793
};
5894
};
5995

6096
// MED
6197
class GUER {
62-
uniform[] = {
63-
{"U_Rangemaster", "call life_medicLevel >= 1"}
64-
};
65-
vest[] = {};
66-
backpack[] = {};
67-
weapon[] = {};
68-
mags[] = {};
69-
items[] = {
70-
{"FirstAidKit", 2, "call life_medicLevel >= 1"}
71-
};
72-
linkedItems[] = {
73-
{"ItemMap", "call life_medicLevel >= 1"},
74-
{"ItemCompass", "call life_medicLevel >= 1"},
75-
{"ItemWatch", "call life_medicLevel >= 1"}
98+
class lvl_1 : lvl_base {
99+
uniformClass = "U_Rangemaster";
100+
items[] = {"FirstAidKit"};
101+
};
102+
class lvl_2 : lvl_base {
103+
uniformClass = "U_Rangemaster";
104+
items[] = {"FirstAidKit"};
105+
};
106+
class lvl_3 : lvl_base {
107+
uniformClass = "U_Rangemaster";
108+
items[] = {"FirstAidKit"};
109+
};
110+
class lvl_4 : lvl_base {
111+
uniformClass = "U_Rangemaster";
112+
items[] = {"FirstAidKit"};
113+
};
114+
class lvl_5 : lvl_base {
115+
uniformClass = "U_Rangemaster";
116+
items[] = {"FirstAidKit"};
76117
};
77118
};
78119
};

Altis_Life.Altis/core/functions/fn_startLoadout.sqf

Lines changed: 12 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -6,76 +6,23 @@
66
Description:
77
Loads a custom loadout on player when he got a new life
88
*/
9-
private _pUniform = M_CONFIG(getArray,"Loadouts",str(playerSide),"uniform");
10-
private _pVest = M_CONFIG(getArray,"Loadouts",str(playerSide),"vest");
11-
private _pBackpack = M_CONFIG(getArray,"Loadouts",str(playerSide),"backpack");
12-
private _pWeapon = M_CONFIG(getArray,"Loadouts",str(playerSide),"weapon");
13-
private _pMagazines = M_CONFIG(getArray,"Loadouts",str(playerSide),"mags");
14-
private _pItems = M_CONFIG(getArray,"Loadouts",str(playerSide),"items");
15-
private _linkedItems = M_CONFIG(getArray,"Loadouts",str(playerSide),"linkedItems");
16-
17-
if !(_pUniform isEqualTo []) then {
18-
if (playerSide isEqualTo civilian) then {
19-
_pUniform = selectRandom _pUniform;
20-
if (!(_pUniform isEqualTo []) && {!((_pUniform select 0) isEqualTo "") && {([(_pUniform select 1)] call life_fnc_levelCheck)}}) then {
21-
player forceAddUniform (_pUniform select 0);
22-
};
23-
} else {
24-
_pUniform apply {
25-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
26-
player forceAddUniform (_x select 0);
27-
};
28-
};
29-
};
30-
};
31-
32-
if !(_pVest isEqualTo []) then {
33-
_pVest apply {
34-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
35-
player addVest (_x select 0);
9+
private _level = call {
10+
if (playerSide isEqualTo civilian) exitWith {
11+
if (life_is_arredted) then {
12+
"arrested"
13+
} else {
14+
str(floor random [0, round(count(missionConfigFile >> "Loadouts" >> str(playerSide)-1)/2), count(missionConfigFile >> "Loadouts" >> str(playerSide))-1])
3615
};
3716
};
38-
};
39-
40-
if !(_pBackpack isEqualTo []) then {
41-
_pBackpack apply {
42-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
43-
player addBackpack (_x select 0);
44-
};
17+
if (playerSide isEqualTo west) exitWith {
18+
str(FETCH_CONST(life_coplevel))
4519
};
46-
};
47-
48-
if !(_pWeapon isEqualTo []) then {
49-
_pWeapon apply {
50-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
51-
player addWeapon (_x select 0);
52-
};
20+
if (playerSide isEqualTo independent) exitWith {
21+
str(FETCH_CONST(life_mediclevel))
5322
};
5423
};
5524

56-
if !(_pMagazines isEqualTo []) then {
57-
_pMagazines apply {
58-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {((_x select 1) > 0) && {([(_x select 2)] call life_fnc_levelCheck)}}}) then {
59-
player addMagazines [(_x select 0),(_x select 1)];
60-
};
61-
};
62-
};
63-
64-
if !(_pItems isEqualTo []) then {
65-
_pItems apply {
66-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {((_x select 1) > 0) && {([(_x select 2)] call life_fnc_levelCheck)}}}) then {
67-
for "_i" from 1 to (_x select 1) step 1 do {player addItem (_x select 0)};
68-
};
69-
};
70-
};
71-
72-
if !(_linkedItems isEqualTo []) then {
73-
_linkedItems apply {
74-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
75-
player linkItem (_x select 0);
76-
};
77-
};
78-
};
25+
player setUnitLoadout (missionConfigFile >> "Loadouts" >> str(playerSide) >> "lvl_"+_level);
7926

8027
[] call life_fnc_playerSkins;
81-
[] call life_fnc_saveGear;
28+
[] call life_fnc_saveGear;

0 commit comments

Comments
 (0)