// // A Death Message. // // Switch 0: Kill // RelatedPRI_1 is the Killer. // RelatedPRI_2 is the Victim. // OptionalObject is the DamageType Class. // class KFDeathMessage extends xDeathMessage config(user); static function color GetConsoleColor( PlayerReplicationInfo RelatedPRI_1 ) { return class'HUD'.Default.GreenColor; } static function string GetString( optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { local string KillerName, VictimName; if (Class(OptionalObject) == None) return ""; if (RelatedPRI_2 == None) VictimName = Default.SomeoneString; else VictimName = RelatedPRI_2.PlayerName; if ( Switch == 1 ) { // suicide return class'GameInfo'.Static.ParseKillMessage( KillerName, VictimName, Class(OptionalObject).Static.SuicideMessage(RelatedPRI_2) ); } if (RelatedPRI_1 == None) KillerName = Default.SomeoneString; else KillerName = RelatedPRI_1.PlayerName; return class'GameInfo'.Static.ParseKillMessage( KillerName, VictimName, Class(OptionalObject).Static.DeathMessage(RelatedPRI_1, RelatedPRI_2) ); } static function ClientReceive( PlayerController P, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) { if ( Switch == 1 ) { if ( !Default.bNoConsoleDeathMessages ) Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); return; } if ( (RelatedPRI_1 == P.PlayerReplicationInfo) || (P.PlayerReplicationInfo.bOnlySpectator && (Pawn(P.ViewTarget) != None) && (Pawn(P.ViewTarget).PlayerReplicationInfo == RelatedPRI_1)) ) { // Interdict and send the child message instead. P.myHUD.LocalizedMessage( Default.ChildMessage, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject ); if ( !Default.bNoConsoleDeathMessages ) P.myHUD.LocalizedMessage( Default.Class, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject ); // check multikills // if ( P.Role == ROLE_Authority ) // { // multikills checked already in LogMultiKills() // if ( UnrealPlayer(P).MultiKillLevel > 0 ) // P.ReceiveLocalizedMessage( class'MultiKillMessage', UnrealPlayer(P).MultiKillLevel ); // } // else // { // if ( ( RelatedPRI_1 != RelatedPRI_2 ) && ( RelatedPRI_2 != None) // && ((RelatedPRI_2.Team == None) || (RelatedPRI_1.Team != RelatedPRI_2.Team)) ) // { // if ( (P.Level.TimeSeconds - UnrealPlayer(P).LastKillTime < 4) && (Switch != 1) ) // { // UnrealPlayer(P).MultiKillLevel++; // P.ReceiveLocalizedMessage( class'MultiKillMessage', xPlayer(P).MultiKillLevel ); // } // else // UnrealPlayer(P).MultiKillLevel = 0; // UnrealPlayer(P).LastKillTime = P.Level.TimeSeconds; // } // else // UnrealPlayer(P).MultiKillLevel = 0; // } // } if (RelatedPRI_2 == P.PlayerReplicationInfo) { P.ReceiveLocalizedMessage( class'xVictimMessage', 0, RelatedPRI_1 ); if ( !Default.bNoConsoleDeathMessages ) Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); } else if ( !Default.bNoConsoleDeathMessages ) Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); } } defaultproperties { KilledString="was slaughtered by" DrawColor=(R=255,G=50,B=50,A=255) }