diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2022-01-01 01:30:14 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-01 01:30:14 +0000 |
commit | 8e05a3e8e9967b2ccf2c8e937a946a5b1072217a (patch) | |
tree | 1959b7591f6b9c892f4f1035d8a012a241d1b7f6 | |
parent | 923ee83f5fa3759f67d331fd693712bd3e91bff7 (diff) | |
parent | dcdd4abb1408e5a55c8048193d246a7f9da646b3 (diff) | |
download | NorthstarMods-8e05a3e8e9967b2ccf2c8e937a946a5b1072217a.tar.gz NorthstarMods-8e05a3e8e9967b2ccf2c8e937a946a5b1072217a.zip |
Merge pull request #40 from Soup-64/patch-1
fix end of game replay perspective and repsawns during replays in infection
-rw-r--r-- | Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut index a0e0b743..2ccd46ba 100644 --- a/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut +++ b/Northstar.Custom/mod/scripts/vscripts/gamemodes/_gamemode_inf.gnut @@ -30,7 +30,7 @@ void function InfectionInitPlayer( entity player ) if ( GetGameState() < eGameState.Playing ) SetTeam( player, INFECTION_TEAM_SURVIVOR ) else - InfectPlayer( player ) + InfectPlayer( player, player ) } void function SelectFirstInfected() @@ -45,23 +45,23 @@ void function SelectFirstInfectedDelayed() array<entity> players = GetPlayerArray() entity infected = players[ RandomInt( players.len() ) ] - InfectPlayer( infected ) + InfectPlayer( infected, infected ) RespawnInfected( infected ) } void function InfectionOnPlayerKilled( entity victim, entity attacker, var damageInfo ) { - if ( !victim.IsPlayer() || GetGameState() != eGameState.Playing ) + if ( !victim.IsPlayer() || !attacker.IsPlayer() || GetGameState() != eGameState.Playing ) return if ( victim.GetTeam() == INFECTION_TEAM_SURVIVOR ) - InfectPlayer( victim ) + InfectPlayer( victim, attacker ) if ( attacker.IsPlayer() ) attacker.SetPlayerGameStat( PGS_ASSAULT_SCORE, attacker.GetPlayerGameStat( PGS_ASSAULT_SCORE ) + 1 ) } -void function InfectPlayer( entity player ) +void function InfectPlayer( entity player, entity attacker ) { SetTeam( player, INFECTION_TEAM_INFECTED ) player.SetPlayerGameStat( PGS_ASSAULT_SCORE, 0 ) // reset kills @@ -70,7 +70,12 @@ void function InfectPlayer( entity player ) // check how many survivors there are array<entity> survivors = GetPlayerArrayOfTeam( INFECTION_TEAM_SURVIVOR ) if ( survivors.len() == 0 ) + { + SetRespawnsEnabled( false ) + SetKillcamsEnabled( false ) + SetRoundWinningKillReplayAttacker(attacker) SetWinner( INFECTION_TEAM_INFECTED ) + } else if ( survivors.len() == 1 && !file.hasHadLastInfection ) SetLastSurvivor( survivors[ 0 ] ) @@ -183,8 +188,14 @@ void function SetLastSurvivor( entity player ) int function TimeoutCheckSurvivors() { - if ( GetPlayerArrayOfTeam( INFECTION_TEAM_SURVIVOR ).len() > 0 ) + array<entity> survivors = GetPlayerArrayOfTeam( INFECTION_TEAM_SURVIVOR ) + if ( survivors.len() > 0 ) + { + SetRespawnsEnabled( false ) + SetKillcamsEnabled( false ) + SetRoundWinningKillReplayAttacker(survivors[ 0 ]) return INFECTION_TEAM_SURVIVOR + } return INFECTION_TEAM_INFECTED } |