class TeamKillPlayerVolume extends Volume; var() int m_safeTeam; function SendFlagHome(Pawn P) { local CTFFlag F; if( P == none || P.PlayerReplicationInfo == none ) return; if ( P.PlayerReplicationInfo.HasFlag != None ) { F = CTFFlag(P.PlayerReplicationInfo.HasFlag); if ( F != None ) { P.DropFlag(); UnrealMPGameInfo(Level.Game).GameEvent("flag_returned_timeout",""$F.Team.TeamIndex,None); BroadcastLocalizedMessage( F.MessageClass, 3, None, None, F.Team ); F.SendHome(); F.Disable('Touch'); F.bHome = true; F.SetLocation(F.HomeBase.Location); F.SetRotation(F.HomeBase.Rotation); F.Enable('Touch'); } } } event Touch(Actor Other) { local Pawn P; P = Pawn(Other); if ( P == None || !P.IsPlayerPawn() ) return; if ( P.PlayerReplicationInfo != None ) { SendFlagHome(P); } if ( P.GetTeamNum() != m_safeTeam) { P.TakeDamage(999999, None, P.Location, vect(0,0,0), class'Depressurized'); } }