commit
704a69a9ec
|
@ -33,11 +33,14 @@ getLosingPlayers()
|
|||
}
|
||||
|
||||
|
||||
givePlayerScore( event, player, victim, overridePointsPopup )
|
||||
givePlayerScore( event, player, victim, overrideCheckPlayerScoreLimitSoon, overridePointsPopup )
|
||||
{
|
||||
if ( isDefined( level.nukeIncoming ) )
|
||||
return;
|
||||
|
||||
if ( !isDefined( overrideCheckPlayerScoreLimitSoon ) )
|
||||
overrideCheckPlayerScoreLimitSoon = false;
|
||||
|
||||
if ( !isDefined( overridePointsPopup ) )
|
||||
overridePointsPopup = false;
|
||||
|
||||
|
@ -58,7 +61,11 @@ givePlayerScore( event, player, victim, overridePointsPopup )
|
|||
if ( !level.teambased )
|
||||
thread sendUpdatedDMScores();
|
||||
|
||||
// player score and team score aren't always the same values towards winning the match
|
||||
// checkScoreLimit() checks team score correctly, checkPlayerScoreLimitSoon() uses player score
|
||||
if ( !overrideCheckPlayerScoreLimitSoon )
|
||||
player maps\mp\gametypes\_gamelogic::checkPlayerScoreLimitSoon();
|
||||
|
||||
scoreEndedMatch = player maps\mp\gametypes\_gamelogic::checkScoreLimit();
|
||||
|
||||
if ( scoreEndedMatch && event == "kill" )
|
||||
|
|
|
@ -189,11 +189,10 @@ waitLoadoutDone()
|
|||
|
||||
self waittill( "spawned_player" );
|
||||
|
||||
self _setPerk( "specialty_bling" );
|
||||
self giveNextGun( true );
|
||||
}
|
||||
|
||||
onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration )
|
||||
onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration, lifeId )
|
||||
{
|
||||
if ( sMeansOfDeath == "MOD_FALLING" || ( isDefined( attacker ) && isPlayer( attacker ) ) )
|
||||
{
|
||||
|
|
|
@ -26,6 +26,7 @@ main()
|
|||
level.onSpawnPlayer = ::onSpawnPlayer;
|
||||
level.getSpawnPoint = ::getSpawnPoint;
|
||||
level.onPlayerKilled = ::onPlayerKilled;
|
||||
level.onDeadEvent = ::onDeadEvent;
|
||||
level.onTimeLimit = ::onTimeLimit;
|
||||
|
||||
level.infect_perks = [];
|
||||
|
@ -54,12 +55,13 @@ determineWinningTeam()
|
|||
|
||||
onPrecacheGameType()
|
||||
{
|
||||
precachestring( &"MP_CONSCRIPTION_STARTS_IN" );
|
||||
precacheString( &"MP_CONSCRIPTION_STARTS_IN" );
|
||||
}
|
||||
|
||||
onStartGameType()
|
||||
{
|
||||
setclientnamemode( "auto_change" );
|
||||
setClientNameMode("auto_change");
|
||||
|
||||
setObjectiveText( "allies", &"OBJECTIVES_INFECT" );
|
||||
setObjectiveText( "axis", &"OBJECTIVES_INFECT" );
|
||||
|
||||
|
@ -103,7 +105,6 @@ onStartGameType()
|
|||
level.infect_choseFirstInfected = false;
|
||||
level.infect_choosingFirstInfected = false;
|
||||
level.infect_awardedFinalSurvivor = false;
|
||||
level.infect_countdownInProgress = false;
|
||||
|
||||
level.infect_teamScores["axis"] = 0;
|
||||
level.infect_teamScores["allies"] = 0;
|
||||
|
@ -118,20 +119,15 @@ onPlayerConnect()
|
|||
for (;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
|
||||
player.infect_firstSpawn = true;
|
||||
player.infected_Rejoined = false;
|
||||
player.infect_JoinedAtStart = true;
|
||||
|
||||
if ( gameFlag( "prematch_done" ) )
|
||||
{
|
||||
player.infect_JoinedAtStart = false;
|
||||
}
|
||||
// infected who quit and rejoined same game
|
||||
if( IsDefined( level.infect_players[player.name] ) )
|
||||
{
|
||||
player.infected_Rejoined = true;
|
||||
}
|
||||
player.infect_joinedatstart = false;
|
||||
else
|
||||
player.infect_joinedatstart = true;
|
||||
|
||||
if ( isDefined( level.infect_players[player.name] ) )
|
||||
player.infect_rejoined = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,18 +144,13 @@ getSpawnPoint()
|
|||
self.class = self.pers["class"];
|
||||
self.lastClass = self.pers["lastClass"];
|
||||
|
||||
// survivors are allies
|
||||
teamChoice = "allies";
|
||||
|
||||
// everyone starts as survivors, unless an infected quit and rejoined same game
|
||||
if( self.infected_Rejoined )
|
||||
{
|
||||
teamChoice = "axis";
|
||||
}
|
||||
|
||||
self maps\mp\gametypes\_menus::addToTeam( teamChoice, true );
|
||||
if ( isDefined( self.infect_rejoined ) )
|
||||
maps\mp\gametypes\_menus::addToTeam( "axis", true );
|
||||
else
|
||||
maps\mp\gametypes\_menus::addToTeam( "allies", true );
|
||||
|
||||
thread onPlayerDisconnect();
|
||||
|
||||
}
|
||||
|
||||
if ( level.inGracePeriod )
|
||||
|
@ -176,12 +167,11 @@ getSpawnPoint()
|
|||
return spawnPoint;
|
||||
}
|
||||
|
||||
|
||||
onSpawnPlayer()
|
||||
{
|
||||
self.teamChangedThisFrame = undefined;
|
||||
self.infect_spawnPos = self.origin;
|
||||
|
||||
// resynch teams
|
||||
self.teamchangedthisframe = undefined;
|
||||
self.infect_spawnpos = self.origin;
|
||||
updateTeamScores();
|
||||
|
||||
// let the first spawned player kick this off
|
||||
|
@ -191,17 +181,16 @@ onSpawnPlayer()
|
|||
level thread chooseFirstInfected();
|
||||
}
|
||||
|
||||
// infected who quit and rejoined same game?
|
||||
if( self.infected_Rejoined )
|
||||
if ( isDefined( self.infect_rejoined ) )
|
||||
{
|
||||
self.infect_rejoined = undefined;
|
||||
|
||||
// stop initial infect countdown (if quit/join player was initial and a new coutdown is underway)
|
||||
if ( !level.infect_allowSuicide )
|
||||
if ( !level.infect_allowsuicide )
|
||||
{
|
||||
level notify( "infect_stopCountdown" );
|
||||
level.infect_choseFirstInfected = true;
|
||||
level.infect_allowSuicide = true;
|
||||
level.infect_choseFirstInfected = 1;
|
||||
level.infect_allowsuicide = 1;
|
||||
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
if ( isDefined( player.infect_isBeingChosen ) )
|
||||
|
@ -209,16 +198,14 @@ onSpawnPlayer()
|
|||
}
|
||||
}
|
||||
|
||||
// if an initial was already chosen while they were gone and they are still initial, set them to normal
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
if ( isDefined( player.isInitialInfected ) )
|
||||
player thread setInitialToNormalInfected();
|
||||
}
|
||||
|
||||
// if they're the only infected, then set them as initial infected
|
||||
if ( level.infect_teamScores["axis"] == 1 )
|
||||
self.isInitialInfected = true;
|
||||
if ( level.infect_teamscores["axis"] == 1 )
|
||||
self.isInitialInfected = 1;
|
||||
}
|
||||
|
||||
// onSpawnPlayer() is called before giveLoadout()
|
||||
|
@ -228,8 +215,7 @@ onSpawnPlayer()
|
|||
else
|
||||
self.pers["gamemodeLoadout"] = level.infect_loadouts[self.pers["team"]];
|
||||
|
||||
self thread onSpawnFinished();
|
||||
|
||||
thread onSpawnFinished();
|
||||
level notify ( "spawned_player" );
|
||||
}
|
||||
|
||||
|
@ -323,32 +309,19 @@ chooseFirstInfected()
|
|||
level endon( "game_ended" );
|
||||
level endon( "infect_stopCountdown" );
|
||||
|
||||
level.infect_allowSuicide = false;
|
||||
level.infect_allowsuicide = false;
|
||||
|
||||
gameFlagWait( "prematch_done" );
|
||||
|
||||
level.infect_timerDisplay.label = &"MP_DRAFT_STARTS_IN";
|
||||
level.infect_timerDisplay setTimer( 15 );
|
||||
level.infect_timerDisplay settimer( 8 );
|
||||
level.infect_timerDisplay.alpha = 1;
|
||||
|
||||
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( 15.0 );
|
||||
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( 8.0 );
|
||||
|
||||
level.infect_timerDisplay.alpha = 0;
|
||||
|
||||
possibleInfected = [];
|
||||
|
||||
foreach( player in level.players )
|
||||
{
|
||||
if ( player.team == "spectator" )
|
||||
continue;
|
||||
|
||||
if ( !player.hasSpawned )
|
||||
continue;
|
||||
|
||||
possibleInfected[possibleInfected.size] = player;
|
||||
}
|
||||
|
||||
firstInfectedPlayer = possibleInfected[ randomInt( possibleInfected.size ) ];
|
||||
firstInfectedPlayer setFirstInfected( true );
|
||||
level.players[randomint( level.players.size )] setFirstInfected( true );
|
||||
}
|
||||
|
||||
setFirstInfected( wasChosen )
|
||||
|
@ -359,14 +332,14 @@ setFirstInfected( wasChosen )
|
|||
self.infect_isBeingChosen = true;
|
||||
|
||||
// wait alive
|
||||
while( !isReallyAlive( self ) || self isUsingRemote() )
|
||||
wait( 0.05 );
|
||||
while ( !isReallyAlive( self ) || isUsingRemote() )
|
||||
wait 0.05;
|
||||
|
||||
// remove placement item if carrying
|
||||
if ( IsDefined( self.isCarrying ) && self.isCarrying == true )
|
||||
if ( isDefined( self.isCarrying ) && self.isCarrying == 1 )
|
||||
{
|
||||
self notify( "force_cancel_placement" );
|
||||
wait( 0.05 );
|
||||
wait 0.05;
|
||||
}
|
||||
|
||||
// not while mantling
|
||||
|
@ -377,6 +350,9 @@ setFirstInfected( wasChosen )
|
|||
while ( !self isOnGround() && !self IsOnLadder() )
|
||||
wait( 0.05 );
|
||||
|
||||
while ( !isAlive( self ) )
|
||||
waitframe();
|
||||
|
||||
// move to other team
|
||||
if ( wasChosen )
|
||||
{
|
||||
|
@ -385,7 +361,6 @@ setFirstInfected( wasChosen )
|
|||
self.infect_isBeingChosen = undefined;
|
||||
|
||||
// resynch teams
|
||||
level notify( "update_game_time" );
|
||||
updateTeamScores();
|
||||
|
||||
// allow suicides now
|
||||
|
@ -400,7 +375,7 @@ setFirstInfected( wasChosen )
|
|||
|
||||
// remove old TI if it exists
|
||||
if ( isDefined( self.setSpawnpoint ) )
|
||||
self maps\mp\perks\_perkfunctions::deleteTI( self.setSpawnpoint );
|
||||
maps\mp\perks\_perkfunctions::deleteTI( self.setSpawnpoint );
|
||||
|
||||
// set faux TI to respawn in place
|
||||
spawnPoint = spawn( "script_model", self.origin );
|
||||
|
@ -412,13 +387,12 @@ setFirstInfected( wasChosen )
|
|||
// faux spawn
|
||||
self notify( "faux_spawn" );
|
||||
self.faux_spawn_stance = self getStance();
|
||||
thread maps\mp\gametypes\_playerlogic::spawnPlayer( true );
|
||||
self thread maps\mp\gametypes\_playerlogic::spawnPlayer( true );
|
||||
|
||||
// store infected
|
||||
if ( wasChosen )
|
||||
level.infect_players[self.name] = true;
|
||||
|
||||
// tell the world!
|
||||
thread teamPlayerCardSplash( "callout_first_mercenary", self );
|
||||
playSoundOnPlayers( "mp_enemy_obj_captured" );
|
||||
}
|
||||
|
@ -472,11 +446,11 @@ setInitialToNormalInfected( gotKill )
|
|||
// faux spawn
|
||||
self notify( "faux_spawn" );
|
||||
self.faux_spawn_stance = self getStance();
|
||||
|
||||
thread maps\mp\gametypes\_playerlogic::spawnPlayer( true );
|
||||
}
|
||||
|
||||
onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration )
|
||||
|
||||
onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration, lifeId )
|
||||
{
|
||||
processKill = false;
|
||||
wasSuicide = false;
|
||||
|
@ -518,10 +492,8 @@ onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHi
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else if ( isDefined( attacker.isInitialInfected ) )
|
||||
// set attacker to regular infected if they were the first infected
|
||||
if ( isDefined( attacker.isInitialInfected ) )
|
||||
attacker thread setInitialToNormalInfected( true );
|
||||
else
|
||||
{
|
||||
|
@ -530,7 +502,6 @@ onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHi
|
|||
maps\mp\gametypes\_gamescore::givePlayerScore( "draft_rogue", attacker, self, true );
|
||||
attacker thread maps\mp\gametypes\_rank::giveRankXP( "draft_rogue" );
|
||||
}
|
||||
}
|
||||
|
||||
// generic messages/sounds, and reward survivors
|
||||
if ( level.infect_teamScores["allies"] > 1 )
|
||||
|
@ -545,10 +516,7 @@ onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHi
|
|||
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
if( !isReallyAlive( player ) || self.sessionstate == "spectator" )
|
||||
continue;
|
||||
|
||||
if ( player.team == "allies" && player != self && distance( player.infect_spawnPos, player.origin ) > 32 )
|
||||
if ( player.team == "allies" && player != self && distance( player.infect_spawnpos, player.origin ) > 32 )
|
||||
{
|
||||
player thread maps\mp\gametypes\_rank::xpEventPopup( &"SPLASHES_SURVIVOR" );
|
||||
maps\mp\gametypes\_gamescore::givePlayerScore( "survivor", player, undefined, true );
|
||||
|
@ -559,16 +527,11 @@ onPlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHi
|
|||
}
|
||||
// inform/reward last
|
||||
else if ( level.infect_teamScores["allies"] == 1 )
|
||||
{
|
||||
onFinalSurvivor();
|
||||
}
|
||||
// infected win
|
||||
else if ( level.infect_teamScores["allies"] == 0 )
|
||||
{
|
||||
onSurvivorsEliminated();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
onFinalSurvivor()
|
||||
|
@ -582,27 +545,27 @@ onFinalSurvivor()
|
|||
if ( player.team == "allies" )
|
||||
{
|
||||
player thread maps\mp\gametypes\_rank::xpEventPopup( &"SPLASHES_FINAL_ROGUE" );
|
||||
|
||||
if ( !level.infect_awardedFinalSurvivor )
|
||||
{
|
||||
if ( player.gameModeJoinedAtStart && isDefined( player.infect_spawnPos ) && distance( player.infect_spawnPos, player.origin ) > 32 )
|
||||
if ( player.infect_joinedatstart && distance( player.infect_spawnpos, player.origin ) > 32 )
|
||||
{
|
||||
maps\mp\gametypes\_gamescore::givePlayerScore( "final_rogue", player, undefined, true );
|
||||
player thread maps\mp\gametypes\_rank::giveRankXP( "final_rogue" );
|
||||
}
|
||||
|
||||
level.infect_awardedFinalSurvivor = true;
|
||||
}
|
||||
|
||||
thread teamplayercardsplash( "callout_final_rogue", player );
|
||||
thread maps\mp\_utility::teamPlayerCardSplash( "callout_final_rogue", player );
|
||||
|
||||
if ( matchMakingGame() )
|
||||
level thread finalsurvivoruav( player );
|
||||
|
||||
level thread finalSurvivorUAV( player );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
finalSurvivorUAV( finalPlayer )
|
||||
{
|
||||
level endon( "game_ended" );
|
||||
|
@ -612,34 +575,31 @@ finalSurvivorUAV( finalPlayer )
|
|||
level thread endUAVonLateJoiner( finalPlayer );
|
||||
|
||||
removeUAV = false;
|
||||
level.radarMode["axis"] = "normal_radar";
|
||||
level.radarmode["axis"] = "normal_radar";
|
||||
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
if ( player.team == "axis" )
|
||||
player.radarMode = "normal_radar";
|
||||
player.radarmode = "normal_radar";
|
||||
}
|
||||
|
||||
//setTeamRadarStrength( "axis", 1 );
|
||||
|
||||
while( true )
|
||||
for (;;)
|
||||
{
|
||||
prevPos = finalPlayer.origin;
|
||||
wait 4;
|
||||
|
||||
wait( 4 );
|
||||
if ( removeUAV )
|
||||
{
|
||||
setTeamRadar( "axis", 0 );
|
||||
removeUAV = false;
|
||||
}
|
||||
|
||||
wait( 6 );
|
||||
wait 6;
|
||||
|
||||
if ( distance( prevPos, finalPlayer.origin ) < 200 )
|
||||
{
|
||||
setTeamRadar( "axis", 1 );
|
||||
removeUAV = true;
|
||||
|
||||
foreach ( player in level.players )
|
||||
player playLocalSound( "recondrone_tag" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -650,16 +610,17 @@ endUAVonLateJoiner( finalPlayer )
|
|||
finalPlayer endon( "disconnect" );
|
||||
finalPlayer endon( "eliminated" );
|
||||
|
||||
while( true )
|
||||
for (;;)
|
||||
{
|
||||
if ( level.infect_teamScores["allies"] > 1 )
|
||||
{
|
||||
level notify( "infect_lateJoiner" );
|
||||
wait( 0.05 );
|
||||
wait 0.05;
|
||||
setTeamRadar( "axis", 0 );
|
||||
break;
|
||||
}
|
||||
wait( 0.05 );
|
||||
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -667,7 +628,6 @@ onPlayerDisconnect()
|
|||
{
|
||||
level endon( "game_ended" );
|
||||
self endon( "eliminated" );
|
||||
|
||||
self waittill( "disconnect" );
|
||||
|
||||
// resynch teams
|
||||
|
@ -714,7 +674,6 @@ onPlayerDisconnect()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// clear this regardless on the way out
|
||||
self.isInitialInfected = undefined;
|
||||
}
|
||||
|
@ -741,9 +700,8 @@ onDeadEvent( team )
|
|||
|
||||
onTimeLimit()
|
||||
{
|
||||
// survivors win
|
||||
level.finalKillCam_winner = "allies";
|
||||
level thread maps\mp\gametypes\_gamelogic::endGame( "allies", game[ "end_reason" ][ "time_limit_reached" ] );
|
||||
level thread maps\mp\gametypes\_gamelogic::endGame( "allies", game["strings"]["time_limit_reached"] );
|
||||
}
|
||||
|
||||
onSurvivorsEliminated()
|
||||
|
@ -753,33 +711,37 @@ onSurvivorsEliminated()
|
|||
level thread maps\mp\gametypes\_gamelogic::endGame( "axis", game[ "end_reason" ][ "allies_eliminated" ] );
|
||||
}
|
||||
|
||||
getTeamSize( team )
|
||||
getNumInfected()
|
||||
{
|
||||
size = 0;
|
||||
|
||||
numInfected = 0;
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
// Make sure we don't check for spectators
|
||||
// Also need to check for if they are in killcam, because player session states are set to spectator when killcam happens
|
||||
if ( player.sessionstate == "spectator" && !player.spectatekillcam )
|
||||
continue;
|
||||
|
||||
if( player.team == team )
|
||||
size++;
|
||||
if ( isdefined( player.team ) && player.team == "axis" )
|
||||
numInfected++;
|
||||
}
|
||||
return numInfected;
|
||||
}
|
||||
|
||||
return size;
|
||||
getNumSurvivors()
|
||||
{
|
||||
numSurvivors = 0;
|
||||
foreach ( player in level.players )
|
||||
{
|
||||
if ( isdefined( player.team ) && player.team == "allies" )
|
||||
numSurvivors++;
|
||||
}
|
||||
return numSurvivors;
|
||||
}
|
||||
|
||||
updateTeamScores()
|
||||
{
|
||||
// survivors
|
||||
level.infect_teamScores["allies"] = getTeamSize( "allies" );
|
||||
level.infect_teamScores["allies"] = getNumSurvivors();
|
||||
game["teamScores"]["allies"] = level.infect_teamScores["allies"];
|
||||
setTeamScore( "allies", level.infect_teamScores["allies"] );
|
||||
|
||||
// infected
|
||||
level.infect_teamScores["axis"] = getTeamSize( "axis" );
|
||||
level.infect_teamScores["axis"] = getNumInfected();
|
||||
game["teamScores"]["axis"] = level.infect_teamScores["axis"];
|
||||
setTeamScore( "axis", level.infect_teamScores["axis"] );
|
||||
}
|
||||
|
@ -802,11 +764,11 @@ setSpecialLoadouts()
|
|||
level.infect_loadouts["axis"]["loadoutKillstreak1"] = "none";
|
||||
level.infect_loadouts["axis"]["loadoutKillstreak2"] = "none";
|
||||
level.infect_loadouts["axis"]["loadoutKillstreak3"] = "none";
|
||||
level.infect_loadouts["axis"]["loadoutDeathstreak"] = "specialty_grenadepulldeath";
|
||||
level.infect_loadouts["axis"]["loadoutDeathstreak"] = "none";
|
||||
|
||||
level.infect_loadouts["axis_initial"]["loadoutPrimary"] = "scar";
|
||||
level.infect_loadouts["axis_initial"]["loadoutPrimaryAttachment"] = "reflex";
|
||||
level.infect_loadouts["axis_initial"]["loadoutPrimaryAttachment2"] = "xmags";
|
||||
level.infect_loadouts["axis_initial"]["loadoutPrimary"] = "throwingknife";
|
||||
level.infect_loadouts["axis_initial"]["loadoutPrimaryAttachment"] = "none";
|
||||
level.infect_loadouts["axis_initial"]["loadoutPrimaryAttachment2"] = "none";
|
||||
level.infect_loadouts["axis_initial"]["loadoutPrimaryCamo"] = "none";
|
||||
level.infect_loadouts["axis_initial"]["loadoutSecondary"] = "none";
|
||||
level.infect_loadouts["axis_initial"]["loadoutSecondaryAttachment"] = "none";
|
||||
|
@ -820,7 +782,7 @@ setSpecialLoadouts()
|
|||
level.infect_loadouts["axis_initial"]["loadoutKillstreak1"] = "none";
|
||||
level.infect_loadouts["axis_initial"]["loadoutKillstreak2"] = "none";
|
||||
level.infect_loadouts["axis_initial"]["loadoutKillstreak3"] = "none";
|
||||
level.infect_loadouts["axis_initial"]["loadoutDeathstreak"] = "specialty_grenadepulldeath";
|
||||
level.infect_loadouts["axis_initial"]["loadoutDeathstreak"] = "none";
|
||||
|
||||
level.infect_loadouts["allies"]["loadoutPrimary"] = "spas12";
|
||||
level.infect_loadouts["allies"]["loadoutPrimaryAttachment"] = "xmags";
|
||||
|
|
Loading…
Reference in New Issue