Update 003
- Aiming down sights now reduces recoil by 50% - Reshuffled demo skills - Weapon for commando M4 203: increased amount of primary ammo from 120 to 180, reduced amount of grenade ammo from 12 to 8 - Weapon for Enforcer AA12 Shotgun: spread reduced from 3000 to 1125 - Weapon for Enforcer HSG-1 Shotgun: spread reduced from 1250 to 750 - Crawlers can no longer jump while headless - Husks should no longer shoot while falling - Sirens should no longer lift players from the ground with their screaming - Shiver's bleed out duration reduced from 5 to 3 seconds - Jasons should no longer "rotate" because of fleshpounds
This commit is contained in:
parent
0ee6e2e0ca
commit
0b12940297
@ -81,15 +81,15 @@ static function string GetCustomLevelInfo(byte Level){
|
|||||||
defaultproperties
|
defaultproperties
|
||||||
{
|
{
|
||||||
bNewTypePerk=True
|
bNewTypePerk=True
|
||||||
SkillGroupA(0)=Class'NicePack.NiceSkillDemoOnperk'
|
SkillGroupA(0)=Class'NicePack.NiceSkillDemoConcussion'
|
||||||
SkillGroupA(1)=Class'NicePack.NiceSkillDemoDirectApproach'
|
SkillGroupA(1)=Class'NicePack.NiceSkillDemoOnperk'
|
||||||
SkillGroupA(2)=Class'NicePack.NiceSkillDemoConcussion'
|
SkillGroupA(2)=Class'NicePack.NiceSkillDemoDirectApproach'
|
||||||
SkillGroupA(3)=Class'NicePack.NiceSkillDemoAPShot'
|
SkillGroupA(3)=Class'NicePack.NiceSkillDemoReactiveArmor'
|
||||||
SkillGroupA(4)=Class'NicePack.NiceSkillDemoZEDDuckAndCover'
|
SkillGroupA(4)=Class'NicePack.NiceSkillDemoZEDDuckAndCover'
|
||||||
SkillGroupB(0)=Class'NicePack.NiceSkillDemoOffperk'
|
SkillGroupB(0)=Class'NicePack.NiceSkillDemoOffperk'
|
||||||
SkillGroupB(1)=Class'NicePack.NiceSkillDemoVolatile'
|
SkillGroupB(1)=Class'NicePack.NiceSkillDemoManiac'
|
||||||
SkillGroupB(2)=Class'NicePack.NiceSkillDemoReactiveArmor'
|
SkillGroupB(2)=Class'NicePack.NiceSkillDemoAPShot'
|
||||||
SkillGroupB(3)=Class'NicePack.NiceSkillDemoManiac'
|
SkillGroupB(3)=Class'NicePack.NiceSkillDemoVolatile'
|
||||||
SkillGroupB(4)=Class'NicePack.NiceSkillDemoZEDFullBlast'
|
SkillGroupB(4)=Class'NicePack.NiceSkillDemoZEDFullBlast'
|
||||||
progressArray0(0)=100
|
progressArray0(0)=100
|
||||||
progressArray0(1)=1000
|
progressArray0(1)=1000
|
||||||
|
@ -458,6 +458,7 @@ simulated function HandleRecoil(float Rec){
|
|||||||
local NiceHumanPawn nicePawn;
|
local NiceHumanPawn nicePawn;
|
||||||
local vector AdjustedVelocity;
|
local vector AdjustedVelocity;
|
||||||
local float AdjustedSpeed;
|
local float AdjustedSpeed;
|
||||||
|
local KFWeapon kfWeap;
|
||||||
if(Instigator != none){
|
if(Instigator != none){
|
||||||
nicePlayer = NicePlayerController(Instigator.Controller);
|
nicePlayer = NicePlayerController(Instigator.Controller);
|
||||||
nicePawn = NiceHumanPawn(Instigator);
|
nicePawn = NiceHumanPawn(Instigator);
|
||||||
@ -468,6 +469,10 @@ simulated function HandleRecoil(float Rec){
|
|||||||
Rec = 0.0;
|
Rec = 0.0;
|
||||||
bResetRecoil = false;
|
bResetRecoil = false;
|
||||||
}
|
}
|
||||||
|
kfWeap= KFWeapon(Weapon);
|
||||||
|
if (kfWeap.bAimingRifle) {
|
||||||
|
Rec *= 0.5;
|
||||||
|
}
|
||||||
if(nicePawn.stationaryTime > 0.0 && class'NiceVeterancyTypes'.static.hasSkill(nicePlayer, class'NiceSkillHeavyStablePosition')){
|
if(nicePawn.stationaryTime > 0.0 && class'NiceVeterancyTypes'.static.hasSkill(nicePlayer, class'NiceSkillHeavyStablePosition')){
|
||||||
stationarySeconds = Ceil(2 * nicePawn.stationaryTime) - 1;
|
stationarySeconds = Ceil(2 * nicePawn.stationaryTime) - 1;
|
||||||
Rec *= FMax(0.0, 1.0 - (stationarySeconds * class'NiceSkillHeavyStablePosition'.default.recoilDampeningBonus));
|
Rec *= FMax(0.0, 1.0 - (stationarySeconds * class'NiceSkillHeavyStablePosition'.default.recoilDampeningBonus));
|
||||||
|
@ -1,441 +0,0 @@
|
|||||||
class NiceScopedWeapon extends NiceWeapon
|
|
||||||
abstract;
|
|
||||||
#exec OBJ LOAD FILE=ScopeShaders.utx
|
|
||||||
#exec OBJ LOAD FILE=..\Textures\NicePackT.utx
|
|
||||||
#exec OBJ LOAD FILE=ScrnWeaponPack_T.utx
|
|
||||||
#exec OBJ LOAD FILE=ScrnWeaponPack_A.ukx
|
|
||||||
var() Material ZoomMat;
|
|
||||||
var() Sound ZoomSound;
|
|
||||||
var() int lenseMaterialID; // used since material id's seem to change alot
|
|
||||||
var() float scopePortalFOVHigh; // The FOV to zoom the scope portal by.
|
|
||||||
var() float scopePortalFOV; // The FOV to zoom the scope portal by.
|
|
||||||
var() vector XoffsetScoped;
|
|
||||||
var() vector XoffsetHighDetail;
|
|
||||||
var() int tileSize;
|
|
||||||
// 3d Scope vars
|
|
||||||
var ScriptedTexture ScopeScriptedTexture; // Scripted texture for 3d scopes
|
|
||||||
var Shader ScopeScriptedShader; // The shader that combines the scripted texture with the sight overlay
|
|
||||||
var Material ScriptedTextureFallback; // The texture to render if the users system doesn't support shaders
|
|
||||||
// new scope vars
|
|
||||||
var Combiner ScriptedScopeCombiner;
|
|
||||||
var texture TexturedScopeTexture;
|
|
||||||
var bool bInitializedScope; // Set to true when the scope has been initialized
|
|
||||||
var string ZoomMatRef;
|
|
||||||
var string ScriptedTextureFallbackRef;
|
|
||||||
var texture CrosshairTex;
|
|
||||||
var string CrosshairTexRef;
|
|
||||||
static function PreloadAssets(Inventory Inv, optional bool bSkipRefCount){
|
|
||||||
local NiceScopedWeapon W;
|
|
||||||
super.PreloadAssets(Inv, bSkipRefCount);
|
|
||||||
if(default.ZoomMat == none && default.ZoomMatRef != ""){
|
|
||||||
// Try to load as various types of materials
|
|
||||||
default.ZoomMat = FinalBlend(DynamicLoadObject(default.ZoomMatRef, class'FinalBlend', true));
|
|
||||||
if(default.ZoomMat == none)
|
|
||||||
default.ZoomMat = Combiner(DynamicLoadObject(default.ZoomMatRef, class'Combiner', true));
|
|
||||||
if(default.ZoomMat == none)
|
|
||||||
default.ZoomMat = Shader(DynamicLoadObject(default.ZoomMatRef, class'Shader', true));
|
|
||||||
if(default.ZoomMat == none)
|
|
||||||
default.ZoomMat = Texture(DynamicLoadObject(default.ZoomMatRef, class'Texture', true));
|
|
||||||
if(default.ZoomMat == none)
|
|
||||||
default.ZoomMat = Material(DynamicLoadObject(default.ZoomMatRef, class'Material'));
|
|
||||||
}
|
|
||||||
if(default.ScriptedTextureFallback == none && default.ScriptedTextureFallbackRef != "")
|
|
||||||
default.ScriptedTextureFallback = texture(DynamicLoadObject(default.ScriptedTextureFallbackRef, class'texture'));
|
|
||||||
if(default.CrosshairTex == none && default.CrosshairTexRef != "")
|
|
||||||
default.CrosshairTex = Texture(DynamicLoadObject(default.CrosshairTexRef, class'texture'));
|
|
||||||
W = NiceScopedWeapon(Inv);
|
|
||||||
if(W != none){
|
|
||||||
W.ZoomMat = default.ZoomMat;
|
|
||||||
W.ScriptedTextureFallback = default.ScriptedTextureFallback;
|
|
||||||
W.CrosshairTex = default.CrosshairTex;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static function bool UnloadAssets(){
|
|
||||||
if(super.UnloadAssets()){
|
|
||||||
default.ZoomMat = none;
|
|
||||||
default.ScriptedTextureFallback = none;
|
|
||||||
default.CrosshairTex = none;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
simulated function bool ShouldDrawPortal()
|
|
||||||
{
|
|
||||||
if(bAimingRifle)
|
|
||||||
return true;
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
simulated function PostBeginPlay()
|
|
||||||
{
|
|
||||||
super.PostBeginPlay();
|
|
||||||
// Get new scope detail value from KFWeapon
|
|
||||||
KFScopeDetail = class'KFMod.KFWeapon'.default.KFScopeDetail;
|
|
||||||
UpdateScopeMode();
|
|
||||||
}
|
|
||||||
// Handles initializing and swithing between different scope modes
|
|
||||||
simulated function UpdateScopeMode()
|
|
||||||
{
|
|
||||||
if (Level.NetMode != NM_DedicatedServer && Instigator != none && Instigator.IsLocallyControlled() && Instigator.IsHumanControlled()){
|
|
||||||
if(KFScopeDetail == KF_ModelScope){
|
|
||||||
scopePortalFOV = default.scopePortalFOV;
|
|
||||||
ZoomedDisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV);
|
|
||||||
|
|
||||||
if (bUsingSights || bAimingRifle)
|
|
||||||
PlayerViewOffset = XoffsetScoped;
|
|
||||||
|
|
||||||
if(ScopeScriptedTexture == none)
|
|
||||||
ScopeScriptedTexture = ScriptedTexture(Level.ObjectPool.AllocateObject(class'ScriptedTexture'));
|
|
||||||
|
|
||||||
ScopeScriptedTexture.FallBackMaterial = ScriptedTextureFallback;
|
|
||||||
ScopeScriptedTexture.SetSize(512,512);
|
|
||||||
ScopeScriptedTexture.Client = Self;
|
|
||||||
|
|
||||||
if(ScriptedScopeCombiner == none){
|
|
||||||
ScriptedScopeCombiner = Combiner(Level.ObjectPool.AllocateObject(class'Combiner'));
|
|
||||||
ScriptedScopeCombiner.Material1 = CrosshairTex;
|
|
||||||
ScriptedScopeCombiner.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader';
|
|
||||||
ScriptedScopeCombiner.CombineOperation = CO_Multiply;
|
|
||||||
ScriptedScopeCombiner.AlphaOperation = AO_Use_Mask;
|
|
||||||
ScriptedScopeCombiner.Material2 = ScopeScriptedTexture;
|
|
||||||
}
|
|
||||||
if(ScopeScriptedShader == none){
|
|
||||||
ScopeScriptedShader = Shader(Level.ObjectPool.AllocateObject(class'Shader'));
|
|
||||||
ScopeScriptedShader.Diffuse = ScriptedScopeCombiner;
|
|
||||||
ScopeScriptedShader.SelfIllumination = ScriptedScopeCombiner;
|
|
||||||
ScopeScriptedShader.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader';
|
|
||||||
}
|
|
||||||
|
|
||||||
bInitializedScope = true;
|
|
||||||
}
|
|
||||||
else if( KFScopeDetail == KF_ModelScopeHigh )
|
|
||||||
{
|
|
||||||
scopePortalFOV = scopePortalFOVHigh;
|
|
||||||
ZoomedDisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOVHigh);
|
|
||||||
if(bUsingSights || bAimingRifle)
|
|
||||||
PlayerViewOffset = XoffsetHighDetail;
|
|
||||||
|
|
||||||
if(ScopeScriptedTexture == none)
|
|
||||||
ScopeScriptedTexture = ScriptedTexture(Level.ObjectPool.AllocateObject(class'ScriptedTexture'));
|
|
||||||
ScopeScriptedTexture.FallBackMaterial = ScriptedTextureFallback;
|
|
||||||
ScopeScriptedTexture.SetSize(1024,1024);
|
|
||||||
ScopeScriptedTexture.Client = Self;
|
|
||||||
|
|
||||||
if(ScriptedScopeCombiner == none){
|
|
||||||
ScriptedScopeCombiner = Combiner(Level.ObjectPool.AllocateObject(class'Combiner'));
|
|
||||||
ScriptedScopeCombiner.Material1 = CrosshairTex;
|
|
||||||
ScriptedScopeCombiner.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader';
|
|
||||||
ScriptedScopeCombiner.CombineOperation = CO_Multiply;
|
|
||||||
ScriptedScopeCombiner.AlphaOperation = AO_Use_Mask;
|
|
||||||
ScriptedScopeCombiner.Material2 = ScopeScriptedTexture;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(ScopeScriptedShader == none){
|
|
||||||
ScopeScriptedShader = Shader(Level.ObjectPool.AllocateObject(class'Shader'));
|
|
||||||
ScopeScriptedShader.Diffuse = ScriptedScopeCombiner;
|
|
||||||
ScopeScriptedShader.SelfIllumination = ScriptedScopeCombiner;
|
|
||||||
ScopeScriptedShader.FallbackMaterial = Shader'ScopeShaders.Zoomblur.LensShader';
|
|
||||||
}
|
|
||||||
|
|
||||||
bInitializedScope = true;
|
|
||||||
}
|
|
||||||
else if (KFScopeDetail == KF_TextureScope){
|
|
||||||
ZoomedDisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV);
|
|
||||||
PlayerViewOffset.X = default.PlayerViewOffset.X;
|
|
||||||
|
|
||||||
bInitializedScope = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
simulated event RenderTexture(ScriptedTexture Tex)
|
|
||||||
{
|
|
||||||
local rotator RollMod;
|
|
||||||
RollMod = Instigator.GetViewRotation();
|
|
||||||
if(Owner != none && Instigator != none && Tex != none && Tex.Client != none)
|
|
||||||
Tex.DrawPortal(0,0,Tex.USize,Tex.VSize,Owner,(Instigator.Location + Instigator.EyePosition()), RollMod, scopePortalFOV );
|
|
||||||
}
|
|
||||||
simulated function SetZoomBlendColor(Canvas c)
|
|
||||||
{
|
|
||||||
local Byte val;
|
|
||||||
local Color clr;
|
|
||||||
local Color fog;
|
|
||||||
clr.R = 255;
|
|
||||||
clr.G = 255;
|
|
||||||
clr.B = 255;
|
|
||||||
clr.A = 255;
|
|
||||||
if(Instigator.Region.Zone.bDistanceFog){
|
|
||||||
fog = Instigator.Region.Zone.DistanceFogColor;
|
|
||||||
val = 0;
|
|
||||||
val = Max(val, fog.R);
|
|
||||||
val = Max(val, fog.G);
|
|
||||||
val = Max(val, fog.B);
|
|
||||||
if(val > 128){
|
|
||||||
val -= 128;
|
|
||||||
clr.R -= val;
|
|
||||||
clr.G -= val;
|
|
||||||
clr.B -= val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
c.DrawColor = clr;
|
|
||||||
}
|
|
||||||
//Handles all the functionality for zooming in including
|
|
||||||
// setting the parameters for the weapon, pawn, and playercontroller
|
|
||||||
simulated function ZoomIn(bool bAnimateTransition)
|
|
||||||
{
|
|
||||||
default.ZoomTime = default.recordedZoomTime;
|
|
||||||
PlayerIronSightFOV = default.PlayerIronSightFOV;
|
|
||||||
scopePortalFOVHigh = default.scopePortalFOVHigh;
|
|
||||||
scopePortalFOV = default.scopePortalFOV;
|
|
||||||
PlayerIronSightFOV = default.PlayerIronSightFOV;
|
|
||||||
if(instigator != none && instigator.bIsCrouched && class'NiceVeterancyTypes'.static.hasSkill(NicePlayerController(Instigator.Controller), class'NiceSkillSharpshooterHardWork')){
|
|
||||||
default.ZoomTime *= class'NiceSkillSharpshooterControl'.default.zoomSpeedBonus;
|
|
||||||
if(instigator != none && instigator.bIsCrouched){
|
|
||||||
PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
scopePortalFOVHigh *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
scopePortalFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
super(BaseKFWeapon).ZoomIn(bAnimateTransition);
|
|
||||||
bAimingRifle = True;
|
|
||||||
if(KFHumanPawn(Instigator) != none)
|
|
||||||
KFHumanPawn(Instigator).SetAiming(True);
|
|
||||||
if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none ){
|
|
||||||
if(AimInSound != none)
|
|
||||||
PlayOwnedSound(AimInSound, SLOT_Interact,,,,, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Handles all the functionality for zooming out including
|
|
||||||
// setting the parameters for the weapon, pawn, and playercontroller
|
|
||||||
simulated function ZoomOut(bool bAnimateTransition)
|
|
||||||
{
|
|
||||||
default.ZoomTime = default.recordedZoomTime;
|
|
||||||
PlayerIronSightFOV = default.PlayerIronSightFOV;
|
|
||||||
scopePortalFOVHigh = default.scopePortalFOVHigh;
|
|
||||||
scopePortalFOV = default.scopePortalFOV;
|
|
||||||
PlayerIronSightFOV = default.PlayerIronSightFOV;
|
|
||||||
if(class'NiceVeterancyTypes'.static.hasSkill(NicePlayerController(Instigator.Controller), class'NiceSkillSharpshooterControl')){
|
|
||||||
default.ZoomTime *= class'NiceSkillSharpshooterControl'.default.zoomSpeedBonus;
|
|
||||||
PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
scopePortalFOVHigh *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
scopePortalFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
PlayerIronSightFOV *= class'NiceSkillSharpshooterControl'.default.zoomBonus;
|
|
||||||
}
|
|
||||||
super.ZoomOut(bAnimateTransition);
|
|
||||||
bAimingRifle = False;
|
|
||||||
if( KFHumanPawn(Instigator)!=none )
|
|
||||||
KFHumanPawn(Instigator).SetAiming(False);
|
|
||||||
if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none )
|
|
||||||
{
|
|
||||||
if( AimOutSound != none )
|
|
||||||
{
|
|
||||||
PlayOwnedSound(AimOutSound, SLOT_Interact,,,,, false);
|
|
||||||
}
|
|
||||||
KFPlayerController(Instigator.Controller).TransitionFOV(KFPlayerController(Instigator.Controller).DefaultFOV,0.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
simulated function WeaponTick(float dt)
|
|
||||||
{
|
|
||||||
super.WeaponTick(dt);
|
|
||||||
if(bAimingRifle && ForceZoomOutTime > 0 && Level.TimeSeconds - ForceZoomOutTime > 0)
|
|
||||||
{
|
|
||||||
ForceZoomOutTime = 0;
|
|
||||||
|
|
||||||
ZoomOut(false);
|
|
||||||
|
|
||||||
if(Role < ROLE_Authority)
|
|
||||||
ServerZoomOut(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Called by the native code when the interpolation of the first person weapon to the zoomed position finishes
|
|
||||||
simulated event OnZoomInFinished()
|
|
||||||
{
|
|
||||||
local name anim;
|
|
||||||
local float frame, rate;
|
|
||||||
GetAnimParams(0, anim, frame, rate);
|
|
||||||
if (ClientState == WS_ReadyToFire)
|
|
||||||
{
|
|
||||||
// Play the iron idle anim when we're finished zooming in
|
|
||||||
if (anim == IdleAnim)
|
|
||||||
{
|
|
||||||
PlayIdle();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none &&
|
|
||||||
KFScopeDetail == KF_TextureScope )
|
|
||||||
{
|
|
||||||
KFPlayerController(Instigator.Controller).TransitionFOV(PlayerIronSightFOV,0.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
simulated function bool CanZoomNow()
|
|
||||||
{
|
|
||||||
Return (!FireMode[0].bIsFiring && !FireMode[1].bIsFiring && Instigator!=none && Instigator.Physics!=PHYS_Falling);
|
|
||||||
}
|
|
||||||
simulated event RenderOverlays(Canvas Canvas)
|
|
||||||
{
|
|
||||||
local int m;
|
|
||||||
local PlayerController PC;
|
|
||||||
if (Instigator == none)
|
|
||||||
return;
|
|
||||||
PC = PlayerController(Instigator.Controller);
|
|
||||||
if(PC == none)
|
|
||||||
return;
|
|
||||||
if(!bInitializedScope && PC != none )
|
|
||||||
{
|
|
||||||
UpdateScopeMode();
|
|
||||||
}
|
|
||||||
Canvas.DrawActor(none, false, true);
|
|
||||||
for (m = 0; m < NUM_FIRE_MODES; m++)
|
|
||||||
{
|
|
||||||
if (FireMode[m] != none)
|
|
||||||
{
|
|
||||||
FireMode[m].DrawMuzzleFlash(Canvas);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetLocation( Instigator.Location + Instigator.CalcDrawOffset(self) );
|
|
||||||
SetRotation( Instigator.GetViewRotation() + ZoomRotInterp);
|
|
||||||
PreDrawFPWeapon();
|
|
||||||
if(bAimingRifle && PC != none && (KFScopeDetail == KF_ModelScope || KFScopeDetail == KF_ModelScopeHigh)){
|
|
||||||
if(ShouldDrawPortal()){
|
|
||||||
if(ScopeScriptedTexture != none){
|
|
||||||
Skins[LenseMaterialID] = ScopeScriptedShader;
|
|
||||||
ScopeScriptedTexture.Client = Self;
|
|
||||||
ScopeScriptedTexture.Revision = (ScopeScriptedTexture.Revision + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bDrawingFirstPerson = true;
|
|
||||||
Canvas.DrawBoundActor(self, false, false,DisplayFOV,PC.Rotation,rot(0,0,0),Instigator.CalcZoomedDrawOffset(self));
|
|
||||||
bDrawingFirstPerson = false;
|
|
||||||
}
|
|
||||||
else if(KFScopeDetail == KF_TextureScope && PC.DesiredFOV == PlayerIronSightFOV && bAimingRifle){
|
|
||||||
Skins[LenseMaterialID] = ScriptedTextureFallback;
|
|
||||||
|
|
||||||
SetZoomBlendColor(Canvas);
|
|
||||||
|
|
||||||
Canvas.Style = ERenderStyle.STY_Normal;
|
|
||||||
Canvas.SetPos(0, 0);
|
|
||||||
Canvas.DrawTile(ZoomMat, (Canvas.SizeX - Canvas.SizeY) / 2, Canvas.SizeY, 0.0, 0.0, 8, 8);
|
|
||||||
Canvas.SetPos(Canvas.SizeX, 0);
|
|
||||||
Canvas.DrawTile(ZoomMat, -(Canvas.SizeX - Canvas.SizeY) / 2, Canvas.SizeY, 0.0, 0.0, 8, 8);
|
|
||||||
|
|
||||||
Canvas.Style = 255;
|
|
||||||
Canvas.SetPos((Canvas.SizeX - Canvas.SizeY) / 2,0);
|
|
||||||
Canvas.DrawTile(ZoomMat, Canvas.SizeY, Canvas.SizeY, 0.0, 0.0, tileSize, tileSize);
|
|
||||||
|
|
||||||
Canvas.Font = Canvas.MedFont;
|
|
||||||
Canvas.SetDrawColor(200,150,0);
|
|
||||||
|
|
||||||
Canvas.SetPos(Canvas.SizeX * 0.16, Canvas.SizeY * 0.43);
|
|
||||||
Canvas.DrawText(" ");
|
|
||||||
|
|
||||||
Canvas.SetPos(Canvas.SizeX * 0.16, Canvas.SizeY * 0.47);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
Skins[LenseMaterialID] = ScriptedTextureFallback;
|
|
||||||
bDrawingFirstPerson = true;
|
|
||||||
Canvas.DrawActor(self, false, false, DisplayFOV);
|
|
||||||
bDrawingFirstPerson = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Adjust a single FOV based on the current aspect ratio. Adjust FOV is the default NON-aspect ratio adjusted FOV to adjust
|
|
||||||
simulated function float CalcAspectRatioAdjustedFOV(float AdjustFOV)
|
|
||||||
{
|
|
||||||
local KFPlayerController KFPC;
|
|
||||||
local float ResX, ResY;
|
|
||||||
local float AspectRatio;
|
|
||||||
KFPC = KFPlayerController(Level.GetLocalPlayerController());
|
|
||||||
if( KFPC == none )
|
|
||||||
{
|
|
||||||
return AdjustFOV;
|
|
||||||
}
|
|
||||||
ResX = float(GUIController(KFPC.Player.GUIController).ResX);
|
|
||||||
ResY = float(GUIController(KFPC.Player.GUIController).ResY);
|
|
||||||
AspectRatio = ResX / ResY;
|
|
||||||
if ( KFPC.bUseTrueWideScreenFOV && AspectRatio >= 1.60 ) //1.6 = 16/10 which is 16:10 ratio and 16:9 comes to 1.77
|
|
||||||
{
|
|
||||||
return CalcFOVForAspectRatio(AdjustFOV);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return AdjustFOV;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// AdjustIngameScope(RO) - Takes the changes to the ScopeDetail variable and
|
|
||||||
// sets the scope to the new detail mode. Called when the player switches the
|
|
||||||
// scope setting ingame, or when the scope setting is changed from the menu
|
|
||||||
simulated function AdjustIngameScope()
|
|
||||||
{
|
|
||||||
local PlayerController PC;
|
|
||||||
if(Instigator == none || PlayerController(Instigator.Controller) == none)
|
|
||||||
return;
|
|
||||||
PC = PlayerController(Instigator.Controller);
|
|
||||||
if(!bHasScope)
|
|
||||||
return;
|
|
||||||
switch (KFScopeDetail)
|
|
||||||
{
|
|
||||||
case KF_ModelScope:
|
|
||||||
if(bAimingRifle)
|
|
||||||
DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV);
|
|
||||||
if (PC.DesiredFOV == PlayerIronSightFOV && bAimingRifle){
|
|
||||||
if(Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none)
|
|
||||||
KFPlayerController(Instigator.Controller).TransitionFOV(KFPlayerController(Instigator.Controller).DefaultFOV,0.0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KF_TextureScope:
|
|
||||||
if(bAimingRifle)
|
|
||||||
DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV);
|
|
||||||
if (bAimingRifle && PC.DesiredFOV != PlayerIronSightFOV){
|
|
||||||
if(Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none)
|
|
||||||
KFPlayerController(Instigator.Controller).TransitionFOV(PlayerIronSightFOV,0.0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KF_ModelScopeHigh:
|
|
||||||
if(bAimingRifle){
|
|
||||||
if(default.ZoomedDisplayFOVHigh > 0)
|
|
||||||
DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOVHigh);
|
|
||||||
else
|
|
||||||
DisplayFOV = CalcAspectRatioAdjustedFOV(default.ZoomedDisplayFOV);
|
|
||||||
}
|
|
||||||
if ( bAimingRifle && PC.DesiredFOV == PlayerIronSightFOV )
|
|
||||||
{
|
|
||||||
if( Level.NetMode != NM_DedicatedServer && KFPlayerController(Instigator.Controller) != none )
|
|
||||||
{
|
|
||||||
KFPlayerController(Instigator.Controller).TransitionFOV(KFPlayerController(Instigator.Controller).DefaultFOV,0.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// Make any chagned to the scope setup
|
|
||||||
UpdateScopeMode();
|
|
||||||
}
|
|
||||||
simulated event Destroyed()
|
|
||||||
{
|
|
||||||
PreTravelCleanUp();
|
|
||||||
Super.Destroyed();
|
|
||||||
}
|
|
||||||
simulated function PreTravelCleanUp()
|
|
||||||
{
|
|
||||||
if(ScopeScriptedTexture != none){
|
|
||||||
ScopeScriptedTexture.Client = none;
|
|
||||||
Level.ObjectPool.FreeObject(ScopeScriptedTexture);
|
|
||||||
ScopeScriptedTexture=none;
|
|
||||||
}
|
|
||||||
if(ScriptedScopeCombiner != none){
|
|
||||||
ScriptedScopeCombiner.Material2 = none;
|
|
||||||
Level.ObjectPool.FreeObject(ScriptedScopeCombiner);
|
|
||||||
ScriptedScopeCombiner = none;
|
|
||||||
}
|
|
||||||
if(ScopeScriptedShader != none){
|
|
||||||
ScopeScriptedShader.Diffuse = none;
|
|
||||||
ScopeScriptedShader.SelfIllumination = none;
|
|
||||||
Level.ObjectPool.FreeObject(ScopeScriptedShader);
|
|
||||||
ScopeScriptedShader = none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
defaultproperties
|
|
||||||
{
|
|
||||||
tileSize=1024
|
|
||||||
}
|
|
@ -4,8 +4,8 @@ defaultproperties
|
|||||||
{
|
{
|
||||||
WeaponPickupClass=Class'NicePack.NiceM4Pickup'
|
WeaponPickupClass=Class'NicePack.NiceM4Pickup'
|
||||||
AmmoPickupAmount=30
|
AmmoPickupAmount=30
|
||||||
MaxAmmo=120
|
MaxAmmo=180
|
||||||
InitialAmount=30
|
InitialAmount=60
|
||||||
PickupClass=Class'NicePack.NiceM4M203AmmoPickup'
|
PickupClass=Class'NicePack.NiceM4M203AmmoPickup'
|
||||||
IconMaterial=Texture'KillingFloorHUD.Generic.HUD'
|
IconMaterial=Texture'KillingFloorHUD.Generic.HUD'
|
||||||
IconCoords=(X1=336,Y1=82,X2=382,Y2=125)
|
IconCoords=(X1=336,Y1=82,X2=382,Y2=125)
|
||||||
|
@ -3,8 +3,8 @@ defaultproperties
|
|||||||
{
|
{
|
||||||
WeaponPickupClass=Class'NicePack.NiceM4M203Pickup'
|
WeaponPickupClass=Class'NicePack.NiceM4M203Pickup'
|
||||||
AmmoPickupAmount=1
|
AmmoPickupAmount=1
|
||||||
MaxAmmo=15
|
MaxAmmo=8
|
||||||
InitialAmount=4
|
InitialAmount=2
|
||||||
PickupClass=Class'NicePack.NiceM4M203AmmoPickup'
|
PickupClass=Class'NicePack.NiceM4M203AmmoPickup'
|
||||||
IconMaterial=Texture'KillingFloorHUD.Generic.HUD'
|
IconMaterial=Texture'KillingFloorHUD.Generic.HUD'
|
||||||
IconCoords=(X1=4,Y1=350,X2=110,Y2=395)
|
IconCoords=(X1=4,Y1=350,X2=110,Y2=395)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
class NiceM4M203NadeAmmoPickup extends NiceAmmoPickup;
|
class NiceM4M203NadeAmmoPickup extends NiceAmmoPickup;
|
||||||
defaultproperties
|
defaultproperties
|
||||||
{
|
{
|
||||||
AmmoAmount=2
|
AmmoAmount=1
|
||||||
InventoryType=Class'NicePack.NiceM4M203NadeAmmo'
|
InventoryType=Class'NicePack.NiceM4M203NadeAmmo'
|
||||||
PickupMessage="M203 Grenades"
|
PickupMessage="M203 Grenades"
|
||||||
}
|
}
|
||||||
|
@ -22,4 +22,5 @@ defaultproperties
|
|||||||
ShakeOffsetMag=(Z=6.000000)
|
ShakeOffsetMag=(Z=6.000000)
|
||||||
ShakeOffsetTime=1.250000
|
ShakeOffsetTime=1.250000
|
||||||
BotRefireRate=0.250000
|
BotRefireRate=0.250000
|
||||||
|
Spread=1125.000000
|
||||||
}
|
}
|
||||||
|
@ -15,5 +15,5 @@ defaultproperties
|
|||||||
FireRate=0.943000
|
FireRate=0.943000
|
||||||
AmmoClass=Class'NicePack.NiceKSGAmmo'
|
AmmoClass=Class'NicePack.NiceKSGAmmo'
|
||||||
BotRefireRate=0.250000
|
BotRefireRate=0.250000
|
||||||
Spread=1000.000000
|
Spread=750.000000
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ function RangedAttack(Actor A) {
|
|||||||
else if((KFDoorMover(A) != none ||
|
else if((KFDoorMover(A) != none ||
|
||||||
(!Region.Zone.bDistanceFog && VSize(A.Location-Location) <= 65535) ||
|
(!Region.Zone.bDistanceFog && VSize(A.Location-Location) <= 65535) ||
|
||||||
(Region.Zone.bDistanceFog && VSizeSquared(A.Location-Location) < (Square(Region.Zone.DistanceFogEnd) * 0.8))) // Make him come out of the fog a bit
|
(Region.Zone.bDistanceFog && VSizeSquared(A.Location-Location) < (Square(Region.Zone.DistanceFogEnd) * 0.8))) // Make him come out of the fog a bit
|
||||||
&& !bDecapitated ) {
|
&& !bDecapitated && Physics != PHYS_Falling) {
|
||||||
bShotAnim = true;
|
bShotAnim = true;
|
||||||
|
|
||||||
SetAnimAction('ShootBurns');
|
SetAnimAction('ShootBurns');
|
||||||
|
@ -5,7 +5,7 @@ class NiceZombieCrawler extends NiceZombieCrawlerBase;
|
|||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
function bool DoPounce()
|
function bool DoPounce()
|
||||||
{
|
{
|
||||||
if (bZapped || bIsCrouched || bWantsToCrouch || (Physics != PHYS_Walking) || VSize(Location - Controller.Target.Location) > (MeleeRange * 5))
|
if (headHealth <= 0 || bZapped || bIsCrouched || bWantsToCrouch || (Physics != PHYS_Walking) || VSize(Location - Controller.Target.Location) > (MeleeRange * 5))
|
||||||
return false;
|
return false;
|
||||||
Velocity = Normal(Controller.Target.Location-Location)*PounceSpeed;
|
Velocity = Normal(Controller.Target.Location-Location)*PounceSpeed;
|
||||||
Velocity.Z = JumpZ;
|
Velocity.Z = JumpZ;
|
||||||
|
@ -79,7 +79,7 @@ function RangedAttack(Actor A)
|
|||||||
else if ( (KFDoorMover(A) != none ||
|
else if ( (KFDoorMover(A) != none ||
|
||||||
(!Region.Zone.bDistanceFog && VSize(A.Location-Location) <= 65535) ||
|
(!Region.Zone.bDistanceFog && VSize(A.Location-Location) <= 65535) ||
|
||||||
(Region.Zone.bDistanceFog && VSizeSquared(A.Location-Location) < (Square(Region.Zone.DistanceFogEnd) * 0.8))) // Make him come out of the fog a bit
|
(Region.Zone.bDistanceFog && VSizeSquared(A.Location-Location) < (Square(Region.Zone.DistanceFogEnd) * 0.8))) // Make him come out of the fog a bit
|
||||||
&& !bDecapitated )
|
&& !bDecapitated && Physics != PHYS_Falling)
|
||||||
{
|
{
|
||||||
bShotAnim = true;
|
bShotAnim = true;
|
||||||
|
|
||||||
|
@ -101,4 +101,5 @@ defaultproperties
|
|||||||
PrePivot=(Z=5.000000)
|
PrePivot=(Z=5.000000)
|
||||||
Skins(0)=Combiner'ScrnZedPack_T.Shiver.CmbRemoveAlpha'
|
Skins(0)=Combiner'ScrnZedPack_T.Shiver.CmbRemoveAlpha'
|
||||||
RotationRate=(Yaw=45000,Roll=0)
|
RotationRate=(Yaw=45000,Roll=0)
|
||||||
|
BleedOutDuration=3.0
|
||||||
}
|
}
|
||||||
|
@ -116,6 +116,7 @@ function RangedAttack(Actor A)
|
|||||||
{
|
{
|
||||||
Acceleration = AccelRate * Normal(A.Location - Location);
|
Acceleration = AccelRate * Normal(A.Location - Location);
|
||||||
}
|
}
|
||||||
|
Acceleration.Z = FMin(Acceleration.Z, 0.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
simulated function int DoAnimAction( name AnimName )
|
simulated function int DoAnimAction( name AnimName )
|
||||||
|
@ -137,7 +137,9 @@ function FreePrimaryBeam()
|
|||||||
PrimaryBeam.EndActor = none;
|
PrimaryBeam.EndActor = none;
|
||||||
PrimaryBeam.EffectEndTime = Level.TimeSeconds - 1;
|
PrimaryBeam.EffectEndTime = Level.TimeSeconds - 1;
|
||||||
PrimaryBeam.Instigator = none; // mark to delete
|
PrimaryBeam.Instigator = none; // mark to delete
|
||||||
PrimaryBeam = none; }}
|
PrimaryBeam = none;
|
||||||
|
}
|
||||||
|
}
|
||||||
function RangedAttack(Actor A)
|
function RangedAttack(Actor A)
|
||||||
{
|
{
|
||||||
local float Dist;
|
local float Dist;
|
||||||
|
@ -22,7 +22,7 @@ function Touch( actor Other ){
|
|||||||
function bool RelevantTo(Pawn P){
|
function bool RelevantTo(Pawn P){
|
||||||
local NiceMonster niceZed;
|
local NiceMonster niceZed;
|
||||||
niceZed = NiceMonster(P);
|
niceZed = NiceMonster(P);
|
||||||
if(niceZed != none && niceZed.default.Health >= 1000)
|
if(niceZed != none && (niceZed.default.Health >= 1000 || NiceZombieJason(niceZed) != none))
|
||||||
return false;
|
return false;
|
||||||
return (niceFP != none && VSizeSquared(niceFP.Velocity) >= 75 && Super.RelevantTo(P) && niceFP.Velocity dot (P.Location - niceFP.Location) > 0 );
|
return (niceFP != none && VSizeSquared(niceFP.Velocity) >= 75 && Super.RelevantTo(P) && niceFP.Velocity dot (P.Location - niceFP.Location) > 0 );
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user