upload
This commit is contained in:
parent
90e235396c
commit
9a5bfed23e
@ -13,6 +13,8 @@ var name SoundCueName;
|
||||
var float LastProgress;
|
||||
var bool bLastMissionCritical;
|
||||
|
||||
var bool bPrevCompleted;
|
||||
|
||||
function InitializeHUD()
|
||||
{
|
||||
KFPC = KFPlayerController(GetPC());
|
||||
@ -77,10 +79,16 @@ function SetCompleted(bool bComplete)
|
||||
DataObject.SetString("completeString", bComplete ? Localize("Objectives", "SuccessString", "KFGame") : "");
|
||||
SetObject("completeStatus", DataObject);
|
||||
|
||||
if (!bComplete)
|
||||
{
|
||||
bPrevCompleted = false;
|
||||
}
|
||||
|
||||
//play sound queue
|
||||
if (KFPC != none && KFPC.MyGFxHUD != none && bComplete)
|
||||
if (KFPC != none && KFPC.MyGFxHUD != none && bComplete && bComplete != bPrevCompleted)
|
||||
{
|
||||
KFPC.MyGFxHUD.PlaySoundFromTheme(SoundCueName, SoundThemeName);
|
||||
bPrevCompleted = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -192,7 +200,7 @@ DefaultProperties
|
||||
{
|
||||
LastProgress=-0.0f
|
||||
UpdateRate=0.1f
|
||||
|
||||
bPrevCompleted=false
|
||||
SoundThemeName=UI
|
||||
SoundCueName=TraderTime_Countdown
|
||||
}
|
@ -177,17 +177,18 @@ function UpdatePlayerData()
|
||||
local GFxObject DataProvider,TempData, PerkIconObject;
|
||||
local int i;
|
||||
local KFPlayerReplicationinfo KFPRI;
|
||||
local KFGameReplicationInfo KFGRI;
|
||||
local KFPlayerController KFPC;
|
||||
local int PlayerIndex;
|
||||
|
||||
KFPC = KFPlayerController(GetPC());
|
||||
|
||||
KFGRI = KFGameReplicationInfo(GetPC().Worldinfo.GRI);
|
||||
PlayerIndex=0;
|
||||
DataProvider = CreateArray();
|
||||
for(i = 0 ; i < CurrentPlayerList.length; i ++)
|
||||
{
|
||||
KFPRI = CurrentPlayerList[i];
|
||||
if(KFPRI.GetTeamNum() != 255 && KFPRI.bHasSpawnedIn)
|
||||
if(KFPRI.GetTeamNum() != 255 && (KFPRI.bHasSpawnedIn || (KFGRI != none && KFGRI.bVersusGame)))
|
||||
{
|
||||
TempData = CreateObject("Object");
|
||||
|
||||
|
@ -52,7 +52,7 @@ function SetMapOptions()
|
||||
if(KFGRI != none && KFGRI.VoteCollector != none)
|
||||
{
|
||||
ServerMapList = KFGRI.VoteCollector.MapList;
|
||||
IsBrokenTrader = class'KFGameEngine'.static.GetWeeklyEventIndex() == 11;
|
||||
IsBrokenTrader = KFGRI.IsA('KFGameReplicationInfo_WeeklySurvival') && class'KFGameEngine'.static.GetWeeklyEventIndexMod() == 11;
|
||||
|
||||
//gfx
|
||||
MapList = CreateArray();
|
||||
|
@ -270,7 +270,7 @@ function FilterWeeklyMaps(out array<string> List)
|
||||
}
|
||||
|
||||
// Scavenger index = 11
|
||||
if (class'KFGameEngine'.static.GetWeeklyEventIndex() == 11)
|
||||
if (class'KFGameEngine'.static.GetWeeklyEventIndexMod() == 11)
|
||||
{
|
||||
List.RemoveItem("KF-Biolapse");
|
||||
List.RemoveItem("KF-Nightmare");
|
||||
|
@ -470,6 +470,7 @@ function ClearOnlineDelegates()
|
||||
/** Static because these are both called on default object */
|
||||
native static function int GetSeasonalEventID();
|
||||
native static function int GetWeeklyEventIndex();
|
||||
native static function int GetWeeklyEventIndexMod();
|
||||
native static function bool IsSalesEventActive();
|
||||
native static function bool IsSalesEventChecked();
|
||||
/***********************************************************************************
|
||||
|
@ -436,6 +436,11 @@ enum EMonsterProperties
|
||||
|
||||
var int SpawnedMonsterProperties[EMonsterProperties];
|
||||
|
||||
/************************************************************************************
|
||||
* @name Force to sort maps by name
|
||||
***********************************************************************************/
|
||||
var bool bForceMapSorting;
|
||||
|
||||
/************************************************************************************
|
||||
* @name Native
|
||||
***********************************************************************************/
|
||||
@ -2890,6 +2895,21 @@ function string GetNextMap()
|
||||
for (i = 0; i < GameMapCycles[ActiveMapCycle].Maps.length; ++i)
|
||||
{
|
||||
MapCycleIndex = MapCycleIndex + 1 < GameMapCycles[ActiveMapCycle].Maps.length ? (MapCycleIndex + 1) : 0;
|
||||
|
||||
if (class'KFGameEngine'.static.GetWeeklyEventIndexMod() == 11)
|
||||
{
|
||||
if (MyKFGRI.IsA('KFGameReplicationInfo_WeeklySurvival') &&
|
||||
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-Biolapse" ||
|
||||
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-Nightmare" ||
|
||||
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-PowerCore_Holdout" ||
|
||||
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-TheDescent" ||
|
||||
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-KrampusLair")
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( IsMapAllowedInCycle(GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex]) )
|
||||
{
|
||||
SaveConfig();
|
||||
@ -3875,4 +3895,6 @@ defaultproperties
|
||||
|
||||
DebugForcedOutbreakIdx=INDEX_NONE
|
||||
DebugForceSpecialWaveZedType=INDEX_NONE
|
||||
|
||||
bForceMapSorting=True
|
||||
}
|
||||
|
@ -802,7 +802,7 @@ exec reliable client function ShowPreGameServerWelcomeScreen()
|
||||
|
||||
}
|
||||
|
||||
simulated function GetKFPRIArray(out array<KFPlayerReplicationInfo> KFPRIArray, optional bool bGetSpectators, optional bool bGetZedPlayers)
|
||||
simulated function GetKFPRIArray(out array<KFPlayerReplicationInfo> KFPRIArray, optional bool bGetSpectators, optional bool bGetZedPlayers = true)
|
||||
{
|
||||
local int i;
|
||||
local int Num;
|
||||
|
@ -973,7 +973,7 @@ static function PrepareExplosive( Pawn ProjOwner, KFProjectile Proj, optional fl
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
ParryDuration=6.f //10.f
|
||||
ParryDuration=8.f //6.f //10.f
|
||||
ParrySpeed=0.05
|
||||
FurySpeed=0.05
|
||||
NinjaSprintModifer=0.25
|
||||
@ -982,7 +982,7 @@ DefaultProperties
|
||||
SpeedDamageModifier=0.2
|
||||
SmashHeadDamageModifier=0.25
|
||||
VampireAttackSpeedModifier=0.2f
|
||||
ParryDamageReduction=0.25f //0.4f //0.75
|
||||
ParryDamageReduction=0.3f //0.25f //0.4f //0.75
|
||||
RageRadius=1000 //300
|
||||
RageFleeDuration=5.f //3
|
||||
RageFleeDistance=2500 //5000
|
||||
|
@ -465,7 +465,7 @@ function ServerStartVoteSkipTrader(PlayerReplicationInfo PRI)
|
||||
|
||||
CurrentVoteTime = min(VoteTime, TraderTimeRemaining - SkipTraderVoteLimit);
|
||||
|
||||
GetKFPRIArray(PRIs);
|
||||
GetKFPRIArray(PRIs, , false);
|
||||
for (i = 0; i < PRIs.Length; i++)
|
||||
{
|
||||
PRIs[i].ShowSkipTraderVote(PRI, CurrentVoteTime, !(PRIs[i] == PRI) && PRI.GetTeamNum() != 255);
|
||||
@ -491,7 +491,7 @@ reliable server function UpdateTimer()
|
||||
local int i;
|
||||
|
||||
CurrentVoteTime -= 1;
|
||||
GetKFPRIArray(PRIs);
|
||||
GetKFPRIArray(PRIs, , false);
|
||||
for (i = 0; i < PRIs.Length; i++)
|
||||
{
|
||||
PRIs[i].UpdateSkipTraderTime(CurrentVoteTime);
|
||||
@ -586,7 +586,7 @@ function bool ShouldConcludeSkipTraderVote()
|
||||
local array<KFPlayerReplicationInfo> PRIs;
|
||||
local int NumPRIs;
|
||||
|
||||
GetKFPRIArray(PRIs);
|
||||
GetKFPRIArray(PRIs, , false);
|
||||
NumPRIs = PRIs.Length;
|
||||
|
||||
if( YesVotes + NoVotes >= NumPRIs || NoVotes > 0 )
|
||||
@ -607,7 +607,7 @@ reliable server function ConcludeVoteSkipTrader()
|
||||
|
||||
if(bIsSkipTraderVoteInProgress)
|
||||
{
|
||||
GetKFPRIArray(PRIs);
|
||||
GetKFPRIArray(PRIs, , false);
|
||||
|
||||
for (i = 0; i < PRIs.Length; i++)
|
||||
{
|
||||
@ -680,7 +680,7 @@ function ResetSkipTraderBeforeWaveStarts()
|
||||
local array<KFPlayerReplicationInfo> PRIs;
|
||||
local int i;
|
||||
|
||||
GetKFPRIArray(PRIs);
|
||||
GetKFPRIArray(PRIs, , false);
|
||||
for (i = 0; i < PRIs.Length; i++)
|
||||
{
|
||||
PRIs[i].bAlreadyStartedASkipTraderVote = false;
|
||||
|
@ -24,9 +24,12 @@ var localized array<string> DescriptionStrings;
|
||||
//List of any modifer information we need specific to the mode
|
||||
var localized array<string> ModifierDescriptions;
|
||||
|
||||
|
||||
|
||||
cpptext
|
||||
{
|
||||
/** Num of Weekly events available */
|
||||
static const int NumWeeklyEvents = 12;
|
||||
}
|
||||
DefaultProperties
|
||||
{
|
||||
|
||||
|
||||
}
|
@ -16,7 +16,7 @@ var() ParticleSystem LoopingParticleEffectWall;
|
||||
DefaultProperties
|
||||
{
|
||||
Interval=0.5
|
||||
MaxTime=10
|
||||
MaxTime=7 //10
|
||||
|
||||
bDoFullDamage=true
|
||||
|
||||
|
@ -475,7 +475,7 @@ defaultproperties
|
||||
TraderWeaponList=KFGFxObject_TraderItems'GP_Trader_ARCH.BrokenTraderWeeklyTraderList',
|
||||
PickupResetTime=PRS_Wave,
|
||||
bDisableTraders=false,
|
||||
DroppedItemLifespan=10.0f, // 300 default
|
||||
DroppedItemLifespan=20.0f, //10.0f, // 300 default
|
||||
DoshOnKillGlobalModifier=0.2,
|
||||
//Pickup Notes for when you're modifying:
|
||||
// NumPickups = Actors * OverridePickupModifer * WavePickupModifier
|
||||
|
@ -65,8 +65,6 @@ simulated event PostBeginPlay()
|
||||
{
|
||||
SetTimer(FuseTime, false, 'Timer_Detonate');
|
||||
}
|
||||
|
||||
AdjustCanDisintigrate();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -181,14 +179,6 @@ simulated function Disintegrate( rotator InDisintegrateEffectRotation )
|
||||
super.Disintegrate(InDisintegrateEffectRotation);
|
||||
}
|
||||
|
||||
// for nukes && concussive force
|
||||
simulated protected function PrepareExplosionTemplate()
|
||||
{
|
||||
class'KFPerk_Demolitionist'.static.PrepareExplosive(Instigator, self);
|
||||
|
||||
super.PrepareExplosionTemplate();
|
||||
}
|
||||
|
||||
simulated function SyncOriginalLocation()
|
||||
{
|
||||
// IMPORTANT NOTE: We aren't actually syncing to the original location (or calling the super).
|
||||
|
@ -419,7 +419,7 @@ simulated state AltReloading extends Reloading
|
||||
/** Make sure we can inturrupt secondary reload with anything. */
|
||||
simulated function bool CanOverrideMagReload(byte FireModeNum)
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/** Returns animation to play based on reload type and status */
|
||||
@ -553,6 +553,23 @@ simulated function ModifyRecoil( out float CurrentRecoilModifier )
|
||||
super.ModifyRecoil( CurrentRecoilModifier );
|
||||
}
|
||||
|
||||
/** Spawn projectile is called once for each shot pellet fired */
|
||||
simulated function KFProjectile SpawnAllProjectiles(class<KFProjectile> KFProjClass, vector RealStartLoc, vector AimDir)
|
||||
{
|
||||
local KFPerk InstigatorPerk;
|
||||
|
||||
if (CurrentFireMode == ALTFIRE_FIREMODE)
|
||||
{
|
||||
InstigatorPerk = GetPerk();
|
||||
if (InstigatorPerk != none)
|
||||
{
|
||||
Spread[CurrentFireMode] = default.Spread[CurrentFireMode] * InstigatorPerk.GetTightChokeModifier();
|
||||
}
|
||||
}
|
||||
|
||||
return super.SpawnAllProjectiles(KFProjClass, RealStartLoc, AimDir);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
bCanRefillSecondaryAmmo = true;
|
||||
@ -592,7 +609,7 @@ defaultproperties
|
||||
IronSightPosition=(X=0,Y=0,Z=0)
|
||||
|
||||
// Ammo
|
||||
MagazineCapacity[0]=24
|
||||
MagazineCapacity[0]=30 //24
|
||||
SpareAmmoCapacity[0]=240
|
||||
InitialSpareMags[0]=3
|
||||
bCanBeReloaded=true
|
||||
@ -632,6 +649,7 @@ defaultproperties
|
||||
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_InstantHit
|
||||
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_AssaultRifle'
|
||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_FAMAS_Rifle'
|
||||
PenetrationPower(DEFAULT_FIREMODE)=1.0
|
||||
FireInterval(DEFAULT_FIREMODE)=+0.0667 // 900 RPM
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=35.0
|
||||
Spread(DEFAULT_FIREMODE)=0.005 //0.0085
|
||||
@ -649,11 +667,11 @@ defaultproperties
|
||||
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_Projectile
|
||||
WeaponProjectiles(ALTFIRE_FIREMODE)=class'KFProj_Bullet_Pellet'
|
||||
InstantHitDamageTypes(ALTFIRE_FIREMODE)=class'KFDT_Ballistic_FAMAS_Shotgun'
|
||||
InstantHitDamage(ALTFIRE_FIREMODE)=25.0
|
||||
PenetrationPower(DEFAULT_FIREMODE)=2.0
|
||||
FireInterval(ALTFIRE_FIREMODE)=+1.2 //0.5 //0.7 //85 RPM
|
||||
NumPellets(ALTFIRE_FIREMODE)=6
|
||||
Spread(ALTFIRE_FIREMODE)=0.12 //0.07
|
||||
InstantHitDamage(ALTFIRE_FIREMODE)=30.0 //25.0
|
||||
PenetrationPower(ALTFIRE_FIREMODE)=2.0
|
||||
FireInterval(ALTFIRE_FIREMODE)=+1.2 //50 RPM
|
||||
NumPellets(ALTFIRE_FIREMODE)=7 //6
|
||||
Spread(ALTFIRE_FIREMODE)=0.10 //0.12
|
||||
SecondaryAmmoTexture=Texture2D'ui_firemodes_tex.UI_FireModeSelect_ShotgunSingle'
|
||||
|
||||
// BASH_FIREMODE
|
||||
|
@ -80,7 +80,7 @@ var protected transient float OverlayDelta;
|
||||
|
||||
var WeaponFireSndInfo ShieldActivateSound;
|
||||
var WeaponFireSndInfo ShieldDeactivateSound;
|
||||
var (Shield) AkBaseSoundObject ShieldEndSound;
|
||||
var WeaponFireSndInfo ShieldEndSound;
|
||||
|
||||
var repnotify byte ShieldAmmo;
|
||||
|
||||
@ -170,7 +170,7 @@ simulated function CustomFire()
|
||||
|
||||
simulated function ActivateShield()
|
||||
{
|
||||
PlaySoundBase(ShieldActivateSound.FirstPersonCue);
|
||||
WeaponPlayFireSound(ShieldActivateSound.DefaultCue, ShieldActivateSound.FirstPersonCue);
|
||||
bActivatingShield = true;
|
||||
bDeactivatingShield = false;
|
||||
bNetDirty = true;
|
||||
@ -180,7 +180,7 @@ simulated function ActivateShield()
|
||||
|
||||
simulated function DeactivateShield()
|
||||
{
|
||||
PlaySoundBase(ShieldDeactivateSound.FirstPersonCue);
|
||||
WeaponPlayFireSound(ShieldDeactivateSound.DefaultCue, ShieldDeactivateSound.FirstPersonCue);
|
||||
bDeactivatingShield = true;
|
||||
bActivatingShield = false;
|
||||
bCanRechargeShield = false;
|
||||
@ -304,7 +304,7 @@ simulated function OnShieldDepleted()
|
||||
ShieldAmmo = 0;
|
||||
bNetDirty = true;
|
||||
NotifyShieldActive(false);
|
||||
PlaySoundBase(ShieldEndSound);
|
||||
WeaponPlayFireSound(ShieldEndSound.DefaultCue, ShieldEndSound.FirstPersonCue);
|
||||
SetTimer(CooldownAfterShieldDepleted, false, nameof(ShieldRepletedTimerCompleted));
|
||||
}
|
||||
|
||||
@ -325,7 +325,7 @@ simulated function OnShieldDestroyed()
|
||||
ShieldAmmo = 0;
|
||||
bNetDirty = true;
|
||||
NotifyShieldActive(false);
|
||||
PlaySoundBase(ShieldEndSound);
|
||||
WeaponPlayFireSound(ShieldEndSound.DefaultCue, ShieldEndSound.FirstPersonCue);
|
||||
SetTimer(CooldownAfterShieldDestroyed, false, nameof(ShieldDestroyedTimerCompleted));
|
||||
}
|
||||
|
||||
@ -519,6 +519,8 @@ simulated state WeaponEquipping
|
||||
{
|
||||
simulated function BeginState(Name PreviousStateName)
|
||||
{
|
||||
UpdateShieldFXValue(0.0f);
|
||||
FXDelta = 0.0f;
|
||||
bShieldActionAvailable = true;
|
||||
super.BeginState(PreviousStateName);
|
||||
}
|
||||
@ -689,9 +691,9 @@ defaultproperties
|
||||
CooldownAfterShieldDepleted=3.0f //3.0f
|
||||
CooldownAfterShieldDestroyed=3.0f //5.0f
|
||||
|
||||
ShieldActivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_On', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_On')
|
||||
ShieldDeactivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Off', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Off')
|
||||
ShieldEndSound=AKEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_End';
|
||||
ShieldActivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_3P_Shield_On', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_On')
|
||||
ShieldDeactivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_3P_Shield_Off', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Off')
|
||||
ShieldEndSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_3P_Shield_End', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_End')
|
||||
|
||||
BlockSound=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Impact'
|
||||
BlockParticleSystem=ParticleSystem'FX_Impacts_EMIT.FX_Block_melee_01'
|
||||
|
@ -416,7 +416,7 @@ defaultproperties
|
||||
|
||||
// Shotgun Ammo
|
||||
MagazineCapacity[0]=4 //3
|
||||
SpareAmmoCapacity[0]=36 //28
|
||||
SpareAmmoCapacity[0]=40 //36 //28
|
||||
InitialSpareMags[0]=2
|
||||
AmmoPickupScale[0]=1.5 //2.0
|
||||
|
||||
@ -438,12 +438,13 @@ defaultproperties
|
||||
WeaponProjectiles(CUSTOM_FIREMODE)=class'KFProj_Bullet_BlastBrawlers'
|
||||
FireInterval(CUSTOM_FIREMODE)=0.1f
|
||||
InstantHitDamageTypes(CUSTOM_FIREMODE)=class'KFDT_Ballistic_BlastBrawlersShotgun'
|
||||
InstantHitDamage(CUSTOM_FIREMODE)=36.0 //30.0
|
||||
InstantHitDamage(CUSTOM_FIREMODE)=39.0 //36.0 //30.0
|
||||
AmmoCost(CUSTOM_FIREMODE)=0
|
||||
NumPellets(CUSTOM_FIREMODE)=5
|
||||
Spread(CUSTOM_FIREMODE)=0.1 //0.15
|
||||
Spread(CUSTOM_FIREMODE)=0.12 //0.1 //0.15
|
||||
WeaponFireSnd(CUSTOM_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_HRG_BlastBrawlers.Play_WEP_HRG_BlastBrawlers_Shoot_3P', FirstPersonCue=AkEvent'WW_WEP_HRG_BlastBrawlers.Play_WEP_HRG_BlastBrawlers_Shoot_1P')
|
||||
InstantHitMomentum(CUSTOM_FIREMODE)=1.0
|
||||
PenetrationPower(CUSTOM_FIREMODE)=2.0
|
||||
PenetrationDamageReductionCurve(CUSTOM_FIREMODE)=(Points=((InVal=0.f,OutVal=0.f),(InVal=1.f, OutVal=1.f)))
|
||||
|
||||
FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_ShotgunSingle'
|
||||
@ -467,7 +468,7 @@ defaultproperties
|
||||
|
||||
ParryStrength=5
|
||||
ParryDamageMitigationPercent=0.40
|
||||
BlockDamageMitigation=0.40
|
||||
BlockDamageMitigation=0.50 //0.40
|
||||
|
||||
bWaitingForSecondShot = false
|
||||
NumAttacks = 0
|
||||
|
@ -252,7 +252,7 @@ defaultproperties
|
||||
|
||||
// Zooming/Position
|
||||
PlayerViewOffset=(X=11.0,Y=8,Z=-2)
|
||||
IronSightPosition=(X=10,Y=0,Z=0)
|
||||
IronSightPosition=(X=10,Y=-0.15,Z=0.7)
|
||||
|
||||
// AI warning system
|
||||
bWarnAIWhenAiming=true
|
||||
|
Loading…
Reference in New Issue
Block a user