Skip to content

Commit 350ddee

Browse files
committed
first approach for new loadouts
1 parent f78ef2a commit 350ddee

File tree

2 files changed

+105
-133
lines changed

2 files changed

+105
-133
lines changed

Altis_Life.Altis/config/Config_Loadouts.hpp

Lines changed: 93 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2,84 +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, headgear, 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-
headgear[] = {
20-
{"H_Cap_blk", "call life_copLevel >= 0"}
34+
class lvl_1 : lvl_base {
35+
uniformClass = "U_C_Poloshirt_blue";
2136
};
22-
vest[] = {
23-
{"V_Rangemaster_belt", "call life_copLevel >= 0"}
37+
class lvl_2 : lvl_base {
38+
uniformClass = "U_C_Poloshirt_burgundy";
2439
};
25-
backpack[] = {};
26-
weapon[] = {
27-
{"hgun_P07_snds_F", "call life_copLevel >= 0"}
40+
class lvl_3 : lvl_base {
41+
uniformClass = "U_C_Poloshirt_stripped";
2842
};
29-
mags[] = {
30-
{"16Rnd_9x21_Mag", 6, "call life_copLevel >= 0"}
43+
class lvl_4 : lvl_base {
44+
uniformClass = "U_C_Poloshirt_tricolour";
3145
};
32-
items[] = {};
33-
linkedItems[] = {
34-
{"ItemMap", "call life_copLevel >= 0"},
35-
{"ItemCompass", "call life_copLevel >= 0"},
36-
{"ItemWatch", "call life_copLevel >= 0"}
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";
3754
};
3855
};
3956

40-
// CIV
41-
class CIV {
42-
uniform[] = {
43-
{"U_C_Poloshirt_blue", "!life_is_arrested"},
44-
{"U_C_Poloshirt_burgundy", "!life_is_arrested"},
45-
{"U_C_Poloshirt_stripped", "!life_is_arrested"},
46-
{"U_C_Poloshirt_tricolour", "!life_is_arrested"},
47-
{"U_C_Poloshirt_salmon", "!life_is_arrested"},
48-
{"U_C_Poloshirt_redwhite", "!life_is_arrested"},
49-
{"U_C_Commoner1_1", "!life_is_arrested"}
50-
};
51-
headgear[] = {};
52-
vest[] = {};
53-
backpack[] = {};
54-
weapon[] = {};
55-
mags[] = {};
56-
items[] = {};
57-
linkedItems[] = {
58-
{"ItemMap", ""},
59-
{"ItemCompass", ""},
60-
{"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"};
6193
};
6294
};
6395

6496
// MED
6597
class GUER {
66-
uniform[] = {
67-
{"U_Rangemaster", "call life_medicLevel >= 1"}
68-
};
69-
headgear[] = {
70-
{"H_Cap_red", "call life_medicLevel >= 1"}
71-
};
72-
vest[] = {};
73-
backpack[] = {};
74-
weapon[] = {};
75-
mags[] = {};
76-
items[] = {
77-
{"FirstAidKit", 2, "call life_medicLevel >= 1"}
78-
};
79-
linkedItems[] = {
80-
{"ItemMap", "call life_medicLevel >= 1"},
81-
{"ItemCompass", "call life_medicLevel >= 1"},
82-
{"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"};
83117
};
84118
};
85119
};

Altis_Life.Altis/core/functions/fn_startLoadout.sqf

Lines changed: 12 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -6,85 +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 _pHeadgear = M_CONFIG(getArray,"Loadouts",str(playerSide),"headgear");
11-
private _pVest = M_CONFIG(getArray,"Loadouts",str(playerSide),"vest");
12-
private _pBackpack = M_CONFIG(getArray,"Loadouts",str(playerSide),"backpack");
13-
private _pWeapon = M_CONFIG(getArray,"Loadouts",str(playerSide),"weapon");
14-
private _pMagazines = M_CONFIG(getArray,"Loadouts",str(playerSide),"mags");
15-
private _pItems = M_CONFIG(getArray,"Loadouts",str(playerSide),"items");
16-
private _linkedItems = M_CONFIG(getArray,"Loadouts",str(playerSide),"linkedItems");
17-
18-
if !(_pUniform isEqualTo []) then {
19-
if (playerSide isEqualTo civilian) then {
20-
_pUniform = selectRandom _pUniform;
21-
if (!(_pUniform isEqualTo []) && {!((_pUniform select 0) isEqualTo "") && {([(_pUniform select 1)] call life_fnc_levelCheck)}}) then {
22-
player forceAddUniform (_pUniform select 0);
23-
};
24-
} else {
25-
_pUniform apply {
26-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
27-
player forceAddUniform (_x select 0);
28-
};
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])
2915
};
3016
};
31-
};
32-
33-
if !(_pHeadgear isEqualTo []) then {
34-
_pHeadgear apply {
35-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
36-
player addHeadgear (_x select 0);
37-
};
38-
};
39-
};
40-
41-
if !(_pVest isEqualTo []) then {
42-
_pVest apply {
43-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
44-
player addVest (_x select 0);
45-
};
17+
if (playerSide isEqualTo west) exitWith {
18+
str(FETCH_CONST(life_coplevel))
4619
};
47-
};
48-
49-
if !(_pBackpack isEqualTo []) then {
50-
_pBackpack apply {
51-
if (!(_x isEqualTo []) && {!((_x select 0) isEqualTo "") && {([(_x select 1)] call life_fnc_levelCheck)}}) then {
52-
player addBackpack (_x select 0);
53-
};
20+
if (playerSide isEqualTo independent) exitWith {
21+
str(FETCH_CONST(life_mediclevel))
5422
};
5523
};
5624

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

8927
[] call life_fnc_playerSkins;
90-
[] call life_fnc_saveGear;
28+
[] call life_fnc_saveGear;

0 commit comments

Comments
 (0)