From a2a510162917d270330fbde3847d9b60997c214a Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Mon, 22 Jun 2020 07:47:16 +0300 Subject: [PATCH 1/2] Fix: update to KF2 v1096 --- ServerExt/Classes/ExtPlayerController.uc | 2 +- ServerExtMut/Classes/ServerExtMut.uc | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ServerExt/Classes/ExtPlayerController.uc b/ServerExt/Classes/ExtPlayerController.uc index 7d74739..e062304 100644 --- a/ServerExt/Classes/ExtPlayerController.uc +++ b/ServerExt/Classes/ExtPlayerController.uc @@ -172,7 +172,7 @@ function OnPlayerXPAdded(INT XP, class PerkClass) AwardXP(XP); } -function AddSmallRadiusKill( byte Difficulty ) +function AddSmallRadiusKill( byte Difficulty, class PerkClass ) { AwardXP(class'KFPerk_Berserker'.static.GetSmallRadiusKillXP(Difficulty)); } diff --git a/ServerExtMut/Classes/ServerExtMut.uc b/ServerExtMut/Classes/ServerExtMut.uc index c50b4ee..34b2ff6 100644 --- a/ServerExtMut/Classes/ServerExtMut.uc +++ b/ServerExtMut/Classes/ServerExtMut.uc @@ -429,8 +429,9 @@ final function GT_PlayerKilled( Controller Killer, Controller Killed, class damageType ) From 4c293a927d932a1e519204be7c0da40d4d056f5d Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Mon, 22 Jun 2020 07:53:15 +0300 Subject: [PATCH 2/2] feat: XP for custom zeds/weapons Integrated version of "MoneyEnabler" mutator with inklesspen fixes --- ServerExtMut/Classes/ServerExtMut.uc | 80 ++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/ServerExtMut/Classes/ServerExtMut.uc b/ServerExtMut/Classes/ServerExtMut.uc index 34b2ff6..482fe3f 100644 --- a/ServerExtMut/Classes/ServerExtMut.uc +++ b/ServerExtMut/Classes/ServerExtMut.uc @@ -357,21 +357,91 @@ function AddMutator(Mutator M) else Super.AddMutator(M); } } + +function bool IsFromMod(Object O) +{ + local string PackageName; + + if( O == None ) + return false; + + PackageName = string(O.GetPackageName()); + if( Len(PackageName)>1 && InStr(Caps(PackageName), "KF") == 0) + { + PackageName = string(O); + if( Len(PackageName)>1 && InStr(Caps(PackageName), "KF") == 0) + return false; + } + + return true; +} + function ScoreKill(Controller Killer, Controller Killed) { + local KFPawn_Monster KFM; + local int i, j; + local KFPlayerReplicationInfo DamagerKFPRI; + local float XP; + local KFPerk InstigatorPerk; + local bool cont; + local KFPlayerController KFPC; local ExtPerkManager KillersPerk; if( bRespawnCheck && Killed.bIsPlayer ) CheckRespawn(Killed); - if( KFPawn_Monster(Killed.Pawn)!=None && Killed.GetTeamNum()!=0 && Killer.bIsPlayer && Killer.GetTeamNum()==0 ) + KFM = KFPawn_Monster(Killed.Pawn); + if( KFM!=None && Killed.GetTeamNum()!=0 && Killer.bIsPlayer && Killer.GetTeamNum()==0 ) { if( ExtPlayerController(Killer)!=None && ExtPlayerController(Killer).ActivePerkManager!=None ) ExtPlayerController(Killer).ActivePerkManager.PlayerKilled(KFPawn_Monster(Killed.Pawn),LastKillDamageType); if( bKillMessages && Killer.PlayerReplicationInfo!=None ) BroadcastKillMessage(Killed.Pawn,Killer); - //else if( Killer!=None && Killer!=Killed && Killer.GetTeamNum()==0 && Ext_T_MonsterPRI(Killer.PlayerReplicationInfo)!=None ) - // BroadcastKillMessage(Killed.Pawn,Ext_T_MonsterPRI(Killer.PlayerReplicationInfo).OwnerController); + if( KFM.DamageHistory.Length > 0 ) + { + for( i = 0; i damageType, vector HitLocation) { @@ -429,7 +501,7 @@ final function GT_PlayerKilled( Controller Killer, Controller Killed, class