diff options
author | RoyalBlue1 <realEmail@veryRealURL.com> | 2023-01-15 15:59:08 +0100 |
---|---|---|
committer | RoyalBlue1 <realEmail@veryRealURL.com> | 2023-01-15 15:59:08 +0100 |
commit | bb8671eefc562fa76e13559915ae1ad493d06802 (patch) | |
tree | 40ac781a3422083ef2358ddf38da43e64462bbd0 /Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut | |
parent | cad416bc967bc4b902ff5808c0ae3281402d4895 (diff) | |
parent | 9bbe6832460aaabd96fef18d6e4ebb05779bb71d (diff) | |
download | NorthstarMods-bb8671eefc562fa76e13559915ae1ad493d06802.tar.gz NorthstarMods-bb8671eefc562fa76e13559915ae1ad493d06802.zip |
Merge remote-tracking branch 'upsteam/main' into gamemode_fd
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut index 99f34164..9b05c3d4 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut +++ b/Northstar.CustomServers/mod/scripts/vscripts/gamemodes/_gamemode_ctf.nut @@ -26,6 +26,8 @@ void function CaptureTheFlag_Init() { PrecacheModel( CTF_FLAG_MODEL ) PrecacheModel( CTF_FLAG_BASE_MODEL ) + PrecacheParticleSystem( FLAG_FX_FRIENDLY ) + PrecacheParticleSystem( FLAG_FX_ENEMY ) CaptureTheFlagShared_Init() SetSwitchSidesBased( true ) @@ -164,6 +166,9 @@ void function CreateFlags() flag.SetValueForModelKey( CTF_FLAG_MODEL ) SetTeam( flag, flagTeam ) flag.MarkAsNonMovingAttachment() + flag.Minimap_AlwaysShow( TEAM_IMC, null ) // show flag icon on minimap + flag.Minimap_AlwaysShow( TEAM_MILITIA, null ) + flag.Minimap_SetAlignUpright( true ) DispatchSpawn( flag ) flag.SetModel( CTF_FLAG_MODEL ) flag.SetOrigin( spawn.GetOrigin() + < 0, 0, base.GetBoundingMaxs().z * 2 > ) // ensure flag doesn't spawn clipped into geometry @@ -291,7 +296,7 @@ void function GiveFlag( entity player, entity flag ) PlayFactionDialogueToTeamExceptPlayer( "ctf_flagPickupFriendly", player.GetTeam(), player ) MessageToTeam( flag.GetTeam(), eEventNotifications.PlayerHasFriendlyFlag, player, player ) - EmitSoundOnEntityToTeam( flag, "UI_CTF_EnemyGrabFlag", flag.GetTeam() ) + EmitSoundOnEntityToTeam( flag, "UI_CTF_3P_EnemyGrabFlag", flag.GetTeam() ) SetFlagStateForTeam( flag.GetTeam(), eFlagState.Away ) // used for held } @@ -339,14 +344,13 @@ void function DropFlag( entity player, bool realDrop = true ) file.imcCaptureAssistList.append( player ) else file.militiaCaptureAssistList.append( player ) - + // do notifications MessageToPlayer( player, eEventNotifications.YouDroppedTheEnemyFlag ) EmitSoundOnEntityOnlyToPlayer( player, player, "UI_CTF_1P_FlagDrop" ) - + MessageToTeam( player.GetTeam(), eEventNotifications.PlayerDroppedEnemyFlag, player, player ) // todo need a sound here maybe - MessageToTeam( GetOtherTeam( player.GetTeam() ), eEventNotifications.PlayerDroppedFriendlyFlag, player, player ) // todo need a sound here maybe } @@ -421,7 +425,7 @@ void function CaptureFlag( entity player, entity flag ) AddPlayerScore( assistPlayer, "FlagCaptureAssist", player ) assistList.clear() - + // notifs MessageToPlayer( player, eEventNotifications.YouCapturedTheEnemyFlag ) EmitSoundOnEntityOnlyToPlayer( player, player, "UI_CTF_1P_PlayerScore" ) @@ -430,7 +434,7 @@ void function CaptureFlag( entity player, entity flag ) EmitSoundOnEntityToTeamExceptPlayer( flag, "UI_CTF_3P_TeamScore", player.GetTeam(), player ) MessageToTeam( GetOtherTeam( team ), eEventNotifications.PlayerCapturedFriendlyFlag, player, player ) - EmitSoundOnEntityToTeam( flag, "UI_CTF_3P_EnemyScore", flag.GetTeam() ) + EmitSoundOnEntityToTeam( flag, "UI_CTF_3P_EnemyScores", flag.GetTeam() ) if ( GameRules_GetTeamScore( team ) == GameMode_GetRoundScoreLimit( GAMETYPE ) - 1 ) { @@ -446,6 +450,9 @@ void function OnPlayerEntersFlagReturnTrigger( entity trigger, entity player ) flag = file.imcFlag else flag = file.militiaFlag + + if( !IsValid( flag ) || !IsValid( player ) ) + return if ( !player.IsPlayer() || player.IsTitan() || player.GetTeam() != flag.GetTeam() || IsFlagHome( flag ) || flag.GetParent() != null ) return @@ -481,6 +488,7 @@ void function TryReturnFlag( entity player, entity flag ) }) player.EndSignal( "FlagReturnEnded" ) + flag.EndSignal( "FlagReturnEnded" ) // avoid multiple players to return one flag at once player.EndSignal( "OnDeath" ) wait CTF_GetFlagReturnTime() @@ -488,7 +496,8 @@ void function TryReturnFlag( entity player, entity flag ) // flag return succeeded // return flag ResetFlag( flag ) - + flag.Signal( "FlagReturnEnded" ) + // do notifications for return MessageToPlayer( player, eEventNotifications.YouReturnedFriendlyFlag ) AddPlayerScore( player, "FlagReturn", player ) |