mirror of
https://github.com/ineedbots/iw4_bot_warfare.git
synced 2025-04-22 05:55:42 +00:00
patch_mp gsc
This commit is contained in:
parent
b68d4c9bf3
commit
ec6d02fb2b
@ -2223,7 +2223,7 @@ reviveTriggerThink( team )
|
|||||||
self.owner clearLowerMessage( "last_stand" );
|
self.owner clearLowerMessage( "last_stand" );
|
||||||
|
|
||||||
if ( self.owner _hasPerk( "specialty_lightweight" ) )
|
if ( self.owner _hasPerk( "specialty_lightweight" ) )
|
||||||
self.owner.moveSpeedScaler = 1.10;
|
self.owner.moveSpeedScaler = 1.07;
|
||||||
else
|
else
|
||||||
self.owner.moveSpeedScaler = 1;
|
self.owner.moveSpeedScaler = 1;
|
||||||
|
|
||||||
|
@ -8,6 +8,12 @@ init()
|
|||||||
level.scoreInfo = [];
|
level.scoreInfo = [];
|
||||||
level.xpScale = getDvarInt( "scr_xpscale" );
|
level.xpScale = getDvarInt( "scr_xpscale" );
|
||||||
|
|
||||||
|
if ( level.xpScale > 4 || level.xpScale < 0)
|
||||||
|
exitLevel( false );
|
||||||
|
|
||||||
|
level.xpScale = min( level.xpScale, 4 );
|
||||||
|
level.xpScale = max( level.xpScale, 0 );
|
||||||
|
|
||||||
level.rankTable = [];
|
level.rankTable = [];
|
||||||
|
|
||||||
precacheShader("white");
|
precacheShader("white");
|
||||||
@ -84,11 +90,12 @@ patientZeroWaiter()
|
|||||||
{
|
{
|
||||||
level endon( "game_ended" );
|
level endon( "game_ended" );
|
||||||
|
|
||||||
level waittill( "prematch_over" );
|
while ( !isDefined( level.players ) || !level.players.size )
|
||||||
|
wait ( 0.05 );
|
||||||
|
|
||||||
if ( !matchMakingGame() )
|
if ( !matchMakingGame() )
|
||||||
{
|
{
|
||||||
if ( getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999 )
|
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
|
||||||
level.patientZeroName = level.players[0].name;
|
level.patientZeroName = level.players[0].name;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -620,7 +627,7 @@ incRankXP( amount )
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
xp = self getRankXP();
|
xp = self getRankXP();
|
||||||
newXp = (xp + amount);
|
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
|
||||||
|
|
||||||
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
|
||||||
newXp = getRankInfoMaxXP( level.maxRank );
|
newXp = getRankInfoMaxXP( level.maxRank );
|
||||||
@ -670,6 +677,9 @@ isLastRestXPAward( baseXP )
|
|||||||
|
|
||||||
syncXPStat()
|
syncXPStat()
|
||||||
{
|
{
|
||||||
|
if ( level.xpScale > 4 || level.xpScale <= 0)
|
||||||
|
exitLevel( false );
|
||||||
|
|
||||||
xp = self getRankXP();
|
xp = self getRankXP();
|
||||||
|
|
||||||
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
|
||||||
|
@ -95,6 +95,12 @@ onPlayerConnect()
|
|||||||
if( !isDefined ( player.pers[ "killstreaks" ] ) )
|
if( !isDefined ( player.pers[ "killstreaks" ] ) )
|
||||||
player.pers[ "killstreaks" ] = [];
|
player.pers[ "killstreaks" ] = [];
|
||||||
|
|
||||||
|
if( !isDefined ( player.pers[ "kID" ] ) )
|
||||||
|
player.pers[ "kID" ] = 10;
|
||||||
|
|
||||||
|
if( !isDefined ( player.pers[ "kIDs_valid" ] ) )
|
||||||
|
player.pers[ "kIDs_valid" ] = [];
|
||||||
|
|
||||||
player.lifeId = 0;
|
player.lifeId = 0;
|
||||||
|
|
||||||
if ( isDefined( player.pers["deaths"] ) )
|
if ( isDefined( player.pers["deaths"] ) )
|
||||||
@ -203,6 +209,7 @@ killstreakUsePressed()
|
|||||||
lifeId = self.pers["killstreaks"][0].lifeId;
|
lifeId = self.pers["killstreaks"][0].lifeId;
|
||||||
isEarned = self.pers["killstreaks"][0].earned;
|
isEarned = self.pers["killstreaks"][0].earned;
|
||||||
awardXp = self.pers["killstreaks"][0].awardXp;
|
awardXp = self.pers["killstreaks"][0].awardXp;
|
||||||
|
kID = self.pers["killstreaks"][0].kID;
|
||||||
|
|
||||||
assert( isDefined( streakName ) );
|
assert( isDefined( streakName ) );
|
||||||
assert( isDefined( level.killstreakFuncs[ streakName ] ) );
|
assert( isDefined( level.killstreakFuncs[ streakName ] ) );
|
||||||
@ -246,11 +253,19 @@ killstreakUsePressed()
|
|||||||
if ( !self isWeaponEnabled() )
|
if ( !self isWeaponEnabled() )
|
||||||
return ( false );
|
return ( false );
|
||||||
|
|
||||||
|
if ( streakName == "airdrop" || streakName == "airdrop_sentry_minigun" || streakName == "airdrop_mega" )
|
||||||
|
{
|
||||||
|
if ( !self [[ level.killstreakFuncs[ streakName ] ]]( lifeId, kID ) )
|
||||||
|
return ( false );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if ( !self [[ level.killstreakFuncs[ streakName ] ]]( lifeId ) )
|
if ( !self [[ level.killstreakFuncs[ streakName ] ]]( lifeId ) )
|
||||||
return ( false );
|
return ( false );
|
||||||
|
}
|
||||||
|
|
||||||
self usedKillstreak( streakName, awardXp );
|
self usedKillstreak( streakName, awardXp );
|
||||||
self shuffleKillStreaksFILO( streakName );
|
self shuffleKillStreaksFILO( streakName, kID );
|
||||||
self giveOwnedKillstreakItem();
|
self giveOwnedKillstreakItem();
|
||||||
|
|
||||||
return ( true );
|
return ( true );
|
||||||
@ -258,7 +273,7 @@ killstreakUsePressed()
|
|||||||
|
|
||||||
|
|
||||||
//this overwrites killstreak at index 0 and decrements all other killstreaks (FCLS style)
|
//this overwrites killstreak at index 0 and decrements all other killstreaks (FCLS style)
|
||||||
shuffleKillStreaksFILO( streakName )
|
shuffleKillStreaksFILO( streakName, kID )
|
||||||
{
|
{
|
||||||
self _setActionSlot( 4, "" );
|
self _setActionSlot( 4, "" );
|
||||||
|
|
||||||
@ -270,6 +285,9 @@ shuffleKillStreaksFILO( streakName )
|
|||||||
if ( self.pers["killstreaks"][i].streakName != streakName )
|
if ( self.pers["killstreaks"][i].streakName != streakName )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if ( isDefined( kID ) && self.pers["killstreaks"][i].kID != kID )
|
||||||
|
continue;
|
||||||
|
|
||||||
streakIndex = i;
|
streakIndex = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -333,6 +351,24 @@ clearKillstreaks()
|
|||||||
self.pers["killstreaks"][index] = undefined;
|
self.pers["killstreaks"][index] = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getFirstPrimaryWeapon()
|
||||||
|
{
|
||||||
|
weaponsList = self getWeaponsListPrimaries();
|
||||||
|
|
||||||
|
assert ( isDefined( weaponsList[0] ) );
|
||||||
|
assert ( !isKillstreakWeapon( weaponsList[0] ) );
|
||||||
|
|
||||||
|
if ( weaponsList[0] == "onemanarmy_mp" )
|
||||||
|
{
|
||||||
|
assert ( isDefined( weaponsList[1] ) );
|
||||||
|
assert ( !isKillstreakWeapon( weaponsList[1] ) );
|
||||||
|
|
||||||
|
return weaponsList[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return weaponsList[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
killstreakUseWaiter()
|
killstreakUseWaiter()
|
||||||
{
|
{
|
||||||
@ -366,7 +402,12 @@ killstreakUseWaiter()
|
|||||||
|
|
||||||
//no force switching weapon for ridable killstreaks
|
//no force switching weapon for ridable killstreaks
|
||||||
if ( !isRideKillstreak( streakName ) || !result )
|
if ( !isRideKillstreak( streakName ) || !result )
|
||||||
|
{
|
||||||
|
if ( !self hasWeapon( self getLastWeapon() ) )
|
||||||
|
self switchToWeapon( self getFirstPrimaryWeapon() );
|
||||||
|
else
|
||||||
self switchToWeapon( self getLastWeapon() );
|
self switchToWeapon( self getLastWeapon() );
|
||||||
|
}
|
||||||
|
|
||||||
// give time to switch to the near weapon; when the weapon is none (such as during a "disableWeapon()" period
|
// give time to switch to the near weapon; when the weapon is none (such as during a "disableWeapon()" period
|
||||||
// re-enabling the weapon immediately does a "weapon_change" to the killstreak weapon we just used. In the case that
|
// re-enabling the weapon immediately does a "weapon_change" to the killstreak weapon we just used. In the case that
|
||||||
@ -385,6 +426,7 @@ killstreakUseWaiter()
|
|||||||
finishDeathWaiter()
|
finishDeathWaiter()
|
||||||
{
|
{
|
||||||
self endon ( "disconnect" );
|
self endon ( "disconnect" );
|
||||||
|
level endon ( "game_ended" );
|
||||||
|
|
||||||
self waittill ( "death" );
|
self waittill ( "death" );
|
||||||
wait ( 0.05 );
|
wait ( 0.05 );
|
||||||
@ -494,6 +536,12 @@ giveKillstreak( streakName, isEarned, awardXp, owner )
|
|||||||
self.pers["killstreaks"][0].earned = isDefined( isEarned ) && isEarned;
|
self.pers["killstreaks"][0].earned = isDefined( isEarned ) && isEarned;
|
||||||
self.pers["killstreaks"][0].awardxp = isDefined( awardXp ) && awardXp;
|
self.pers["killstreaks"][0].awardxp = isDefined( awardXp ) && awardXp;
|
||||||
self.pers["killstreaks"][0].owner = owner;
|
self.pers["killstreaks"][0].owner = owner;
|
||||||
|
|
||||||
|
self.pers["killstreaks"][0].kID = self.pers["kID"];
|
||||||
|
self.pers["kIDs_valid"][self.pers["kID"]] = true;
|
||||||
|
|
||||||
|
self.pers["kID"]++;
|
||||||
|
|
||||||
if ( !self.pers["killstreaks"][0].earned )
|
if ( !self.pers["killstreaks"][0].earned )
|
||||||
self.pers["killstreaks"][0].lifeId = -1;
|
self.pers["killstreaks"][0].lifeId = -1;
|
||||||
else
|
else
|
||||||
|
@ -337,7 +337,7 @@ unsetSaboteur()
|
|||||||
|
|
||||||
setLightWeight()
|
setLightWeight()
|
||||||
{
|
{
|
||||||
self.moveSpeedScaler = 1.10;
|
self.moveSpeedScaler = 1.07;
|
||||||
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
|
self maps\mp\gametypes\_weapons::updateMoveSpeedScale( "primary" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,6 +567,8 @@ selectOneManArmyClass()
|
|||||||
level endon ( "game_ended" );
|
level endon ( "game_ended" );
|
||||||
|
|
||||||
self _disableWeaponSwitch();
|
self _disableWeaponSwitch();
|
||||||
|
self _disableOffhandWeapons();
|
||||||
|
self _disableUsability();
|
||||||
|
|
||||||
self openPopupMenu( game["menu_onemanarmy"] );
|
self openPopupMenu( game["menu_onemanarmy"] );
|
||||||
|
|
||||||
@ -575,15 +577,21 @@ selectOneManArmyClass()
|
|||||||
self waittill ( "menuresponse", menu, className );
|
self waittill ( "menuresponse", menu, className );
|
||||||
|
|
||||||
self _enableWeaponSwitch();
|
self _enableWeaponSwitch();
|
||||||
|
self _enableOffhandWeapons();
|
||||||
|
self _enableUsability();
|
||||||
|
|
||||||
if ( className == "back" || !isOneManArmyMenu( menu ) || self isUsingRemote() )
|
if ( className == "back" || !isOneManArmyMenu( menu ) || self isUsingRemote() )
|
||||||
{
|
{
|
||||||
if ( self getCurrentWeapon() == "onemanarmy_mp" )
|
if ( self getCurrentWeapon() == "onemanarmy_mp" )
|
||||||
{
|
{
|
||||||
self _disableWeaponSwitch();
|
self _disableWeaponSwitch();
|
||||||
|
self _disableOffhandWeapons();
|
||||||
|
self _disableUsability();
|
||||||
self switchToWeapon( self getLastWeapon() );
|
self switchToWeapon( self getLastWeapon() );
|
||||||
self waittill ( "weapon_change" );
|
self waittill ( "weapon_change" );
|
||||||
self _enableWeaponSwitch();
|
self _enableWeaponSwitch();
|
||||||
|
self _enableOffhandWeapons();
|
||||||
|
self _enableUsability();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -600,6 +608,8 @@ closeOMAMenuOnDeath()
|
|||||||
self waittill ( "death" );
|
self waittill ( "death" );
|
||||||
|
|
||||||
self _enableWeaponSwitch();
|
self _enableWeaponSwitch();
|
||||||
|
self _enableOffhandWeapons();
|
||||||
|
self _enableUsability();
|
||||||
|
|
||||||
self closePopupMenu();
|
self closePopupMenu();
|
||||||
}
|
}
|
||||||
@ -629,11 +639,14 @@ giveOneManArmyClass( className )
|
|||||||
|
|
||||||
self _disableWeapon();
|
self _disableWeapon();
|
||||||
self _disableOffhandWeapons();
|
self _disableOffhandWeapons();
|
||||||
|
self _disableUsability();
|
||||||
|
|
||||||
wait ( changeDuration );
|
wait ( changeDuration );
|
||||||
|
|
||||||
self _enableWeapon();
|
self _enableWeapon();
|
||||||
self _enableOffhandWeapons();
|
self _enableOffhandWeapons();
|
||||||
|
self _enableUsability();
|
||||||
|
|
||||||
self.OMAClassChanged = true;
|
self.OMAClassChanged = true;
|
||||||
|
|
||||||
self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], className, false );
|
self maps\mp\gametypes\_class::giveLoadout( self.pers["team"], className, false );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user