88 Terms of license can be found in LICENSE.md document bundled with the project.
99*/
1010
11- init()
12- {
13- level .primary_weapon_array = [];
14-
15- weapon_class_register( " m16_mp" , " weapon_assault" );
16- weapon_class_register( " m16_silencer_mp" , " weapon_assault" );
17- weapon_class_register( " ak47_mp" , " weapon_assault" );
18- weapon_class_register( " ak47_silencer_mp" , " weapon_assault" );
19- weapon_class_register( " m4_mp" , " weapon_assault" );
20- weapon_class_register( " m4_silencer_mp" , " weapon_assault" );
21- weapon_class_register( " g3_mp" , " weapon_assault" );
22- weapon_class_register( " g3_silencer_mp" , " weapon_assault" );
23- weapon_class_register( " g36c_mp" , " weapon_assault" );
24- weapon_class_register( " g36c_silencer_mp" , " weapon_assault" );
25- weapon_class_register( " m14_mp" , " weapon_assault" );
26- weapon_class_register( " m14_silencer_mp" , " weapon_assault" );
27- weapon_class_register( " mp44_mp" , " weapon_assault" );
28- weapon_class_register( " mp5_mp" , " weapon_smg" );
29- weapon_class_register( " mp5_silencer_mp" , " weapon_smg" );
30- weapon_class_register( " uzi_mp" , " weapon_smg" );
31- weapon_class_register( " uzi_silencer_mp" , " weapon_smg" );
32- weapon_class_register( " ak74u_mp" , " weapon_smg" );
33- weapon_class_register( " ak74u_silencer_mp" , " weapon_smg" );
34- weapon_class_register( " winchester1200_mp" , " weapon_shotgun" );
35- weapon_class_register( " m1014_mp" , " weapon_shotgun" );
36- weapon_class_register( " m40a3_mp" , " weapon_sniper" );
37- weapon_class_register( " remington700_mp" , " weapon_sniper" );
38-
39- level thread onPlayerConnecting();
40- }
41-
42- weapon_class_register( weapon, weapon_type )
43- {
44- level .primary_weapon_array[weapon] = weapon_type;
45- }
46-
4711giveLoadout( team, class )
4812{
4913 self takeAllWeapons();
5014
51- self setClass( class );
15+ self setClientDvar( " loadout_curclass" , class );
16+ self .curClass = class ;
5217
5318 sidearmWeapon();
5419 primaryWeapon();
5520
56- if ( getDvarInt( " weap_allow_frag_grenade" ) && ( isDefined( level .strat_over ) && level .strat_over || !isDefined( level .strat_over ) ) )
21+ if ( getDvarInt(" weap_allow_frag_grenade" ) && (! isDefined( level .strat_over ) || level .strat_over) )
5722 {
23+ s = " " ;
5824 if ( level .hardcoreMode )
59- {
60- self giveWeapon( " frag_grenade_short_mp" );
61- self setWeaponAmmoClip( " frag_grenade_short_mp" , 1 );
62- self switchToOffhand( " frag_grenade_short_mp" );
63- }
64- else
65- {
66- self giveWeapon( " frag_grenade_mp" );
67- self setWeaponAmmoClip( " frag_grenade_mp" , 1 );
68- self switchToOffhand( " frag_grenade_mp" );
69- }
25+ s = " _short" ;
26+ self giveWeapon( " frag_grenade" +s+" _mp" );
27+ self setWeaponAmmoClip( " frag_grenade" +s+" _mp" , 1 );
28+ self switchToOffhand( " frag_grenade" +s+" _mp" );
7029 }
7130
72- if ( self .pers[class ][" loadout_grenade" ] != " none" && ( getDvarInt( " weap_allow_flash_grenade" ) || getDvarInt( " weap_allow_smoke_grenade" ) ) )
31+ gren = self .pers[class ][" loadout_grenade" ];
32+ if ((gren == " flash_grenade" || gren == " smoke_grenade" ) && getDvarInt(" weap_allow_" +gren))
7333 {
74- if ( self .pers[class ][" loadout_grenade" ] == " flash_grenade" && getDvarInt(" weap_allow_flash_grenade" ) )
75- self setOffhandSecondaryClass(" flash" );
76- else if ( self .pers[class ][" loadout_grenade" ] == " smoke_grenade" && getDvarInt(" weap_allow_smoke_grenade" ) )
77- self setOffhandSecondaryClass(" smoke" );
78-
79- if ( isDefined( level .strat_over ) && level .strat_over || !isDefined( level .strat_over ) )
34+ self setOffhandSecondaryClass(GetSubStr(gren, 0 , 5 ));
35+ if (!isDefined(level .strat_over) || level .strat_over)
8036 {
81- self giveWeapon( self .pers[ class ][ " loadout_grenade " ] + " _mp" );
82- self setWeaponAmmoClip( self .pers[ class ][ " loadout_grenade " ] + " _mp" , 1 );
37+ self giveWeapon(gren+ " _mp" );
38+ self setWeaponAmmoClip(gren+ " _mp" , 1 );
8339 }
8440 }
8541
@@ -96,13 +52,13 @@ sidearmWeapon()
9652
9753 if ( sideArmWeapon != " none" )
9854 {
55+ s = " " ;
9956 if ( self .pers[class ][" loadout_secondary_attachment" ] == " silencer" )
100- sidearmWeapon = sidearmWeapon + " _silencer_mp " ;
57+ s = " _silencer " ;
10158 else
102- {
10359 self .pers[class ][" loadout_secondary_attachment" ] = " none" ;
104- sidearmWeapon = sidearmWeapon + " _mp " ;
105- }
60+
61+ sidearmWeapon += s+ " _mp " ;
10662
10763 if ( isDefined( level .strat_over ) && level .strat_over && ( !isDefined( game [" PROMOD_KNIFEROUND" ] ) || !game [" PROMOD_KNIFEROUND" ] ) || !isDefined( level .strat_over ) )
10864 {
@@ -117,46 +73,61 @@ primaryWeapon()
11773 class = self .pers[" class" ];
11874 primaryWeapon = self .pers[class ][" loadout_primary" ];
11975
120- if ( primaryWeapon != " none" && primaryWeapon != " m16" && primaryWeapon != " ak47" && primaryWeapon != " m4" && primaryWeapon != " g3" && primaryWeapon != " g36c" && primaryWeapon != " m14" && primaryWeapon != " mp44" && primaryWeapon != " mp5" && primaryWeapon != " uzi" && primaryWeapon != " ak74u" && primaryWeapon != " winchester1200" && primaryWeapon != " m1014" && primaryWeapon != " m40a3" && primaryWeapon != " remington700" )
121- primaryWeapon = getDvar( " class_" + class + " _primary" );
122-
123- if ( !isDefined( self .pers[class ][" loadout_camo" ] ) )
124- self .pers[class ][" camo_num" ] = 0 ;
125- else if ( self .pers[class ][" loadout_camo" ] == " camo_brockhaurd" )
126- self .pers[class ][" camo_num" ] = 1 ;
127- else if ( self .pers[class ][" loadout_camo" ] == " camo_bushdweller" )
128- self .pers[class ][" camo_num" ] = 2 ;
129- else if ( self .pers[class ][" loadout_camo" ] == " camo_blackwhitemarpat" )
130- self .pers[class ][" camo_num" ] = 3 ;
131- else if ( self .pers[class ][" loadout_camo" ] == " camo_tigerred" )
132- self .pers[class ][" camo_num" ] = 4 ;
133- else if ( self .pers[class ][" loadout_camo" ] == " camo_stagger" )
134- self .pers[class ][" camo_num" ] = 5 ;
135- else if ( self .pers[class ][" loadout_camo" ] == " camo_gold" && ( primaryWeapon == " ak47" || primaryWeapon == " uzi" || primaryWeapon == " m1014" ) )
136- self .pers[class ][" camo_num" ] = 6 ;
137- else if ( self .pers[class ][" loadout_camo" ] == " camo_none" )
138- self .pers[class ][" camo_num" ] = 0 ;
139- else
76+ switch (primaryWeapon)
14077 {
141- self .pers[class ][" loadout_camo" ] = " camo_none" ;
142- self .pers[class ][" camo_num" ] = 0 ;
78+ case " none" :
79+ case " m16" :
80+ case " ak47" :
81+ case " m4" :
82+ case " g3" :
83+ case " g36c" :
84+ case " m14" :
85+ case " mp44" :
86+ case " mp5" :
87+ case " uzi" :
88+ case " ak74u" :
89+ case " winchester1200" :
90+ case " m1014" :
91+ case " m40a3" :
92+ case " remington700" :
93+ break ;
94+ default :
95+ primaryWeapon = getDvar(" class_" +class +" _primary" );
96+ }
97+
98+ camos = strtok(" camo_brockhaurd|camo_bushdweller|camo_blackwhitemarpat|camo_tigerred|camo_stagger" , " |" );
99+ camonum = 0 ;
100+
101+ if (isDefined(self .pers[class ][" loadout_camo" ]))
102+ {
103+ for (i=0 ;i<camos.size ;i++)
104+ if (self .pers[class ][" loadout_camo" ] == camos[i])
105+ {
106+ camonum = i+1 ;
107+ break ;
108+ }
109+
110+ if (self .pers[class ][" loadout_camo" ] == " camo_gold" && (primaryWeapon == " ak47" || primaryWeapon == " uzi" || primaryWeapon == " m1014" ))
111+ camonum = 6 ;
143112 }
113+ else
114+ self .pers[class ][" loadout_camo" ] = " camo_none" ;
144115
145- if ( primaryWeapon != " none" )
116+ if ( primaryWeapon != " none" )
146117 {
147- if ( self .pers[class ][" loadout_primary_attachment" ] == " silencer" )
148- primaryWeapon = primaryWeapon + " _silencer_mp" ;
118+ s = " " ;
119+ if (self .pers[class ][" loadout_primary_attachment" ] == " silencer" )
120+ s = " _silencer" ;
149121 else
150- {
151122 self .pers[class ][" loadout_primary_attachment" ] = " none" ;
152- primaryWeapon = primaryWeapon + " _mp " ;
153- }
123+
124+ primaryWeapon += s+ " _mp " ;
154125
155126 self maps\mp\gametypes\_teams::playerModelForWeapon( self .pers[class ][" loadout_primary" ] );
156127
157128 if ( isDefined( level .strat_over ) && level .strat_over && ( !isDefined( game [" PROMOD_KNIFEROUND" ] ) || !game [" PROMOD_KNIFEROUND" ] ) || !isDefined( level .strat_over ) )
158129 {
159- self giveWeapon( primaryWeapon, self .pers[ class ][ " camo_num " ] );
130+ self giveWeapon( primaryWeapon, camonum );
160131 self setSpawnWeapon( primaryWeapon );
161132 self giveMaxAmmo( primaryWeapon );
162133 }
@@ -227,23 +198,4 @@ preserveClass( class )
227198set_config( dataName, value )
228199{
229200 self setStat( int( tableLookup( " promod/customStatsTable.csv" , 1 , dataName, 0 ) ), value );
230- }
231-
232- onPlayerConnecting()
233- {
234- for (;;)
235- {
236- level waittill ( " connecting" , player );
237-
238- if ( !isDefined( player.pers[" class" ] ) )
239- player.pers[" class" ] = undefined ;
240-
241- player.class = player.pers[" class" ];
242- }
243- }
244-
245- setClass( newClass )
246- {
247- self setClientDvar( " loadout_curclass" , newClass );
248- self .curClass = newClass;
249201}
0 commit comments