This commit is contained in:
parent
2d7a857fe7
commit
ed67071fce
@ -1,12 +1,289 @@
|
||||
init()
|
||||
{
|
||||
if ( getdvarint( "scr_forcerankedmatch" ) == 1 )
|
||||
{
|
||||
level.onlineGame = true;
|
||||
level.rankedmatch = true;
|
||||
|
||||
/#
|
||||
print( "[script]: Forced ranked\n" );
|
||||
#/
|
||||
}
|
||||
}
|
||||
main()
|
||||
{
|
||||
replacefunc( maps\mp\gametypes\_rank::init, ::init_stub );
|
||||
replacefunc( maps\mp\gametypes\_rank::syncxpstat, ::syncxpstat_stub );
|
||||
|
||||
replacefunc( maps\mp\gametypes\_menus::onmenuresponse, ::onmenuresponse_stub );
|
||||
|
||||
if ( getdvarint( "scr_oldscavenger", 0 ) == 1 )
|
||||
{
|
||||
replacefunc( maps\mp\gametypes\_weapons::handlescavengerbagpickup, ::handlescavengerbagpickup_stub );
|
||||
}
|
||||
}
|
||||
|
||||
init()
|
||||
{
|
||||
if ( getdvarint( "scr_forcerankedmatch", 0 ) == 1 )
|
||||
{
|
||||
level.onlineGame = true;
|
||||
level.rankedmatch = true;
|
||||
|
||||
/#
|
||||
print( "[script]: Forced ranked\n" );
|
||||
#/
|
||||
}
|
||||
}
|
||||
|
||||
init_stub()
|
||||
{
|
||||
level.scoreinfo = [];
|
||||
level.xpscale = getdvarint( "scr_xpscale" );
|
||||
|
||||
level.xpscale = max( level.xpscale, 0 );
|
||||
level.ranktable = [];
|
||||
level.weaponranktable = [];
|
||||
precacheshader( "white" );
|
||||
precachestring( &"RANK_PLAYER_WAS_PROMOTED_N" );
|
||||
precachestring( &"RANK_PLAYER_WAS_PROMOTED" );
|
||||
precachestring( &"RANK_WEAPON_WAS_PROMOTED" );
|
||||
precachestring( &"RANK_PROMOTED" );
|
||||
precachestring( &"RANK_PROMOTED_WEAPON" );
|
||||
precachestring( &"MP_PLUS" );
|
||||
precachestring( &"RANK_ROMANI" );
|
||||
precachestring( &"RANK_ROMANII" );
|
||||
precachestring( &"RANK_ROMANIII" );
|
||||
precachestring( &"SPLASHES_LONGSHOT" );
|
||||
precachestring( &"SPLASHES_PROXIMITYASSIST" );
|
||||
precachestring( &"SPLASHES_PROXIMITYKILL" );
|
||||
precachestring( &"SPLASHES_EXECUTION" );
|
||||
precachestring( &"SPLASHES_AVENGER" );
|
||||
precachestring( &"SPLASHES_ASSISTEDSUICIDE" );
|
||||
precachestring( &"SPLASHES_DEFENDER" );
|
||||
precachestring( &"SPLASHES_POSTHUMOUS" );
|
||||
precachestring( &"SPLASHES_REVENGE" );
|
||||
precachestring( &"SPLASHES_DOUBLEKILL" );
|
||||
precachestring( &"SPLASHES_TRIPLEKILL" );
|
||||
precachestring( &"SPLASHES_MULTIKILL" );
|
||||
precachestring( &"SPLASHES_BUZZKILL" );
|
||||
precachestring( &"SPLASHES_COMEBACK" );
|
||||
precachestring( &"SPLASHES_KNIFETHROW" );
|
||||
precachestring( &"SPLASHES_ONE_SHOT_KILL" );
|
||||
|
||||
if ( level.teambased )
|
||||
{
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "kill", 100 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "headshot", 100 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "assist", 20 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "proximityassist", 20 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "proximitykill", 20 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "suicide", 0 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "teamkill", 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "kill", 50 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "headshot", 50 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "assist", 0 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "suicide", 0 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "teamkill", 0 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "win", 1 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "loss", 0.5 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "tie", 0.75 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "capture", 300 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "defend", 300 );
|
||||
maps\mp\gametypes\_rank::registerscoreinfo( "challenge", 2500 );
|
||||
level.maxrank = int( tablelookup( "mp/rankTable.csv", 0, "maxrank", 1 ) );
|
||||
level.maxprestige = int( tablelookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ) );
|
||||
var_0 = 0;
|
||||
var_1 = 0;
|
||||
|
||||
for ( var_0 = 0; var_0 <= level.maxprestige; var_0++ )
|
||||
{
|
||||
for ( var_1 = 0; var_1 <= level.maxrank; var_1++ )
|
||||
precacheshader( tablelookup( "mp/rankIconTable.csv", 0, var_1, var_0 + 1 ) );
|
||||
}
|
||||
|
||||
var_2 = 0;
|
||||
|
||||
for ( var_3 = tablelookup( "mp/ranktable.csv", 0, var_2, 1 ); isdefined( var_3 ) && var_3 != ""; var_3 = tablelookup( "mp/ranktable.csv", 0, var_2, 1 ) )
|
||||
{
|
||||
level.ranktable[var_2][1] = tablelookup( "mp/ranktable.csv", 0, var_2, 1 );
|
||||
level.ranktable[var_2][2] = tablelookup( "mp/ranktable.csv", 0, var_2, 2 );
|
||||
level.ranktable[var_2][3] = tablelookup( "mp/ranktable.csv", 0, var_2, 3 );
|
||||
level.ranktable[var_2][7] = tablelookup( "mp/ranktable.csv", 0, var_2, 7 );
|
||||
precachestring( tablelookupistring( "mp/ranktable.csv", 0, var_2, 16 ) );
|
||||
var_2++;
|
||||
}
|
||||
|
||||
var_4 = int( tablelookup( "mp/weaponRankTable.csv", 0, "maxrank", 1 ) );
|
||||
|
||||
for ( var_5 = 0; var_5 < var_4 + 1; var_5++ )
|
||||
{
|
||||
level.weaponranktable[var_5][1] = tablelookup( "mp/weaponRankTable.csv", 0, var_5, 1 );
|
||||
level.weaponranktable[var_5][2] = tablelookup( "mp/weaponRankTable.csv", 0, var_5, 2 );
|
||||
level.weaponranktable[var_5][3] = tablelookup( "mp/weaponRankTable.csv", 0, var_5, 3 );
|
||||
}
|
||||
|
||||
maps\mp\gametypes\_missions::buildchallegeinfo();
|
||||
level thread maps\mp\gametypes\_rank::patientzerowaiter();
|
||||
level thread maps\mp\gametypes\_rank::onplayerconnect();
|
||||
}
|
||||
|
||||
syncxpstat_stub()
|
||||
{
|
||||
var_0 = maps\mp\gametypes\_rank::getrankxp();
|
||||
maps\mp\gametypes\_persistence::statset( "experience", var_0 );
|
||||
}
|
||||
|
||||
onmenuresponse_stub()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "menuresponse", var_0, var_1 );
|
||||
|
||||
if ( var_1 == "back" )
|
||||
{
|
||||
self closepopupmenu();
|
||||
self closeingamemenu();
|
||||
|
||||
if ( maps\mp\gametypes\_menus::isoptionsmenu( var_0 ) )
|
||||
{
|
||||
if ( self.pers["team"] == "allies" )
|
||||
self openpopupmenu( game["menu_class_allies"] );
|
||||
|
||||
if ( self.pers["team"] == "axis" )
|
||||
self openpopupmenu( game["menu_class_axis"] );
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_1 == "changeteam" )
|
||||
{
|
||||
self closepopupmenu();
|
||||
self closeingamemenu();
|
||||
self openpopupmenu( game["menu_team"] );
|
||||
}
|
||||
|
||||
if ( var_1 == "changeclass_marines" )
|
||||
{
|
||||
self closepopupmenu();
|
||||
self closeingamemenu();
|
||||
self openpopupmenu( game["menu_changeclass_allies"] );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_1 == "changeclass_opfor" )
|
||||
{
|
||||
self closepopupmenu();
|
||||
self closeingamemenu();
|
||||
self openpopupmenu( game["menu_changeclass_axis"] );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_1 == "changeclass_marines_splitscreen" )
|
||||
self openpopupmenu( "changeclass_marines_splitscreen" );
|
||||
|
||||
if ( var_1 == "changeclass_opfor_splitscreen" )
|
||||
self openpopupmenu( "changeclass_opfor_splitscreen" );
|
||||
|
||||
if ( var_1 == "endgame" )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_1 == "endround" )
|
||||
{
|
||||
if ( !self ishost() )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( !level.gameended )
|
||||
level thread maps\mp\gametypes\_gamelogic::forceend();
|
||||
else
|
||||
{
|
||||
self closepopupmenu();
|
||||
self closeingamemenu();
|
||||
self iprintln( &"MP_HOST_ENDGAME_RESPONSE" );
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_0 == game["menu_team"] )
|
||||
{
|
||||
switch ( var_1 )
|
||||
{
|
||||
case "allies":
|
||||
self [[ level.allies ]]();
|
||||
break;
|
||||
case "axis":
|
||||
self [[ level.axis ]]();
|
||||
break;
|
||||
case "autoassign":
|
||||
self [[ level.autoassign ]]();
|
||||
break;
|
||||
case "spectator":
|
||||
self [[ level.spectator ]]();
|
||||
break;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_0 == game["menu_changeclass"] || isdefined( game["menu_changeclass_defaults_splitscreen"] ) && var_0 == game["menu_changeclass_defaults_splitscreen"] || isdefined( game["menu_changeclass_custom_splitscreen"] ) && var_0 == game["menu_changeclass_custom_splitscreen"] )
|
||||
{
|
||||
self closepopupmenu();
|
||||
self closeingamemenu();
|
||||
self.selectedclass = 1;
|
||||
self [[ level.class ]]( var_1 );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_0 == game["menu_quickcommands"] )
|
||||
{
|
||||
maps\mp\gametypes\_quickmessages::quickcommands( var_1 );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_0 == game["menu_quickstatements"] )
|
||||
{
|
||||
maps\mp\gametypes\_quickmessages::quickstatements( var_1 );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( var_0 == game["menu_quickresponses"] )
|
||||
maps\mp\gametypes\_quickmessages::quickresponses( var_1 );
|
||||
}
|
||||
}
|
||||
|
||||
handlescavengerbagpickup_stub( var_0 )
|
||||
{
|
||||
self endon( "death" );
|
||||
level endon( "game_ended" );
|
||||
|
||||
assert( isdefined( var_0 ) );
|
||||
|
||||
self waittill( "scavenger", var_1 );
|
||||
|
||||
assert( isdefined ( var_1 ) );
|
||||
|
||||
var_1 notify( "scavenger_pickup" );
|
||||
var_1 playlocalsound( "scavenger_pack_pickup" );
|
||||
var_2 = var_1 getweaponslistoffhands();
|
||||
|
||||
foreach ( var_4 in var_2 )
|
||||
{
|
||||
var_5 = var_1 getweaponammoclip( var_4 );
|
||||
var_1 setweaponammoclip( var_4, var_5 + 1 );
|
||||
}
|
||||
|
||||
var_7 = var_1 getweaponslistprimaries();
|
||||
|
||||
foreach ( var_9 in var_7 )
|
||||
{
|
||||
if ( !maps\mp\_utility::iscacprimaryweapon( var_9 ) && !level.scavenger_secondary )
|
||||
continue;
|
||||
|
||||
var_10 = var_1 getweaponammostock( var_9 );
|
||||
var_11 = weaponclipsize( var_9 );
|
||||
var_1 setweaponammostock( var_9, var_10 + var_11 );
|
||||
}
|
||||
|
||||
var_1 maps\mp\gametypes\_damagefeedback::updatedamagefeedback( "scavenger" );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user