Skip to content

Commit 8436ce9

Browse files
IngramzTrivve
authored andcommitted
Promod LIVE V2.18 release
1 parent 1b0be92 commit 8436ce9

File tree

17 files changed

+138
-178
lines changed

17 files changed

+138
-178
lines changed

compile.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
@echo off
1010

11-
SET mod_name=pml217
11+
SET mod_name=pml218
1212
SET work_directory=%~dp0
1313
cd %work_directory%
1414

compile_fastfile.bat

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ xcopy shock ..\..\raw\shock\ /SY
1919
xcopy sound ..\..\raw\sound\ /SY
2020
xcopy soundaliases ..\..\raw\soundaliases\ /SY
2121
xcopy ui_mp ..\..\raw\ui_mp\ /SY
22+
xcopy xmodel ..\..\raw\xmodel\ /SY
2223

2324
copy mod.csv ..\..\zone_source /Y
2425

2526
cd ..\..\bin
2627
linker_pc.exe -language english -compress -cleanup mod -verbose
2728

28-
cd ..\mods\pml217
29+
cd ..\mods\pml218
2930
copy ..\..\zone\english\mod.ff
3031

3132
pause

maps/mp/_flashgrenades.gsc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,7 @@ monitorFlash()
4848
{
4949
self waittill( "flashbang", amount_distance, amount_angle, attacker );
5050

51-
if ( !isalive( self ) )
52-
continue;
53-
54-
if ( ( isDefined( level.rdyup ) && level.rdyup && ( !isDefined( self.ruptally ) || self.ruptally < 0 ) ) || isDefined( game["PROMOD_MATCH_MODE"] ) && game["PROMOD_MATCH_MODE"] == "strat" && isDefined( self.flying ) && self.flying )
51+
if ( !isalive( self ) || ( isDefined( level.rdyup ) && level.rdyup && ( !isDefined( self.ruptally ) || self.ruptally < 0 ) ) || isDefined( game["PROMOD_MATCH_MODE"] ) && game["PROMOD_MATCH_MODE"] == "strat" && isDefined( self.flying ) && self.flying || isDefined( game["PROMOD_KNIFEROUND"] ) && game["PROMOD_KNIFEROUND"] )
5552
continue;
5653

5754
hurtattacker = false;

maps/mp/gametypes/_class.gsc

Lines changed: 62 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -8,78 +8,34 @@
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-
4711
giveLoadout( 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 )
227198
set_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
}

maps/mp/gametypes/_globallogic.gsc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2679,7 +2679,6 @@ Callback_StartGameType()
26792679
level.useStartSpawns = true;
26802680

26812681
thread maps\mp\gametypes\_promod::init();
2682-
thread maps\mp\gametypes\_class::init();
26832682
thread maps\mp\gametypes\_rank::init();
26842683
thread maps\mp\gametypes\_menus::init();
26852684
thread maps\mp\gametypes\_hud::init();
@@ -3131,7 +3130,7 @@ Callback_PlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, s
31313130
self.attackers[ self.attackers.size ] = eAttacker;
31323131
self.attackerData[eAttacker.clientid] = false;
31333132
}
3134-
if ( maps\mp\gametypes\_weapons::isPrimaryWeapon( sWeapon ) )
3133+
if ( WeaponInventoryType( sWeapon ) == "primary" )
31353134
self.attackerData[eAttacker.clientid] = true;
31363135
}
31373136

maps/mp/gametypes/_promod.gsc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -616,8 +616,8 @@ updateServerDvars()
616616

617617
get_config( dataName )
618618
{
619-
self.dataValue = self getStat( int( tableLookup( "promod/customStatsTable.csv", 1, dataName, 0 ) ) );
620-
self.dataString = tablelookup( "promod/customStatsTable.csv", 0, self.dataValue, 1 );
619+
dataValue = self getStat( int( tableLookup( "promod/customStatsTable.csv", 1, dataName, 0 ) ) );
620+
dataString = tablelookup( "promod/customStatsTable.csv", 0, dataValue, 1 );
621621

622-
return self.dataString;
622+
return dataString;
623623
}

