style: replace spaces with tabs

This commit is contained in:
GenZmeY 2020-11-28 22:53:57 +03:00
parent 226a0f9ffe
commit 63b031b111
41 changed files with 1573 additions and 1573 deletions

View File

@ -131,13 +131,13 @@ function InitializeOwnedItemList()
local Ext_PerkBase EP;
EP = GetExtPerk();
OwnedItemList.length = 0;
OwnedItemList.length = 0;
TraderItems = KFGameReplicationInfo( WorldInfo.GRI ).TraderItems;
KFP = KFPawn_Human( Pawn );
if( KFP != none )
{
if( KFP != none )
{
// init armor purchase values
ArmorItem.SpareAmmoCount = KFP.Armor;
ArmorItem.MaxSpareAmmo = KFP.GetMaxArmor();
@ -160,7 +160,7 @@ function InitializeOwnedItemList()
{
// Set the weapon information and add it to the OwnedItemList
SetWeaponInformation( KFW );
}
}
}
if(MyGfxManager != none && MyGfxManager.TraderMenu != none)
@ -237,7 +237,7 @@ function bool CanCarry(const out STraderItem Item, optional int OverrideLevelVal
Result = TotalBlocks + MyKFIM.GetDisplayedBlocksRequiredFor(Item);
if (Result > MaxBlocks)
{
return false;
return false;
}
return true;
}

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ var const array<Emote> Emotes;
static final function name GetUnlockedEmote( int ItemId, ExtPlayerController PC )
{
local int i;
local int i;
local name Anim;
local ExtPlayerReplicationInfo PRI;
@ -44,7 +44,7 @@ static final function array<Emote> GetEmoteArray()
static final function byte GetEmoteIndex( int ItemId )
{
local int i;
local int i;
i = default.Emotes.Find('Id', ItemId);
if( i > -1 )
return i;

View File

@ -14,7 +14,7 @@ function UpdatePerk()
{
local int CurrentPerkLevel,CurrentPerkEXP;
local Ext_PerkBase CurrentPerk;
local GFxObject PerkIconObject;
local GFxObject PerkIconObject;
if( ExPC == none || ExPC.ActivePerkManager==None || ExPC.ActivePerkManager.CurrentPerk==None )
return;

View File

@ -8,11 +8,11 @@ function LocalizeText()
local GFxObject TempObject;
TempObject = CreateObject("Object");
TempObject.SetString("prevPlayer", "FREE CAMERA");
TempObject.SetString("nextPlayer", PrevPlayerString);
TempObject.SetString("changeCamera", ChangeCameraString);
TempObject.SetString("prevPlayer", "FREE CAMERA");
TempObject.SetString("nextPlayer", PrevPlayerString);
TempObject.SetString("changeCamera", ChangeCameraString);
SetObject("localizedText", TempObject);
SetObject("localizedText", TempObject);
}
function UpdatePlayerInfo( optional bool bForceUpdate )

View File

@ -4,12 +4,12 @@ function TickHud(float DeltaTime)
{
local int i;
if(KFGRI == none)
KFGRI = KFGameReplicationInfo(GetPC().WorldInfo.GRI);
else
{
if(KFGRI.bTraderIsOpen)
{
if(KFGRI == none)
KFGRI = KFGameReplicationInfo(GetPC().WorldInfo.GRI);
else
{
if(KFGRI.bTraderIsOpen)
{
i = KFGRI.GetTraderTimeRemaining();
if(LastTraderTimeRemaining != i)
{
@ -17,7 +17,7 @@ function TickHud(float DeltaTime)
LastTraderTimeRemaining = i;
}
}
else
else
{
i = KFGRI.IsFinalWave() ? INDEX_NONE : Max(KFGRI.AIRemaining,0);
if(LastZEDCount != i)
@ -45,7 +45,7 @@ function TickHud(float DeltaTime)
}
SetInt("currentWave",Min(LastWave,LastWaveMax));
}
}
}
}
function UpdateWaveCount();

View File

@ -4,86 +4,86 @@ var transient array< class<KFWeaponDefinition> > WeaponGroup;
simulated function UpdateWeaponGroupOnHUD( byte GroupIndex )
{
local Inventory Inv;
local KFWeapon KFW;
local byte i;
local int Index;
local array<KFWeapon> WeaponsList;
local KFGFxObject_TraderItems TraderItems;
local Pawn P;
local array< class<KFWeaponDefinition> > WPGroup;
local Inventory Inv;
local KFWeapon KFW;
local byte i;
local int Index;
local array<KFWeapon> WeaponsList;
local KFGFxObject_TraderItems TraderItems;
local Pawn P;
local array< class<KFWeaponDefinition> > WPGroup;
P = GetPC().Pawn;
if ( P == none || P.InvManager == none )
return;
P = GetPC().Pawn;
if ( P == none || P.InvManager == none )
return;
for ( Inv = P.InvManager.InventoryChain; Inv != none; Inv = Inv.Inventory )
{
KFW = KFWeapon( Inv );
if ( KFW != none && KFW.InventoryGroup == GroupIndex )
WeaponsList.AddItem(KFW);
}
for ( Inv = P.InvManager.InventoryChain; Inv != none; Inv = Inv.Inventory )
{
KFW = KFWeapon( Inv );
if ( KFW != none && KFW.InventoryGroup == GroupIndex )
WeaponsList.AddItem(KFW);
}
WPGroup.Length = WeaponsList.Length;
TraderItems = KFGameReplicationInfo( P.WorldInfo.GRI ).TraderItems;
for ( i = 0; i < WeaponsList.Length; i++ )
{
Index = TraderItems.SaleItems.Find('ClassName', WeaponsList[i].Class.Name);
if( Index != -1 )
WPGroup[i] = TraderItems.SaleItems[Index].WeaponDef;
}
WPGroup.Length = WeaponsList.Length;
TraderItems = KFGameReplicationInfo( P.WorldInfo.GRI ).TraderItems;
for ( i = 0; i < WeaponsList.Length; i++ )
{
Index = TraderItems.SaleItems.Find('ClassName', WeaponsList[i].Class.Name);
if( Index != -1 )
WPGroup[i] = TraderItems.SaleItems[Index].WeaponDef;
}
WeaponGroup = WPGroup;
SetWeaponGroupList(WeaponsList, GroupIndex);
WeaponGroup = WPGroup;
SetWeaponGroupList(WeaponsList, GroupIndex);
}
simulated function SetWeaponGroupList(out array<KFWeapon> WeaponList, byte GroupIndex)
{
local byte i;
local GFxObject DataProvider;
local GFxObject TempObj;
local bool bUsesAmmo;
local byte i;
local GFxObject DataProvider;
local GFxObject TempObj;
local bool bUsesAmmo;
DataProvider = CreateArray();
if ( DataProvider == None )
return; // gfx has been shut down
DataProvider = CreateArray();
if ( DataProvider == None )
return; // gfx has been shut down
for (i = 0; i < WeaponList.length; i++)
{
TempObj = CreateObject( "Object" );
for (i = 0; i < WeaponList.length; i++)
{
TempObj = CreateObject( "Object" );
if( WeaponGroup[i] != None )
{
TempObj.SetString( "weaponName", WeaponGroup[i].static.GetItemLocalization("ItemName") );
TempObj.SetString( "texturePath", "img://"$WeaponGroup[i].static.GetImagePath() );
}
else
{
TempObj.SetString( "weaponName", WeaponList[i].ItemName );
TempObj.SetString( "texturePath", "img://"$PathName(WeaponList[i].WeaponSelectTexture));
}
if( WeaponGroup[i] != None )
{
TempObj.SetString( "weaponName", WeaponGroup[i].static.GetItemLocalization("ItemName") );
TempObj.SetString( "texturePath", "img://"$WeaponGroup[i].static.GetImagePath() );
}
else
{
TempObj.SetString( "weaponName", WeaponList[i].ItemName );
TempObj.SetString( "texturePath", "img://"$PathName(WeaponList[i].WeaponSelectTexture));
}
TempObj.SetInt("weaponTier", WeaponList[i].CurrentWeaponUpgradeIndex);
TempObj.SetInt( "ammoCount", WeaponList[i].AmmoCount[0]);
TempObj.SetInt( "spareAmmoCount", WeaponList[i].SpareAmmoCount[0]);
//secondary ammo shenanigans
TempObj.SetBool("bUsesSecondaryAmmo", WeaponList[i].UsesSecondaryAmmo()&&WeaponList[i].bCanRefillSecondaryAmmo);
TempObj.SetBool("bEnabled", WeaponList[i].HasAnyAmmo());
if(WeaponList[i].UsesSecondaryAmmo() && WeaponList[i].bCanRefillSecondaryAmmo)
{
TempObj.SetBool("bCanRefillSecondaryAmmo", WeaponList[i].SpareAmmoCapacity[1] > 0);
TempObj.SetInt( "secondaryAmmoCount", WeaponList[i].AmmoCount[1]);
TempObj.SetInt( "secondarySpareAmmoCount", WeaponList[i].SpareAmmoCount[1]);
}
TempObj.SetInt("weaponTier", WeaponList[i].CurrentWeaponUpgradeIndex);
TempObj.SetInt( "ammoCount", WeaponList[i].AmmoCount[0]);
TempObj.SetInt( "spareAmmoCount", WeaponList[i].SpareAmmoCount[0]);
//secondary ammo shenanigans
TempObj.SetBool("bUsesSecondaryAmmo", WeaponList[i].UsesSecondaryAmmo()&&WeaponList[i].bCanRefillSecondaryAmmo);
TempObj.SetBool("bEnabled", WeaponList[i].HasAnyAmmo());
if(WeaponList[i].UsesSecondaryAmmo() && WeaponList[i].bCanRefillSecondaryAmmo)
{
TempObj.SetBool("bCanRefillSecondaryAmmo", WeaponList[i].SpareAmmoCapacity[1] > 0);
TempObj.SetInt( "secondaryAmmoCount", WeaponList[i].AmmoCount[1]);
TempObj.SetInt( "secondarySpareAmmoCount", WeaponList[i].SpareAmmoCount[1]);
}
TempObj.SetBool( "throwable", WeaponList[i].CanThrow());
TempObj.SetBool( "throwable", WeaponList[i].CanThrow());
bUsesAmmo = (WeaponList[i].static.UsesAmmo());
TempObj.SetBool( "bUsesAmmo", bUsesAmmo);
DataProvider.SetElementObject( i, TempObj );
}
bUsesAmmo = (WeaponList[i].static.UsesAmmo());
TempObj.SetBool( "bUsesAmmo", bUsesAmmo);
DataProvider.SetElementObject( i, TempObj );
}
SetWeaponList(DataProvider, GroupIndex);
SetWeaponList(DataProvider, GroupIndex);
}
DefaultProperties

View File

@ -115,8 +115,8 @@ event bool HealDamage(int Amount, Controller Healer, class<DamageType> DamageTyp
local ExtPlayerController InstigatorPC, KFPC;
local KFPerk InstigatorPerk;
local class<KFDamageType> KFDT;
local int i;
local bool bRepairedArmor;
local int i;
local bool bRepairedArmor;
local ExtPlayerReplicationInfo EPRI;
local Ext_PerkBase InstigatorExtPerk;
@ -143,14 +143,14 @@ event bool HealDamage(int Amount, Controller Healer, class<DamageType> DamageTyp
}
}
if( Amount > 0 && IsAliveAndWell() && Health < HealthMax )
{
if( Amount > 0 && IsAliveAndWell() && Health < HealthMax )
{
// Play any healing effects attached to this damage type
KFDT = class<KFDamageType>(DamageType);
if( KFDT != none && KFDT.default.bNoPain )
PlayHeal( KFDT );
if( Role == ROLE_Authority )
if( Role == ROLE_Authority )
{
if( Healer==None || Healer.PlayerReplicationInfo == None )
return false;
@ -166,15 +166,15 @@ event bool HealDamage(int Amount, Controller Healer, class<DamageType> DamageTyp
UsedHealAmount = Min(HealthMax - (Health + HealthToRegen),255-HealthToRegen);
else UsedHealAmount = Min(UsedHealAmount,255-HealthToRegen);
HealthToRegen += UsedHealAmount;
HealthToRegen += UsedHealAmount;
RepRegenHP = HealthToRegen;
if( !IsTimerActive('GiveHealthOverTime') )
SetTimer(HealthRegenRate, true, 'GiveHealthOverTime');
// Give the healer money/XP for helping a teammate
if( Healer.Pawn != none && Healer.Pawn != self )
{
DoshEarned = ( UsedHealAmount / float(HealthMax) ) * HealerRewardScaler;
if( Healer.Pawn != none && Healer.Pawn != self )
{
DoshEarned = ( UsedHealAmount / float(HealthMax) ) * HealerRewardScaler;
if( InstigatorPRI!=None )
InstigatorPRI.AddDosh(Max(DoshEarned, 0), true);
if( InstigatorPC!=None )
@ -184,7 +184,7 @@ event bool HealDamage(int Amount, Controller Healer, class<DamageType> DamageTyp
if( Healer.bIsPlayer )
{
if( Healer != Controller )
{
{
if( InstigatorPC!=None )
{
if( !InstigatorPC.bClientHideNumbers )
@ -205,20 +205,20 @@ event bool HealDamage(int Amount, Controller Healer, class<DamageType> DamageTyp
`DialogManager.PlayHealingDialog( KFPawn(Healer.Pawn), self, float(Health + HealthToRegen) / float(HealthMax) );
}
// Reduce burn duration and damage in half if you heal while burning
for( i = 0; i < DamageOverTimeArray.Length; ++i )
{
if( DamageOverTimeArray[i].DoT_Type == DOT_Fire )
{
DamageOverTimeArray[i].Duration *= 0.5;
DamageOverTimeArray[i].Damage *= 0.5;
break;
}
}
// Reduce burn duration and damage in half if you heal while burning
for( i = 0; i < DamageOverTimeArray.Length; ++i )
{
if( DamageOverTimeArray[i].DoT_Type == DOT_Fire )
{
DamageOverTimeArray[i].Duration *= 0.5;
DamageOverTimeArray[i].Damage *= 0.5;
break;
}
}
return true;
return true;
}
}
}
return bRepairedArmor;
}
@ -679,7 +679,7 @@ simulated function PlayRagdollDeath(class<DamageType> DamageType, vector HitLoc)
// Call CheckHitInfo to give us a valid BoneName
HitDirection = Normal(TearOffMomentum);
CheckHitInfo(HitInfo, Mesh, HitDirection, HitLoc);
CheckHitInfo(HitInfo, Mesh, HitDirection, HitLoc);
// Play ragdoll death animation (bSkipReplication=TRUE)
if( CanDoSpecialMove(SM_DeathAnim) && ClassIsChildOf(DamageType, class'KFDamageType') )
@ -726,11 +726,11 @@ simulated function OnWakeUpFinished();
function AddDefaultInventory()
{
local KFPerk MyPerk;
local KFPerk MyPerk;
MyPerk = GetPerk();
MyPerk = GetPerk();
if( MyPerk != none )
MyPerk.AddDefaultInventory(self);
MyPerk.AddDefaultInventory(self);
Super(KFPawn).AddDefaultInventory();
}
@ -757,7 +757,7 @@ simulated function SetCharacterArch(KFCharacterInfoBase Info, optional bool bFor
{
local KFPlayerReplicationInfo KFPRI;
KFPRI = KFPlayerReplicationInfo( PlayerReplicationInfo );
KFPRI = KFPlayerReplicationInfo( PlayerReplicationInfo );
if (Info != CharacterArch || bForce)
{
// Set Family Info
@ -1017,7 +1017,7 @@ simulated final function InitFPLegs()
FPBodyMesh.SetAnimTreeTemplate(CharacterArch.AnimTreeTemplate);
FPBodyMesh.SetSkeletalMesh(Mesh.SkeletalMesh);
FPBodyMesh.SetActorCollision(false, false);
FPBodyMesh.SetActorCollision(false, false);
FPBodyMesh.SetNotifyRigidBodyCollision(false);
FPBodyMesh.SetTraceBlocking(false, false);
@ -1025,9 +1025,9 @@ simulated final function InitFPLegs()
FPBodyMesh.SetMaterial(i, Mesh.Materials[i]);
FPBodyMesh.HideBoneByName('neck', PBO_None);
FPBodyMesh.HideBoneByName('Spine2', PBO_None);
FPBodyMesh.HideBoneByName('RightShoulder', PBO_None);
FPBodyMesh.HideBoneByName('LeftShoulder', PBO_None);
FPBodyMesh.HideBoneByName('Spine2', PBO_None);
FPBodyMesh.HideBoneByName('RightShoulder', PBO_None);
FPBodyMesh.HideBoneByName('LeftShoulder', PBO_None);
}
// ForrestMarkX's third person backpack weapon and first person legs:
@ -1175,16 +1175,16 @@ simulated function SetCharacterAnimationInfo()
simulated function SetMeshLightingChannels(LightingChannelContainer NewLightingChannels)
{
Super.SetMeshLightingChannels(NewLightingChannels);
Super.SetMeshLightingChannels(NewLightingChannels);
if (AttachedBackItem != none)
AttachedBackItem.SetLightingChannels(NewLightingChannels);
AttachedBackItem.SetLightingChannels(NewLightingChannels);
FPBodyMesh.SetLightingChannels(NewLightingChannels);
}
simulated function PlayWeaponSwitch(Weapon OldWeapon, Weapon NewWeapon)
{
Super.PlayWeaponSwitch(OldWeapon, NewWeapon);
Super.PlayWeaponSwitch(OldWeapon, NewWeapon);
if( WorldInfo.NetMode!=NM_Client )
{

File diff suppressed because it is too large Load Diff

View File

@ -11,16 +11,16 @@ function TickHud(float DeltaTime)
final function ShowKillMessageX(PlayerReplicationInfo PRI1, PlayerReplicationInfo PRI2, optional string VictimStr, optional bool bDeathMessage = false, optional class<Pawn> PawnOther )
{
local GFxObject DataObject;
local bool bHumanDeath;
local string KilledName, KillerName, KilledIconpath, KillerIconPath;
local string KillerTextColor, KilledTextColor;
local GFxObject DataObject;
local bool bHumanDeath;
local string KilledName, KillerName, KilledIconpath, KillerIconPath;
local string KillerTextColor, KilledTextColor;
if(KFPC == none)
return;
if(KFPC == none)
return;
if( KFGXHUDManager != none )
{
if( KFGXHUDManager != none )
{
if(PawnOther != none)
{
if( bDeathMessage )

View File

@ -11,7 +11,7 @@ simulated function SetCharacterArch( KFCharacterInfoBase Info, optional bool bFo
{
local KFPlayerReplicationInfo KFPRI;
KFPRI = KFPlayerReplicationInfo( PlayerReplicationInfo );
KFPRI = KFPlayerReplicationInfo( PlayerReplicationInfo );
if (Info != CharacterArch || bForce)
{
// Set Family Info

View File

@ -2,7 +2,7 @@ class ExtPawn_ZedHans_Pet extends KFPawn_ZedHansFriendlyTest;
static simulated event bool IsABoss()
{
return false;
return false;
}
defaultproperties

View File

@ -540,7 +540,7 @@ simulated function ModifyMeleeAttackSpeed( out float InDuration, KFWeapon KFW )
}
simulated function class<KFProj_Grenade> GetGrenadeClass()
{
return (CurrentPerk!=None ? CurrentPerk.GrenadeClass : GrenadeClass);
return (CurrentPerk!=None ? CurrentPerk.GrenadeClass : GrenadeClass);
}
simulated function ModifyWeldingRate( out float FastenRate, out float UnfastenRate )
{

View File

@ -5,12 +5,12 @@ final function ExUpdatePerkHeader( Ext_PerkBase PerkClass )
local GFxObject PerkDataProvider;
PerkDataProvider = CreateObject( "Object" );
PerkDataProvider.SetString( "perkTitle", PerkClass.PerkName );
PerkDataProvider.SetString( "perkLevel", LevelString@PerkClass.CurrentLevel);
PerkDataProvider.SetString( "iconSource", PerkClass.GetPerkIconPath(PerkClass.CurrentLevel) );
PerkDataProvider.SetString( "prestigeLevel", ""); //not used yet so not point to populating with data
PerkDataProvider.SetString( "xpString", PerkClass.CurrentEXP$"/"$PerkClass.NextLevelEXP );
PerkDataProvider.SetFloat( "xpPercent", PerkClass.GetProgressPercent() );
PerkDataProvider.SetString( "perkTitle", PerkClass.PerkName );
PerkDataProvider.SetString( "perkLevel", LevelString@PerkClass.CurrentLevel);
PerkDataProvider.SetString( "iconSource", PerkClass.GetPerkIconPath(PerkClass.CurrentLevel) );
PerkDataProvider.SetString( "prestigeLevel", ""); //not used yet so not point to populating with data
PerkDataProvider.SetString( "xpString", PerkClass.CurrentEXP$"/"$PerkClass.NextLevelEXP );
PerkDataProvider.SetFloat( "xpPercent", PerkClass.GetProgressPercent() );
SetObject( "perkData", PerkDataProvider );
}

View File

@ -17,19 +17,19 @@ function UpdatePerkSelection(byte SelectedPerkIndex)
for (i = 0; i < KFPC.ActivePerkManager.UserPerks.Length; i++)
{
PerkClass = KFPC.ActivePerkManager.UserPerks[i];
TempObj = CreateObject( "Object" );
TempObj.SetInt( "PerkLevel", PerkClass.CurrentLevel );
TempObj.SetString( "Title", PerkClass.PerkName );
TempObj = CreateObject( "Object" );
TempObj.SetInt( "PerkLevel", PerkClass.CurrentLevel );
TempObj.SetString( "Title", PerkClass.PerkName );
TempObj.SetString( "iconSource", PerkClass.GetPerkIconPath(PerkClass.CurrentLevel) );
TempObj.SetBool("bTierUnlocked", true);
DataProvider.SetElementObject( i, TempObj );
DataProvider.SetElementObject( i, TempObj );
}
SetObject( "perkData", DataProvider );
SetInt("SelectedIndex", SelectedPerkIndex);
UpdatePendingPerkInfo(SelectedPerkIndex);
}
}
}
function UpdatePendingPerkInfo(byte SelectedPerkIndex)

View File

@ -316,13 +316,13 @@ reliable client event TeamMessage( PlayerReplicationInfo PRI, coerce string S, n
}
if (MyGFxManager != none && MyGFxManager.PartyWidget != none)
{
if( !MyGFxManager.PartyWidget.ReceiveMessage(S) ) //Fails if message is for updating perks in a steam lobby
return;
}
{
if( !MyGFxManager.PartyWidget.ReceiveMessage(S) ) //Fails if message is for updating perks in a steam lobby
return;
}
if( MyGFxHUD != none )
{
if( MyGFxHUD != none )
{
switch( Type )
{
case 'Log':
@ -340,7 +340,7 @@ reliable client event TeamMessage( PlayerReplicationInfo PRI, coerce string S, n
case 'TeamSay':
if( ExtPlayerReplicationInfo(PRI)!=None && ExtPlayerReplicationInfo(PRI).ShowAdminName() )
MyGFxHUD.HudChatBox.AddChatMessage("("$ExtPlayerReplicationInfo(PRI).GetAdminNameAbr()$")"$S, ExtPlayerReplicationInfo(PRI).GetAdminColor());
else MyGFxHUD.HudChatBox.AddChatMessage(S, "64FE2E");
else MyGFxHUD.HudChatBox.AddChatMessage(S, "64FE2E");
break;
case 'Priority':
MyGFxHUD.HudChatBox.AddChatMessage(S, class 'KFLocalMessage'.default.PriorityColor);
@ -509,9 +509,9 @@ reliable server function ServerCamera( name NewMode )
{
// <- REMOVED CAMERA LOGGING (PlayerController)
if ( NewMode == '1st' )
NewMode = 'FirstPerson';
else if ( NewMode == '3rd' )
NewMode = 'ThirdPerson';
NewMode = 'FirstPerson';
else if ( NewMode == '3rd' )
NewMode = 'ThirdPerson';
SetCameraMode( NewMode );
}
exec function Camera( name NewMode )
@ -582,12 +582,12 @@ simulated reliable client event bool ShowConnectionProgressPopup( EProgressMessa
{
switch(ProgressType)
{
case PMT_ConnectionFailure :
case PMT_PeerConnectionFailure :
case PMT_ConnectionFailure :
case PMT_PeerConnectionFailure :
KFExtendedHUD(myHUD).NotifyLevelChange();
KFExtendedHUD(myHUD).ShowProgressMsg("Connection Error: "$ProgressTitle$"|"$ProgressDescription$"|Disconnecting...",true);
return true;
case PMT_DownloadProgress :
case PMT_DownloadProgress :
KFExtendedHUD(myHUD).NotifyLevelChange();
case PMT_AdminMessage :
KFExtendedHUD(myHUD).ShowProgressMsg(ProgressTitle$"|"$ProgressDescription);
@ -1127,7 +1127,7 @@ state Dead
KFPawn(ViewTarget).SetMeshVisibility(true);
}
// Deactivate any post process effects when we die
// Deactivate any post process effects when we die
ResetGameplayPostProcessFX();
if(CurrentPerk != none)
@ -1169,12 +1169,12 @@ state Dead
exec function RequestSwitchTeam()
{
ConsoleCommand("disconnect");
ConsoleCommand("disconnect");
}
exec function SwitchTeam()
{
ConsoleCommand("disconnect");
ConsoleCommand("disconnect");
}
defaultproperties

View File

@ -8,14 +8,14 @@ struct FCustomCharEntry
};
struct FMyCustomChar // Now without constant.
{
var int CharacterIndex,HeadMeshIndex,HeadSkinIndex,BodyMeshIndex,BodySkinIndex,AttachmentMeshIndices[`MAX_COSMETIC_ATTACHMENTS],AttachmentSkinIndices[`MAX_COSMETIC_ATTACHMENTS];
var int CharacterIndex,HeadMeshIndex,HeadSkinIndex,BodyMeshIndex,BodySkinIndex,AttachmentMeshIndices[`MAX_COSMETIC_ATTACHMENTS],AttachmentSkinIndices[`MAX_COSMETIC_ATTACHMENTS];
structdefaultproperties
{
AttachmentMeshIndices[0]=`CLEARED_ATTACHMENT_INDEX
AttachmentMeshIndices[1]=`CLEARED_ATTACHMENT_INDEX
AttachmentMeshIndices[2]=`CLEARED_ATTACHMENT_INDEX
}
structdefaultproperties
{
AttachmentMeshIndices[0]=`CLEARED_ATTACHMENT_INDEX
AttachmentMeshIndices[1]=`CLEARED_ATTACHMENT_INDEX
AttachmentMeshIndices[2]=`CLEARED_ATTACHMENT_INDEX
}
};
// For custom trader inventory.
@ -537,10 +537,10 @@ reliable server final function ServerSetCharacterX( FMyCustomChar NewMeshInfo )
CustomCharacter = NewMeshInfo;
if ( Role == Role_Authority )
{
if ( Role == Role_Authority )
{
CharacterCustomizationChanged();
}
}
}
simulated final function bool IsClientCharLocked( byte Index )
{

View File

@ -11,15 +11,15 @@ simulated function PostBeginPlay()
}
simulated function ExplodeTimer()
{
local Actor HitActor;
local vector HitLocation, HitNormal;
local Actor HitActor;
local vector HitLocation, HitNormal;
if( WorldInfo.NetMode!=NM_Client && InstigatorController==none )
{
Destroy();
return;
}
GetExplodeEffectLocation(HitLocation, HitNormal, HitActor);
GetExplodeEffectLocation(HitLocation, HitNormal, HitActor);
if( --NumCrackers==0 )
TriggerExplosion(HitLocation, HitNormal, HitActor);
else SmallExplosion(HitLocation, HitNormal, HitActor);

View File

@ -32,7 +32,7 @@ simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNorma
{
// For opposing team, make the grenade explode instantly
GetExplodeEffectLocation( HitLocation, HitNormal, Other );
TriggerExplosion( HitLocation, HitNormal, Other );
TriggerExplosion( HitLocation, HitNormal, Other );
}
else super.ProcessTouch( Other, HitLocation, HitNormal );
}
@ -69,14 +69,14 @@ simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor
simulated function Destroyed()
{
local Actor HitActor;
local vector HitLocation, HitNormal;
local Actor HitActor;
local vector HitLocation, HitNormal;
// Final Failsafe check for explosion effect
if( !bHasExploded && WorldInfo.NetMode==NM_Client )
{
GetExplodeEffectLocation(HitLocation, HitNormal, HitActor);
TriggerExplosion(HitLocation, HitNormal, HitActor);
TriggerExplosion(HitLocation, HitNormal, HitActor);
}
}

View File

@ -36,14 +36,14 @@ simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor
simulated function Destroyed()
{
local Actor HitActor;
local vector HitLocation, HitNormal;
local Actor HitActor;
local vector HitLocation, HitNormal;
// Final Failsafe check for explosion effect
if( !bHasExploded && WorldInfo.NetMode==NM_Client )
{
GetExplodeEffectLocation(HitLocation, HitNormal, HitActor);
TriggerExplosion(HitLocation, HitNormal, HitActor);
TriggerExplosion(HitLocation, HitNormal, HitActor);
}
}

View File

@ -11,7 +11,7 @@ function SetPerkFilterData(byte FilterIndex)
SetBool("filterVisibliity", true);
KFPC = ExtPlayerController( GetPC() );
KFPC = ExtPlayerController( GetPC() );
if ( KFPC != none )
{
PrM = KFPC.ActivePerkManager;
@ -36,7 +36,7 @@ function SetPerkFilterData(byte FilterIndex)
{
FilterObject = CreateObject( "Object" );
FilterObject.SetString("source", PrM.UserPerks[i].GetPerkIconPath(PrM.UserPerks[i].CurrentLevel));
DataProvider.SetElementObject( i, FilterObject );
DataProvider.SetElementObject( i, FilterObject );
}
FilterObject = CreateObject( "Object" );
@ -44,8 +44,8 @@ function SetPerkFilterData(byte FilterIndex)
DataProvider.SetElementObject( i, FilterObject );
SetObject( "filterSource", DataProvider );
}
}
}
}
}
defaultproperties

View File

@ -30,7 +30,7 @@ function SetPerkList()
KFPC = ExtPlayerController(GetPC());
if( KFPC != none && KFPC.ActivePerkManager!=None )
{
DataProvider = CreateArray();
DataProvider = CreateArray();
for (i = 0; i < KFPC.ActivePerkManager.UserPerks.Length; i++)
{

View File

@ -15,7 +15,7 @@ function RefreshWeaponListByPerk(byte FilterIndex, const out array<STraderItem>
TargetPerkClass = EKFPC.ActivePerkManager.UserPerks[FilterIndex].BasePerk;
SlotIndex = 0;
ItemDataArray = CreateArray();
ItemDataArray = CreateArray();
for (i = 0; i < ItemList.Length; i++)
{

View File

@ -14,7 +14,7 @@ defaultproperties
simulated static function bool AllowedForAllPerks()
{
return true;
return true;
}
simulated function ConsumeAmmo( byte FireModeNum )

View File

@ -14,7 +14,7 @@ defaultproperties
simulated static function bool AllowedForAllPerks()
{
return true;
return true;
}
simulated function ConsumeAmmo( byte FireModeNum )

View File

@ -21,7 +21,7 @@ defaultproperties
simulated static function bool AllowedForAllPerks()
{
return true;
return true;
}
simulated function ConsumeAmmo( byte FireModeNum )

View File

@ -21,7 +21,7 @@ var array<WeaponSkin> Skins;
static function array<MaterialInterface> GetWeaponSkin(int ItemId, EWeaponSkinType Type, ExtPlayerController PC)
{
local int i;
local int i;
local array<MaterialInterface> Mats;
local MaterialInterface LoadedMat;
local string FirstPMat;
@ -75,7 +75,7 @@ static function SaveWeaponSkin(class<KFWeaponDefinition> WeaponDef, int ID, ExtP
static function bool IsSkinEquip(class<KFWeaponDefinition> WeaponDef, int ID, ExtPlayerController PC)
{
local int i;
local int i;
i = PC.SavedWeaponSkins.Find('ID', ID);
if( i > -1 )
return true;

View File

@ -114,25 +114,25 @@ reliable client simulated function string UIName(FDefPerkStat DefPerkStat)
{
switch( DefPerkStat.StatType )
{
case name("Speed"): return StatSpeed;
case name("Damage"): return StatDamage;
case name("Recoil"): return StatRecoil;
case name("Spread"): return StatSpread;
case name("Rate"): return StatRate;
case name("Reload"): return StatReload;
case name("Health"): return StatHealth;
case name("KnockDown"): return StatKnockDown;
case name("Welder"): return StatWelder;
case name("Heal"): return StatHeal;
case name("Mag"): return StatMag;
case name("Spare"): return StatSpare;
case name("OffDamage"): return StatOffDamage;
case name("Speed"): return StatSpeed;
case name("Damage"): return StatDamage;
case name("Recoil"): return StatRecoil;
case name("Spread"): return StatSpread;
case name("Rate"): return StatRate;
case name("Reload"): return StatReload;
case name("Health"): return StatHealth;
case name("KnockDown"): return StatKnockDown;
case name("Welder"): return StatWelder;
case name("Heal"): return StatHeal;
case name("Mag"): return StatMag;
case name("Spare"): return StatSpare;
case name("OffDamage"): return StatOffDamage;
case name("SelfDamage"): return StatSelfDamage;
case name("Armor"): return StatArmor;
case name("PoisonDmg"): return StatPoisonDmg;
case name("SonicDmg"): return StatSonicDmg;
case name("FireDmg"): return StatFireDmg;
case name("AllDmg"): return StatAllDmg;
case name("Armor"): return StatArmor;
case name("PoisonDmg"): return StatPoisonDmg;
case name("SonicDmg"): return StatSonicDmg;
case name("FireDmg"): return StatFireDmg;
case name("AllDmg"): return StatAllDmg;
case name("HeadDamage"): return StatHeadDamage;
case name("HealRecharge"): return StatHealRecharge;
}

View File

@ -22,14 +22,14 @@ simulated function bool CanRepairDoors()
simulated function float GetPenetrationModifier( byte Level, class<KFDamageType> DamageType, optional bool bForce )
{
local float PenetrationPower;
if( !bForce && (DamageType == none || ( DamageType!=None && DamageType.Default.ModifierPerkList.Find(BasePerk) == INDEX_NONE )))
return 0;
local float PenetrationPower;
if( !bForce && (DamageType == none || ( DamageType!=None && DamageType.Default.ModifierPerkList.Find(BasePerk) == INDEX_NONE )))
return 0;
PenetrationPower = bUseAPShot ? APShotMul : 0.f;
PenetrationPower = IsPerforateActive() ? 40.f : PenetrationPower;
PenetrationPower = bUseAPShot ? APShotMul : 0.f;
PenetrationPower = IsPerforateActive() ? 40.f : PenetrationPower;
return PenetrationPower;
return PenetrationPower;
}
simulated function bool IsPerforateActive()

View File

@ -20,7 +20,7 @@ static function ApplyEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Leve
{
Inv = Player.CreateInventory(class'ExtWeap_Pistol_MedicS',Player.Weapon!=None);
if ( KFWeapon(Inv)!=None )
KFWeapon(Inv).bGivenAtStart = true;
KFWeapon(Inv).bGivenAtStart = true;
}
}

View File

@ -50,7 +50,7 @@ static function ApplyEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Leve
{
Inv = Player.CreateInventory(IC,Player.Weapon!=None);
if ( KFWeapon(Inv)!=None )
KFWeapon(Inv).bGivenAtStart = true;
KFWeapon(Inv).bGivenAtStart = true;
}
}
if( M!=None )

View File

@ -28,12 +28,12 @@ var transient float BestPetXL, BestPetYL;
struct PopupDamageInfo
{
var int Damage;
var float HitTime;
var Vector HitLocation;
var byte Type;
var float RandX, RandY;
var color FontColor;
var int Damage;
var float HitTime;
var Vector HitLocation;
var byte Type;
var float RandX, RandY;
var color FontColor;
};
const DAMAGEPOPUP_COUNT = 32;
var PopupDamageInfo DamagePopups[32];
@ -450,8 +450,8 @@ function DrawHUD()
local KFPawn_Scripted KFPS;
local vector ViewLocation, ViewVector, PlayerPartyInfoLocation, PawnLocation;
local rotator ViewRotation;
local array<PlayerReplicationInfo> VisibleHumanPlayers;
local array<sHiddenHumanPawnInfo> HiddenHumanPlayers;
local array<PlayerReplicationInfo> VisibleHumanPlayers;
local array<sHiddenHumanPawnInfo> HiddenHumanPlayers;
local float ThisDot,DotScale;
local vector TargetLocation;
local Actor LocActor;
@ -459,21 +459,21 @@ function DrawHUD()
local vector V;
local bool bSpec;
// Draw weapon HUD underneath everything else
if( KFPlayerOwner != none && KFPlayerOwner.Pawn != none && KFPlayerOwner.Pawn.Weapon != none )
{
KFPlayerOwner.Pawn.Weapon.DrawHUD( self, Canvas );
}
// Draw weapon HUD underneath everything else
if( KFPlayerOwner != none && KFPlayerOwner.Pawn != none && KFPlayerOwner.Pawn.Weapon != none )
{
KFPlayerOwner.Pawn.Weapon.DrawHUD( self, Canvas );
}
super.DrawHUD();
// Cache GRI
if( KFGRI == none )
{
KFGRI = KFGameReplicationInfo( WorldInfo.GRI );
}
// Cache GRI
if( KFGRI == none )
{
KFGRI = KFGameReplicationInfo( WorldInfo.GRI );
}
// Don't draw canvas HUD in cinematic mode
// Don't draw canvas HUD in cinematic mode
if( KFPlayerOwner != none && KFPlayerOwner.bCinematicMode )
{
return;
@ -483,86 +483,86 @@ function DrawHUD()
// Draw the crosshair for casual mode
if( KFPlayerOwner != none && (bDrawCrosshair || bForceDrawCrosshair || KFPlayerOwner.GetTeamNum() == 255) )
{
DrawCrosshair();
}
DrawCrosshair();
}
// Friendly player status
// Friendly player status
bSpec = (PlayerOwner.PlayerReplicationInfo!=None && PlayerOwner.PlayerReplicationInfo.bOnlySpectator);
if( bSpec || PlayerOwner.GetTeamNum()==0 )
{
//Friendly player status
if( !class'ExtPlayerController'.Default.bHideNameBeacons )
{
if( KFPlayerOwner != none )
{
KFPlayerOwner.GetPlayerViewPoint( ViewLocation, ViewRotation );
}
ViewVector = vector(ViewRotation);
{
if( KFPlayerOwner != none )
{
KFPlayerOwner.GetPlayerViewPoint( ViewLocation, ViewRotation );
}
ViewVector = vector(ViewRotation);
Canvas.EnableStencilTest(true);
foreach WorldInfo.AllPawns( class'KFPawn_Human', KFPH )
{
if( KFPH.IsAliveAndWell() && KFPH != KFPlayerOwner.Pawn && KFPH.Mesh.SkeletalMesh != none && KFPH.Mesh.bAnimTreeInitialised )
{
PlayerPartyInfoLocation = KFPH.Mesh.GetPosition() + ( KFPH.CylinderComponent.CollisionHeight * vect(0,0,1) );
if(`TimeSince(KFPH.Mesh.LastRenderTime) < 0.2f && Normal(PlayerPartyInfoLocation - ViewLocation) dot ViewVector > 0.f )
{
if( DrawFriendlyHumanPlayerInfo(KFPH) )
{
VisibleHumanPlayers.AddItem( KFPH.PlayerReplicationInfo );
}
else
{
HiddenHumanPlayers.Insert( 0, 1 );
HiddenHumanPlayers[0].HumanPawn = KFPH;
HiddenHumanPlayers[0].HumanPRI = KFPH.PlayerReplicationInfo;
}
}
else
{
HiddenHumanPlayers.Insert( 0, 1 );
HiddenHumanPlayers[0].HumanPawn = KFPH;
HiddenHumanPlayers[0].HumanPRI = KFPH.PlayerReplicationInfo;
}
}
}
Canvas.EnableStencilTest(true);
foreach WorldInfo.AllPawns( class'KFPawn_Human', KFPH )
{
if( KFPH.IsAliveAndWell() && KFPH != KFPlayerOwner.Pawn && KFPH.Mesh.SkeletalMesh != none && KFPH.Mesh.bAnimTreeInitialised )
{
PlayerPartyInfoLocation = KFPH.Mesh.GetPosition() + ( KFPH.CylinderComponent.CollisionHeight * vect(0,0,1) );
if(`TimeSince(KFPH.Mesh.LastRenderTime) < 0.2f && Normal(PlayerPartyInfoLocation - ViewLocation) dot ViewVector > 0.f )
{
if( DrawFriendlyHumanPlayerInfo(KFPH) )
{
VisibleHumanPlayers.AddItem( KFPH.PlayerReplicationInfo );
}
else
{
HiddenHumanPlayers.Insert( 0, 1 );
HiddenHumanPlayers[0].HumanPawn = KFPH;
HiddenHumanPlayers[0].HumanPRI = KFPH.PlayerReplicationInfo;
}
}
else
{
HiddenHumanPlayers.Insert( 0, 1 );
HiddenHumanPlayers[0].HumanPawn = KFPH;
HiddenHumanPlayers[0].HumanPRI = KFPH.PlayerReplicationInfo;
}
}
}
foreach WorldInfo.AllPawns(class'KFPawn_Scripted', KFPS)
{
if (KFPS.ShouldShowOnHUD())
{
PlayerPartyInfoLocation = KFPS.Mesh.GetPosition() + (KFPS.CylinderComponent.CollisionHeight * vect(0,0,1));
DrawScriptedPawnInfo(KFPS, Normal(PlayerPartyInfoLocation - ViewLocation) dot ViewVector, `TimeSince(KFPS.Mesh.LastRenderTime) < 0.2f);
}
}
foreach WorldInfo.AllPawns(class'KFPawn_Scripted', KFPS)
{
if (KFPS.ShouldShowOnHUD())
{
PlayerPartyInfoLocation = KFPS.Mesh.GetPosition() + (KFPS.CylinderComponent.CollisionHeight * vect(0,0,1));
DrawScriptedPawnInfo(KFPS, Normal(PlayerPartyInfoLocation - ViewLocation) dot ViewVector, `TimeSince(KFPS.Mesh.LastRenderTime) < 0.2f);
}
}
if( !KFGRI.bHidePawnIcons )
{
// Draw hidden players
CheckAndDrawHiddenPlayerIcons( VisibleHumanPlayers, HiddenHumanPlayers );
if( !KFGRI.bHidePawnIcons )
{
// Draw hidden players
CheckAndDrawHiddenPlayerIcons( VisibleHumanPlayers, HiddenHumanPlayers );
// Draw last remaining zeds
CheckAndDrawRemainingZedIcons();
// Draw last remaining zeds
CheckAndDrawRemainingZedIcons();
//Draw our current objective location
if(KFGRI.CurrentObjective != none && KFGRI.ObjectiveInterface != none)
{
KFGRI.ObjectiveInterface.DrawHUD(self, Canvas);
//Draw our current objective location
if(KFGRI.CurrentObjective != none && KFGRI.ObjectiveInterface != none)
{
KFGRI.ObjectiveInterface.DrawHUD(self, Canvas);
TargetLocation = KFGRI.ObjectiveInterface.GetIconLocation();
ThisDot = Normal((TargetLocation + (class'KFPawn_Human'.default.CylinderComponent.CollisionHeight * vect(0, 0, 1))) - ViewLocation) dot ViewVector;
TargetLocation = KFGRI.ObjectiveInterface.GetIconLocation();
ThisDot = Normal((TargetLocation + (class'KFPawn_Human'.default.CylinderComponent.CollisionHeight * vect(0, 0, 1))) - ViewLocation) dot ViewVector;
if (ThisDot > 0 &&
KFGRI.ObjectiveInterface.ShouldShowObjectiveHUD() &&
(!KFGRI.ObjectiveInterFace.HasObjectiveDrawDistance() || VSizeSq(TargetLocation - LocActor.Location) < MaxDrawDistanceObjective))
{
DrawObjectiveHUD();
}
}
}
if (ThisDot > 0 &&
KFGRI.ObjectiveInterface.ShouldShowObjectiveHUD() &&
(!KFGRI.ObjectiveInterFace.HasObjectiveDrawDistance() || VSizeSq(TargetLocation - LocActor.Location) < MaxDrawDistanceObjective))
{
DrawObjectiveHUD();
}
}
}
Canvas.EnableStencilTest(false);
}
Canvas.EnableStencilTest(false);
}
}
else if( KFPawn_Monster(PlayerOwner.Pawn)!=None )
{
@ -594,7 +594,7 @@ function DrawHUD()
if( !class'ExtPlayerController'.Default.bHideNameBeacons )
{
Canvas.EnableStencilTest(true);
Canvas.EnableStencilTest(true);
// Draw zed health bars.
foreach WorldInfo.AllPawns(class'KFPawn_Monster', M)
{
@ -602,7 +602,7 @@ function DrawHUD()
if( ThisDot>0 && ThisDot<8000.f && M.IsAliveAndWell() && M.PlayerReplicationInfo!=None && M!=PlayerOwner.Pawn && (WorldInfo.TimeSeconds - M.Mesh.LastRenderTime) < 0.4f )
DrawFriendlyHUDZ(M);
}
Canvas.EnableStencilTest(false);
Canvas.EnableStencilTest(false);
}
}
}
@ -634,10 +634,10 @@ simulated function DrawFriendlyHUDZ( KFPawn_Monster KFPH )
local vector ScreenPos, TargetLocation;
local FontRenderInfo MyFontRenderInfo;
local float FontScale;
local byte FadeAlpha;
local byte FadeAlpha;
MyFontRenderInfo = Canvas.CreateFontRenderInfo( true );
FadeAlpha = DrawToDistance(KFPH);
FadeAlpha = DrawToDistance(KFPH);
BarLength = FMin(PlayerStatusBarLengthMax * (float(Canvas.SizeX) / 1024.f), PlayerStatusBarLengthMax) * FriendlyHudScale;
BarHeight = FMin(8.f * (float(Canvas.SizeX) / 1024.f), 8.f) * FriendlyHudScale;
@ -656,8 +656,8 @@ simulated function DrawFriendlyHUDZ( KFPawn_Monster KFPH )
FontScale = class'KFGameEngine'.Static.GetKFFontScale() * FriendlyHudScale;
Canvas.Font = class'KFGameEngine'.Static.GetKFCanvasFont();
Canvas.DrawColor = PlayerBarTextColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.DrawColor = PlayerBarTextColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.SetPos(ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight * 2);
Canvas.DrawText( KFPH.PlayerReplicationInfo.PlayerName,,FontScale,FontScale, MyFontRenderInfo );
@ -673,8 +673,8 @@ simulated function bool DrawFriendlyHumanPlayerInfo( KFPawn_Human KFPH )
local float ResModifier;
local float PerkIconPosX, PerkIconPosY, SupplyIconPosX, SupplyIconPosY, PerkIconSize;
local color CurrentArmorColor, CurrentHealthColor, TextColor;
local string S;
local byte FadeAlpha;
local string S;
local byte FadeAlpha;
ResModifier = WorldInfo.static.GetResolutionBasedHUDScale() * FriendlyHudScale;
KFPRI = ExtPlayerReplicationInfo(KFPH.PlayerReplicationInfo);
@ -684,7 +684,7 @@ simulated function bool DrawFriendlyHumanPlayerInfo( KFPawn_Human KFPH )
return false;
}
FadeAlpha = DrawToDistance(KFPH);
FadeAlpha = DrawToDistance(KFPH);
MyFontRenderInfo = Canvas.CreateFontRenderInfo( true );
BarLength = FMin(PlayerStatusBarLengthMax * (Canvas.ClipX / 1024.f), PlayerStatusBarLengthMax) * ResModifier;
BarHeight = FMin(8.f * (Canvas.ClipX / 1024.f), 8.f) * ResModifier;
@ -701,7 +701,7 @@ simulated function bool DrawFriendlyHumanPlayerInfo( KFPawn_Human KFPH )
Canvas.Font = class'KFGameEngine'.Static.GetKFCanvasFont();
// drop shadow for player name text
S = KFPRI.PlayerName;
S = KFPRI.PlayerName;
if( KFPRI.bBot )
{
S = S$" (Bot)";
@ -716,31 +716,31 @@ simulated function bool DrawFriendlyHumanPlayerInfo( KFPawn_Human KFPH )
if( bMeAdmin && KFPRI.FixedData>0 )
{
TextColor = MakeColor(255,0,0,255);
TextColor = MakeColor(255,0,0,255);
S @= "-"$KFPRI.GetDesc();
}
TextColor.A = FadeAlpha;
TextColor.A = FadeAlpha;
Canvas.DrawColor = PlayerBarShadowColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.DrawColor = PlayerBarShadowColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.SetPos(ScreenPos.X - (BarLength * 0.5f) + 1, ScreenPos.Y + 8);
Canvas.DrawText(S, , FontScale, FontScale, MyFontRenderInfo);
Canvas.DrawColor = TextColor;
Canvas.DrawColor = TextColor;
Canvas.SetPos(ScreenPos.X - (BarLength * 0.5f), ScreenPos.Y + 7);
Canvas.DrawText(S, , FontScale, FontScale, MyFontRenderInfo);
//Draw armor bar
Percentage = FMin(float(KFPH.Armor) / float(KFPH.MaxArmor), 100);
CurrentArmorColor = ClassicPlayerInfo ? ClassicArmorColor : ArmorColor;
CurrentArmorColor.A = FadeAlpha;
CurrentArmorColor.A = FadeAlpha;
DrawPlayerInfoBar(KFPH, Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength * 0.5f), ScreenPos.Y + BarHeight + (36 * FontScale * ResModifier), CurrentArmorColor, FadeAlpha);
//Draw health bar
Percentage = FMin(float(KFPH.Health) / float(KFPH.HealthMax), 100);
CurrentHealthColor = ClassicPlayerInfo ? ClassicHealthColor : HealthColor;
CurrentHealthColor.A = FadeAlpha;
CurrentHealthColor.A = FadeAlpha;
DrawPlayerInfoBar(KFPH, Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength * 0.5f), ScreenPos.Y + BarHeight * 2 + (36 * FontScale * ResModifier), CurrentHealthColor, FadeAlpha, true);
if( KFPRI.ECurrentPerk == None )
@ -749,19 +749,19 @@ simulated function bool DrawFriendlyHumanPlayerInfo( KFPawn_Human KFPH )
}
// drop shadow for perk name text
Canvas.DrawColor = PlayerBarShadowColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.DrawColor = PlayerBarShadowColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.SetPos(ScreenPos.X - (BarLength * 0.5f) + 1, ScreenPos.Y + BarHeight * 3 + (36 * FontScale * ResModifier) + 1);
Canvas.DrawText(KFPRI.GetPerkLevelStr()@KFPRI.ECurrentPerk.default.PerkName, , FontScale, FontScale, MyFontRenderInfo);
//Draw perk level and name text
Canvas.DrawColor = PlayerBarTextColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.DrawColor.A = FadeAlpha;
Canvas.SetPos(ScreenPos.X - (BarLength * 0.5f), ScreenPos.Y + BarHeight * 3 + (36 * FontScale * ResModifier));
Canvas.DrawText(KFPRI.GetPerkLevelStr()@KFPRI.ECurrentPerk.default.PerkName, , FontScale, FontScale, MyFontRenderInfo);
// drop shadow for perk icon
Canvas.DrawColor = PlayerBarShadowColor;
Canvas.DrawColor = PlayerBarShadowColor;
Canvas.DrawColor.A = FadeAlpha;
PerkIconSize = PlayerStatusIconSize * ResModifier;
PerkIconPosX = ScreenPos.X - (BarLength * 0.5f) - PerkIconSize + 1;
@ -771,7 +771,7 @@ simulated function bool DrawFriendlyHumanPlayerInfo( KFPawn_Human KFPH )
DrawPerkIcons(KFPH, PerkIconSize, PerkIconPosX, PerkIconPosY, SupplyIconPosX, SupplyIconPosY, true);
//draw perk icon
Canvas.DrawColor = PlayerBarIconColor;
Canvas.DrawColor = PlayerBarIconColor;
Canvas.DrawColor.A = FadeAlpha;
PerkIconPosX = ScreenPos.X - (BarLength * 0.5f) - PerkIconSize;
PerkIconPosY = ScreenPos.Y + (36 * FontScale * ResModifier);
@ -785,7 +785,7 @@ simulated final function DrawPlayerInfoBar( KFPawn P, float BarPercentage, float
{
//background for status bar
Canvas.DrawColor = PlayerBarBGColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.DrawColor.A = FadeAlpha;
Canvas.SetPos(XPos, YPos);
Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength, BarHeight, 0, 0, 32, 32);
@ -796,7 +796,7 @@ simulated final function DrawPlayerInfoBar( KFPawn P, float BarPercentage, float
//Forground for status bar.
Canvas.DrawColor = BarColor;
Canvas.DrawColor.A = FadeAlpha;
Canvas.DrawColor.A = FadeAlpha;
Canvas.SetPos(XPos, YPos);
Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength * BarPercentage, BarHeight, 0, 0, 32, 32);
@ -806,7 +806,7 @@ simulated final function DrawPlayerInfoBar( KFPawn P, float BarPercentage, float
XPos+=(BarLength * BarPercentage);
BarPercentage = FMin(float(ExtHumanPawn(P).RepRegenHP) / float(P.HealthMax),1.f-BarPercentage);
Canvas.DrawColor = MakeColor(255,128,128,FadeAlpha);
Canvas.DrawColor = MakeColor(255,128,128,FadeAlpha);
Canvas.SetPos(XPos, YPos);
Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength * BarPercentage, BarHeight, 0, 0, 32, 32);
}
@ -884,13 +884,13 @@ simulated function DrawMonsterHUD( KFPawn KFPH )
local Ext_T_MonsterPRI PRI;
local FontRenderInfo MyFontRenderInfo;
local float FontScale;
local byte FadeAlpha;
local byte FadeAlpha;
PRI = Ext_T_MonsterPRI(KFPH.PlayerReplicationInfo);
if( PRI==None )
return;
FadeAlpha = DrawToDistance(KFPH);
FadeAlpha = DrawToDistance(KFPH);
MyFontRenderInfo = Canvas.CreateFontRenderInfo( true );
BarLength = FMin(PlayerStatusBarLengthMax * (float(Canvas.SizeX) / 1024.f), PlayerStatusBarLengthMax) * FriendlyHudScale;
@ -964,73 +964,73 @@ simulated function DrawPetInfo()
function byte DrawToDistance(Actor A, optional float StartAlpha=255.f, optional float MinAlpha=90.f)
{
local float Dist, fZoom;
local float Dist, fZoom;
Dist = VSize(A.Location - PLCameraLoc);
if ( Dist <= HealthBarFullVisDist || PlayerOwner.PlayerReplicationInfo.bOnlySpectator )
fZoom = 1.0;
else fZoom = FMax(1.0 - (Dist - HealthBarFullVisDist) / (HealthBarCutoffDist - HealthBarFullVisDist), 0.0);
Dist = VSize(A.Location - PLCameraLoc);
if ( Dist <= HealthBarFullVisDist || PlayerOwner.PlayerReplicationInfo.bOnlySpectator )
fZoom = 1.0;
else fZoom = FMax(1.0 - (Dist - HealthBarFullVisDist) / (HealthBarCutoffDist - HealthBarFullVisDist), 0.0);
return Clamp(StartAlpha * fZoom, MinAlpha, StartAlpha);
return Clamp(StartAlpha * fZoom, MinAlpha, StartAlpha);
}
final function AddNumberMsg( int Amount, vector Pos, byte Type )
{
local Color C;
local Color C;
DamagePopups[NextDamagePopupIndex].Damage = Amount;
DamagePopups[NextDamagePopupIndex].HitTime = WorldInfo.TimeSeconds;
DamagePopups[NextDamagePopupIndex].Type = Type;
DamagePopups[NextDamagePopupIndex].HitLocation = Pos;
//ser random speed of fading out, so multiple damages in the same hit location don't overlap each other
DamagePopups[NextDamagePopupIndex].RandX = 2.0 * FRand();
DamagePopups[NextDamagePopupIndex].RandY = 1.0 + FRand();
DamagePopups[NextDamagePopupIndex].Damage = Amount;
DamagePopups[NextDamagePopupIndex].HitTime = WorldInfo.TimeSeconds;
DamagePopups[NextDamagePopupIndex].Type = Type;
DamagePopups[NextDamagePopupIndex].HitLocation = Pos;
//ser random speed of fading out, so multiple damages in the same hit location don't overlap each other
DamagePopups[NextDamagePopupIndex].RandX = 2.0 * FRand();
DamagePopups[NextDamagePopupIndex].RandY = 1.0 + FRand();
C.A = 255;
if ( Type == 0 && Amount < 100 ) {
C.R = 220;
C.G = 0;
C.B = 0;
}
C.A = 255;
if ( Type == 0 && Amount < 100 ) {
C.R = 220;
C.G = 0;
C.B = 0;
}
else if ( Type == 1 ) {
C.R = 255;
C.G = 255;
C.B = 25;
}
else if ( Type == 2 ) {
C.R = 32;
C.G = 240;
C.B = 32;
}
else if ( Amount >= 300 ) {
C.R = 0;
C.G = 206;
C.B = 0;
}
else if ( Amount >= 100 ) {
C.R = 206;
C.G = 206;
C.B = 0;
}
else {
C.R = 127;
C.G = 127;
C.B = 127;
}
DamagePopups[NextDamagePopupIndex].FontColor = C;
C.R = 255;
C.G = 255;
C.B = 25;
}
else if ( Type == 2 ) {
C.R = 32;
C.G = 240;
C.B = 32;
}
else if ( Amount >= 300 ) {
C.R = 0;
C.G = 206;
C.B = 0;
}
else if ( Amount >= 100 ) {
C.R = 206;
C.G = 206;
C.B = 0;
}
else {
C.R = 127;
C.G = 127;
C.B = 127;
}
DamagePopups[NextDamagePopupIndex].FontColor = C;
if( ++NextDamagePopupIndex >= DAMAGEPOPUP_COUNT)
NextDamagePopupIndex=0;
if( ++NextDamagePopupIndex >= DAMAGEPOPUP_COUNT)
NextDamagePopupIndex=0;
}
final function DrawDamage()
{
local int i;
local float TimeSinceHit;
local vector CameraLocation, CamDir;
local rotator CameraRotation;
local vector HBScreenPos;
local float TextWidth, TextHeight, x, Sc;
local int i;
local float TimeSinceHit;
local vector CameraLocation, CamDir;
local rotator CameraRotation;
local vector HBScreenPos;
local float TextWidth, TextHeight, x, Sc;
local string S;
Canvas.Font = class'Engine'.Static.GetMediumFont();
@ -1039,12 +1039,12 @@ final function DrawDamage()
KFPlayerController(Owner).GetPlayerViewPoint(CameraLocation, CameraRotation);
CamDir = vector(CameraRotation);
for( i=0; i < DAMAGEPOPUP_COUNT ; i++ )
for( i=0; i < DAMAGEPOPUP_COUNT ; i++ )
{
TimeSinceHit = WorldInfo.TimeSeconds - DamagePopups[i].HitTime;
if( TimeSinceHit > DamagePopupFadeOutTime
|| ( Normal(DamagePopups[i].HitLocation - CameraLocation) dot Normal(CamDir) < 0.1 ) ) //don't draw if player faced back to the hit location
continue;
TimeSinceHit = WorldInfo.TimeSeconds - DamagePopups[i].HitTime;
if( TimeSinceHit > DamagePopupFadeOutTime
|| ( Normal(DamagePopups[i].HitLocation - CameraLocation) dot Normal(CamDir) < 0.1 ) ) //don't draw if player faced back to the hit location
continue;
switch( DamagePopups[i].Type )
{
@ -1059,27 +1059,27 @@ final function DrawDamage()
break;
}
HBScreenPos = Canvas.Project(DamagePopups[i].HitLocation);
HBScreenPos = Canvas.Project(DamagePopups[i].HitLocation);
Canvas.TextSize(S,TextWidth,TextHeight,Sc,Sc);
//draw just on the hit location
HBScreenPos.Y -= TextHeight/2;
HBScreenPos.X -= TextWidth/2;
//draw just on the hit location
HBScreenPos.Y -= TextHeight/2;
HBScreenPos.X -= TextWidth/2;
//let numbers to fly up
HBScreenPos.Y -= TimeSinceHit * TextHeight * DamagePopups[i].RandY;
x = Sin(2*Pi * TimeSinceHit/DamagePopupFadeOutTime) * TextWidth * DamagePopups[i].RandX;
// odd numbers start to flying to the right side, even - left
// So in situations of decapitaion player could see both damages
if ( i % 2 == 0)
x *= -1.0;
HBScreenPos.X += x;
//let numbers to fly up
HBScreenPos.Y -= TimeSinceHit * TextHeight * DamagePopups[i].RandY;
x = Sin(2*Pi * TimeSinceHit/DamagePopupFadeOutTime) * TextWidth * DamagePopups[i].RandX;
// odd numbers start to flying to the right side, even - left
// So in situations of decapitaion player could see both damages
if ( i % 2 == 0)
x *= -1.0;
HBScreenPos.X += x;
Canvas.DrawColor = DamagePopups[i].FontColor;
Canvas.DrawColor.A = 255 * Cos(0.5*Pi * TimeSinceHit/DamagePopupFadeOutTime);
Canvas.DrawColor = DamagePopups[i].FontColor;
Canvas.DrawColor.A = 255 * Cos(0.5*Pi * TimeSinceHit/DamagePopupFadeOutTime);
Canvas.SetPos( HBScreenPos.X, HBScreenPos.Y);
Canvas.DrawText( S );
}
Canvas.SetPos( HBScreenPos.X, HBScreenPos.Y);
Canvas.DrawText( S );
}
}
// Search for new inventory!

View File

@ -17,8 +17,8 @@ function DrawMenu()
if( bIsHighlighted )
{
Canvas.DrawColor.R = Min(Canvas.DrawColor.R + 25, FrameOpacity);
Canvas.DrawColor.G = Min(Canvas.DrawColor.G + 25, FrameOpacity);
Canvas.DrawColor.B = Min(Canvas.DrawColor.B + 25, FrameOpacity);
Canvas.DrawColor.G = Min(Canvas.DrawColor.G + 25, FrameOpacity);
Canvas.DrawColor.B = Min(Canvas.DrawColor.B + 25, FrameOpacity);
}
Canvas.SetPos(0.f,0.f);

View File

@ -2,7 +2,7 @@ class KFPawn_ZedSirenX extends KFPawn_ZedSiren;
function bool CanBeGrabbed(KFPawn GrabbingPawn, optional bool bIgnoreFalling, optional bool bAllowSameTeamGrab)
{
return false;
return false;
}
defaultproperties

View File

@ -5,8 +5,8 @@ event Timer();
event InitGame( string Options, out string ErrorMessage )
{
MaxPlayers = 99;
MaxSpectators = 99;
MaxPlayers = 99;
MaxSpectators = 99;
class'MS_TMPUI'.Static.Remove();
}

View File

@ -33,70 +33,70 @@ function InitMenu()
static final function string FormatTimeSMH (float Sec)
{
local int Hours, Seconds, Minutes;
local int Hours, Seconds, Minutes;
Sec = Abs (Sec);
Seconds = int (Sec);
Minutes = Seconds / 60;
Seconds -= Minutes * 60;
Hours = Minutes / 60;
Sec = Abs (Sec);
Seconds = int (Sec);
Minutes = Seconds / 60;
Seconds -= Minutes * 60;
Hours = Minutes / 60;
return ((Hours < 1) ? "0" $Hours : string (Hours)) @":" @((Minutes < 10) ? "0" $Minutes : string (Minutes)) @":" @((Seconds < 10) ? "0" $Seconds : string (Seconds));
return ((Hours < 1) ? "0" $Hours : string (Hours)) @":" @((Minutes < 10) ? "0" $Minutes : string (Minutes)) @":" @((Seconds < 10) ? "0" $Seconds : string (Seconds));
}
function DrawMenu()
{
local string S;
local PlayerController PC;
local PlayerReplicationInfo PRI;
local ExtPlayerReplicationInfo KFPRI;
local float XPos, YPos, XL, YL, FontScalar, XPosCenter, CurrentBoxY;
local int i, j, NumSpec, NumPlayer, NumAlivePlayer, Width, NotShownCount;
local string S;
local PlayerController PC;
local PlayerReplicationInfo PRI;
local ExtPlayerReplicationInfo KFPRI;
local float XPos, YPos, XL, YL, FontScalar, XPosCenter, CurrentBoxY;
local int i, j, NumSpec, NumPlayer, NumAlivePlayer, Width, NotShownCount;
local byte DefFont;
PC = GetPlayer ();
if (KFGRI == None) {
KFGRI = KFGameReplicationInfo (PC.WorldInfo.GRI);
if (KFGRI == None)
return;
}
PC = GetPlayer ();
if (KFGRI == None) {
KFGRI = KFGameReplicationInfo (PC.WorldInfo.GRI);
if (KFGRI == None)
return;
}
// Sort player list.
for (i = (KFGRI.PRIArray.Length - 1); i > 0; --i) {
for (j = i - 1; j >= 0; --j) {
if (!InOrder (KFGRI.PRIArray [i], KFGRI.PRIArray [j])) {
PRI = KFGRI.PRIArray [i];
KFGRI.PRIArray [i] = KFGRI.PRIArray [j];
KFGRI.PRIArray [j] = PRI;
}
}
}
// Sort player list.
for (i = (KFGRI.PRIArray.Length - 1); i > 0; --i) {
for (j = i - 1; j >= 0; --j) {
if (!InOrder (KFGRI.PRIArray [i], KFGRI.PRIArray [j])) {
PRI = KFGRI.PRIArray [i];
KFGRI.PRIArray [i] = KFGRI.PRIArray [j];
KFGRI.PRIArray [j] = PRI;
}
}
}
// Check players.
NumPlayer = 0;
for (i = (KFGRI.PRIArray.Length - 1); i >= 0; --i) {
KFPRI = ExtPlayerReplicationInfo (KFGRI.PRIArray [i]);
if (KFPRI == None)
continue;
// Check players.
NumPlayer = 0;
for (i = (KFGRI.PRIArray.Length - 1); i >= 0; --i) {
KFPRI = ExtPlayerReplicationInfo (KFGRI.PRIArray [i]);
if (KFPRI == None)
continue;
if (KFPRI.bOnlySpectator) {
++NumSpec;
continue;
}
if (KFPRI.bOnlySpectator) {
++NumSpec;
continue;
}
if (KFPRI.PlayerHealth > 0 && KFPRI.PlayerHealthPercent > 0 && KFPRI.GetTeamNum () == 0)
++NumAlivePlayer;
++NumPlayer;
}
if (KFPRI.PlayerHealth > 0 && KFPRI.PlayerHealthPercent > 0 && KFPRI.GetTeamNum () == 0)
++NumAlivePlayer;
++NumPlayer;
}
//`Log ("DrawMenu (): PlayList.Length = " @PRIList.Length);
//`Log ("DrawMenu (): PlayList.Length = " @PRIList.Length);
// Header font info.
// Header font info.
DefFont = Owner.CurrentStyle.DefaultFontSize;
Canvas.Font = Owner.CurrentStyle.PickFont(DefFont, FontScalar);
Canvas.Font = Owner.CurrentStyle.PickFont(DefFont, FontScalar);
YL = Owner.CurrentStyle.DefaultHeight;
XPosCenter = (Canvas.ClipX * 0.5);
YL = Owner.CurrentStyle.DefaultHeight;
XPosCenter = (Canvas.ClipX * 0.5);
// ServerName
@ -282,7 +282,7 @@ function DrawPlayerEntry( Canvas C, int Index, float YOffset, float Height, floa
bFocus = bFocus || (bHasSelectedPlayer && RightClickPlayer==KFPRI);
DefFont = Owner.CurrentStyle.DefaultFontSize;
C.Font = Owner.CurrentStyle.PickFont(DefFont, FontScalar);
C.Font = Owner.CurrentStyle.PickFont(DefFont, FontScalar);
if (KFPRI == GetPlayer().PlayerReplicationInfo)
{

View File

@ -431,7 +431,7 @@ function bool DoJump( bool bUpdating )
// Nope.
function bool CanBeGrabbed(KFPawn GrabbingPawn, optional bool bIgnoreFalling, optional bool bAllowSameTeamGrab)
{
return false;
return false;
}
// UI stuff.

View File

@ -8,7 +8,7 @@ simulated event PostInitAnimTree(SkeletalMeshComponent SkelComp)
if( bCanHeadTrack )
{
IK_Look_Head = SkelControlLookAt(Mesh.FindSkelControl('HeadLook'));
//IK_Look_Spine = SkelControlLookAt(Mesh.FindSkelControl('SpineLook'));
//IK_Look_Spine = SkelControlLookAt(Mesh.FindSkelControl('SpineLook'));
}
}

View File

@ -82,7 +82,7 @@ simulated function SetCharacterAnimationInfo()
// Keep monster animations.
M = KFCharacterInfo_Monster'ZED_ARCH.ZED_Clot_UnDev_Archetype';
Mesh.AnimSets = M.AnimSets;
Mesh.AnimSets = M.AnimSets;
if ( Mesh.AnimTreeTemplate != M.AnimTreeTemplate )
Mesh.SetAnimTreeTemplate(M.AnimTreeTemplate);
if ( M.AnimArchetype != None )
@ -100,7 +100,7 @@ simulated function SetCharacterArch(KFCharacterInfoBase Info, optional bool bFor
{
local KFPlayerReplicationInfo KFPRI;
KFPRI = KFPlayerReplicationInfo( PlayerReplicationInfo );
KFPRI = KFPlayerReplicationInfo( PlayerReplicationInfo );
if (Info != CharacterArch)
{
// Set Family Info

View File

@ -545,30 +545,30 @@ function AddMutator(Mutator M)
function bool IsFromMod(Object O)
{
local string PackageName;
local string PackageName;
if( O == None )
return false;
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;
}
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;
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 int i, j;
local KFPlayerReplicationInfo DamagerKFPRI;
local float XP;
local KFPerk InstigatorPerk;
local bool cont;
local KFPlayerController KFPC;
local ExtPerkManager KillersPerk;
@ -583,64 +583,64 @@ function ScoreKill(Controller Killer, Controller Killed)
if( bKillMessages && Killer.PlayerReplicationInfo!=None )
BroadcastKillMessage(Killed.Pawn,Killer);
if( KFM.DamageHistory.Length > 0 )
{
for( i = 0; i<KFM.DamageHistory.Length; i++ )
{
DamagerKFPRI = KFPlayerReplicationInfo(KFM.DamageHistory[i].DamagerPRI);
if( DamagerKFPRI != None )
{
if( KFM.DamageHistory[i].DamagePerks.Length <= 0 )
{
continue;
}
{
for( i = 0; i<KFM.DamageHistory.Length; i++ )
{
DamagerKFPRI = KFPlayerReplicationInfo(KFM.DamageHistory[i].DamagerPRI);
if( DamagerKFPRI != None )
{
if( KFM.DamageHistory[i].DamagePerks.Length <= 0 )
{
continue;
}
cont = true;
for(j=0;j<KFM.DamageHistory[i].DamageCausers.Length;j++)
{
if(IsFromMod(KFM.DamageHistory[i].DamageCausers[j]) || IsFromMod(KFM.DamageHistory[i].DamageTypes[j]))
{
cont = false;
break;
}
}
if(cont && !IsFromMod(KFM))
continue;
cont = true;
for(j=0;j<KFM.DamageHistory[i].DamageCausers.Length;j++)
{
if(IsFromMod(KFM.DamageHistory[i].DamageCausers[j]) || IsFromMod(KFM.DamageHistory[i].DamageTypes[j]))
{
cont = false;
break;
}
}
if(cont && !IsFromMod(KFM))
continue;
// Distribute experience points
KFPC = KFPlayerController(DamagerKFPRI.Owner);
if( KFPC != none )
{
`log("ScoreKill:"@PathName(KFM));
// Distribute experience points
KFPC = KFPlayerController(DamagerKFPRI.Owner);
if( KFPC != none )
{
`log("ScoreKill:"@PathName(KFM));
XP = 0;
for(j=0;j<CustomZedXPArray.Length;j++)
{
if(KFM.Class == CustomZedXPArray[j].zedclass)
{
XP = CustomZedXPArray[j].XPValues[MyKFGI.GameDifficulty];
break;
}
}
if(XP == 0)
XP = KFM.static.GetXPValue(MyKFGI.GameDifficulty);
XP = 0;
for(j=0;j<CustomZedXPArray.Length;j++)
{
if(KFM.Class == CustomZedXPArray[j].zedclass)
{
XP = CustomZedXPArray[j].XPValues[MyKFGI.GameDifficulty];
break;
}
}
if(XP == 0)
XP = KFM.static.GetXPValue(MyKFGI.GameDifficulty);
InstigatorPerk = KFPC.GetPerk();
if( InstigatorPerk.ShouldGetAllTheXP() )
{
KFPC.OnPlayerXPAdded(XP, InstigatorPerk.Class);
continue;
}
InstigatorPerk = KFPC.GetPerk();
if( InstigatorPerk.ShouldGetAllTheXP() )
{
KFPC.OnPlayerXPAdded(XP, InstigatorPerk.Class);
continue;
}
XP /= KFM.DamageHistory[i].DamagePerks.Length;
XP /= KFM.DamageHistory[i].DamagePerks.Length;
for( j = 0; j < KFM.DamageHistory[i].DamagePerks.Length; j++ )
{
KFPC.OnPlayerXPAdded(FCeil(XP), KFM.DamageHistory[i].DamagePerks[j]);
}
}
}
}
}
for( j = 0; j < KFM.DamageHistory[i].DamagePerks.Length; j++ )
{
KFPC.OnPlayerXPAdded(FCeil(XP), KFM.DamageHistory[i].DamagePerks[j]);
}
}
}
}
}
}
if ( MyKFGI != None && MyKFGI.IsZedTimeActive() && KFPawn_Monster(Killed.Pawn) != None )
{