rott/kf_sources/MutKillMessage/Classes/KillsRules.uc
2026-07-14 20:27:09 +07:00

45 lines
1.8 KiB
Ucode

//=============================================================================
// KillsRules.
//=============================================================================
class KillsRules extends GameRules;
function PostBeginPlay()
{
NextGameRules = Level.Game.GameRulesModifiers;
Level.Game.GameRulesModifiers = Self;
}
function ScoreKill(Controller Killer, Controller Killed)
{
local Controller C;
if( Class'MutKillMessage'.Default.bMessageKills && Killer.PlayerReplicationInfo!=None
&& Killer.Pawn!=None && Monster(Killer.Pawn)==None && Monster(Killed.Pawn)!=None )
{
if( Class'MutKillMessage'.Default.MessageHealthLimit<=Killed.Pawn.Default.Health ||
Class'MutKillMessage'.Default.MessageMassLimit<=Killed.Pawn.Default.Mass )
{
for( C=Level.ControllerList; C!=None; C=C.nextController )
if( C.bIsPlayer && xPlayer(C)!=None )
xPlayer(C).ReceiveLocalizedMessage(Class'NKillsMessage',1,Killer.PlayerReplicationInfo,,Killed.Pawn.Class);
}
else if( xPlayer(Killer)!=None )
xPlayer(Killer).ReceiveLocalizedMessage(Class'NKillsMessage',,,,Killed.Pawn.Class);
}
Super.ScoreKill(Killer,Killed);
}
function int NetDamage( int OriginalDamage, int Damage, pawn injured, pawn instigatedBy, vector HitLocation, out vector Momentum, class<DamageType> DamageType )
{
if ( NextGameRules != None )
Damage = NextGameRules.NetDamage(OriginalDamage,Damage,injured,instigatedBy,HitLocation,Momentum,DamageType);
if( Class'MutKillMessage'.Default.bMessageDamage && Damage>0 && Monster(injured)!=None && instigatedBy!=None && Monster(instigatedBy)==None
&& xPlayer(instigatedBy.Controller)!=None )
xPlayer(instigatedBy.Controller).ReceiveLocalizedMessage(Class'DamageMessage',Damage,,,injured.Class);
return Damage;
}
defaultproperties
{
}