maps/mp/gametypes/_weapons.gsc

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,7 @@ shotCounter()
144144
printStats()
145145
{
146146
if(isDefined(game["PROMOD_MATCH_MODE"]) && game["PROMOD_MATCH_MODE"] == "match" && isDefined(self.hasDoneCombat) && self.hasDoneCombat && isDefined(level.gameEnded) && !level.gameEnded && (!isDefined( game["promod_do_readyup"] ) || !game["promod_do_readyup"]))
147-
{
148147
self iprintln("Can't display stats. Wait for the round to end.");
149-
}
150148
else
151149
{
152150
if ( !isDefined( self.pers["damage_done"] ) )
@@ -197,32 +195,46 @@ dropWeaponForDeath( attacker )
197195
if ( !isDefined( weapon ) || !self hasWeapon( weapon ) )
198196
return;
199197

200-
if( isPrimaryWeapon( weapon ) )
198+
switch ( weapon )
201199
{
202-
switch ( level.primary_weapon_array[weapon] )
203-
{
204-
case "weapon_assault":
205-
if ( !getDvarInt( "class_assault_allowdrop" ) )
206-
return;
207-
break;
208-
case "weapon_smg":
209-
if ( !getDvarInt( "class_specops_allowdrop" ) )
210-
return;
211-
break;
212-
case "weapon_sniper":
213-
if ( !getDvarInt( "class_sniper_allowdrop" ) )
214-
return;
215-
break;
216-
case "weapon_shotgun":
217-
if ( !getDvarInt( "class_demolitions_allowdrop" ) )
218-
return;
219-
break;
220-
default:
200+
case "m16_mp":
201+
case "m16_silencer_mp":
202+
case "ak47_mp":
203+
case "ak47_silencer_mp":
204+
case "m4_mp":
205+
case "m4_silencer_mp":
206+
case "g3_mp":
207+
case "g3_silencer_mp":
208+
case "g36c_mp":
209+
case "g36c_silencer_mp":
210+
case "m14_mp":
211+
case "m14_silencer_mp":
212+
case "mp44_mp":
213+
if ( !getDvarInt( "class_assault_allowdrop" ) )
221214
return;
222-
}
215+
break;
216+
case "mp5_mp":
217+
case "mp5_silencer_mp":
218+
case "uzi_mp":
219+
case "uzi_silencer_mp":
220+
case "ak74u_mp":
221+
case "ak74u_silencer_mp":
222+
if ( !getDvarInt( "class_specops_allowdrop" ) )
223+
return;
224+
break;
225+
case "m40a3_mp":
226+
case "remington700_mp":
227+
if ( !getDvarInt( "class_sniper_allowdrop" ) )
228+
return;
229+
break;
230+
case "winchester1200_mp":
231+
case "m1014_mp":
232+
if ( !getDvarInt( "class_demolitions_allowdrop" ) )
233+
return;
234+
break;
235+
default:
236+
return;
223237
}
224-
else if ( WeaponClass( weapon ) != "pistol" )
225-
return false;
226238

227239
clipAmmo = self GetWeaponAmmoClip( weapon );
228240

@@ -300,9 +312,4 @@ onWeaponDamage( eInflictor, sWeapon, meansOfDeath, damage )
300312
self endon ( "disconnect" );
301313

302314
maps\mp\gametypes\_shellshock::shellshockOnDamage( meansOfDeath, damage );
303-
}
304-
305-
isPrimaryWeapon( weaponname )
306-
{
307-
return isdefined( level.primary_weapon_array[weaponname] );
308315
}

mod.csv

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,6 @@ rawfile,shock/damage_mp.shock
119119

120120
sound,promod,,all_mp
121121

122-
stringtable,promod/customStatsTable.csv
122+
stringtable,promod/customStatsTable.csv
123+
124+
xmodel,com_floodlight_on

pb/promod_iwd_md5.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pb_sv_md5tool a "" v mods/pml217/pml217.iwd SZ276308 AT0 LEN2048 0B6BD48A1B9FE82904C3C4FD549B4FEA
1+
pb_sv_md5tool a "" v pml218.iwd SZ276308 AT0 LEN2048 DA521500161DE4CA327F648779011C0A

0 commit comments

Comments
 (0)