Hardcoded classes removed #8
| @ -1,14 +1,17 @@ | ||||
| class NiceIceChunkEmitter extends Emitter; | ||||
| 
 | ||||
| var() array<Sound> ImpactSounds; | ||||
| simulated function PostBeginPlay(){ | ||||
|     if(ImpactSounds.Length > 0) | ||||
|         PlaySound(ImpactSounds[Rand(ImpactSounds.Length)]); | ||||
| } | ||||
| 
 | ||||
| //  NICETODO: change linksfrom HTeac_A to NicePackSM (and change that file)
 | ||||
| defaultproperties | ||||
| { | ||||
|     ImpactSounds(0)=Sound'KFWeaponSound.bullethitglass' | ||||
|     ImpactSounds(1)=Sound'KFWeaponSound.bullethitglass2' | ||||
| 
 | ||||
|     Begin Object Class=MeshEmitter Name=MeshEmitter0 | ||||
|         StaticMesh=StaticMesh'HTec_A.IceChunk1' | ||||
|         UseCollision=True | ||||
| @ -29,7 +32,7 @@ defaultproperties | ||||
|         InitialParticlesPerSecond=10000.000000 | ||||
|         StartVelocityRange=(X=(Min=-75.000000,Max=75.000000),Y=(Min=-75.000000,Max=75.000000),Z=(Min=-100.000000,Max=300.000000)) | ||||
|     End Object | ||||
|     Emitters(0)=MeshEmitter'NicePack.NiceIceChunkEmitter.MeshEmitter0' | ||||
|     Emitters(0)=MeshEmitter0 | ||||
| 
 | ||||
|     Begin Object Class=MeshEmitter Name=MeshEmitter2 | ||||
|         StaticMesh=StaticMesh'HTec_A.IceChunk2' | ||||
| @ -52,7 +55,7 @@ defaultproperties | ||||
|         InitialParticlesPerSecond=10000.000000 | ||||
|         StartVelocityRange=(X=(Min=-150.000000,Max=150.000000),Y=(Min=-150.000000,Max=150.000000),Z=(Min=-100.000000,Max=500.000000)) | ||||
|     End Object | ||||
|     Emitters(1)=MeshEmitter'NicePack.NiceIceChunkEmitter.MeshEmitter2' | ||||
|     Emitters(1)=MeshEmitter2 | ||||
| 
 | ||||
|     Begin Object Class=MeshEmitter Name=MeshEmitter3 | ||||
|         StaticMesh=StaticMesh'HTec_A.IceChunk3' | ||||
| @ -75,7 +78,7 @@ defaultproperties | ||||
|         InitialParticlesPerSecond=10000.000000 | ||||
|         StartVelocityRange=(X=(Min=-200.000000,Max=200.000000),Y=(Min=-200.000000,Max=200.000000),Z=(Min=-100.000000,Max=500.000000)) | ||||
|     End Object | ||||
|     Emitters(2)=MeshEmitter'NicePack.NiceIceChunkEmitter.MeshEmitter3' | ||||
|     Emitters(2)=MeshEmitter3 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter8 | ||||
|         UseCollision=True | ||||
| @ -103,7 +106,7 @@ defaultproperties | ||||
|         LifetimeRange=(Min=1.400000,Max=1.400000) | ||||
|         StartVelocityRange=(X=(Min=-200.000000,Max=200.000000),Y=(Min=-200.000000,Max=200.000000),Z=(Min=-300.000000,Max=350.000000)) | ||||
|     End Object | ||||
|     Emitters(3)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter8' | ||||
|     Emitters(3)=SpriteEmitter8 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter9 | ||||
|         ProjectionNormal=(Y=1.000000,Z=0.000000) | ||||
| @ -139,7 +142,7 @@ defaultproperties | ||||
|         LifetimeRange=(Min=0.750000,Max=0.750000) | ||||
|         StartVelocityRange=(X=(Min=-150.000000,Max=150.000000),Y=(Min=-150.000000,Max=150.000000),Z=(Min=-25.000000,Max=300.000000)) | ||||
|     End Object | ||||
|     Emitters(4)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter9' | ||||
|     Emitters(4)=SpriteEmitter9 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter10 | ||||
|         ProjectionNormal=(Y=1.000000,Z=0.000000) | ||||
| @ -171,7 +174,7 @@ defaultproperties | ||||
|         TextureVSubdivisions=8 | ||||
|         LifetimeRange=(Min=0.350000,Max=0.350000) | ||||
|     End Object | ||||
|     Emitters(5)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter10' | ||||
|     Emitters(5)=SpriteEmitter10 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter11 | ||||
|         ProjectionNormal=(Y=1.000000,Z=0.000000) | ||||
| @ -203,7 +206,7 @@ defaultproperties | ||||
|         TextureVSubdivisions=8 | ||||
|         LifetimeRange=(Min=0.350000,Max=0.350000) | ||||
|     End Object | ||||
|     Emitters(6)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter11' | ||||
|     Emitters(6)=SpriteEmitter11 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter12 | ||||
|         ProjectionNormal=(Y=1.000000,Z=0.000000) | ||||
| @ -236,7 +239,7 @@ defaultproperties | ||||
|         TextureVSubdivisions=8 | ||||
|         LifetimeRange=(Min=0.350000,Max=0.350000) | ||||
|     End Object | ||||
|     Emitters(7)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter12' | ||||
|     Emitters(7)=SpriteEmitter12 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter13 | ||||
|         ProjectionNormal=(Y=1.000000,Z=0.000000) | ||||
| @ -272,7 +275,7 @@ defaultproperties | ||||
|         LifetimeRange=(Min=0.750000,Max=0.750000) | ||||
|         StartVelocityRange=(X=(Min=-150.000000,Max=150.000000),Y=(Min=-150.000000,Max=150.000000),Z=(Min=-5.000000,Max=150.000000)) | ||||
|     End Object | ||||
|     Emitters(8)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter13' | ||||
|     Emitters(8)=SpriteEmitter13 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter14 | ||||
|         ProjectionNormal=(Y=1.000000,Z=0.000000) | ||||
| @ -308,7 +311,7 @@ defaultproperties | ||||
|         StartVelocityRange=(X=(Min=-350.000000,Max=350.000000),Y=(Min=-350.000000,Max=350.000000),Z=(Min=-5.000000,Max=50.000000)) | ||||
|         VelocityLossRange=(X=(Min=3.000000,Max=3.000000),Y=(Min=3.000000,Max=3.000000)) | ||||
|     End Object | ||||
|     Emitters(9)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter14' | ||||
|     Emitters(9)=SpriteEmitter14 | ||||
| 
 | ||||
|     Begin Object Class=SpriteEmitter Name=SpriteEmitter15 | ||||
|         UseCollision=True | ||||
| @ -336,7 +339,7 @@ defaultproperties | ||||
|         LifetimeRange=(Min=1.400000,Max=1.400000) | ||||
|         StartVelocityRange=(X=(Min=-200.000000,Max=200.000000),Y=(Min=-200.000000,Max=200.000000),Z=(Min=-300.000000,Max=350.000000)) | ||||
|     End Object | ||||
|     Emitters(10)=SpriteEmitter'NicePack.NiceIceChunkEmitter.SpriteEmitter15' | ||||
|     Emitters(10)=SpriteEmitter15 | ||||
| 
 | ||||
|     AutoDestroy=True | ||||
|     bNoDelete=False | ||||
|  | ||||
| @ -31,7 +31,7 @@ defaultproperties | ||||
|         StartVelocityRange=(X=(Min=-85.000000,Max=85.000000),Y=(Min=-85.000000,Max=85.000000)) | ||||
|         StartVelocityRadialRange=(Min=-40.000000,Max=40.000000) | ||||
|     End Object | ||||
|     Emitters(0)=SpriteEmitter'NicePack.NiceNitroGroundEffect.SpriteEmitter0' | ||||
|     Emitters(0)=SpriteEmitter0 | ||||
| 
 | ||||
|     LifeSpan=5.000000 | ||||
| } | ||||
|  | ||||
| @ -181,7 +181,7 @@ defaultproperties | ||||
|         WinWidth=0.332300 | ||||
|         WinHeight=0.100000 | ||||
|     End Object | ||||
|     HeaderBG_Left=GUIImage'NicePack.NiceGUIBuyMenu.HBGLeft' | ||||
|     HeaderBG_Left=HBGLeft | ||||
| 
 | ||||
|     Begin Object Class=GUIImage Name=HBGCenter | ||||
|         Image=Texture'KF_InterfaceArt_tex.Menu.Thin_border' | ||||
| @ -192,7 +192,7 @@ defaultproperties | ||||
|         WinWidth=0.331023 | ||||
|         WinHeight=0.100000 | ||||
|     End Object | ||||
|     HeaderBG_Center=GUIImage'NicePack.NiceGUIBuyMenu.HBGCenter' | ||||
|     HeaderBG_Center=HBGCenter | ||||
| 
 | ||||
|     Begin Object Class=GUIImage Name=HBGRight | ||||
|         Image=Texture'KF_InterfaceArt_tex.Menu.Thin_border' | ||||
| @ -203,7 +203,7 @@ defaultproperties | ||||
|         WinWidth=0.332000 | ||||
|         WinHeight=0.100000 | ||||
|     End Object | ||||
|     HeaderBG_Right=GUIImage'NicePack.NiceGUIBuyMenu.HBGRight' | ||||
|     HeaderBG_Right=HBGRight | ||||
| 
 | ||||
|     Begin Object Class=GUILabel Name=Perk | ||||
|         TextAlign=TXTA_Center | ||||
| @ -213,7 +213,7 @@ defaultproperties | ||||
|         WinWidth=0.329761 | ||||
|         WinHeight=0.050000 | ||||
|     End Object | ||||
|     CurrentPerkLabel=GUILabel'NicePack.NiceGUIBuyMenu.Perk' | ||||
|     CurrentPerkLabel=Perk | ||||
| 
 | ||||
|     Begin Object Class=GUILabel Name=Time | ||||
|         Caption="Trader closes in 00:31" | ||||
| @ -225,7 +225,7 @@ defaultproperties | ||||
|         WinWidth=0.330000 | ||||
|         WinHeight=0.035000 | ||||
|     End Object | ||||
|     TimeLeftLabel=GUILabel'NicePack.NiceGUIBuyMenu.Time' | ||||
|     TimeLeftLabel=Time | ||||
| 
 | ||||
|     Begin Object Class=GUILabel Name=Wave | ||||
|         Caption="Wave: 7/10" | ||||
| @ -236,7 +236,7 @@ defaultproperties | ||||
|         WinWidth=0.327071 | ||||
|         WinHeight=0.035000 | ||||
|     End Object | ||||
|     WaveLabel=GUILabel'NicePack.NiceGUIBuyMenu.Wave' | ||||
|     WaveLabel=Wave | ||||
| 
 | ||||
|     Begin Object Class=GUILabel Name=HBGLL | ||||
|         Caption="Quick Perk Select" | ||||
| @ -248,7 +248,7 @@ defaultproperties | ||||
|         WinWidth=0.329761 | ||||
|         WinHeight=0.019524 | ||||
|     End Object | ||||
|     HeaderBG_Left_Label=GUILabel'NicePack.NiceGUIBuyMenu.HBGLL' | ||||
|     HeaderBG_Left_Label=HBGLL | ||||
| 
 | ||||
|     Begin Object Class=KFQuickPerkSelect Name=QS | ||||
|         WinTop=0.011906 | ||||
| @ -257,7 +257,7 @@ defaultproperties | ||||
|         WinHeight=0.082460 | ||||
|         OnDraw=QS.MyOnDraw | ||||
|     End Object | ||||
|     QuickPerkSelect=KFQuickPerkSelect'NicePack.NiceGUIBuyMenu.QS' | ||||
|     QuickPerkSelect=QS | ||||
| 
 | ||||
|     Begin Object Class=KFBuyMenuFilter Name=filter | ||||
|         WinTop=0.051000 | ||||
| @ -266,7 +266,7 @@ defaultproperties | ||||
|         WinHeight=0.082460 | ||||
|         OnDraw=filter.MyOnDraw | ||||
|     End Object | ||||
|     BuyMenuFilter=KFBuyMenuFilter'NicePack.NiceGUIBuyMenu.filter' | ||||
|     BuyMenuFilter=filter | ||||
| 
 | ||||
|     Begin Object Class=GUIButton Name=StoreTabB | ||||
|         Caption="Store" | ||||
| @ -278,7 +278,7 @@ defaultproperties | ||||
|         OnClick=NiceGUIBuyMenu.ButtonClicked | ||||
|         OnKeyEvent=StoreTabB.InternalOnKeyEvent | ||||
|     End Object | ||||
|     StoreTabButton=GUIButton'NicePack.NiceGUIBuyMenu.StoreTabB' | ||||
|     StoreTabButton=StoreTabB | ||||
| 
 | ||||
|     Begin Object Class=GUIButton Name=PerkTabB | ||||
|         Caption="Perk" | ||||
| @ -290,7 +290,7 @@ defaultproperties | ||||
|         OnClick=NiceGUIBuyMenu.ButtonClicked | ||||
|         OnKeyEvent=PerkTabB.InternalOnKeyEvent | ||||
|     End Object | ||||
|     PerkTabButton=GUIButton'NicePack.NiceGUIBuyMenu.PerkTabB' | ||||
|     PerkTabButton=PerkTabB | ||||
| 
 | ||||
|     Begin Object Class=GUIImage Name=Weight | ||||
|         Image=Texture'KF_InterfaceArt_tex.Menu.Thin_border' | ||||
| @ -300,7 +300,7 @@ defaultproperties | ||||
|         WinWidth=0.663086 | ||||
|         WinHeight=0.065828 | ||||
|     End Object | ||||
|     WeightBG=GUIImage'NicePack.NiceGUIBuyMenu.Weight' | ||||
|     WeightBG=Weight | ||||
| 
 | ||||
|     Begin Object Class=GUIImage Name=WeightIco | ||||
|         Image=Texture'KillingFloorHUD.HUD.Hud_Weight' | ||||
| @ -311,7 +311,7 @@ defaultproperties | ||||
|         WinHeight=0.048992 | ||||
|         RenderWeight=0.460000 | ||||
|     End Object | ||||
|     WeightIcon=GUIImage'NicePack.NiceGUIBuyMenu.WeightIco' | ||||
|     WeightIcon=WeightIco | ||||
| 
 | ||||
|     Begin Object Class=GUIImage Name=WeightIcoBG | ||||
|         Image=Texture'KF_InterfaceArt_tex.Menu.Perk_box_unselected' | ||||
| @ -322,7 +322,7 @@ defaultproperties | ||||
|         WinHeight=0.054461 | ||||
|         RenderWeight=0.450000 | ||||
|     End Object | ||||
|     WeightIconBG=GUIImage'NicePack.NiceGUIBuyMenu.WeightIcoBG' | ||||
|     WeightIconBG=WeightIcoBG | ||||
| 
 | ||||
|     Begin Object Class=KFWeightBar Name=WeightB | ||||
|         WinTop=0.945302 | ||||
| @ -331,7 +331,7 @@ defaultproperties | ||||
|         WinHeight=0.053896 | ||||
|         OnDraw=WeightB.MyOnDraw | ||||
|     End Object | ||||
|     WeightBar=KFWeightBar'NicePack.NiceGUIBuyMenu.WeightB' | ||||
|     WeightBar=WeightB | ||||
| 
 | ||||
|     RedColor=(R=255,A=255) | ||||
|     GreenGreyColor=(B=158,G=176,R=175,A=255) | ||||
| @ -340,6 +340,7 @@ defaultproperties | ||||
|     TraderClose="Trader Closes in" | ||||
|     WaveString="Wave" | ||||
|     LvAbbrString="Lv" | ||||
| 
 | ||||
|     Begin Object Class=GUITabControl Name=PageTabs | ||||
|         bDockPanels=True | ||||
|         TabHeight=0.025000 | ||||
| @ -354,7 +355,7 @@ defaultproperties | ||||
|         OnActivate=PageTabs.InternalOnActivate | ||||
|         OnChange=NiceGUIBuyMenu.InternalOnChange | ||||
|     End Object | ||||
|     c_Tabs=GUITabControl'NicePack.NiceGUIBuyMenu.PageTabs' | ||||
|     c_Tabs=PageTabs | ||||
| 
 | ||||
|     Begin Object Class=BackgroundImage Name=PageBackground | ||||
|         Image=Texture'Engine.WhiteSquareTexture' | ||||
| @ -362,7 +363,7 @@ defaultproperties | ||||
|         ImageStyle=ISTY_Tiled | ||||
|         RenderWeight=0.001000 | ||||
|     End Object | ||||
|     i_Background=BackgroundImage'NicePack.NiceGUIBuyMenu.PageBackground' | ||||
|     i_Background=PageBackground | ||||
| 
 | ||||
|     PanelClass(0)="KFGUI.KFTab_BuyMenu" | ||||
|     PanelClass(1)="KFGUI.KFTab_Perks" | ||||
|  | ||||
| @ -112,7 +112,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_WeapManagement=moCheckBox'NicePack.NiceGUISettings.WeaponManagement' | ||||
|     ch_WeapManagement=WeaponManagement | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=AltSwitches | ||||
|         CaptionWidth=0.955000 | ||||
| @ -128,7 +128,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_AltSwitches=moCheckBox'NicePack.NiceGUISettings.AltSwitches' | ||||
|     ch_AltSwitches=AltSwitches | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=DispCounters | ||||
|         CaptionWidth=0.955000 | ||||
| @ -144,7 +144,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_DispCounters=moCheckBox'NicePack.NiceGUISettings.DispCounters' | ||||
|     ch_DispCounters=DispCounters | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=DispWeapProgress | ||||
|         CaptionWidth=0.955000 | ||||
| @ -160,7 +160,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_DisWeapProgress=moCheckBox'NicePack.NiceGUISettings.DispWeapProgress' | ||||
|     ch_DisWeapProgress=DispWeapProgress | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=ShowHLMessages | ||||
|         CaptionWidth=0.955000 | ||||
| @ -176,7 +176,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_ShowHLMessages=moCheckBox'NicePack.NiceGUISettings.ShowHLMessages' | ||||
|     ch_ShowHLMessages=ShowHLMessages | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=CancelFire | ||||
|         CaptionWidth=0.955000 | ||||
| @ -192,7 +192,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_CancelFire=moCheckBox'NicePack.NiceGUISettings.CancelFire' | ||||
|     ch_CancelFire=CancelFire | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=CancelSwitching | ||||
|         CaptionWidth=0.955000 | ||||
| @ -208,7 +208,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_CancelSwitching=moCheckBox'NicePack.NiceGUISettings.CancelSwitching' | ||||
|     ch_CancelSwitching=CancelSwitching | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=CancelNades | ||||
|         CaptionWidth=0.955000 | ||||
| @ -224,7 +224,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_CancelNades=moCheckBox'NicePack.NiceGUISettings.CancelNades' | ||||
|     ch_CancelNades=CancelNades | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=CancelAiming | ||||
|         CaptionWidth=0.955000 | ||||
| @ -240,7 +240,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_CancelAiming=moCheckBox'NicePack.NiceGUISettings.CancelAiming' | ||||
|     ch_CancelAiming=CancelAiming | ||||
| 
 | ||||
|     Begin Object Class=moCheckBox Name=ServerReload | ||||
|         CaptionWidth=0.955000 | ||||
| @ -256,7 +256,7 @@ defaultproperties | ||||
|         OnChange=NiceGUISettings.InternalOnChange | ||||
|         OnLoadINI=NiceGUISettings.InternalOnLoadINI | ||||
|     End Object | ||||
|     ch_ReloadWontWork=moCheckBox'NicePack.NiceGUISettings.ServerReload' | ||||
|     ch_ReloadWontWork=ServerReload | ||||
| 
 | ||||
|     Begin Object Class=GUISectionBackground Name=WEAPBG | ||||
|         Caption="General weapon settings" | ||||
| @ -266,7 +266,7 @@ defaultproperties | ||||
|         RenderWeight=0.100100 | ||||
|         OnPreDraw=WeaponsBG.InternalPreDraw | ||||
|     End Object | ||||
|     bg_WEAP=GUISectionBackground'NicePack.NiceGUISettings.WEAPBG' | ||||
|     bg_WEAP=WEAPBG | ||||
| 
 | ||||
|     Begin Object Class=GUISectionBackground Name=RELOADBG | ||||
|         Caption="Weapon reload settings" | ||||
| @ -277,5 +277,5 @@ defaultproperties | ||||
|         RenderWeight=0.100100 | ||||
|         OnPreDraw=WeaponsBG.InternalPreDraw | ||||
|     End Object | ||||
|     bg_RELOAD=GUISectionBackground'NicePack.NiceGUISettings.RELOADBG' | ||||
|     bg_RELOAD=RELOADBG | ||||
| } | ||||
|  | ||||
| @ -9,7 +9,7 @@ function InitComponent(GUIController MyController, GUIComponent MyOwner){ | ||||
|     local int indexAfterScrn; | ||||
|     // Setup panel classes.
 | ||||
|     Panels[0].ClassName = string(Class'ScrnBalanceSrv.ScrnTab_MidGamePerks'); | ||||
|     Panels[1].ClassName = string(Class'NicePack.NicePanelSkills'); | ||||
|     Panels[1].ClassName = string(class'NicePanelSkills'); | ||||
|     Panels[2].ClassName = string(Class'SRTab_MidGameVoiceChat'); | ||||
|     Panels[3].ClassName = string(Class'SRTab_MidGameStats'); | ||||
|     Panels[0].Caption = Class'KFInvasionLoginMenu'.Default.Panels[1].Caption; | ||||
| @ -39,7 +39,7 @@ function InitComponent(GUIController MyController, GUIComponent MyOwner){ | ||||
|     } | ||||
|     else | ||||
|        indexAfterScrn = 5; | ||||
|     Panels[indexAfterScrn].ClassName = "NicePack.NiceGUISettings"; | ||||
|     Panels[indexAfterScrn].ClassName = string(class'NiceGUISettings'); | ||||
|     Panels[indexAfterScrn].Caption = "Nice settings"; | ||||
|     Panels[indexAfterScrn].Hint = "Settings specific to NicePack mutator"; | ||||
|     Panels.Length = indexAfterScrn + 1; | ||||
|  | ||||
							
								
								
									
										21
									
								
								sources/GUI/NiceLobbyChat.uc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								sources/GUI/NiceLobbyChat.uc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| class NiceLobbyChat extends KFLobbyChat; | ||||
| 
 | ||||
| function InitComponent(GUIController MyController, GUIComponent MyOwner) | ||||
| { | ||||
| 	Super(PopupPageBase).InitComponent( MyController, MyOwner ); | ||||
| 
 | ||||
| 	TextColor[0] = class'SayMessagePlus'.default.RedTeamColor; | ||||
| 	TextColor[1] = class'SayMessagePlus'.default.BlueTeamColor; | ||||
| 	TextColor[2] = class'SayMessagePlus'.default.DrawColor; | ||||
| 
 | ||||
| 	eb_Send.MyEditBox.OnKeyEvent = InternalOnKeyEvent; | ||||
| 	lb_Chat.MyScrollText.bNeverFocus=true; | ||||
| } | ||||
| 
 | ||||
| function bool NotifyLevelChange() // Don't keep this one around...
 | ||||
| { | ||||
| 	bPersistent = false; | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| defaultproperties{} | ||||
| @ -1,12 +1,868 @@ | ||||
| class NiceLobbyMenu extends ScrnLobbyMenu; | ||||
| // base class, not vanilla
 | ||||
| class NiceLobbyMenu extends UT2k4MainPage; | ||||
| 
 | ||||
| 
 | ||||
| // some constants
 | ||||
| const MaxPlayersOnList=18; | ||||
| 
 | ||||
| // RIGHT part lables
 | ||||
| var private string str_Beginner, str_Normal, str_Hard, str_Sui, str_HOE; | ||||
| var private string str_CurrentMap, str_Difficulty, str_ServerName; | ||||
| var private string SelectPerkInformationString, PerksDisabledString; | ||||
| // LEFT part labels
 | ||||
| var private string str_LvlAbbr; | ||||
| var private string WaitingForServerStatus, WaitingForOtherPlayers, AutoCommence; | ||||
| 
 | ||||
| // player name-perk-ready boxes 
 | ||||
| struct FPlayerBoxEntry | ||||
| { | ||||
|   var moCheckBox ReadyBox; | ||||
|   var KFPlayerReadyBar PlayerBox; | ||||
|   var GUIImage PlayerPerk; | ||||
|   var GUILabel PlayerVetLabel; | ||||
|   var bool bIsEmpty; | ||||
| }; | ||||
| var array<FPlayerBoxEntry> PlayerBoxes; | ||||
| 
 | ||||
| var bool bShowProfilePage; | ||||
| 
 | ||||
| // swapped class
 | ||||
| var automated KFLobbyChat t_ChatBox; | ||||
| 
 | ||||
| // diffculty / map name label
 | ||||
| var automated AltSectionBackground GameInfoBG; | ||||
| var automated GUILabel CurrentMapLabel; | ||||
| var automated GUILabel DifficultyLabel; | ||||
| var automated GUILabel ServerNameLabel; | ||||
| 
 | ||||
| // circle and current wave label
 | ||||
| var automated GUIImage WaveBG; | ||||
| var automated GUILabel WaveLabel; | ||||
| 
 | ||||
| var automated GUILabel label_TimeOutCounter; | ||||
| var automated GUILabel PerkClickLabel; | ||||
| 
 | ||||
| var bool bAllowClose; | ||||
| 
 | ||||
| // Perks / Profile
 | ||||
| var() string sChar, sCharD; | ||||
| var() xUtil.PlayerRecord PlayerRec; | ||||
| 
 | ||||
| var automated GUISectionBackground  i_BGPerk; | ||||
| 
 | ||||
| var automated GUISectionBackground  i_BGPerkEffects; | ||||
| var automated GUIScrollTextBox      lb_PerkEffects; | ||||
| 
 | ||||
| var automated GUIImage              i_Portrait; | ||||
| var automated GUISectionBackground  PlayerPortraitBG; | ||||
| 
 | ||||
| var float IconBorder;         // Percent of Height to leave blank inside Icon Background
 | ||||
| var float ItemBorder;         // Percent of Height to leave blank inside Item Background
 | ||||
| var float ItemSpacing;        // Number of Pixels between Items
 | ||||
| var float ProgressBarHeight;  // Percent of Height to make Progress Bar's Height
 | ||||
| var float TextTopOffset;      // Percent of Height to off Progress String from top of Progress Bar(typically negative)
 | ||||
| var float IconToInfoSpacing;  // Percent of Width to offset Info from right side of Icon
 | ||||
| 
 | ||||
| //var bool bAdminUse;  // If you're not an admin, gtfo!
 | ||||
| 
 | ||||
| var int  ActivateTimeoutTime;    // When was the lobby timeout turned on?
 | ||||
| var bool bTimeoutTimeLogged;     // Was it already logged once?
 | ||||
| var bool bTimedOut;              // Have we timed out out successfully?
 | ||||
| 
 | ||||
| var bool bShouldUpdateVeterancy; | ||||
| var class<KFVeterancyTypes> CurrentVeterancy; | ||||
| var int CurrentVeterancyLevel; | ||||
| 
 | ||||
| 
 | ||||
| function InitComponent(GUIController MyC, GUIComponent MyO) | ||||
| { | ||||
|   super(UT2k4MainPage).InitComponent(MyC, MyO); | ||||
| 
 | ||||
|   i_Portrait.WinTop = PlayerPortraitBG.ActualTop() + 30; | ||||
|   i_Portrait.WinHeight = PlayerPortraitBG.ActualHeight() - 36; | ||||
| 
 | ||||
|   t_ChatBox.FocusInstead = PerkClickLabel; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // Called when the Menu Owner is opened
 | ||||
| event Opened(GUIComponent Sender) | ||||
| { | ||||
|   bShouldUpdateVeterancy = true; | ||||
| 
 | ||||
|   // disable some shit for story mode
 | ||||
|   if (PlayerOwner().GameReplicationInfo.IsA('KF_StoryGRI')) | ||||
|   { | ||||
|     // disable background
 | ||||
|     WaveBG.Image = none; | ||||
|     WaveBG.DisableMe(); | ||||
|     // disable waves text
 | ||||
|     WaveLabel.Caption = ""; | ||||
|     WaveLabel.Hide(); | ||||
|   } | ||||
| 
 | ||||
|   SetTimer(1, true); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // if we don't reset persistence, playerboxes will continue to pile
 | ||||
| function bool NotifyLevelChange() | ||||
| { | ||||
|   bPersistent = false; | ||||
|   bAllowClose = true; | ||||
|   Controller.CloseMenu(true); | ||||
| 
 | ||||
|   return true; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function bool InternalOnKeyEvent(out byte Key, out byte State, float delta) | ||||
| { | ||||
|   local int i; | ||||
|   local bool bVoiceChatKey; | ||||
|   local array<string> BindKeyNames, LocalizedBindKeyNames; | ||||
| 
 | ||||
|   Controller.GetAssignedKeys("VoiceTalk", BindKeyNames, LocalizedBindKeyNames); | ||||
| 
 | ||||
|   for (i = 0; i < BindKeyNames.Length; i++) | ||||
|   { | ||||
|     if (Mid(GetEnum(enum'EInputKey', Key), 3) ~= BindKeyNames[i]) | ||||
|     { | ||||
|       bVoiceChatKey = true; | ||||
|       break; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   if (bVoiceChatKey) | ||||
|   { | ||||
|     if (state == 1 || state == 2) | ||||
|     { | ||||
|       if (PlayerOwner() != none) | ||||
|       { | ||||
|         PlayerOwner().bVoiceTalk = 1; | ||||
|       } | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|       if (PlayerOwner() != none) | ||||
|       { | ||||
|         PlayerOwner().bVoiceTalk = 0; | ||||
|         return false; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     return true; | ||||
|   } | ||||
| 
 | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function TimedOut() | ||||
| { | ||||
|   bTimedOut = true; | ||||
|   PlayerOwner().ServerRestartPlayer(); | ||||
|   bAllowClose = true; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function bool InternalOnPreDraw(Canvas C) | ||||
| { | ||||
|   local int i, j; | ||||
|   local string StoryString; | ||||
|   local String SkillString; | ||||
|   local KFGameReplicationInfo KFGRI; | ||||
|   local PlayerController PC; | ||||
| 
 | ||||
|   PC = PlayerOwner(); | ||||
| 
 | ||||
|   if (PC == none || PC.Level == none) // Error?
 | ||||
|     return false; | ||||
| 
 | ||||
|   if ((PC.PlayerReplicationInfo != none && (!PC.PlayerReplicationInfo.bWaitingPlayer || PC.PlayerReplicationInfo.bOnlySpectator)) || PC.Outer.Name == 'Entry') | ||||
|   { | ||||
|     bAllowClose = true; | ||||
|     PC.ClientCloseMenu(true,false); | ||||
|     return false; | ||||
|   } | ||||
| 
 | ||||
|   t_Footer.InternalOnPreDraw(C); | ||||
|   KFGRI = KFGameReplicationInfo(PC.GameReplicationInfo); | ||||
| 
 | ||||
|   if (KFGRI != none) | ||||
|   { | ||||
|     WaveLabel.Caption = string(KFGRI.WaveNumber + 1) $ "/" $ string(KFGRI.FinalWave); | ||||
|   } | ||||
|   else | ||||
|   { | ||||
|     WaveLabel.Caption = "?/?"; | ||||
|     return false; | ||||
|   } | ||||
|   C.DrawColor.A = 255; | ||||
| 
 | ||||
|   // CHECK ME LATER
 | ||||
|   if (KFPlayerController(PC) != none && bShouldUpdateVeterancy) | ||||
|   { | ||||
|     if (KFPlayerController(PC).SelectedVeterancy == none) | ||||
|     { | ||||
|       bShowProfilePage = true; | ||||
| 
 | ||||
|       if (PC.SteamStatsAndAchievements == none) | ||||
|       { | ||||
|         if (PC.Level.NetMode != NM_Client) | ||||
|         { | ||||
|           PC.SteamStatsAndAchievements = PC.Spawn(PC.default.SteamStatsAndAchievementsClass, PC); | ||||
|           if (!PC.SteamStatsAndAchievements.Initialize(PC)) | ||||
|           { | ||||
|             Controller.OpenMenu(Controller.QuestionMenuClass); | ||||
|             GUIQuestionPage(Controller.TopPage()).SetupQuestion(class'KFMainMenu'.default.UnknownSteamErrorText, QBTN_Ok, QBTN_Ok); | ||||
|             PC.SteamStatsAndAchievements.Destroy(); | ||||
|             PC.SteamStatsAndAchievements = none; | ||||
|           } | ||||
|           else | ||||
|           { | ||||
|             PC.SteamStatsAndAchievements.OnDataInitialized = OnSteamStatsAndAchievementsReady; | ||||
|           } | ||||
|         } | ||||
| 
 | ||||
|         bShowProfilePage = false; | ||||
|       } | ||||
|       else if (!PC.SteamStatsAndAchievements.bInitialized) | ||||
|       { | ||||
|         PC.SteamStatsAndAchievements.OnDataInitialized = OnSteamStatsAndAchievementsReady; | ||||
|         PC.SteamStatsAndAchievements.GetStatsAndAchievements(); | ||||
|         bShowProfilePage = false; | ||||
|       } | ||||
| 
 | ||||
|       if (KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements) != none) | ||||
|       { | ||||
|         for (i = 0; i < class'KFGameType'.default.LoadedSkills.Length; i++) | ||||
|         { | ||||
|           if (KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements).GetPerkProgress(i) < 0.0) | ||||
|           { | ||||
|             PC.SteamStatsAndAchievements.OnDataInitialized = OnSteamStatsAndAchievementsReady; | ||||
|             PC.SteamStatsAndAchievements.GetStatsAndAchievements(); | ||||
|             bShowProfilePage = false; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       if (bShowProfilePage) | ||||
|       { | ||||
|         OnSteamStatsAndAchievementsReady(); | ||||
|       } | ||||
| 
 | ||||
|       bShouldUpdateVeterancy = false; | ||||
|     } | ||||
|     else if (PC.SteamStatsAndAchievements != none && PC.SteamStatsAndAchievements.bInitialized) | ||||
|     { | ||||
|       KFPlayerController(PC).SendSelectedVeterancyToServer(); | ||||
|       bShouldUpdateVeterancy = false; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // First fill in non-ready players.
 | ||||
|   for (i = 0; i < KFGRI.PRIArray.Length; i++) | ||||
|   { | ||||
|     if (!bValidPRI(KFGRI.PRIArray[i]) || KFGRI.PRIArray[i].bReadyToPlay) | ||||
|       continue; | ||||
| 
 | ||||
|     // start from 0
 | ||||
|     AddPlayer(KFPlayerReplicationInfo(KFGRI.PRIArray[i]), j, C); | ||||
|     if (++j >= MaxPlayersOnList) | ||||
|       GoTo'DoneIt'; | ||||
|   } | ||||
| 
 | ||||
|   // Then comes rest.
 | ||||
|   for (i = 0; i < KFGRI.PRIArray.Length; i++) | ||||
|   { | ||||
|     if (!bValidPRI(KFGRI.PRIArray[i]) || !KFGRI.PRIArray[i].bReadyToPlay) | ||||
|       continue; | ||||
| 
 | ||||
|     if (KFGRI.PRIArray[i].bReadyToPlay) | ||||
|     { | ||||
|       if (!bTimeoutTimeLogged) | ||||
|       { | ||||
|         ActivateTimeoutTime = PC.Level.TimeSeconds; | ||||
|         bTimeoutTimeLogged = true; | ||||
|       } | ||||
|     } | ||||
|     // continue from last idx
 | ||||
|     AddPlayer(KFPlayerReplicationInfo(KFGRI.PRIArray[i]), j, C); | ||||
|     if (++j >= MaxPlayersOnList) | ||||
|       GoTo'DoneIt'; | ||||
|   } | ||||
| 
 | ||||
|   if (j < MaxPlayersOnList) | ||||
|     EmptyPlayers(j); | ||||
| 
 | ||||
| DoneIt: | ||||
|   StoryString = PC.Level.Description; | ||||
| 
 | ||||
|   if (KFGRI.BaseDifficulty <= 1) | ||||
|     SkillString = str_Beginner; | ||||
|   else if (KFGRI.BaseDifficulty <= 2) | ||||
|     SkillString = str_Normal; | ||||
|   else if (KFGRI.BaseDifficulty <= 4) | ||||
|     SkillString = str_Hard; | ||||
|   else if (KFGRI.BaseDifficulty <= 5) | ||||
|     SkillString = str_Sui; | ||||
|   else | ||||
|     SkillString = str_HOE; | ||||
| 
 | ||||
|   CurrentMapLabel.Caption = str_CurrentMap @ PC.Level.Title; | ||||
|   DifficultyLabel.Caption = str_Difficulty @ SkillString; | ||||
| 
 | ||||
|   // UT2K4PlayerLoginMenu copy-cat
 | ||||
|   if (PC.Level.NetMode == NM_StandAlone || PC.GameReplicationInfo == None || PC.GameReplicationInfo.ServerName == "") | ||||
| 		ServerNameLabel.Caption = str_ServerName @ "SOLO MODE ACTIVE!"; | ||||
| 	else | ||||
|     ServerNameLabel.Caption = str_ServerName @ PC.GameReplicationInfo.ServerName; | ||||
| 
 | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // filter none, spectators, non-KFPRI ones
 | ||||
| final private function bool bValidPRI(PlayerReplicationInfo PRI) | ||||
| { | ||||
|   if (PRI == none || PRI.bOnlySpectator || KFPlayerReplicationInfo(PRI) == none) | ||||
|     return false; | ||||
|   else | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| final private function AddPlayer(KFPlayerReplicationInfo PRI, int Index, Canvas C) | ||||
| { | ||||
|   local float Top; | ||||
|   local Material M; | ||||
|   local ScrnBalance Mut; | ||||
|   local String PlayerName; | ||||
| 
 | ||||
|   if (Index >= PlayerBoxes.Length) | ||||
|   { | ||||
|     Top = Index * 0.045; | ||||
|     PlayerBoxes.Length = Index + 1; | ||||
|     // create GUIComponents and set defaults
 | ||||
|     PlayerBoxes[Index].ReadyBox = new (none) Class'moCheckBox'; | ||||
|     PlayerBoxes[Index].ReadyBox.bValueReadOnly = true; | ||||
|     PlayerBoxes[Index].ReadyBox.ComponentJustification = TXTA_Left; | ||||
|     PlayerBoxes[Index].ReadyBox.CaptionWidth = 0.82; | ||||
|     PlayerBoxes[Index].ReadyBox.LabelColor.B = 0; | ||||
|     PlayerBoxes[Index].ReadyBox.WinTop = 0.0475+Top; | ||||
|     PlayerBoxes[Index].ReadyBox.WinLeft = 0.075; | ||||
|     PlayerBoxes[Index].ReadyBox.WinWidth = 0.4; | ||||
|     PlayerBoxes[Index].ReadyBox.WinHeight = 0.045; | ||||
|     PlayerBoxes[Index].ReadyBox.RenderWeight = 0.55; | ||||
|     PlayerBoxes[Index].ReadyBox.bAcceptsInput = false; | ||||
|     PlayerBoxes[Index].PlayerBox = new (none) Class'KFPlayerReadyBar'; | ||||
|     PlayerBoxes[Index].PlayerBox.WinTop = 0.04+Top; | ||||
|     PlayerBoxes[Index].PlayerBox.WinLeft = 0.04; | ||||
|     PlayerBoxes[Index].PlayerBox.WinWidth = 0.35; | ||||
|     PlayerBoxes[Index].PlayerBox.WinHeight = 0.045; | ||||
|     PlayerBoxes[Index].PlayerBox.RenderWeight = 0.35; | ||||
|     PlayerBoxes[Index].PlayerPerk = new (none) Class'GUIImage'; | ||||
|     PlayerBoxes[Index].PlayerPerk.ImageStyle = ISTY_Justified; | ||||
|     PlayerBoxes[Index].PlayerPerk.WinTop = 0.043+Top; | ||||
|     PlayerBoxes[Index].PlayerPerk.WinLeft = 0.0418; | ||||
|     PlayerBoxes[Index].PlayerPerk.WinWidth = 0.039; | ||||
|     PlayerBoxes[Index].PlayerPerk.WinHeight = 0.039; | ||||
|     PlayerBoxes[Index].PlayerPerk.RenderWeight = 0.56; | ||||
|     PlayerBoxes[Index].PlayerVetLabel = new (none) Class'GUILabel'; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.TextAlign = TXTA_Right; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.TextColor = Class'Canvas'.Static.MakeColor(19,19,19); | ||||
|     PlayerBoxes[Index].PlayerVetLabel.TextFont = "UT2SmallFont"; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.WinTop = 0.04+Top; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.WinLeft = 0.22907; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.WinWidth = 0.151172; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.WinHeight = 0.045; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.RenderWeight = 0.5; | ||||
| 
 | ||||
|     // finally add the GUIComponents
 | ||||
|     AppendComponent(PlayerBoxes[Index].ReadyBox, true); | ||||
|     AppendComponent(PlayerBoxes[Index].PlayerBox, true); | ||||
|     AppendComponent(PlayerBoxes[Index].PlayerPerk, true); | ||||
|     AppendComponent(PlayerBoxes[Index].PlayerVetLabel, true); | ||||
| 
 | ||||
|     Top = (PlayerBoxes[Index].PlayerBox.WinTop + PlayerBoxes[Index].PlayerBox.WinHeight); | ||||
|   } | ||||
|   PlayerBoxes[Index].ReadyBox.Checked(PRI.bReadyToPlay); | ||||
|   Mut = class'ScrnBalance'.default.Mut; | ||||
|   if ( Mut != none ) | ||||
|     PlayerName = Mut.LeftCol(Mut.ColoredPlayerName(PRI), 20); | ||||
|   else | ||||
|     PlayerName = Left(PRI.PlayerName, 20); | ||||
| 
 | ||||
|   PlayerBoxes[Index].ReadyBox.SetCaption(" "$PlayerName); | ||||
| 
 | ||||
|   if (PRI.ClientVeteranSkill != none) | ||||
|   { | ||||
|     PlayerBoxes[Index].PlayerVetLabel.Caption = str_LvlAbbr @ PRI.ClientVeteranSkillLevel @ PRI.ClientVeteranSkill.default.VeterancyName; | ||||
|     if (Class<SRVeterancyTypes>(PRI.ClientVeteranSkill) != None) | ||||
|     { | ||||
|       Class<SRVeterancyTypes>(PRI.ClientVeteranSkill).Static.PreDrawPerk(C,PRI.ClientVeteranSkillLevel,PlayerBoxes[Index].PlayerPerk.Image,M); | ||||
|       PlayerBoxes[Index].PlayerPerk.ImageColor = C.DrawColor; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|       PlayerBoxes[Index].PlayerPerk.Image = PRI.ClientVeteranSkill.default.OnHUDIcon; | ||||
|       PlayerBoxes[Index].PlayerPerk.ImageColor = Class'Canvas'.Static.MakeColor(255,255,255); | ||||
|     } | ||||
|   } | ||||
|   else | ||||
|   { | ||||
|     PlayerBoxes[Index].PlayerPerk.Image = None; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.Caption = ""; | ||||
|   } | ||||
|   PlayerBoxes[Index].bIsEmpty = false; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| final private function EmptyPlayers(int Index) | ||||
| { | ||||
|   local int i; | ||||
| 
 | ||||
|   while (Index < PlayerBoxes.Length && !PlayerBoxes[Index].bIsEmpty) | ||||
|   { | ||||
|     PlayerBoxes[Index].ReadyBox.Checked(false); | ||||
|     PlayerBoxes[Index].PlayerPerk.Image = none; | ||||
|     PlayerBoxes[Index].PlayerVetLabel.Caption = ""; | ||||
|     PlayerBoxes[Index].ReadyBox.SetCaption(""); | ||||
|     PlayerBoxes[Index].bIsEmpty = true; | ||||
|     ++Index; | ||||
|   } | ||||
| 
 | ||||
|   for (i = 0; i < PlayerBoxes.Length; i++) | ||||
|   { | ||||
|     if (PlayerBoxes[i].bIsEmpty) | ||||
|     { | ||||
|       // remove GUIComponents
 | ||||
|       RemoveComponent(PlayerBoxes[i].ReadyBox, false); | ||||
|       RemoveComponent(PlayerBoxes[i].PlayerBox, false); | ||||
|       RemoveComponent(PlayerBoxes[i].PlayerPerk, false); | ||||
|       RemoveComponent(PlayerBoxes[i].PlayerVetLabel, false); | ||||
|       // remove refs
 | ||||
|       PlayerBoxes[i].ReadyBox = none; | ||||
|       PlayerBoxes[i].PlayerBox = none; | ||||
|       PlayerBoxes[i].PlayerPerk = none; | ||||
|       PlayerBoxes[i].PlayerVetLabel = none; | ||||
|       // remove from array
 | ||||
|       PlayerBoxes.remove(i, 1); | ||||
|       // everything works fine this way, do not log
 | ||||
|       // log(">>> NiceLobbyMenu: EmptyPlayers executed.");
 | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function bool StopClose(optional bool bCancelled) | ||||
| { | ||||
|   // clean chat box
 | ||||
|   t_ChatBox.lb_Chat.SetContent(""); | ||||
| 
 | ||||
|   // this is for the OnCanClose delegate
 | ||||
|   // can't close now unless done by call to CloseAll,
 | ||||
|   // or the bool has been set to true by LobbyFooter
 | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| function InternalOnClosed(bool bCancelled) | ||||
| { | ||||
|   if (PlayerOwner() != none) | ||||
|   { | ||||
|     PlayerOwner().Advertising_ExitZone(); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| event Timer() | ||||
| { | ||||
|   local KFGameReplicationInfo KF; | ||||
| 
 | ||||
|   if (PlayerOwner().PlayerReplicationInfo == none) | ||||
|     return; | ||||
| 
 | ||||
|   if (PlayerOwner().PlayerReplicationInfo.bOnlySpectator) | ||||
|   { | ||||
|     label_TimeOutCounter.caption = "You are a spectator."; | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   KF = KFGameReplicationInfo(PlayerOwner().GameReplicationInfo); | ||||
| 
 | ||||
|   if (KF == none) | ||||
|   { | ||||
|     label_TimeOutCounter.caption = WaitingForServerStatus; | ||||
|   } | ||||
|   else if (KF.LobbyTimeout <= 0) | ||||
|   { | ||||
|     label_TimeOutCounter.caption = WaitingForOtherPlayers; | ||||
|   } | ||||
|   else | ||||
|   { | ||||
|     label_TimeOutCounter.caption = AutoCommence $ KF.LobbyTimeout; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| final private function DrawPerk(Canvas Canvas) | ||||
| { | ||||
|   local float X, Y, Width, Height; | ||||
|   local int LevelIndex; | ||||
|   local float TempX, TempY; | ||||
|   local float TempWidth, TempHeight; | ||||
|   local float IconSize, ProgressBarWidth; | ||||
|   local string PerkName, PerkLevelString; | ||||
|   local KFPlayerReplicationInfo KFPRI; | ||||
|   local Material M, SM; | ||||
| 
 | ||||
|   DrawPortrait(); | ||||
| 
 | ||||
|   KFPRI = KFPlayerReplicationInfo(PlayerOwner().PlayerReplicationInfo); | ||||
| 
 | ||||
|   if (KFPRI == none || KFPRI.ClientVeteranSkill == None) | ||||
|   { | ||||
|     if (CurrentVeterancyLevel != 255) | ||||
|     { | ||||
|       CurrentVeterancyLevel = 255; | ||||
|       lb_PerkEffects.SetContent("None perk active"); | ||||
|     } | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   LevelIndex = KFPRI.ClientVeteranSkillLevel; | ||||
| 	PerkName = KFPRI.ClientVeteranSkill.default.VeterancyName; | ||||
| 	PerkLevelString = str_LvlAbbr @ LevelIndex; | ||||
| 
 | ||||
|   //Get the position size etc in pixels
 | ||||
|   X = (i_BGPerk.WinLeft + 0.003) * Canvas.ClipX; | ||||
|   Y = (i_BGPerk.WinTop + 0.040) * Canvas.ClipY; | ||||
| 
 | ||||
|   Width = (i_BGPerk.WinWidth - 0.006) * Canvas.ClipX; | ||||
|   Height = (i_BGPerk.WinHeight - 0.043) * Canvas.ClipY; | ||||
| 
 | ||||
|   // Offset for the Background
 | ||||
|   TempX = X; | ||||
|   TempY = Y; | ||||
| 
 | ||||
|   // Initialize the Canvas
 | ||||
|   Canvas.Style = 1; | ||||
|   Canvas.Font = class'ROHUD'.Static.GetSmallMenuFont(Canvas); | ||||
|   Canvas.SetDrawColor(255, 255, 255, 255); | ||||
| 
 | ||||
|   // Draw Item Background
 | ||||
|   Canvas.SetPos(TempX, TempY); | ||||
| 
 | ||||
|   // Offset and Calculate Icon's Size
 | ||||
|   TempX += ItemBorder * Height; | ||||
|   TempY += ItemBorder * Height; | ||||
|   IconSize = Height - (ItemBorder * 2.0 * Height); | ||||
| 
 | ||||
|   // Draw Icon
 | ||||
|   Canvas.SetPos(TempX, TempY); | ||||
|   if( Class<SRVeterancyTypes>(KFPRI.ClientVeteranSkill)!=None ) | ||||
| 		Class<SRVeterancyTypes>(KFPRI.ClientVeteranSkill).Static.PreDrawPerk(Canvas,KFPRI.ClientVeteranSkillLevel,M,SM); | ||||
| 	else M = KFPRI.ClientVeteranSkill.default.OnHUDIcon; | ||||
| 	Canvas.DrawTile(M, IconSize, IconSize, 0, 0, M.MaterialUSize(), M.MaterialVSize()); | ||||
| 
 | ||||
|   TempX += IconSize + (IconToInfoSpacing * Width); | ||||
|   TempY += TextTopOffset * Height; | ||||
| 
 | ||||
|   ProgressBarWidth = Width - (TempX - X) - (IconToInfoSpacing * Width); | ||||
| 
 | ||||
|   // Select Text Color
 | ||||
|   Canvas.SetDrawColor(255, 255, 255, 255); | ||||
| 
 | ||||
|   // Draw the Perk's Level name
 | ||||
|   Canvas.StrLen(PerkName, TempWidth, TempHeight); | ||||
|   Canvas.SetPos(TempX, TempY); | ||||
|   Canvas.DrawText(PerkName); | ||||
| 
 | ||||
|   // Draw the Perk's Level
 | ||||
|   if (PerkLevelString != "") | ||||
|   { | ||||
|     Canvas.StrLen(PerkLevelString, TempWidth, TempHeight); | ||||
|     Canvas.SetPos(TempX + ProgressBarWidth - TempWidth, TempY); | ||||
|     Canvas.DrawText(PerkLevelString); | ||||
|   } | ||||
| 
 | ||||
|   TempY += TempHeight + (0.01 * Height); | ||||
| 
 | ||||
|   if (CurrentVeterancy != KFPRI.ClientVeteranSkill || CurrentVeterancyLevel != LevelIndex) | ||||
|   { | ||||
|     CurrentVeterancy = KFPRI.ClientVeteranSkill; | ||||
|     CurrentVeterancyLevel = LevelIndex; | ||||
|     lb_PerkEffects.SetContent(Class<SRVeterancyTypes>(KFPRI.ClientVeteranSkill).Static.GetVetInfoText(LevelIndex,1)); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| final private function DrawPortrait() | ||||
| { | ||||
|   if (PlayerOwner().PlayerReplicationInfo != none) | ||||
|     sChar = PlayerOwner().PlayerReplicationInfo.CharacterName; | ||||
|   else | ||||
|     sChar = PlayerOwner().GetUrlOption("Character"); | ||||
| 
 | ||||
|   if (sCharD != sChar) | ||||
|   { | ||||
|     sCharD = sChar; | ||||
|     SetPlayerRec(); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| final private function SetPlayerRec() | ||||
| { | ||||
|   PlayerRec = Class'xUtil'.Static.FindPlayerRecord(sChar); | ||||
|   i_Portrait.Image = PlayerRec.Portrait; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| final private function bool ShowPerkMenu(GUIComponent Sender) | ||||
| { | ||||
|   if (PlayerOwner() != none) | ||||
|   { | ||||
|     if (ScrnPlayerController(PlayerOwner()) != none ) | ||||
|       PlayerOwner().ClientOpenMenu(ScrnPlayerController(PlayerOwner()).ProfilePageClassString, false); | ||||
|     else | ||||
|       PlayerOwner().ClientOpenMenu(string(class'ScrnProfilePage'), false); | ||||
|   } | ||||
| 
 | ||||
|   return true; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| final private function OnSteamStatsAndAchievementsReady() | ||||
| { | ||||
|   Controller.OpenMenu("KFGUI.KFProfilePage"); | ||||
| 
 | ||||
|   Controller.OpenMenu(Controller.QuestionMenuClass); | ||||
|   GUIQuestionPage(Controller.TopPage()).SetupQuestion(SelectPerkInformationString, QBTN_Ok, QBTN_Ok); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| //=============================================================================
 | ||||
| //                             DEFAULTPROPERTIES
 | ||||
| //=============================================================================
 | ||||
| defaultproperties | ||||
| { | ||||
|     Begin Object Class=NiceLobbyFooter Name=BuyFooter | ||||
|         RenderWeight=0.300000 | ||||
|         TabOrder=8 | ||||
|         bBoundToParent=False | ||||
|         bScaleToParent=False | ||||
|         OnPreDraw=BuyFooter.InternalOnPreDraw | ||||
|     End Object | ||||
|     t_Footer=NiceLobbyFooter'NicePack.NiceLobbyMenu.BuyFooter' | ||||
| } | ||||
|   str_Beginner="Beginner" | ||||
|   str_Normal="Normal" | ||||
|   str_Hard="Hard" | ||||
|   str_Sui="Suicidal" | ||||
|   str_HOE="Hell on Earth" | ||||
| 
 | ||||
|   str_LvlAbbr="Lv" | ||||
|   str_CurrentMap="Current Map:" | ||||
|   str_Difficulty="Difficulty:" | ||||
|   str_ServerName="Server Name:" | ||||
| 
 | ||||
|   SelectPerkInformationString="Perks enhance certain abilities of your character.|There are 6 Perks to choose from in the center of the screen.|Each has different Effects shown in the upper right.|Perks improve as you complete the Level Requirements shown on the right." | ||||
|   PerksDisabledString="Perk Progress has been disabled because the Game Length is set to Custom, Sandbox Mode is on, or you have previously used Cheats." | ||||
| 
 | ||||
|   WaitingForServerStatus="Awaiting server status..." | ||||
|   WaitingForOtherPlayers="Waiting for players to be ready..." | ||||
|   AutoCommence="Game will auto-commence in: " | ||||
| 
 | ||||
|   // replace LobbyChat
 | ||||
|   Begin Object Class=NiceLobbyChat Name=ChatBox | ||||
|     OnCreateComponent=ChatBox.InternalOnCreateComponent | ||||
|     TabOrder=1 | ||||
|     RenderWeight=0.01 | ||||
|     OnHover=ChatBox.FloatingHover | ||||
|     WinTop=0.80760 | ||||
|     WinLeft=0.016090 | ||||
|     WinWidth=0.971410 | ||||
|     WinHeight=0.100000 | ||||
|     ToolTip=none | ||||
|   End Object | ||||
|   t_ChatBox=ChatBox | ||||
| 
 | ||||
|   // replace LobbyFooter
 | ||||
|   Begin Object Class=NiceLobbyFooter Name=BuyFooter | ||||
|     RenderWeight=0.300000 | ||||
|     TabOrder=8 | ||||
|     bBoundToParent=false | ||||
|     bScaleToParent=false | ||||
|     OnPreDraw=BuyFooter.InternalOnPreDraw | ||||
|   End Object | ||||
|   t_Footer=BuyFooter | ||||
| 
 | ||||
|   // RIGHT part, server name - map name - difficulty - waves
 | ||||
|   Begin Object Class=AltSectionBackground Name=GameInfoB | ||||
|     WinTop=0.037851 | ||||
|     WinLeft=0.489062 | ||||
|     WinWidth=0.487374 | ||||
|     WinHeight=0.100000 | ||||
|     OnPreDraw=GameInfoB.InternalPreDraw | ||||
|   End Object | ||||
|   GameInfoBG=GameInfoB | ||||
| 
 | ||||
|   Begin Object Class=GUILabel Name=ServerNameL | ||||
|     Caption="tmp name" | ||||
|     TextColor=(B=158,G=176,R=175) | ||||
|     WinTop=0.042179 | ||||
|     WinLeft=0.496524 | ||||
|     WinWidth=0.360000 | ||||
|     WinHeight=0.035714 | ||||
|     RenderWeight=0.900000 | ||||
|   End Object | ||||
|   ServerNameLabel=ServerNameL | ||||
| 
 | ||||
|   Begin Object Class=GUILabel Name=CurrentMapL | ||||
|     Caption="tmp Map" | ||||
|     TextColor=(B=158,G=176,R=175) | ||||
|     WinTop=0.072381 | ||||
|     WinLeft=0.496524 | ||||
|     WinWidth=0.360000 | ||||
|     WinHeight=0.035714 | ||||
|     RenderWeight=0.900000 | ||||
|   End Object | ||||
|   CurrentMapLabel=CurrentMapL | ||||
| 
 | ||||
|   Begin Object Class=GUILabel Name=DifficultyL | ||||
|     Caption="tmp diff" | ||||
|     TextColor=(B=158,G=176,R=175) | ||||
|     WinTop=0.102583 | ||||
|     WinLeft=0.496524 | ||||
|     WinWidth=0.360000 | ||||
|     WinHeight=0.035714 | ||||
|     RenderWeight=0.900000 | ||||
|   End Object | ||||
|   DifficultyLabel=DifficultyL | ||||
| 
 | ||||
|   Begin Object Class=GUIImage Name=WaveB | ||||
|     Image=Texture'KillingFloorHUD.HUD.Hud_Bio_Circle' | ||||
|     ImageStyle=ISTY_Justified | ||||
|     ImageRenderStyle=MSTY_Normal | ||||
|     WinTop=0.043810 | ||||
|     WinLeft=0.923238 | ||||
|     WinWidth=0.051642 | ||||
|     WinHeight=0.061783 | ||||
|     RenderWeight=0.800000 | ||||
|   End Object | ||||
|   WaveBG=WaveB | ||||
| 
 | ||||
|   Begin Object Class=GUILabel Name=WaveL | ||||
|     Caption="1/4" | ||||
|     TextAlign=TXTA_Center | ||||
|     TextColor=(B=158,G=176,R=175) | ||||
|     VertAlign=TXTA_Center | ||||
|     FontScale=FNS_Small | ||||
|     WinTop=0.043810 | ||||
|     WinLeft=0.923238 | ||||
|     WinWidth=0.051642 | ||||
|     WinHeight=0.061783 | ||||
|     RenderWeight=0.900000 | ||||
|   End Object | ||||
|   WaveLabel=WaveL | ||||
| 
 | ||||
|   // LEFT part
 | ||||
|   Begin Object Class=GUILabel Name=TimeOutCounter | ||||
|     Caption="Game will auto-commence in: " | ||||
|     TextAlign=TXTA_Center | ||||
|     TextColor=(B=158,G=176,R=175) | ||||
|     WinTop=0.000010 | ||||
|     WinLeft=0.059552 | ||||
|     WinWidth=0.346719 | ||||
|     WinHeight=0.045704 | ||||
|     TabOrder=6 | ||||
|   End Object | ||||
|   label_TimeOutCounter=TimeOutCounter | ||||
| 
 | ||||
|   Begin Object Class=GUILabel Name=PerkClickArea | ||||
|     WinTop=0.432395 | ||||
|     WinLeft=0.488851 | ||||
|     WinWidth=0.444405 | ||||
|     WinHeight=0.437312 | ||||
|     bAcceptsInput=true | ||||
|     OnClickSound=CS_Click | ||||
|     OnClick=NiceLobbyMenu.ShowPerkMenu | ||||
|   End Object | ||||
|   PerkClickLabel=PerkClickArea | ||||
| 
 | ||||
|   Begin Object Class=GUISectionBackground Name=BGPerk | ||||
|     bFillClient=true | ||||
|     Caption="Current Perk" | ||||
|     WinTop=0.432291 | ||||
|     WinLeft=0.650976 | ||||
|     WinWidth=0.325157 | ||||
|     WinHeight=0.138086 | ||||
|     OnPreDraw=BGPerk.InternalPreDraw | ||||
|   End Object | ||||
|   i_BGPerk=BGPerk | ||||
| 
 | ||||
|   Begin Object Class=GUISectionBackground Name=BGPerkEffects | ||||
|     bFillClient=true | ||||
|     Caption="Perk Effects" | ||||
|     WinTop=0.568448 | ||||
|     WinLeft=0.650976 | ||||
|     WinWidth=0.325157 | ||||
|     WinHeight=0.307442 | ||||
|     OnPreDraw=BGPerkEffects.InternalPreDraw | ||||
|   End Object | ||||
|   i_BGPerkEffects=BGPerkEffects | ||||
| 
 | ||||
|   Begin Object Class=GUIScrollTextBox Name=PerkEffectsScroll | ||||
|     CharDelay=0.002500 | ||||
|     EOLDelay=0.100000 | ||||
|     OnCreateComponent=PerkEffectsScroll.InternalOnCreateComponent | ||||
|     WinTop=0.626094 | ||||
|     WinLeft=0.659687 | ||||
|     WinWidth=0.309454 | ||||
|     WinHeight=0.244961 | ||||
|     TabOrder=9 | ||||
|     ToolTip=none | ||||
|   End Object | ||||
|   lb_PerkEffects=PerkEffectsScroll | ||||
| 
 | ||||
|   Begin Object Class=GUIImage Name=PlayerPortrait | ||||
|     Image=Texture'InterfaceArt_tex.Menu.changeme_texture' | ||||
|     ImageStyle=ISTY_Scaled | ||||
|     ImageRenderStyle=MSTY_Normal | ||||
|     IniOption="@Internal" | ||||
|     WinTop=0.472396 | ||||
|     WinLeft=0.492522 | ||||
|     WinWidth=0.156368 | ||||
|     WinHeight=0.397022 | ||||
|     RenderWeight=0.300000 | ||||
|   End Object | ||||
|   i_Portrait=PlayerPortrait | ||||
| 
 | ||||
|   Begin Object Class=GUISectionBackground Name=PlayerPortraitB | ||||
|     WinTop=0.432291 | ||||
|     WinLeft=0.489062 | ||||
|     WinWidth=0.163305 | ||||
|     WinHeight=0.443451 | ||||
|     OnPreDraw=PlayerPortraitB.InternalPreDraw | ||||
|   End Object | ||||
|   PlayerPortraitBG=PlayerPortraitB | ||||
| 
 | ||||
|   IconBorder=0.050000 | ||||
|   ItemBorder=0.110000 | ||||
|   ProgressBarHeight=0.300000 | ||||
|   TextTopOffset=0.050000 | ||||
|   IconToInfoSpacing=0.050000 | ||||
| 
 | ||||
|   c_Tabs=GUITabControl'KFGui.GUILibraryMenu.PageTabs' | ||||
| 
 | ||||
|   Begin Object Class=GUIHeader Name=ServerBrowserHeader | ||||
|     bVisible=false | ||||
|   End Object | ||||
|   t_Header=ServerBrowserHeader | ||||
| 
 | ||||
|   i_Background=none | ||||
|   i_bkChar=none | ||||
| 
 | ||||
|   bRenderWorld=true | ||||
|   bAllowedAsLast=true | ||||
|   OnClose=NiceLobbyMenu.InternalOnClosed | ||||
|   OnCanClose=NiceLobbyMenu.StopClose | ||||
|   WinHeight=0.500000 | ||||
|   OnPreDraw=NiceLobbyMenu.InternalOnPreDraw | ||||
|   OnRendered=NiceLobbyMenu.DrawPerk | ||||
|   OnKeyEvent=NiceLobbyMenu.InternalOnKeyEvent | ||||
| } | ||||
| @ -37,7 +37,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn1A.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonA(0)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn1A' | ||||
|     skillButtonA(0)=btn1A | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn2A | ||||
|         WinTop=0.188500 | ||||
| @ -51,7 +51,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn2A.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonA(1)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn2A' | ||||
|     skillButtonA(1)=btn2A | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn3A | ||||
|         WinTop=0.364500 | ||||
| @ -65,7 +65,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn3A.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonA(2)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn3A' | ||||
|     skillButtonA(2)=btn3A | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn4A | ||||
|         WinTop=0.540500 | ||||
| @ -79,7 +79,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn4A.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonA(3)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn4A' | ||||
|     skillButtonA(3)=btn4A | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn5A | ||||
|         WinTop=0.716500 | ||||
| @ -93,7 +93,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn5A.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonA(4)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn5A' | ||||
|     skillButtonA(4)=btn5A | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn1B | ||||
|         WinTop=0.012500 | ||||
| @ -108,7 +108,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn1B.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonB(0)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn1B' | ||||
|     skillButtonB(0)=btn1B | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn2B | ||||
|         WinTop=0.188500 | ||||
| @ -123,7 +123,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn2B.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonB(1)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn2B' | ||||
|     skillButtonB(1)=btn2B | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn3B | ||||
|         WinTop=0.364500 | ||||
| @ -138,7 +138,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn3B.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonB(2)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn3B' | ||||
|     skillButtonB(2)=btn3B | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn4B | ||||
|         WinTop=0.540500 | ||||
| @ -153,7 +153,7 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn4B.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonB(3)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn4B' | ||||
|     skillButtonB(3)=btn4B | ||||
| 
 | ||||
|     Begin Object Class=NiceGUIPerkButton Name=btn5B | ||||
|         WinTop=0.716500 | ||||
| @ -168,5 +168,5 @@ defaultproperties | ||||
|         OnClickSound=CS_None | ||||
|         OnKeyEvent=btn5B.InternalOnKeyEvent | ||||
|     End Object | ||||
|     skillButtonB(4)=NiceGUIPerkButton'NicePack.NicePanelSkills.btn5B' | ||||
|     skillButtonB(4)=btn5B | ||||
| } | ||||
|  | ||||
| @ -261,8 +261,8 @@ function Killed(Controller Killer, Controller Killed, Pawn KilledPawn, class<Dam | ||||
|                 AvoidArea = Spawn(class'NiceAvoidMarkerCarnage', killer.pawn); | ||||
|                 AvoidArea.SetLocation(KilledPawn.location); | ||||
|                 AvoidArea.healthLevel = killedPawn.default.health; | ||||
|                 AvoidArea.SetCollisionSize( class'NicePack.NiceSkillEnforcerBrutalCarnageA'.default.avoidRadius, | ||||
|                                             class'NicePack.NiceSkillEnforcerBrutalCarnageA'.default.avoidRadius); | ||||
|                 AvoidArea.SetCollisionSize( class'NiceSkillEnforcerBrutalCarnageA'.default.avoidRadius, | ||||
|                                             class'NiceSkillEnforcerBrutalCarnageA'.default.avoidRadius); | ||||
|                 AvoidArea.StartleBots(); | ||||
|             } | ||||
|             //   Rest
 | ||||
|  | ||||
| @ -65,8 +65,8 @@ simulated function bool IsZedExtentionsRecorded(NiceMonster niceZed){ | ||||
| } | ||||
| function ReplaceRequiredEquipment(){ | ||||
|     Super.ReplaceRequiredEquipment(); | ||||
|     RequiredEquipment[0] = String(class'NicePack.NiceMachete'); | ||||
|     RequiredEquipment[1] = String(class'NicePack.Nice9mmPlus'); | ||||
|     RequiredEquipment[0] = String(class'NiceMachete'); | ||||
|     RequiredEquipment[1] = String(class'Nice9mmPlus'); | ||||
|     RequiredEquipment[2] = String(class'ScrnBalanceSrv.ScrnFrag'); | ||||
|     RequiredEquipment[3] = String(class'ScrnBalanceSrv.ScrnSyringe'); | ||||
|     RequiredEquipment[4] = String(class'KFMod.Welder'); | ||||
| @ -487,19 +487,19 @@ simulated function ClientChangeWeapon(NiceWeapon newWeap){ | ||||
| } | ||||
| 
 | ||||
| // Validate that client is not hacking.
 | ||||
| function bool CanBuyNow(){ | ||||
| function bool CanBuyNow() | ||||
| { | ||||
|     local NicePlayerController niceController; | ||||
| 
 | ||||
|     niceController = NicePlayerController(Controller); | ||||
|     if(niceController == none) | ||||
|     if (niceController == none) | ||||
|        return false; | ||||
|     if(NiceGameType(Level.Game) != none && NiceGameType(Level.Game).NicePackMutator != none | ||||
|     if (NiceGameType(Level.Game) != none && NiceGameType(Level.Game).NicePackMutator != none | ||||
|        && NiceGameType(Level.Game).NicePackMutator.bIsPreGame) | ||||
|        return true; | ||||
|     if(NiceTSCGame(Level.Game) != none && NiceTSCGame(Level.Game).NicePackMutator != none | ||||
|        && NiceTSCGame(Level.Game).NicePackMutator.bIsPreGame) | ||||
|        return true; | ||||
|     return Super.CanBuyNow(); | ||||
| } | ||||
| 
 | ||||
| // Overridden to not modify dual pistols' weapon group
 | ||||
| function bool AddInventory(inventory NewItem){ | ||||
|     local KFWeapon weap; | ||||
|  | ||||
| @ -54,7 +54,6 @@ var int deadBodyCounter; | ||||
| var ScrnBalance ScrnMut; | ||||
| var ScrnGameType ScrnGT; | ||||
| var NiceGameType NiceGT; | ||||
| var NiceTSCGame NiceTSC; | ||||
| var NicePack Mut; | ||||
| var NiceRules GameRules; | ||||
| var NiceStorageServer serverStorage; | ||||
| @ -177,15 +176,15 @@ simulated function PostBeginPlay(){ | ||||
|     class'ScrnHorzineVestPickup'.default.cost = 750; | ||||
|     class'NicePack'.default.Mut = self; | ||||
|     // Gun skins
 | ||||
|     class'NicePack.NiceMaulerPickup'.default.VariantClasses[class'NicePack.NiceMaulerPickup'.default.VariantClasses.length] = class'ScrnBalanceSrv.ScrnSPSniperPickup'; | ||||
|     class'NicePack.NiceDeaglePickup'.default.VariantClasses[class'NicePack.NiceDeaglePickup'.default.VariantClasses.length] = class'NicePack.SkinExecutionerPickup'; | ||||
|     class'NicePack.NiceDualDeaglePickup'.default.VariantClasses[class'NicePack.NiceDualDeaglePickup'.default.VariantClasses.length] = class'NicePack.SkinDualExecutionerPickup'; | ||||
|     class'NicePack.NiceMagnumPickup'.default.VariantClasses[class'NicePack.NiceMagnumPickup'.default.VariantClasses.length] = class'NicePack.SkinCowboyMagnumPickup'; | ||||
|     class'NicePack.NiceDualMagnumPickup'.default.VariantClasses[class'NicePack.NiceDualMagnumPickup'.default.VariantClasses.length] = class'NicePack.SkinDualCowboyMagnumPickup'; | ||||
|     class'NicePack.NiceWinchesterPickup'.default.VariantClasses[class'NicePack.NiceWinchesterPickup'.default.VariantClasses.length] = class'NicePack.SkinRetroLARPickup'; | ||||
|     class'NicePack.NiceM14EBRPickup'.default.VariantClasses[class'NicePack.NiceM14EBRPickup'.default.VariantClasses.length] = class'NicePack.SkinM14EBR2ProPickup'; | ||||
|     class'ScrnBalanceSrv.ScrnKrissMPickup'.default.VariantClasses[class'ScrnBalanceSrv.ScrnKrissMPickup'.default.VariantClasses.length] = class'NicePack.SkinGoldenKrissPickup'; | ||||
|     class'NicePack.NiceSCARMK17Pickup'.default.VariantClasses[class'NicePack.NiceSCARMK17Pickup'.default.VariantClasses.length] = class'NicePack.SkinCamoSCARMK17Pickup'; | ||||
|     class'NiceMaulerPickup'.default.VariantClasses[class'NiceMaulerPickup'.default.VariantClasses.length] = class'ScrnBalanceSrv.ScrnSPSniperPickup'; | ||||
|     class'NiceDeaglePickup'.default.VariantClasses[class'NiceDeaglePickup'.default.VariantClasses.length] = class'SkinExecutionerPickup'; | ||||
|     class'NiceDualDeaglePickup'.default.VariantClasses[class'NiceDualDeaglePickup'.default.VariantClasses.length] = class'SkinDualExecutionerPickup'; | ||||
|     class'NiceMagnumPickup'.default.VariantClasses[class'NiceMagnumPickup'.default.VariantClasses.length] = class'SkinCowboyMagnumPickup'; | ||||
|     class'NiceDualMagnumPickup'.default.VariantClasses[class'NiceDualMagnumPickup'.default.VariantClasses.length] = class'SkinDualCowboyMagnumPickup'; | ||||
|     class'NiceWinchesterPickup'.default.VariantClasses[class'NiceWinchesterPickup'.default.VariantClasses.length] = class'SkinRetroLARPickup'; | ||||
|     class'NiceM14EBRPickup'.default.VariantClasses[class'NiceM14EBRPickup'.default.VariantClasses.length] = class'SkinM14EBR2ProPickup'; | ||||
|     class'ScrnBalanceSrv.ScrnKrissMPickup'.default.VariantClasses[class'ScrnBalanceSrv.ScrnKrissMPickup'.default.VariantClasses.length] = class'SkinGoldenKrissPickup'; | ||||
|     class'NiceSCARMK17Pickup'.default.VariantClasses[class'NiceSCARMK17Pickup'.default.VariantClasses.length] = class'SkinCamoSCARMK17Pickup'; | ||||
|     // Abilities
 | ||||
|     class'NiceAbilityManager'.default.events.static.AddAdapter(class'NiceSharpshooterAbilitiesAdapter', level); | ||||
|     class'NiceAbilityManager'.default.events.static.AddAdapter(class'NiceEnforcerAbilitiesAdapter', level); | ||||
| @ -193,36 +192,33 @@ simulated function PostBeginPlay(){ | ||||
|     if(Role < ROLE_Authority) | ||||
|        return; | ||||
|     //  Create sync node
 | ||||
|     serverStorage = new class'NicePack.NiceStorageServer'; | ||||
|     serverStorage = new class'NiceStorageServer'; | ||||
|     default.serverStorage = serverStorage; | ||||
|     serverStorage.events.static.AddAdapter(class'NiceRemoteDataAdapter', Level); | ||||
|     // Find game type and ScrN mutator
 | ||||
|     ScrnGT = ScrnGameType(Level.Game);  | ||||
|     NiceGT = NiceGameType(Level.Game); | ||||
|     NiceTSC = NiceTSCGame(Level.Game); | ||||
|     if(ScrnGT == none){ | ||||
|        Log("ERROR: Wrong GameType (requires at least ScrnGameType)", Class.Outer.Name); | ||||
|        Destroy(); | ||||
|        return; | ||||
|     } | ||||
|     // Skills menu
 | ||||
|     ScrnGT.LoginMenuClass = string(Class'NicePack.NiceInvasionLoginMenu'); | ||||
|     ScrnGT.LoginMenuClass = string(class'NiceInvasionLoginMenu'); | ||||
|     if(NiceGT != none) | ||||
|        NiceGT.RegisterMutator(Self); | ||||
|     if(NiceTSC != none) | ||||
|        NiceTSC.RegisterMutator(Self); | ||||
|     ScrnMut = ScrnGT.ScrnBalanceMut; | ||||
|     if(bReplacePickups) | ||||
|        ScrnMut.bReplacePickups = false; | ||||
|     // Replication of some variables
 | ||||
|     SetReplicationData(); | ||||
|     // New player controller class
 | ||||
|     if(!ClassIsChildOf(ScrnGT.PlayerControllerClass, class'NicePack.NicePlayerController')){ | ||||
|        ScrnGT.PlayerControllerClass = class'NicePack.NicePlayerController'; | ||||
|        ScrnGT.PlayerControllerClassName = string(Class'NicePack.NicePlayerController'); | ||||
|     if(!ClassIsChildOf(ScrnGT.PlayerControllerClass, class'NicePlayerController')){ | ||||
|        ScrnGT.PlayerControllerClass = class'NicePlayerController'; | ||||
|        ScrnGT.PlayerControllerClassName = string(class'NicePlayerController'); | ||||
|     } | ||||
|     // Game rules
 | ||||
|     GameRules = Spawn(Class'NicePack.NiceRules', self); | ||||
|     GameRules = Spawn(class'NiceRules', self); | ||||
|     // -- Lower starting HL
 | ||||
|     ScrnMut.GameRules.HardcoreLevel -= 7; | ||||
|     ScrnMut.GameRules.HardcoreLevelFloat -= 7; | ||||
| @ -230,64 +226,64 @@ simulated function PostBeginPlay(){ | ||||
|     i = 0; | ||||
|     // - Clot
 | ||||
|     record.ZedName = "Clot"; | ||||
|     record.ZedType = class'NicePack.NiceZombieClot'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieClot'; | ||||
|     record.ZedType = class'NiceZombieClot'; | ||||
|     record.MeanZedType = class'MeanZombieClot'; | ||||
|     record.HL = 0.0; | ||||
|     record.MeanHLBonus = 0.5; | ||||
|     record.bNeedsReplacement = bReplaceClot; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Crawler
 | ||||
|     record.ZedName = "Crawler"; | ||||
|     record.ZedType = class'NicePack.NiceZombieCrawler'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieCrawler'; | ||||
|     record.ZedType = class'NiceZombieCrawler'; | ||||
|     record.MeanZedType = class'MeanZombieCrawler'; | ||||
|     record.HL = 0.5; | ||||
|     record.MeanHLBonus = 1.5; | ||||
|     record.bNeedsReplacement = bReplaceCrawler; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Stalker
 | ||||
|     record.ZedName = "Stalker"; | ||||
|     record.ZedType = class'NicePack.NiceZombieStalker'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieStalker'; | ||||
|     record.ZedType = class'NiceZombieStalker'; | ||||
|     record.MeanZedType = class'MeanZombieStalker'; | ||||
|     record.HL = 0.5; | ||||
|     record.MeanHLBonus = 0.5; | ||||
|     record.bNeedsReplacement = bReplaceStalker; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Gorefast
 | ||||
|     record.ZedName = "Gorefast"; | ||||
|     record.ZedType = class'NicePack.NiceZombieGorefast'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieGorefast'; | ||||
|     record.ZedType = class'NiceZombieGorefast'; | ||||
|     record.MeanZedType = class'MeanZombieGorefast'; | ||||
|     record.HL = 0.0; | ||||
|     record.MeanHLBonus = 0.5; | ||||
|     record.bNeedsReplacement = bReplaceGorefast; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Bloat
 | ||||
|     record.ZedName = "Bloat"; | ||||
|     record.ZedType = class'NicePack.NiceZombieBloat'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieBloat'; | ||||
|     record.ZedType = class'NiceZombieBloat'; | ||||
|     record.MeanZedType = class'MeanZombieBloat'; | ||||
|     record.HL = 0.0; | ||||
|     record.MeanHLBonus = 0.5; | ||||
|     record.bNeedsReplacement = bReplaceBloat; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Siren
 | ||||
|     record.ZedName = "Siren"; | ||||
|     record.ZedType = class'NicePack.NiceZombieSiren'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieSiren'; | ||||
|     record.ZedType = class'NiceZombieSiren'; | ||||
|     record.MeanZedType = class'MeanZombieSiren'; | ||||
|     record.HL = 1.0; | ||||
|     record.MeanHLBonus = 1.0; | ||||
|     record.bNeedsReplacement = bReplaceSiren; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Husk
 | ||||
|     record.ZedName = "Husk"; | ||||
|     record.ZedType = class'NicePack.NiceZombieHusk'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieHusk'; | ||||
|     record.ZedType = class'NiceZombieHusk'; | ||||
|     record.MeanZedType = class'MeanZombieHusk'; | ||||
|     record.HL = 1.0; | ||||
|     record.MeanHLBonus = 1.5; | ||||
|     record.bNeedsReplacement = bReplaceHusk; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Scrake
 | ||||
|     record.ZedName = "Scrake"; | ||||
|     record.ZedType = class'NicePack.NiceZombieScrake'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieScrake'; | ||||
|     record.ZedType = class'NiceZombieScrake'; | ||||
|     record.MeanZedType = class'MeanZombieScrake'; | ||||
|     record.HL = 1.5; | ||||
|     record.MeanHLBonus = 1.5; | ||||
|     record.bNeedsReplacement = bReplaceScrake; | ||||
| @ -295,50 +291,50 @@ simulated function PostBeginPlay(){ | ||||
|     // - Fleshpound
 | ||||
|     lastStandardZed = i; | ||||
|     record.ZedName = "Fleshpound"; | ||||
|     record.ZedType = class'NicePack.NiceZombieFleshPound'; | ||||
|     record.MeanZedType = class'NicePack.MeanZombieFleshPound'; | ||||
|     record.ZedType = class'NiceZombieFleshPound'; | ||||
|     record.MeanZedType = class'MeanZombieFleshPound'; | ||||
|     record.HL = 2.5; | ||||
|     record.MeanHLBonus = 1.5; | ||||
|     record.bNeedsReplacement = bReplaceFleshpound; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Shiver
 | ||||
|     record.ZedName = "Shiver"; | ||||
|     record.ZedType = class'NicePack.NiceZombieShiver'; | ||||
|     record.ZedType = class'NiceZombieShiver'; | ||||
|     record.MeanZedType = none; | ||||
|     record.HL = 1; | ||||
|     record.bNeedsReplacement = false; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Jason
 | ||||
|     record.ZedName = "Jason"; | ||||
|     record.ZedType = class'NicePack.NiceZombieJason'; | ||||
|     record.ZedType = class'NiceZombieJason'; | ||||
|     record.MeanZedType = none; | ||||
|     record.HL = 1.5; | ||||
|     record.bNeedsReplacement = false; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Tesla Husk
 | ||||
|     record.ZedName = "Tesla husk"; | ||||
|     record.ZedType = class'NicePack.NiceZombieTeslaHusk'; | ||||
|     record.ZedType = class'NiceZombieTeslaHusk'; | ||||
|     record.MeanZedType = none; | ||||
|     record.HL = 1.5; | ||||
|     record.bNeedsReplacement = false; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Brute
 | ||||
|     record.ZedName = "Brute"; | ||||
|     record.ZedType = class'NicePack.NiceZombieBrute'; | ||||
|     record.ZedType = class'NiceZombieBrute'; | ||||
|     record.MeanZedType = none; | ||||
|     record.HL = 2; | ||||
|     record.bNeedsReplacement = false; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Ghost
 | ||||
|     record.ZedName = "Ghost"; | ||||
|     record.ZedType = class'NicePack.NiceZombieGhost'; | ||||
|     record.ZedType = class'NiceZombieGhost'; | ||||
|     record.MeanZedType = none; | ||||
|     record.HL = 0.5; | ||||
|     record.bNeedsReplacement = false; | ||||
|     ZedDatabase[i++] = record; | ||||
|     // - Sick
 | ||||
|     record.ZedName = "Sick"; | ||||
|     record.ZedType = class'NicePack.NiceZombieSick'; | ||||
|     record.ZedType = class'NiceZombieSick'; | ||||
|     record.MeanZedType = none; | ||||
|     record.HL = 1.0; | ||||
|     record.bNeedsReplacement = false; | ||||
| @ -459,7 +455,7 @@ simulated function Tick(float Delta){ | ||||
|     if(interactionAdded) | ||||
|        return; | ||||
|     // Actually add the interaction
 | ||||
|     niceInt = NiceInteraction(localPlayer.Player.InteractionMaster.AddInteraction("NicePack.NiceInteraction", localPlayer.Player)); | ||||
|     niceInt = NiceInteraction(localPlayer.Player.InteractionMaster.AddInteraction(string(class'NiceInteraction'), localPlayer.Player)); | ||||
|     niceInt.RegisterMutator(Self); | ||||
|     interactionAdded = true; | ||||
| } | ||||
| @ -476,11 +472,11 @@ simulated function bool CheckReplacement(Actor Other, out byte bSuperRelevant){ | ||||
|     local PlayerReplicationInfo pri; | ||||
|     // Replace loot on levels
 | ||||
|     if(Other.class == class'KFRandomItemSpawn' || Other.class == class'ScrnBalanceSrv.ScrnRandomItemSpawn'){ | ||||
|        ReplaceWith(Other, "NicePack.NiceRandomItemSpawn"); | ||||
|        ReplaceWith(Other, string(class'NiceRandomItemSpawn')); | ||||
|        return false; | ||||
|     } | ||||
|     else if(Other.class == class'KFAmmoPickup' || Other.class == class'ScrnBalanceSrv.ScrnAmmoPickup') { | ||||
|        ReplaceWith(Other, "NicePack.NiceAmmoPickup"); | ||||
|        ReplaceWith(Other, string(class'NiceAmmoPickup')); | ||||
|        return false; | ||||
|     } | ||||
|     else if(bReplacePickups && Pickup(Other) != none){ | ||||
| @ -1071,18 +1067,18 @@ defaultproperties | ||||
|     bNoLateFFIncrease=True | ||||
|     junkieNextGoal=1 | ||||
|     bIsPreGame=True | ||||
|     pickupReplaceArray(0)=(vanillaClass=Class'KFMod.MAC10Pickup',scrnClass=Class'ScrnBalanceSrv.ScrnMAC10Pickup',NewClass=Class'NicePack.NiceMAC10Pickup') | ||||
|     pickupReplaceArray(1)=(vanillaClass=Class'KFMod.WinchesterPickup',scrnClass=Class'ScrnBalanceSrv.ScrnWinchesterPickup',NewClass=Class'NicePack.NiceWinchesterPickup') | ||||
|     pickupReplaceArray(2)=(vanillaClass=Class'KFMod.CrossbowPickup',scrnClass=Class'ScrnBalanceSrv.ScrnCrossbowPickup',NewClass=Class'NicePack.NiceCrossbowPickup') | ||||
|     pickupReplaceArray(3)=(vanillaClass=Class'KFMod.SPSniperPickup',scrnClass=Class'ScrnBalanceSrv.ScrnSPSniperPickup',NewClass=Class'NicePack.NiceMaulerPickup') | ||||
|     pickupReplaceArray(4)=(vanillaClass=Class'KFMod.M14EBRPickup',scrnClass=Class'ScrnBalanceSrv.ScrnM14EBRPickup',NewClass=Class'NicePack.NiceM14EBRPickup') | ||||
|     pickupReplaceArray(5)=(vanillaClass=Class'KFMod.M99Pickup',scrnClass=Class'ScrnBalanceSrv.ScrnM99Pickup',NewClass=Class'NicePack.NiceM99Pickup') | ||||
|     pickupReplaceArray(6)=(vanillaClass=Class'KFMod.ShotgunPickup',scrnClass=Class'ScrnBalanceSrv.ScrnShotgunPickup',NewClass=Class'NicePack.NiceShotgunPickup') | ||||
|     pickupReplaceArray(7)=(vanillaClass=Class'KFMod.BoomStickPickup',scrnClass=Class'ScrnBalanceSrv.ScrnBoomStickPickup',NewClass=Class'NicePack.NiceBoomStickPickup') | ||||
|     pickupReplaceArray(8)=(vanillaClass=Class'KFMod.NailGunPickup',scrnClass=Class'ScrnBalanceSrv.ScrnNailGunPickup',NewClass=Class'NicePack.NiceNailGunPickup') | ||||
|     pickupReplaceArray(9)=(vanillaClass=Class'KFMod.KSGPickup',scrnClass=Class'ScrnBalanceSrv.ScrnKSGPickup',NewClass=Class'NicePack.NiceKSGPickup') | ||||
|     pickupReplaceArray(10)=(vanillaClass=Class'KFMod.BenelliPickup',scrnClass=Class'ScrnBalanceSrv.ScrnBenelliPickup',NewClass=Class'NicePack.NiceBenelliPickup') | ||||
|     pickupReplaceArray(11)=(vanillaClass=Class'KFMod.AA12Pickup',scrnClass=Class'ScrnBalanceSrv.ScrnAA12Pickup',NewClass=Class'NicePack.NiceAA12Pickup') | ||||
|     pickupReplaceArray(0)=(vanillaClass=Class'KFMod.MAC10Pickup',scrnClass=Class'ScrnBalanceSrv.ScrnMAC10Pickup',NewClass=class'NiceMAC10Pickup') | ||||
|     pickupReplaceArray(1)=(vanillaClass=Class'KFMod.WinchesterPickup',scrnClass=Class'ScrnBalanceSrv.ScrnWinchesterPickup',NewClass=class'NiceWinchesterPickup') | ||||
|     pickupReplaceArray(2)=(vanillaClass=Class'KFMod.CrossbowPickup',scrnClass=Class'ScrnBalanceSrv.ScrnCrossbowPickup',NewClass=class'NiceCrossbowPickup') | ||||
|     pickupReplaceArray(3)=(vanillaClass=Class'KFMod.SPSniperPickup',scrnClass=Class'ScrnBalanceSrv.ScrnSPSniperPickup',NewClass=class'NiceMaulerPickup') | ||||
|     pickupReplaceArray(4)=(vanillaClass=Class'KFMod.M14EBRPickup',scrnClass=Class'ScrnBalanceSrv.ScrnM14EBRPickup',NewClass=class'NiceM14EBRPickup') | ||||
|     pickupReplaceArray(5)=(vanillaClass=Class'KFMod.M99Pickup',scrnClass=Class'ScrnBalanceSrv.ScrnM99Pickup',NewClass=class'NiceM99Pickup') | ||||
|     pickupReplaceArray(6)=(vanillaClass=Class'KFMod.ShotgunPickup',scrnClass=Class'ScrnBalanceSrv.ScrnShotgunPickup',NewClass=class'NiceShotgunPickup') | ||||
|     pickupReplaceArray(7)=(vanillaClass=Class'KFMod.BoomStickPickup',scrnClass=Class'ScrnBalanceSrv.ScrnBoomStickPickup',NewClass=class'NiceBoomStickPickup') | ||||
|     pickupReplaceArray(8)=(vanillaClass=Class'KFMod.NailGunPickup',scrnClass=Class'ScrnBalanceSrv.ScrnNailGunPickup',NewClass=class'NiceNailGunPickup') | ||||
|     pickupReplaceArray(9)=(vanillaClass=Class'KFMod.KSGPickup',scrnClass=Class'ScrnBalanceSrv.ScrnKSGPickup',NewClass=class'NiceKSGPickup') | ||||
|     pickupReplaceArray(10)=(vanillaClass=Class'KFMod.BenelliPickup',scrnClass=Class'ScrnBalanceSrv.ScrnBenelliPickup',NewClass=class'NiceBenelliPickup') | ||||
|     pickupReplaceArray(11)=(vanillaClass=Class'KFMod.AA12Pickup',scrnClass=Class'ScrnBalanceSrv.ScrnAA12Pickup',NewClass=class'NiceAA12Pickup') | ||||
|     NiceUniversalDescriptions(0)="Survive on %m in ScrN Balance mode" | ||||
|     NiceUniversalDescriptions(1)="Survive on %m in ScrN Balance mode with Hardcore Level 5+" | ||||
|     NiceUniversalDescriptions(2)="Survive on %m in ScrN Balance mode with Hardcore Level 10+" | ||||
|  | ||||
| @ -134,16 +134,17 @@ replication{ | ||||
|            ServerSetHLMessages, ServerMarkSettingsLoaded, ServerStartleZeds, ServerSetDisplayCounters, | ||||
|            ServerSetDisplayWeaponProgress, ActivateAbility; | ||||
| } | ||||
| 
 | ||||
| // Called on server only!
 | ||||
| function PostLogin(){ | ||||
| function PostLogin() | ||||
| { | ||||
|     local NicePack.PlayerRecord record; | ||||
|     local NiceGameType NiceGT; | ||||
|     local NiceTSCGame TSCGT; | ||||
|     local ScrnCustomPRI ScrnPRI; | ||||
| 
 | ||||
|     Super.PostLogin(); | ||||
|     // Restore data
 | ||||
|     NiceGT = NiceGameType(Level.Game); | ||||
|     TSCGT = NiceTSCGame(Level.Game); | ||||
|     ScrnPRI = class'ScrnCustomPRI'.static.FindMe(PlayerReplicationInfo); | ||||
|     if(ScrnPRI != none) | ||||
|        SteamID64 = ScrnPRI.GetSteamID64(); | ||||
| @ -167,6 +168,7 @@ function PostLogin(){ | ||||
|     // Spawn ability manager
 | ||||
|     abilityManager = Spawn(class'NiceAbilityManager', self); | ||||
| } | ||||
| 
 | ||||
| simulated function ClientPostLogin(){ | ||||
|     local int i, j, k; | ||||
|     local bool bEntryExists; | ||||
| @ -198,7 +200,7 @@ simulated function ClientPostLogin(){ | ||||
|     playedWithDatabase = newPlayedWithData; | ||||
|     UpdateDefaultWeaponSettings(); | ||||
|     //  Create sync node
 | ||||
|     storageClient = new class'NicePack.NiceStorageClient'; | ||||
|     storageClient = new class'NiceStorageClient'; | ||||
|     storageClient.events.static.AddAdapter(class'NiceRemoteDataAdapter', level); | ||||
|     // Init collisions
 | ||||
|     if(Role < ROLE_Authority) | ||||
| @ -1465,7 +1467,6 @@ defaultproperties | ||||
|      effectsLimitSoft=100 | ||||
|      effectsLimitHard=200 | ||||
|      sirenScreamMod=1.000000 | ||||
|      TSCLobbyMenuClassString="NicePack.NiceTSCLobbyMenu" | ||||
|      LobbyMenuClassString="NicePack.NiceLobbyMenu" | ||||
|      PawnClass=Class'NicePack.NiceHumanPawn' | ||||
|      PawnClass=class'NiceHumanPawn' | ||||
| } | ||||
|  | ||||
| @ -1,11 +1,11 @@ | ||||
| class NiceRandomItemSpawn extends ScrnRandomItemSpawn; | ||||
| defaultproperties | ||||
| { | ||||
|     PickupClasses(0)=Class'NicePack.NiceWinchesterPickup' | ||||
|     PickupClasses(1)=Class'NicePack.NiceShotgunPickup' | ||||
|     PickupClasses(2)=Class'NicePack.NiceBullpupPickup' | ||||
|     PickupClasses(3)=Class'NicePack.NiceMagnumPickup' | ||||
|     PickupClasses(4)=Class'NicePack.NiceWinchesterPickup' | ||||
|     PickupClasses(5)=Class'NicePack.NiceM79Pickup' | ||||
|     PickupClasses(8)=Class'NicePack.NiceMAC10Pickup' | ||||
|     PickupClasses(0)=class'NiceWinchesterPickup' | ||||
|     PickupClasses(1)=class'NiceShotgunPickup' | ||||
|     PickupClasses(2)=class'NiceBullpupPickup' | ||||
|     PickupClasses(3)=class'NiceMagnumPickup' | ||||
|     PickupClasses(4)=class'NiceWinchesterPickup' | ||||
|     PickupClasses(5)=class'NiceM79Pickup' | ||||
|     PickupClasses(8)=class'NiceMAC10Pickup' | ||||
| } | ||||
|  | ||||
| @ -164,6 +164,6 @@ function Tick(float deltaTime){ | ||||
| defaultproperties | ||||
| { | ||||
|     maxAbilitiesAmount=5 | ||||
|     Events=Class'NicePack.NiceAbilitiesEvents' | ||||
|     Events=class'NiceAbilitiesEvents' | ||||
|     DrawType=DT_None | ||||
| } | ||||
|  | ||||
| @ -98,16 +98,16 @@ static function string GetCustomLevelInfo(byte Level){ | ||||
| defaultproperties | ||||
| { | ||||
|     bNewTypePerk=True | ||||
|     SkillGroupA(0)=Class'NicePack.NiceSkillZerkWindCutter' | ||||
|     SkillGroupA(1)=Class'NicePack.NiceSkillZerkWhirlwind' | ||||
|     SkillGroupA(2)=Class'NicePack.NiceSkillZerkColossus' | ||||
|     SkillGroupA(3)=Class'NicePack.NiceSkillZerkUndead' | ||||
|     SkillGroupA(4)=Class'NicePack.NiceSkillZerkZEDAccelerate' | ||||
|     SkillGroupB(0)=Class'NicePack.NiceSkillZerkCleave' | ||||
|     SkillGroupB(1)=Class'NicePack.NiceSkillZerkFury' | ||||
|     SkillGroupB(2)=Class'NicePack.NiceSkillZerkGunzerker' | ||||
|     SkillGroupB(3)=Class'NicePack.NiceSkillZerkVorpalBlade' | ||||
|     SkillGroupB(4)=Class'NicePack.NiceSkillZerkZEDUnbreakable' | ||||
|     SkillGroupA(0)=class'NiceSkillZerkWindCutter' | ||||
|     SkillGroupA(1)=class'NiceSkillZerkWhirlwind' | ||||
|     SkillGroupA(2)=class'NiceSkillZerkColossus' | ||||
|     SkillGroupA(3)=class'NiceSkillZerkUndead' | ||||
|     SkillGroupA(4)=class'NiceSkillZerkZEDAccelerate' | ||||
|     SkillGroupB(0)=class'NiceSkillZerkCleave' | ||||
|     SkillGroupB(1)=class'NiceSkillZerkFury' | ||||
|     SkillGroupB(2)=class'NiceSkillZerkGunzerker' | ||||
|     SkillGroupB(3)=class'NiceSkillZerkVorpalBlade' | ||||
|     SkillGroupB(4)=class'NiceSkillZerkZEDUnbreakable' | ||||
|     progressArray0(0)=100 | ||||
|     progressArray0(1)=1000 | ||||
|     progressArray0(2)=3000 | ||||
| @ -115,7 +115,7 @@ defaultproperties | ||||
|     progressArray0(4)=30000 | ||||
|     progressArray0(5)=100000 | ||||
|     progressArray0(6)=200000 | ||||
|     DefaultDamageType=Class'NicePack.NiceDamageTypeVetBerserker' | ||||
|     DefaultDamageType=class'NiceDamageTypeVetBerserker' | ||||
|     OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Berserker',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Berserker_Gold',StarIcon=Texture'KillingFloor2HUD.Perk_Icons.Hud_Perk_Star_Gold',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(2)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Berserker_Green',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Green',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|  | ||||
| @ -11,9 +11,9 @@ static function array<int> GetProgressArray(byte ReqNum, optional out int Double | ||||
| } | ||||
| static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI){ | ||||
|     /*if(KFPRI != none && class'NiceVetFieldMedic'.static.hasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillMedicArmament')) | ||||
|        return class'NicePack.NiceMedicNade';*/ | ||||
|        return class'NiceMedicNade';*/ | ||||
|     //return class'NiceMedicNadePoison';
 | ||||
|     return class'NicePack.NiceNade'; | ||||
|     return class'NiceNade'; | ||||
| } | ||||
| static function float GetHealthBarsDistanceMulti(KFPlayerReplicationInfo KFPRI){ | ||||
|     /*if(KFPRI != none && SomeoneHasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillCommandoStrategist')) | ||||
| @ -26,7 +26,7 @@ static function float GetStalkerViewDistanceMulti(KFPlayerReplicationInfo KFPRI) | ||||
|     return 1.0; | ||||
| } | ||||
| static function bool CanCookNade(KFPlayerReplicationInfo KFPRI, Weapon Weap){ | ||||
|     return GetNadeType(KFPRI) != class'NicePack.NiceMedicNadePoison'; | ||||
|     return GetNadeType(KFPRI) != class'NiceMedicNadePoison'; | ||||
| } | ||||
| static function float GetMagCapacityMod(KFPlayerReplicationInfo KFPRI, KFWeapon Other){ | ||||
|     local class<NiceWeaponPickup> pickupClass; | ||||
| @ -78,16 +78,16 @@ static function string GetCustomLevelInfo(byte Level){ | ||||
| defaultproperties | ||||
| { | ||||
|     bNewTypePerk=True | ||||
|     SkillGroupA(0)=Class'NicePack.NiceSkillCommandoExplosivePower' | ||||
|     SkillGroupA(1)=Class'NicePack.NiceSkillCommandoLargerMags' | ||||
|     SkillGroupA(2)=Class'NicePack.NiceSkillCommandoPerfectExecution' | ||||
|     //SkillGroupA(3)=Class'NicePack.'
 | ||||
|     SkillGroupA(4)=Class'NicePack.NiceSkillCommandoZEDProfessional' | ||||
|     SkillGroupB(0)=Class'NicePack.NiceSkillCommandoRegeneration' | ||||
|     SkillGroupB(1)=Class'NicePack.NiceSkillCommandoQuickermags' | ||||
|     SkillGroupB(2)=Class'NicePack.NiceSkillCommandoOverclocking' | ||||
|     //SkillGroupB(3)=Class'NicePack.'
 | ||||
|     SkillGroupB(4)=Class'NicePack.NiceSkillCommandoZEDHeavenCanceller' | ||||
|     SkillGroupA(0)=class'NiceSkillCommandoExplosivePower' | ||||
|     SkillGroupA(1)=class'NiceSkillCommandoLargerMags' | ||||
|     SkillGroupA(2)=class'NiceSkillCommandoPerfectExecution' | ||||
|     //SkillGroupA(3)=class''
 | ||||
|     SkillGroupA(4)=class'NiceSkillCommandoZEDProfessional' | ||||
|     SkillGroupB(0)=class'NiceSkillCommandoRegeneration' | ||||
|     SkillGroupB(1)=class'NiceSkillCommandoQuickermags' | ||||
|     SkillGroupB(2)=class'NiceSkillCommandoOverclocking' | ||||
|     //SkillGroupB(3)=class''
 | ||||
|     SkillGroupB(4)=class'NiceSkillCommandoZEDHeavenCanceller' | ||||
|     progressArray0(0)=100 | ||||
|     progressArray0(1)=1000 | ||||
|     progressArray0(2)=3000 | ||||
| @ -95,7 +95,7 @@ defaultproperties | ||||
|     progressArray0(4)=30000 | ||||
|     progressArray0(5)=100000 | ||||
|     progressArray0(6)=200000 | ||||
|     DefaultDamageType=Class'NicePack.NiceDamageTypeVetCommando' | ||||
|     DefaultDamageType=class'NiceDamageTypeVetCommando' | ||||
|     OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Commando',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Commando_Gold',StarIcon=Texture'KillingFloor2HUD.Perk_Icons.Hud_Perk_Star_Gold',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(2)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Commando_Green',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Green',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|  | ||||
| @ -37,7 +37,7 @@ static function int AddDamage(KFPlayerReplicationInfo KFPRI, KFMonster Injured, | ||||
|     local class<NiceWeaponPickup> pickupClass; | ||||
|     pickupClass = GetPickupFromDamageType(DmgType); | ||||
|     perkDamage = float(InDamage); | ||||
|     if(DmgType == class'NicePack.NiceDamTypeDemoExplosion') | ||||
|     if(DmgType == class'NiceDamTypeDemoExplosion') | ||||
|        return 1.6 * perkDamage; | ||||
|     if(IsPerkedPickup(pickupClass)) | ||||
|        perkDamage *= 1.25; | ||||
| @ -81,16 +81,16 @@ static function string GetCustomLevelInfo(byte Level){ | ||||
| defaultproperties | ||||
| { | ||||
|     bNewTypePerk=True | ||||
|     SkillGroupA(0)=Class'NicePack.NiceSkillDemoConcussion' | ||||
|     SkillGroupA(1)=Class'NicePack.NiceSkillDemoOnperk' | ||||
|     SkillGroupA(2)=Class'NicePack.NiceSkillDemoDirectApproach' | ||||
|     SkillGroupA(3)=Class'NicePack.NiceSkillDemoReactiveArmor' | ||||
|     SkillGroupA(4)=Class'NicePack.NiceSkillDemoZEDDuckAndCover' | ||||
|     SkillGroupB(0)=Class'NicePack.NiceSkillDemoOffperk' | ||||
|     SkillGroupB(1)=Class'NicePack.NiceSkillDemoManiac' | ||||
|     SkillGroupB(2)=Class'NicePack.NiceSkillDemoAPShot' | ||||
|     SkillGroupB(3)=Class'NicePack.NiceSkillDemoVolatile' | ||||
|     SkillGroupB(4)=Class'NicePack.NiceSkillDemoZEDFullBlast' | ||||
|     SkillGroupA(0)=class'NiceSkillDemoConcussion' | ||||
|     SkillGroupA(1)=class'NiceSkillDemoOnperk' | ||||
|     SkillGroupA(2)=class'NiceSkillDemoDirectApproach' | ||||
|     SkillGroupA(3)=class'NiceSkillDemoReactiveArmor' | ||||
|     SkillGroupA(4)=class'NiceSkillDemoZEDDuckAndCover' | ||||
|     SkillGroupB(0)=class'NiceSkillDemoOffperk' | ||||
|     SkillGroupB(1)=class'NiceSkillDemoManiac' | ||||
|     SkillGroupB(2)=class'NiceSkillDemoAPShot' | ||||
|     SkillGroupB(3)=class'NiceSkillDemoVolatile' | ||||
|     SkillGroupB(4)=class'NiceSkillDemoZEDFullBlast' | ||||
|     progressArray0(0)=100 | ||||
|     progressArray0(1)=1000 | ||||
|     progressArray0(2)=3000 | ||||
| @ -98,7 +98,7 @@ defaultproperties | ||||
|     progressArray0(4)=30000 | ||||
|     progressArray0(5)=100000 | ||||
|     progressArray0(6)=200000 | ||||
|     DefaultDamageType=Class'NicePack.NiceDamageTypeVetDemolitions' | ||||
|     DefaultDamageType=class'NiceDamageTypeVetDemolitions' | ||||
|     OnHUDIcons(0)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Demolition',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Demolition_Gold',StarIcon=Texture'KillingFloor2HUD.Perk_Icons.Hud_Perk_Star_Gold',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(2)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Demolition_Green',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Green',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|  | ||||
| @ -27,10 +27,10 @@ static function AbilityActivated(   string abilityID, | ||||
|    } | ||||
|    if(abilityID == class'NiceSkillEnforcerStuporA'.default.abilityID){ | ||||
|       relatedPlayer.abilityManager.SetAbilityState(1, ASTATE_COOLDOWN); | ||||
|       foreach relatedPlayer.CollidingActors(class'NiceMonster', victim, class'NicePack.NiceSkillEnforcerStuporA'.default.radius, relatedPlayer.pawn.location) | ||||
|       foreach relatedPlayer.CollidingActors(class'NiceMonster', victim, class'NiceSkillEnforcerStuporA'.default.radius, relatedPlayer.pawn.location) | ||||
|       { | ||||
|          if (victim == none) continue; | ||||
|          victim.DoRightPainReaction(class'NicePack.NiceSkillEnforcerStuporA'.default.painScore, | ||||
|          victim.DoRightPainReaction(class'NiceSkillEnforcerStuporA'.default.painScore, | ||||
|                                     relatedPlayer.pawn, victim.location, Vect(0,0,0), none, 0.0, | ||||
|                                     KFPlayerReplicationInfo(relatedPlayer.PlayerReplicationInfo)); | ||||
|       } | ||||
|  | ||||
| @ -37,9 +37,9 @@ static function int AddStunScore(KFPlayerReplicationInfo KFPRI, KFMonster Injure | ||||
| 
 | ||||
| static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI){ | ||||
|     /*if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillSupportCautious')) | ||||
|        return class'NicePack.NiceDelayedNade'; | ||||
|     return class'NicePack.NiceNailNade';*/ | ||||
|     return class'NicePack.NiceCryoNade'; | ||||
|        return class'NiceDelayedNade'; | ||||
|     return class'NiceNailNade';*/ | ||||
|     return class'NiceCryoNade'; | ||||
| } | ||||
| 
 | ||||
| static function float AddExtraAmmoFor(KFPlayerReplicationInfo KFPRI, Class<Ammunition> AmmoType){ | ||||
| @ -97,7 +97,7 @@ static function float ModifyRecoilSpread(KFPlayerReplicationInfo KFPRI, WeaponFi | ||||
|     niceWeap = class<NiceWeapon>(other); | ||||
|     if(niceWeap != none && niceWeap.default.reloadType == RTYPE_MAG) | ||||
|        return 1.5; | ||||
|     if(other == class'NicePack.NiceM41AAssaultRifle' || other == class'NicePack.NiceChainGun' || other == class'NicePack.NiceStinger' ) | ||||
|     if(other == class'NiceM41AAssaultRifle' || other == class'NiceChainGun' || other == class'NiceStinger' ) | ||||
|        return 1.5; | ||||
|     return 1.0; | ||||
| }*/ | ||||
| @ -140,16 +140,16 @@ static function SetupAbilities(KFPlayerReplicationInfo KFPRI){ | ||||
| defaultproperties | ||||
| { | ||||
|     bNewTypePerk=True | ||||
|     SkillGroupA(0)=Class'NicePack.NiceSkillEnforcerUnstoppable' | ||||
|     SkillGroupA(1)=Class'NicePack.NiceSkillEnforcerBombard' | ||||
|     SkillGroupA(2)=Class'NicePack.NiceSkillEnforcerCoating' | ||||
|     SkillGroupA(3)=Class'NicePack.NiceSkillEnforcerStuporA' | ||||
|     SkillGroupA(4)=Class'NicePack.NiceSkillEnforcerZEDBarrage' | ||||
|     SkillGroupB(0)=Class'NicePack.NiceSkillEnforcerUnshakable' | ||||
|     SkillGroupB(1)=Class'NicePack.NiceSkillEnforcerMultitasker' | ||||
|     SkillGroupB(2)=Class'NicePack.NiceSkillEnforcerDetermination' | ||||
|     SkillGroupB(3)=Class'NicePack.NiceSkillEnforcerBrutalCarnageA' | ||||
|     SkillGroupB(4)=Class'NicePack.NiceSkillEnforcerZEDJuggernaut' | ||||
|     SkillGroupA(0)=class'NiceSkillEnforcerUnstoppable' | ||||
|     SkillGroupA(1)=class'NiceSkillEnforcerBombard' | ||||
|     SkillGroupA(2)=class'NiceSkillEnforcerCoating' | ||||
|     SkillGroupA(3)=class'NiceSkillEnforcerStuporA' | ||||
|     SkillGroupA(4)=class'NiceSkillEnforcerZEDBarrage' | ||||
|     SkillGroupB(0)=class'NiceSkillEnforcerUnshakable' | ||||
|     SkillGroupB(1)=class'NiceSkillEnforcerMultitasker' | ||||
|     SkillGroupB(2)=class'NiceSkillEnforcerDetermination' | ||||
|     SkillGroupB(3)=class'NiceSkillEnforcerBrutalCarnageA' | ||||
|     SkillGroupB(4)=class'NiceSkillEnforcerZEDJuggernaut' | ||||
|     progressArray0(0)=100 | ||||
|     progressArray0(1)=1000 | ||||
|     progressArray0(2)=3000 | ||||
| @ -157,7 +157,7 @@ defaultproperties | ||||
|     progressArray0(4)=30000 | ||||
|     progressArray0(5)=100000 | ||||
|     progressArray0(6)=200000 | ||||
|     DefaultDamageType=Class'NicePack.NiceDamageTypeVetEnforcer' | ||||
|     DefaultDamageType=class'NiceDamageTypeVetEnforcer' | ||||
|     OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Support',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Support_Gold',StarIcon=Texture'KillingFloor2HUD.Perk_Icons.Hud_Perk_Star_Gold',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(2)=(PerkIcon=Texture'ScrnTex.Perks.Perk_Support_Green',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Green',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|  | ||||
| @ -18,7 +18,7 @@ static function float GetHeadshotCheckMultiplier(KFPlayerReplicationInfo KFPRI, | ||||
| // Give Medic normal hand nades again - he should buy medic nade lauchers for healing nades
 | ||||
| static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI){ | ||||
|     if(KFPRI != none && class'NiceVetFieldMedic'.static.hasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillMedicArmament')) | ||||
|        return class'NicePack.NiceMedicNade'; | ||||
|        return class'NiceMedicNade'; | ||||
|     return class'NiceMedicNadePoison'; | ||||
| } | ||||
| static function float GetAmmoPickupMod(KFPlayerReplicationInfo KFPRI, KFAmmunition Other){ | ||||
| @ -29,7 +29,7 @@ static function float GetAmmoPickupMod(KFPlayerReplicationInfo KFPRI, KFAmmuniti | ||||
| } | ||||
| //can't cook medic nades
 | ||||
| static function bool CanCookNade(KFPlayerReplicationInfo KFPRI, Weapon Weap){ | ||||
|     return GetNadeType(KFPRI) != class'NicePack.NiceMedicNade'; | ||||
|     return GetNadeType(KFPRI) != class'NiceMedicNade'; | ||||
| } | ||||
| static function float GetSyringeChargeRate(KFPlayerReplicationInfo KFPRI){ | ||||
|     return 3.0; | ||||
| @ -63,16 +63,16 @@ static function string GetCustomLevelInfo(byte Level){ | ||||
| } | ||||
| defaultproperties | ||||
| { | ||||
|     SkillGroupA(0)=Class'NicePack.NiceSkillMedicSymbioticHealth' | ||||
|     SkillGroupA(1)=Class'NicePack.NiceSkillMedicArmament' | ||||
|     SkillGroupA(2)=Class'NicePack.NiceSkillMedicAdrenalineShot' | ||||
|     SkillGroupA(3)=Class'NicePack.NiceSkillMedicInjection' | ||||
|     SkillGroupA(4)=Class'NicePack.NiceSkillMedicZEDHeavenCanceller' | ||||
|     SkillGroupB(0)=Class'NicePack.NiceSkillMedicAimAssistance' | ||||
|     SkillGroupB(1)=Class'NicePack.NiceSkillMedicPesticide' | ||||
|     SkillGroupB(2)=Class'NicePack.NiceSkillMedicRegeneration' | ||||
|     SkillGroupB(3)=Class'NicePack.NiceSkillMedicTranquilizer' | ||||
|     SkillGroupB(4)=Class'NicePack.NiceSkillMedicZEDFrenzy' | ||||
|     SkillGroupA(0)=class'NiceSkillMedicSymbioticHealth' | ||||
|     SkillGroupA(1)=class'NiceSkillMedicArmament' | ||||
|     SkillGroupA(2)=class'NiceSkillMedicAdrenalineShot' | ||||
|     SkillGroupA(3)=class'NiceSkillMedicInjection' | ||||
|     SkillGroupA(4)=class'NiceSkillMedicZEDHeavenCanceller' | ||||
|     SkillGroupB(0)=class'NiceSkillMedicAimAssistance' | ||||
|     SkillGroupB(1)=class'NiceSkillMedicPesticide' | ||||
|     SkillGroupB(2)=class'NiceSkillMedicRegeneration' | ||||
|     SkillGroupB(3)=class'NiceSkillMedicTranquilizer' | ||||
|     SkillGroupB(4)=class'NiceSkillMedicZEDFrenzy' | ||||
|     progressArray0(0)=100 | ||||
|     progressArray0(1)=1000 | ||||
|     progressArray0(2)=3000 | ||||
|  | ||||
| @ -89,7 +89,7 @@ static function int ReduceDamage(KFPlayerReplicationInfo KFPRI, KFPawn Injured, | ||||
| static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI) | ||||
| { | ||||
|     if ( GetClientVeteranSkillLevel(KFPRI) >= 3 ) { | ||||
|        return class'NicePack.NiceFlameNade'; | ||||
|        return class'NiceFlameNade'; | ||||
|     } | ||||
|     return super.GetNadeType(KFPRI); | ||||
| } | ||||
| @ -160,7 +160,7 @@ static function string GetCustomLevelInfo( byte Level ) | ||||
| } | ||||
| defaultproperties | ||||
| { | ||||
|     DefaultDamageType=Class'NicePack.NiceDamTypeFire' | ||||
|     DefaultDamageType=class'NiceDamTypeFire' | ||||
|     DefaultDamageTypeNoBonus=Class'KFMod.DamTypeMAC10MPInc' | ||||
|     OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_Firebug',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_Firebug_Gold',StarIcon=Texture'KillingFloor2HUD.Perk_Icons.Hud_Perk_Star_Gold',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|  | ||||
| @ -321,19 +321,19 @@ static function string GetVetInfoText(byte Level, byte Type, optional byte Requi | ||||
|     return Super.GetVetInfoText(Level, Type, RequirementNum); | ||||
| } | ||||
| static function class<Grenade> GetNadeType(KFPlayerReplicationInfo KFPRI){ | ||||
|     return class'NicePack.NiceNade'; | ||||
|     return class'NiceNade'; | ||||
| } | ||||
| static function SetupAbilities(KFPlayerReplicationInfo KFPRI){} | ||||
| defaultproperties | ||||
| { | ||||
|     SkillGroupA(0)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupA(1)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupA(2)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupA(3)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupA(4)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupB(0)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupB(1)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupB(2)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupB(3)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupB(4)=Class'NicePack.NiceSkill' | ||||
|     SkillGroupA(0)=class'NiceSkill' | ||||
|     SkillGroupA(1)=class'NiceSkill' | ||||
|     SkillGroupA(2)=class'NiceSkill' | ||||
|     SkillGroupA(3)=class'NiceSkill' | ||||
|     SkillGroupA(4)=class'NiceSkill' | ||||
|     SkillGroupB(0)=class'NiceSkill' | ||||
|     SkillGroupB(1)=class'NiceSkill' | ||||
|     SkillGroupB(2)=class'NiceSkill' | ||||
|     SkillGroupB(3)=class'NiceSkill' | ||||
|     SkillGroupB(4)=class'NiceSkill' | ||||
| } | ||||
|  | ||||
| @ -141,16 +141,16 @@ static function SetupAbilities(KFPlayerReplicationInfo KFPRI){ | ||||
| defaultproperties | ||||
| { | ||||
|     bNewTypePerk=True | ||||
|     SkillGroupA(0)=Class'NicePack.NiceSkillSharpshooterKillConfirmed' | ||||
|     SkillGroupA(1)=Class'NicePack.NiceSkillSharpshooterDamage' | ||||
|     SkillGroupA(2)=Class'NicePack.NiceSkillSharpshooterDieAlready' | ||||
|     SkillGroupA(3)=Class'NicePack.NiceSkillSharpshooterReaperA' | ||||
|     SkillGroupA(4)=Class'NicePack.NiceSkillSharpshooterZEDAdrenaline' | ||||
|     SkillGroupB(0)=Class'NicePack.NiceSkillSharpshooterSurgical' | ||||
|     SkillGroupB(1)=Class'NicePack.NiceSkillSharpshooterControl' | ||||
|     SkillGroupB(2)=Class'NicePack.NiceSkillSharpshooterArdour' | ||||
|     SkillGroupB(3)=Class'NicePack.NiceSkillSharpshooterGunslingerA' | ||||
|     SkillGroupB(4)=Class'NicePack.NiceSkillSharpshooterZEDHundredGauntlets' | ||||
|     SkillGroupA(0)=class'NiceSkillSharpshooterKillConfirmed' | ||||
|     SkillGroupA(1)=class'NiceSkillSharpshooterDamage' | ||||
|     SkillGroupA(2)=class'NiceSkillSharpshooterDieAlready' | ||||
|     SkillGroupA(3)=class'NiceSkillSharpshooterReaperA' | ||||
|     SkillGroupA(4)=class'NiceSkillSharpshooterZEDAdrenaline' | ||||
|     SkillGroupB(0)=class'NiceSkillSharpshooterSurgical' | ||||
|     SkillGroupB(1)=class'NiceSkillSharpshooterControl' | ||||
|     SkillGroupB(2)=class'NiceSkillSharpshooterArdour' | ||||
|     SkillGroupB(3)=class'NiceSkillSharpshooterGunslingerA' | ||||
|     SkillGroupB(4)=class'NiceSkillSharpshooterZEDHundredGauntlets' | ||||
|     progressArray0(0)=100 | ||||
|     progressArray0(1)=1000 | ||||
|     progressArray0(2)=3000 | ||||
| @ -158,7 +158,7 @@ defaultproperties | ||||
|     progressArray0(4)=30000 | ||||
|     progressArray0(5)=100000 | ||||
|     progressArray0(6)=200000 | ||||
|     DefaultDamageType=Class'NicePack.NiceDamageTypeVetSharpshooter' | ||||
|     DefaultDamageType=class'NiceDamageTypeVetSharpshooter' | ||||
|     OnHUDIcons(0)=(PerkIcon=Texture'KillingFloorHUD.Perks.Perk_SharpShooter',StarIcon=Texture'KillingFloorHUD.HUD.Hud_Perk_Star',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(1)=(PerkIcon=Texture'KillingFloor2HUD.Perk_Icons.Perk_SharpShooter_Gold',StarIcon=Texture'KillingFloor2HUD.Perk_Icons.Hud_Perk_Star_Gold',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|     OnHUDIcons(2)=(PerkIcon=Texture'ScrnTex.Perks.Perk_SharpShooter_Green',StarIcon=Texture'ScrnTex.Perks.Hud_Perk_Star_Green',DrawColor=(B=255,G=255,R=255,A=255)) | ||||
|  | ||||
| @ -1,111 +0,0 @@ | ||||
| class NiceTSCGame extends TSCGame; | ||||
| // Copy-pasted from NiceGameType
 | ||||
| var NicePack NicePackMutator; | ||||
| function RegisterMutator(NicePack activePack){ | ||||
|     NicePackMutator = activePack; | ||||
| } | ||||
| function SetupWave(){ | ||||
|     Super.SetupWave(); | ||||
|     // Event call
 | ||||
|     NicePackMutator.WaveStart(); | ||||
| } | ||||
| function RestartPlayer(Controller aPlayer){ | ||||
|     Super.RestartPlayer(aPlayer); | ||||
|     if(aPlayer.Pawn != none && NicePlayerController(aPlayer) != none) | ||||
|        NicePlayerController(aPlayer).PawnSpawned(); | ||||
| } | ||||
| State MatchInProgress{ | ||||
|     function BeginState(){ | ||||
|        Super(Invasion).BeginState(); | ||||
| 
 | ||||
|        WaveNum = InitialWave; | ||||
|        InvasionGameReplicationInfo(GameReplicationInfo).WaveNumber = WaveNum; | ||||
| 
 | ||||
|        if(NicePackMutator.bInitialTrader) | ||||
|            WaveCountDown = NicePackMutator.initialTraderTime + 10; | ||||
|        else | ||||
|            WaveCountDown = 10; | ||||
| 
 | ||||
|        SetupPickups(); | ||||
|        // Event call
 | ||||
|        NicePackMutator.MatchBegan(); | ||||
|     } | ||||
|     function DoWaveEnd(){ | ||||
|        Super.DoWaveEnd(); | ||||
|        // Event call
 | ||||
|        NicePackMutator.TraderStart(); | ||||
|     } | ||||
| } | ||||
| function DramaticEvent(float BaseZedTimePossibility, optional float DesiredZedTimeDuration){ | ||||
|     local bool bWasZedTime; | ||||
|     bWasZedTime = bZEDTimeActive; | ||||
|     Super.DramaticEvent(BaseZedTimePossibility, DesiredZedTimeDuration); | ||||
|     // Call events
 | ||||
|     if(!bWasZedTime && bZEDTimeActive) | ||||
|        NicePackMutator.ZedTimeActivated(); | ||||
| } | ||||
| event Tick(float DeltaTime){ | ||||
|     local float TrueTimeFactor; | ||||
|     local Controller C; | ||||
|     if(bZEDTimeActive){ | ||||
|        TrueTimeFactor = 1.1 / Level.TimeDilation; | ||||
|        CurrentZEDTimeDuration -= DeltaTime * TrueTimeFactor; | ||||
|        if(CurrentZEDTimeDuration < (ZEDTimeDuration*0.166) && CurrentZEDTimeDuration > 0 ){ | ||||
|            if(!bSpeedingBackUp){ | ||||
|                bSpeedingBackUp = true; | ||||
| 
 | ||||
|                for(C = Level.ControllerList;C != none;C = C.NextController){ | ||||
|                    if(KFPlayerController(C)!= none) | ||||
|                        KFPlayerController(C).ClientExitZedTime(); | ||||
|                } | ||||
|            } | ||||
|            SetGameSpeed(Lerp( (CurrentZEDTimeDuration/(ZEDTimeDuration*0.166)), 1.0, 0.2 )); | ||||
|        } | ||||
|        if(CurrentZEDTimeDuration <= 0){ | ||||
|            if(bZEDTimeActive) | ||||
|                NicePackMutator.ZedTimeDeactivated(); | ||||
|            bZEDTimeActive = false; | ||||
|            bSpeedingBackUp = false; | ||||
|            SetGameSpeed(1.0); | ||||
|            ZedTimeExtensionsUsed = 0; | ||||
|        } | ||||
|     } | ||||
| } | ||||
| function Killed(Controller Killer, Controller Killed, Pawn KilledPawn, class<DamageType> dmgType){ | ||||
|     local KFSteamStatsAndAchievements StatsAndAchievements; | ||||
|     Super.Killed(Killer, Killed, KilledPawn, dmgType); | ||||
|     if(PlayerController(Killer) != none){ | ||||
|        if (NiceMonster(KilledPawn) != none && Killed != Killer){ | ||||
|            StatsAndAchievements = KFSteamStatsAndAchievements(PlayerController(Killer).SteamStatsAndAchievements); | ||||
|            if(StatsAndAchievements != none){ | ||||
|                if(KilledPawn.IsA('NiceZombieStalker') || KilledPawn.IsA('MeanZombieStalker')){ | ||||
|                    if(class<NiceDamTypeWinchester>(dmgType) != none) | ||||
|                        StatsAndAchievements.AddStalkerKillWithLAR(); | ||||
|                } | ||||
|                else if(KilledPawn.IsA('NiceZombieClot') || KilledPawn.IsA('MeanZombieClot')){ | ||||
|                    if(class<NiceDamTypeWinchester>(dmgType) != none) | ||||
|                        KFSteamStatsAndAchievements(PlayerController(Killer).SteamStatsAndAchievements).AddClotKillWithLAR(); | ||||
|                } | ||||
|            } | ||||
|        } | ||||
|     } | ||||
| } | ||||
| // Reloaded to award damage
 | ||||
| function int ReduceDamage(int Damage, pawn injured, pawn instigatedBy, vector HitLocation, out vector Momentum, class<DamageType> DamageType){ | ||||
|     local NiceMonster niceZed; | ||||
|     local KFPlayerController PC; | ||||
|     niceZed = NiceMonster(Injured); | ||||
|     if(niceZed != none){ | ||||
|        if(instigatedBy != none){ | ||||
|            PC = KFPlayerController(instigatedBy.Controller); | ||||
|            if(class<NiceWeaponDamageType>(damageType) != none && PC != none) | ||||
|                class<NiceWeaponDamageType>(damageType).Static.AwardNiceDamage(KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements), Clamp(Damage, 1, Injured.Health), niceZed.scrnRules.HardcoreLevel); | ||||
|        } | ||||
|     } | ||||
|     return Super.ReduceDamage(Damage, injured, InstigatedBy, HitLocation, Momentum, DamageType); | ||||
| } | ||||
| defaultproperties | ||||
| { | ||||
|     GameName="Nice Team Survival Competition" | ||||
|     Description="Nice Edition of Team Survival Competition (TSCGame)." | ||||
| } | ||||
| @ -1,22 +0,0 @@ | ||||
| class NiceTSCLobbyFooter extends NiceLobbyFooter; | ||||
| defaultproperties | ||||
| { | ||||
|     Begin Object Class=GUIButton Name=ReadyButton | ||||
|         Caption="Ready" | ||||
|         MenuState=MSAT_Disabled | ||||
|         Hint="Click to indicate you are ready to play" | ||||
|         WinTop=0.966146 | ||||
|         WinLeft=0.280000 | ||||
|         WinWidth=0.120000 | ||||
|         WinHeight=0.033203 | ||||
|         RenderWeight=2.000000 | ||||
|         TabOrder=4 | ||||
|         bBoundToParent=True | ||||
|         bVisible=False | ||||
|         ToolTip=None | ||||
| 
 | ||||
|         OnClick=TSCLobbyFooter.OnFooterClick | ||||
|         OnKeyEvent=ReadyButton.InternalOnKeyEvent | ||||
|     End Object | ||||
|     b_Ready=GUIButton'NicePack.NiceTSCLobbyFooter.ReadyButton' | ||||
| } | ||||
| @ -1,12 +0,0 @@ | ||||
| class NiceTSCLobbyMenu extends TSCLobbyMenu; | ||||
| defaultproperties | ||||
| { | ||||
|     Begin Object Class=NiceTSCLobbyFooter Name=BuyFooter | ||||
|         RenderWeight=0.300000 | ||||
|         TabOrder=8 | ||||
|         bBoundToParent=False | ||||
|         bScaleToParent=False | ||||
|         OnPreDraw=BuyFooter.InternalOnPreDraw | ||||
|     End Object | ||||
|     t_Footer=NiceTSCLobbyFooter'NicePack.NiceTSCLobbyMenu.BuyFooter' | ||||
| } | ||||
| @ -189,11 +189,11 @@ simulated function DoToggle(){ | ||||
|        ServerApplyFireModes(); | ||||
|        PlayOwnedSound(ToggleSound, SLOT_none, 2.0,,,, false); | ||||
|        if(MainFire == ETYPE_AUTO) | ||||
|            player.ReceiveLocalizedMessage(class'NicePack.NiceAssaultRifleMessage', 1); | ||||
|            player.ReceiveLocalizedMessage(class'NiceAssaultRifleMessage', 1); | ||||
|        else if(MainFire == ETYPE_SEMI) | ||||
|            player.ReceiveLocalizedMessage(class'NicePack.NiceAssaultRifleMessage', 0); | ||||
|            player.ReceiveLocalizedMessage(class'NiceAssaultRifleMessage', 0); | ||||
|        else if(MainFire == ETYPE_BURST) | ||||
|            player.ReceiveLocalizedMessage(class'NicePack.NiceAssaultRifleMessage', 2); | ||||
|            player.ReceiveLocalizedMessage(class'NiceAssaultRifleMessage', 2); | ||||
|     } | ||||
| } | ||||
| simulated function SecondDoToggle(){ | ||||
| @ -226,9 +226,9 @@ simulated function SecondDoToggle(){ | ||||
|     ServerApplyFireModes(); | ||||
|     PlayOwnedSound(ToggleSound, SLOT_none, 2.0,,,, false); | ||||
|     if(choosenType == ETYPE_SEMI) | ||||
|        nicePlayer.ReceiveLocalizedMessage(class'NicePack.NiceAssaultRifleMessage', 4); | ||||
|        nicePlayer.ReceiveLocalizedMessage(class'NiceAssaultRifleMessage', 4); | ||||
|     else | ||||
|        nicePlayer.ReceiveLocalizedMessage(class'NicePack.NiceAssaultRifleMessage', 5); | ||||
|        nicePlayer.ReceiveLocalizedMessage(class'NiceAssaultRifleMessage', 5); | ||||
| } | ||||
| simulated function ClientNiceChangeFireMode(bool bNewWaitForRelease, bool bNewSemiMustBurst){ | ||||
|     local NiceFire niceF; | ||||
|  | ||||
| @ -34,7 +34,7 @@ simulated function ReduceAmmoClient(){ | ||||
| defaultproperties | ||||
| { | ||||
|      ProjectileSpeed=12500.000000 | ||||
|      bulletClass=Class'NicePack.NiceMedicProjectile' | ||||
|      bulletClass=class'NiceMedicProjectile' | ||||
|      FireAimedAnim="Fire_Iron" | ||||
|      FireSoundRef="KF_MP7Snd.Medicgun_Fire" | ||||
|      StereoFireSoundRef="KF_MP7Snd.Medicgun_FireST" | ||||
|  | ||||
| @ -9,7 +9,7 @@ defaultproperties | ||||
|     heatPart=1.000000 | ||||
|     bDealBurningDamage=True | ||||
|     bCheckForHeadShots=False | ||||
|     //WeaponClass=Class'NicePack.NiceFlame9mm'
 | ||||
|     //WeaponClass=class'NiceFlame9mm'
 | ||||
|     DeathString="%k incinerated %o." | ||||
|     FemaleSuicide="%o roasted herself alive." | ||||
|     MaleSuicide="%o roasted himself alive." | ||||
|  | ||||
| @ -428,7 +428,7 @@ function GiveAmmo(int m, WeaponPickup WP, bool bJustSpawned){ | ||||
| 
 | ||||
| defaultproperties | ||||
| { | ||||
|      SingleClass=Class'NicePack.NiceSingle' | ||||
|      SingleClass=class'NiceSingle' | ||||
|      altFlashBoneName="Tip_Left" | ||||
|      altTPAnim="DualiesAttackLeft" | ||||
|      altWeaponAttach="Bone_weapon2" | ||||
| @ -460,7 +460,7 @@ defaultproperties | ||||
|      TraderInfoTexture=Texture'KillingFloorHUD.Trader_Weapon_Images.Trader_Dual_9mm' | ||||
|      ZoomInRotation=(Pitch=0,Roll=0) | ||||
|      ZoomedDisplayFOV=65.000000 | ||||
|      FireModeClass(0)=Class'NicePack.NiceDualiesFire' | ||||
|      FireModeClass(0)=class'NiceDualiesFire' | ||||
|      FireModeClass(1)=Class'KFMod.NoFire' | ||||
|      PutDownAnim="PutDown" | ||||
|      AIRating=0.440000 | ||||
| @ -472,10 +472,10 @@ defaultproperties | ||||
|      Priority=65 | ||||
|      InventoryGroup=2 | ||||
|      GroupOffset=2 | ||||
|      PickupClass=Class'NicePack.NiceDualiesPickup' | ||||
|      PickupClass=class'NiceDualiesPickup' | ||||
|      PlayerViewOffset=(X=20.000000,Z=-7.000000) | ||||
|      BobDamping=7.000000 | ||||
|      AttachmentClass=Class'NicePack.NiceDualiesAttachment' | ||||
|      AttachmentClass=class'NiceDualiesAttachment' | ||||
|      IconCoords=(X1=229,Y1=258,X2=296,Y2=307) | ||||
|      ItemName="!!!Dual something" | ||||
|      DrawScale=0.900000 | ||||
|  | ||||
| @ -6,7 +6,7 @@ defaultproperties | ||||
|      AmmoPickupAmount=30 | ||||
|      MaxAmmo=480 | ||||
|      InitialAmount=240 | ||||
|      PickupClass=Class'NicePack.NiceDualiesAmmoPickup' | ||||
|      PickupClass=class'NiceDualiesAmmoPickup' | ||||
|      IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|      IconCoords=(X1=413,Y1=82,X2=457,Y2=125) | ||||
|      ItemName="Dualies bullets" | ||||
|  | ||||
| @ -3,7 +3,7 @@ class NiceDualiesAmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|      AmmoAmount=30 | ||||
|      InventoryType=Class'NicePack.NiceDualiesAmmo' | ||||
|      InventoryType=class'NiceDualiesAmmo' | ||||
|      PickupMessage="Rounds (9mm)" | ||||
|      StaticMesh=StaticMesh'KillingFloorStatics.DualiesAmmo' | ||||
| } | ||||
|  | ||||
| @ -234,7 +234,7 @@ defaultproperties | ||||
|      TweenTime=0.025000 | ||||
|      FireForce="AssaultRifleFire" | ||||
|      FireRate=0.087500 | ||||
|      AmmoClass=Class'NicePack.NiceSingleAmmo' | ||||
|      AmmoClass=class'NiceSingleAmmo' | ||||
|      ShakeRotMag=(X=75.000000,Y=75.000000,Z=250.000000) | ||||
|      ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000) | ||||
|      ShakeRotTime=3.000000 | ||||
|  | ||||
| @ -30,7 +30,7 @@ defaultproperties | ||||
|      AmmoMesh=StaticMesh'KillingFloorStatics.DualiesAmmo' | ||||
|      CorrespondingPerkIndex=2 | ||||
|      EquipmentCategoryID=1 | ||||
|      InventoryType=Class'NicePack.NiceDualies' | ||||
|      InventoryType=class'NiceDualies' | ||||
|      PickupMessage="You found another 9mm handgun" | ||||
|      PickupForce="AssaultRiflePickup" | ||||
|      StaticMesh=StaticMesh'KF_pickups_Trip.pistol.double9mm_pickup' | ||||
|  | ||||
| @ -180,7 +180,7 @@ function GiveTo(Pawn other, optional Pickup Pickup){ | ||||
| 
 | ||||
| defaultproperties | ||||
| { | ||||
|      DualClass=Class'NicePack.NiceDualies' | ||||
|      DualClass=class'NiceDualies' | ||||
|      bHasChargePhase=False | ||||
|      FirstPersonFlashlightOffset=(X=-20.000000,Y=-22.000000,Z=8.000000) | ||||
|      MagCapacity=15 | ||||
| @ -195,7 +195,7 @@ defaultproperties | ||||
|      StandardDisplayFOV=70.000000 | ||||
|      TraderInfoTexture=Texture'KillingFloorHUD.Trader_Weapon_Images.Trader_9mm' | ||||
|      ZoomedDisplayFOV=65.000000 | ||||
|      FireModeClass(0)=Class'NicePack.NiceSingleFire' | ||||
|      FireModeClass(0)=class'NiceSingleFire' | ||||
|      FireModeClass(1)=Class'KFMod.NoFire' | ||||
|      PutDownAnim="PutDown" | ||||
|      AIRating=0.250000 | ||||
| @ -206,10 +206,10 @@ defaultproperties | ||||
|      Priority=60 | ||||
|      InventoryGroup=2 | ||||
|      GroupOffset=1 | ||||
|      PickupClass=Class'NicePack.NiceSinglePickup' | ||||
|      PickupClass=class'NiceSinglePickup' | ||||
|      PlayerViewOffset=(X=20.000000,Y=25.000000,Z=-10.000000) | ||||
|      BobDamping=6.000000 | ||||
|      AttachmentClass=Class'NicePack.NiceSingleAttachment' | ||||
|      AttachmentClass=class'NiceSingleAttachment' | ||||
|      IconCoords=(X1=434,Y1=253,X2=506,Y2=292) | ||||
|      ItemName="Just a single pistol" | ||||
| } | ||||
|  | ||||
| @ -3,7 +3,7 @@ class NiceSingleAmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|      AmmoAmount=20 | ||||
|      InventoryType=Class'NicePack.NiceSingleAmmo' | ||||
|      InventoryType=class'NiceSingleAmmo' | ||||
|      RespawnTime=0.000000 | ||||
|      PickupMessage="Rounds (9mm)" | ||||
|      StaticMesh=StaticMesh'KillingFloorStatics.DualiesAmmo' | ||||
|  | ||||
| @ -33,7 +33,7 @@ defaultproperties | ||||
|      TweenTime=0.025000 | ||||
|      FireForce="AssaultRifleFire" | ||||
|      FireRate=0.175000 | ||||
|      AmmoClass=Class'NicePack.NiceSingleAmmo' | ||||
|      AmmoClass=class'NiceSingleAmmo' | ||||
|      ShakeRotMag=(X=75.000000,Y=75.000000,Z=250.000000) | ||||
|      ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000) | ||||
|      ShakeRotTime=3.000000 | ||||
|  | ||||
| @ -74,7 +74,7 @@ defaultproperties | ||||
|      AmmoMesh=StaticMesh'KillingFloorStatics.DualiesAmmo' | ||||
|      CorrespondingPerkIndex=2 | ||||
|      EquipmentCategoryID=1 | ||||
|      InventoryType=Class'NicePack.NiceSingle' | ||||
|      InventoryType=class'NiceSingle' | ||||
|      PickupMessage="You got the 9mm handgun" | ||||
|      PickupSound=Sound'KF_9MMSnd.9mm_Pickup' | ||||
|      PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -12,8 +12,8 @@ simulated function ReleaseNails(optional bool bServerOnly){ | ||||
|     shotParams.damage = 52; | ||||
|     shotParams.projSpeed = 3500.0; | ||||
|     shotParams.momentum = 50000; | ||||
|     shotParams.shotDamageType = class'NicePack.NiceDamTypeNailGun'; | ||||
|     shotParams.bulletClass = class'NicePack.NiceNail'; | ||||
|     shotParams.shotDamageType = class'NiceDamTypeNailGun'; | ||||
|     shotParams.bulletClass = class'NiceNail'; | ||||
|     shotParams.bCausePain = true; | ||||
|     if(fireContext.instigator != none) | ||||
|        niceMut = class'NicePack'.static.Myself(fireContext.Instigator.Level); | ||||
|  | ||||
| @ -541,7 +541,7 @@ function DoFireEffect(){ | ||||
|        activeSpread *= class'NiceSkillEnforcerBombard'.default.spreadMult; | ||||
|     } | ||||
|     bIsShotgunBullet = ClassIsChildOf(fireShots[currentShot].bulletClass, class'NiceShotgunPellet'); | ||||
|     if( bIsShotgunBullet && weapon.class != class'NicePack.NiceSpas' && weapon.class != class'NiceNailGun' | ||||
|     if( bIsShotgunBullet && weapon.class != class'NiceSpas' && weapon.class != class'NiceNailGun' | ||||
|        && class'NiceVeterancyTypes'.static.hasSkill(nicePlayer, class'NiceSkillSupportSlugs') ) | ||||
|        activeSpread = 0.0; | ||||
|     if(bIsShotgunBullet && activeSpread <= 0.0 && !bPinpoint) | ||||
| @ -696,7 +696,7 @@ defaultproperties | ||||
|      ProjPerFire=1 | ||||
|      ProjectileSpeed=1524.000000 | ||||
|      MaxBurstLength=3 | ||||
|      bulletClass=Class'NicePack.NiceBullet' | ||||
|      bulletClass=class'NiceBullet' | ||||
|      contBonus=1.200000 | ||||
|      contBonusReset=True | ||||
|      maxBonusContLenght=1 | ||||
|  | ||||
| @ -1331,55 +1331,75 @@ function SetNiceData(NicePlainData.Data transferData, optional NiceHumanPawn new | ||||
|     secondaryCharge = class'NicePlainData'.static.GetInt(transferData, "ChargeAmount", 1); | ||||
|     ClientSetSndCharge(secondaryCharge); | ||||
| } | ||||
| simulated function ApplyLaserState(){ | ||||
| 
 | ||||
| simulated function ApplyLaserState() | ||||
| { | ||||
|     bLaserActive = LaserType > 0; | ||||
|     if(Role < ROLE_Authority) | ||||
|        ServerSetLaserType(LaserType); | ||||
|     if(NiceAttachment(ThirdPersonActor) != none) | ||||
|        NiceAttachment(ThirdPersonActor).SetLaserType(LaserType); | ||||
|     if (Role < ROLE_Authority) | ||||
|         ServerSetLaserType(LaserType); | ||||
|     if (NiceAttachment(ThirdPersonActor) != none) | ||||
|         NiceAttachment(ThirdPersonActor).SetLaserType(LaserType); | ||||
| 
 | ||||
|     // Instigator accessed none fix
 | ||||
|     if (Instigator == none || !Instigator.IsLocallyControlled()) | ||||
|         return; | ||||
|      | ||||
|     if(!Instigator.IsLocallyControlled()) | ||||
|        return; | ||||
|      | ||||
|     if(bLaserActive){ | ||||
|        if(LaserDot == none) | ||||
|            LaserDot = Spawn(LaserDotClass, self); | ||||
|        LaserDot.SetLaserType(LaserType); | ||||
|        if(altLaserAttachmentBone != ''){ | ||||
|            if(altLaserDot == none) | ||||
|                altLaserDot = Spawn(LaserDotClass, self); | ||||
|            altLaserDot.SetLaserType(LaserType); | ||||
|        } | ||||
|        //spawn 1-st person laser attachment for weapon owner
 | ||||
|        if(LaserAttachment == none){ | ||||
|            SetBoneRotation(LaserAttachmentBone, LaserAttachmentRotation); | ||||
|            LaserAttachment = Spawn(LaserAttachmentClass,,,,); | ||||
|            AttachToBone(LaserAttachment, LaserAttachmentBone); | ||||
|            if(LaserAttachment != none) | ||||
|                LaserAttachment.SetRelativeLocation(LaserAttachmentOffset); | ||||
|        } | ||||
|        if(altLaserAttachment == none && altLaserAttachmentBone != ''){ | ||||
|            SetBoneRotation(altLaserAttachmentBone, altLaserAttachmentRotation); | ||||
|            altLaserAttachment = Spawn(LaserAttachmentClass,,,,); | ||||
|            AttachToBone(altLaserAttachment, altLaserAttachmentBone); | ||||
|            if(altLaserAttachment != none) | ||||
|                altLaserAttachment.SetRelativeLocation(altLaserAttachmentOffset); | ||||
|        } | ||||
|        ConstantColor'ScrnTex.Laser.LaserColor'.Color = LaserDot.GetLaserColor(); | ||||
|        LaserAttachment.bHidden = false; | ||||
|        altLaserAttachment.bHidden = false; | ||||
|     if (bLaserActive) | ||||
|     { | ||||
|         if (LaserDot == none) | ||||
|             LaserDot = Spawn(LaserDotClass, self); | ||||
|         LaserDot.SetLaserType(LaserType); | ||||
|         if (altLaserAttachmentBone != '') | ||||
|         { | ||||
|             if (altLaserDot == none) | ||||
|                 altLaserDot = Spawn(LaserDotClass, self); | ||||
|             altLaserDot.SetLaserType(LaserType); | ||||
|         } | ||||
|         // spawn 1-st person laser attachment for weapon owner
 | ||||
|         if (LaserAttachment == none) | ||||
|         { | ||||
|             SetBoneRotation(LaserAttachmentBone, LaserAttachmentRotation); | ||||
|             LaserAttachment = Spawn(LaserAttachmentClass,,,,); | ||||
|             if (LaserAttachment != none) | ||||
|             { | ||||
|                 AttachToBone(LaserAttachment, LaserAttachmentBone); | ||||
|                 LaserAttachment.SetRelativeLocation(LaserAttachmentOffset); | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|             LaserAttachment.bHidden = false; | ||||
| 
 | ||||
|         if (altLaserAttachment == none)  | ||||
|         { | ||||
|             if (altLaserAttachmentBone != '') | ||||
|             { | ||||
|                 SetBoneRotation(altLaserAttachmentBone, altLaserAttachmentRotation); | ||||
|                 altLaserAttachment = Spawn(LaserAttachmentClass,,,,); | ||||
|                 if (altLaserAttachment != none) | ||||
|                 { | ||||
|                     AttachToBone(altLaserAttachment, altLaserAttachmentBone); | ||||
|                     altLaserAttachment.SetRelativeLocation(altLaserAttachmentOffset); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|             altLaserAttachment.bHidden = false; | ||||
| 
 | ||||
|         ConstantColor'ScrnTex.Laser.LaserColor'.Color = LaserDot.GetLaserColor(); | ||||
|     } | ||||
|     else{ | ||||
|        if(LaserAttachment != none) | ||||
|            LaserAttachment.bHidden = true; | ||||
|        if(altLaserAttachment != none) | ||||
|            altLaserAttachment.bHidden = true; | ||||
|        if(LaserDot != none) | ||||
|            LaserDot.Destroy(); | ||||
|        if(altLaserDot != none) | ||||
|            altLaserDot.Destroy(); | ||||
|     else | ||||
|     { | ||||
|         if (LaserAttachment != none) | ||||
|             LaserAttachment.bHidden = true; | ||||
|         if (altLaserAttachment != none) | ||||
|             altLaserAttachment.bHidden = true; | ||||
|         if (LaserDot != none) | ||||
|             LaserDot.Destroy(); | ||||
|         if (altLaserDot != none) | ||||
|             altLaserDot.Destroy(); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| simulated function ToggleLaser(){ | ||||
|     if(!Instigator.IsLocallyControlled())  | ||||
|        return; | ||||
| @ -1578,6 +1598,30 @@ simulated function Destroyed(){ | ||||
|     super(KFWeapon).Destroyed(); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| simulated function float GetAmmoMulti() | ||||
| { | ||||
|     if (NextAmmoCheckTime > Level.TimeSeconds) | ||||
|     { | ||||
|         return LastAmmoResult; | ||||
|     } | ||||
| 
 | ||||
|     NextAmmoCheckTime = Level.TimeSeconds + 1; | ||||
| 
 | ||||
|     // Instigator accessed none fix
 | ||||
|     if (FireMode[0] != none && FireMode[0].AmmoClass != none && Instigator != none && KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo) != none && | ||||
|          KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill != none ) | ||||
|     { | ||||
|         LastAmmoResult = KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill.static.AddExtraAmmoFor(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo), FireMode[0].AmmoClass); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         LastAmmoResult = 1; | ||||
|     } | ||||
| 
 | ||||
|     return LastAmmoResult; | ||||
| } | ||||
| 
 | ||||
| defaultproperties | ||||
| { | ||||
|      recordedZoomTime=-1.000000 | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceAK12Ammo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=KillingFloorHUD.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceAK12Pickup' | ||||
|     WeaponPickupClass=class'NiceAK12Pickup' | ||||
|     AmmoPickupAmount=30 | ||||
|     MaxAmmo=270 | ||||
|     InitialAmount=60 | ||||
|     PickupClass=Class'NicePack.NiceAK12AmmoPickup' | ||||
|     PickupClass=class'NiceAK12AmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=336,Y1=82,X2=382,Y2=125) | ||||
|     ItemName="5.45x39mm" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceAK12AmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=30 | ||||
|     InventoryType=Class'NicePack.NiceAK12Ammo' | ||||
|     InventoryType=class'NiceAK12Ammo' | ||||
|     PickupMessage="Rounds 5.45x39mm" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
| } | ||||
|  | ||||
| @ -36,7 +36,7 @@ defaultproperties | ||||
|     SelectedHudImageRef="ScrnWeaponPack_T.AK12.AK12_select" | ||||
|     PlayerIronSightFOV=65.000000 | ||||
|     ZoomedDisplayFOV=20.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceAK12Fire' | ||||
|     FireModeClass(0)=class'NiceAK12Fire' | ||||
|     FireModeClass(1)=Class'KFMod.NoFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectAnimRate=1.300000 | ||||
| @ -52,10 +52,10 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=4 | ||||
|     GroupOffset=7 | ||||
|     PickupClass=Class'NicePack.NiceAK12Pickup' | ||||
|     PickupClass=class'NiceAK12Pickup' | ||||
|     PlayerViewOffset=(X=-0.500000,Y=20.000000,Z=-3.000000) | ||||
|     BobDamping=6.000000 | ||||
|     AttachmentClass=Class'NicePack.NiceAK12Attachment' | ||||
|     AttachmentClass=class'NiceAK12Attachment' | ||||
|     IconCoords=(X1=245,Y1=39,X2=329,Y2=79) | ||||
|     ItemName="AK12" | ||||
|     TransientSoundVolume=1.250000 | ||||
|  | ||||
| @ -15,7 +15,7 @@ defaultproperties | ||||
|     FireSoundRef="ScrnWeaponPack_SND.AK12.AK12_shot" | ||||
|     StereoFireSoundRef="ScrnWeaponPack_SND.AK12.AK12_shot" | ||||
|     NoAmmoSoundRef="ScrnWeaponPack_SND.AK12.AK12_empty" | ||||
|     DamageType=Class'NicePack.NiceDamTypeAK12AssaultRifle' | ||||
|     DamageType=class'NiceDamTypeAK12AssaultRifle' | ||||
|     DamageMax=68 | ||||
|     Momentum=18500.000000 | ||||
|     bPawnRapidFireAnim=True | ||||
| @ -24,7 +24,7 @@ defaultproperties | ||||
|     TweenTime=0.025000 | ||||
|     FireForce="AssaultRifleFire" | ||||
|     FireRate=0.095000 | ||||
|     AmmoClass=Class'NicePack.NiceAK12Ammo' | ||||
|     AmmoClass=class'NiceAK12Ammo' | ||||
|     ShakeRotMag=(X=50.000000,Y=50.000000,Z=350.000000) | ||||
|     ShakeRotRate=(X=5000.000000,Y=5000.000000,Z=5000.000000) | ||||
|     ShakeRotTime=0.750000 | ||||
|  | ||||
| @ -15,7 +15,7 @@ defaultproperties | ||||
|     AmmoMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
|     CorrespondingPerkIndex=3 | ||||
|     EquipmentCategoryID=2 | ||||
|     InventoryType=Class'NicePack.NiceAK12AssaultRifle' | ||||
|     InventoryType=class'NiceAK12AssaultRifle' | ||||
|     PickupMessage="You got the AK-12" | ||||
|     PickupSound=Sound'ScrnWeaponPack_SND.AK12.AK12_select' | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -5,7 +5,7 @@ defaultproperties | ||||
|     bPenetrationHSOnly=True | ||||
|     MaxPenetrations=3 | ||||
|     HeadShotDamageMult=1.300000 | ||||
|     WeaponClass=Class'NicePack.NiceAK12AssaultRifle' | ||||
|     WeaponClass=class'NiceAK12AssaultRifle' | ||||
|     DeathString="%k killed %o (AK12)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceAK47Ammo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=KillingFloorHUD.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceAK47Pickup' | ||||
|     WeaponPickupClass=class'NiceAK47Pickup' | ||||
|     AmmoPickupAmount=30 | ||||
|     MaxAmmo=240 | ||||
|     InitialAmount=90 | ||||
|     PickupClass=Class'NicePack.NiceAK47AmmoPickup' | ||||
|     PickupClass=class'NiceAK47AmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=336,Y1=82,X2=382,Y2=125) | ||||
|     ItemName="AK47 bullets" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceAK47AmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=30 | ||||
|     InventoryType=Class'NicePack.NiceAK47Ammo' | ||||
|     InventoryType=class'NiceAK47Ammo' | ||||
|     PickupMessage="Rounds 7.62mm" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
| } | ||||
|  | ||||
| @ -30,7 +30,7 @@ defaultproperties | ||||
|     SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.Ak_47" | ||||
|     PlayerIronSightFOV=65.000000 | ||||
|     ZoomedDisplayFOV=32.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceAK47Fire' | ||||
|     FireModeClass(0)=class'NiceAK47Fire' | ||||
|     FireModeClass(1)=Class'KFMod.NoFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectForce="SwitchToAssaultRifle" | ||||
| @ -45,10 +45,10 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=3 | ||||
|     GroupOffset=7 | ||||
|     PickupClass=Class'NicePack.NiceAK47Pickup' | ||||
|     PickupClass=class'NiceAK47Pickup' | ||||
|     PlayerViewOffset=(X=18.000000,Y=22.000000,Z=-6.000000) | ||||
|     BobDamping=6.000000 | ||||
|     AttachmentClass=Class'NicePack.NiceAK47Attachment' | ||||
|     AttachmentClass=class'NiceAK47Attachment' | ||||
|     IconCoords=(X1=245,Y1=39,X2=329,Y2=79) | ||||
|     ItemName="AK47" | ||||
|     TransientSoundVolume=1.250000 | ||||
|  | ||||
| @ -14,7 +14,7 @@ defaultproperties | ||||
|     FireSoundRef="KF_AK47Snd.AK47_Fire" | ||||
|     StereoFireSoundRef="KF_AK47Snd.AK47_FireST" | ||||
|     NoAmmoSoundRef="KF_AK47Snd.AK47_DryFire" | ||||
|     DamageType=Class'NicePack.NiceDamTypeAK47AssaultRifle' | ||||
|     DamageType=class'NiceDamTypeAK47AssaultRifle' | ||||
|     DamageMin=60 | ||||
|     DamageMax=60 | ||||
|     Momentum=8500.000000 | ||||
| @ -24,7 +24,7 @@ defaultproperties | ||||
|     TweenTime=0.025000 | ||||
|     FireForce="AssaultRifleFire" | ||||
|     FireRate=0.109000 | ||||
|     AmmoClass=Class'NicePack.NiceAK47Ammo' | ||||
|     AmmoClass=class'NiceAK47Ammo' | ||||
|     ShakeRotMag=(X=50.000000,Y=50.000000,Z=350.000000) | ||||
|     ShakeRotRate=(X=5000.000000,Y=5000.000000,Z=5000.000000) | ||||
|     ShakeRotTime=0.750000 | ||||
|  | ||||
| @ -17,7 +17,7 @@ defaultproperties | ||||
|     EquipmentCategoryID=2 | ||||
|     VariantClasses(0)=Class'KFMod.GoldenAK47pickup' | ||||
|     VariantClasses(1)=Class'KFMod.NeonAK47Pickup' | ||||
|     InventoryType=Class'NicePack.NiceAK47AssaultRifle' | ||||
|     InventoryType=class'NiceAK47AssaultRifle' | ||||
|     PickupMessage="You got the AK47" | ||||
|     PickupSound=Sound'KF_AK47Snd.AK47_Pickup' | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -4,7 +4,7 @@ defaultproperties | ||||
| { | ||||
|     MaxPenetrations=1 | ||||
|     HeadShotDamageMult=2.000000 | ||||
|     WeaponClass=Class'NicePack.NiceAK47AssaultRifle' | ||||
|     WeaponClass=class'NiceAK47AssaultRifle' | ||||
|     DeathString="%k killed %o (AK47)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -3,7 +3,7 @@ class NiceDamTypeVALDT extends NiceDamageTypeVetCommando | ||||
| defaultproperties | ||||
| { | ||||
|     HeadShotDamageMult=1.500000 | ||||
|     WeaponClass=Class'NicePack.NiceVALDTAssaultRifle' | ||||
|     WeaponClass=class'NiceVALDTAssaultRifle' | ||||
|     DeathString="%k killed %o (AS 'VAL')." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceVALDTAmmo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=KillingFloorHUD.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceVALDTPickup' | ||||
|     WeaponPickupClass=class'NiceVALDTPickup' | ||||
|     AmmoPickupAmount=20 | ||||
|     MaxAmmo=300 | ||||
|     InitialAmount=75 | ||||
|     PickupClass=Class'NicePack.NiceVALDTAmmoPickup' | ||||
|     PickupClass=class'NiceVALDTAmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=336,Y1=82,X2=382,Y2=125) | ||||
|     ItemName="9x39mm" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceVALDTAmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=20 | ||||
|     InventoryType=Class'NicePack.NiceVALDTAmmo' | ||||
|     InventoryType=class'NiceVALDTAmmo' | ||||
|     PickupMessage="9x39mm" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
| } | ||||
|  | ||||
| @ -29,8 +29,8 @@ defaultproperties | ||||
|     SelectedHudImageRef="ScrnWeaponPack_T.VAL.ValDT_selected" | ||||
|     PlayerIronSightFOV=65.000000 | ||||
|     ZoomedDisplayFOV=32.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceVALDTFire' | ||||
|     FireModeClass(1)=Class'NicePack.NiceVALDTFire' | ||||
|     FireModeClass(0)=class'NiceVALDTFire' | ||||
|     FireModeClass(1)=class'NiceVALDTFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectForce="SwitchToAssaultRifle" | ||||
|     AIRating=0.550000 | ||||
| @ -44,7 +44,7 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=3 | ||||
|     GroupOffset=7 | ||||
|     PickupClass=Class'NicePack.NiceVALDTPickup' | ||||
|     PickupClass=class'NiceVALDTPickup' | ||||
|     PlayerViewOffset=(X=10.000000,Y=10.000000,Z=-5.000000) | ||||
|     BobDamping=5.000000 | ||||
|     AttachmentClass=Class'ScrnWeaponPack.VALDTAttachment' | ||||
|  | ||||
| @ -12,7 +12,7 @@ defaultproperties | ||||
|     FireSoundRef="ScrnWeaponPack_SND.VSS.VSS_Fire" | ||||
|     StereoFireSoundRef="ScrnWeaponPack_SND.VSS.VSS_Fire" | ||||
|     NoAmmoSoundRef="KF_AK47Snd.AK47_DryFire" | ||||
|     DamageType=Class'NicePack.NiceDamTypeVALDT' | ||||
|     DamageType=class'NiceDamTypeVALDT' | ||||
|     DamageMin=40 | ||||
|     DamageMax=40 | ||||
|     Momentum=18500.000000 | ||||
| @ -22,7 +22,7 @@ defaultproperties | ||||
|     TweenTime=0.025000 | ||||
|     FireForce="AssaultRifleFire" | ||||
|     FireRate=0.089000 | ||||
|     AmmoClass=Class'NicePack.NiceVALDTAmmo' | ||||
|     AmmoClass=class'NiceVALDTAmmo' | ||||
|     ShakeRotMag=(X=50.000000,Y=50.000000,Z=350.000000) | ||||
|     ShakeRotRate=(X=5000.000000,Y=5000.000000,Z=5000.000000) | ||||
|     ShakeRotTime=0.750000 | ||||
|  | ||||
| @ -14,7 +14,7 @@ defaultproperties | ||||
|     AmmoMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
|     CorrespondingPerkIndex=3 | ||||
|     EquipmentCategoryID=2 | ||||
|     InventoryType=Class'NicePack.NiceVALDTAssaultRifle' | ||||
|     InventoryType=class'NiceVALDTAssaultRifle' | ||||
|     PickupMessage="You've got a AS 'VAL'" | ||||
|     PickupSound=Sound'KF_AK47Snd.AK47_Pickup' | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -28,7 +28,7 @@ defaultproperties | ||||
|     SelectedHudImageRef="KillingFloorHUD.WeaponSelect.Bullpup" | ||||
|     PlayerIronSightFOV=65.000000 | ||||
|     ZoomedDisplayFOV=40.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceBullpupFire' | ||||
|     FireModeClass(0)=class'NiceBullpupFire' | ||||
|     FireModeClass(1)=Class'KFMod.NoFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectForce="SwitchToAssaultRifle" | ||||
| @ -43,10 +43,10 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=3 | ||||
|     GroupOffset=1 | ||||
|     PickupClass=Class'NicePack.NiceBullpupPickup' | ||||
|     PickupClass=class'NiceBullpupPickup' | ||||
|     PlayerViewOffset=(X=20.000000,Y=21.500000,Z=-9.000000) | ||||
|     BobDamping=6.000000 | ||||
|     AttachmentClass=Class'NicePack.NiceBullpupAttachment' | ||||
|     AttachmentClass=class'NiceBullpupAttachment' | ||||
|     IconCoords=(X1=245,Y1=39,X2=329,Y2=79) | ||||
|     ItemName="Bullpup" | ||||
|     TransientSoundVolume=1.250000 | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceBullpupAmmo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=KillingFloorHUD.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceBullpupPickup' | ||||
|     WeaponPickupClass=class'NiceBullpupPickup' | ||||
|     AmmoPickupAmount=30 | ||||
|     MaxAmmo=240 | ||||
|     InitialAmount=45 | ||||
|     PickupClass=Class'NicePack.NiceBullpupAmmoPickup' | ||||
|     PickupClass=class'NiceBullpupAmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=336,Y1=82,X2=382,Y2=125) | ||||
|     ItemName="Bullpup bullets" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceBullpupAmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=30 | ||||
|     InventoryType=Class'NicePack.NiceBullpupAmmo' | ||||
|     InventoryType=class'NiceBullpupAmmo' | ||||
|     PickupMessage="Rounds (5.56 NATO)" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
| } | ||||
|  | ||||
| @ -13,7 +13,7 @@ defaultproperties | ||||
|     FireSoundRef="KF_BullpupSnd.Bullpup_Fire" | ||||
|     StereoFireSoundRef="KF_BullpupSnd.Bullpup_FireST" | ||||
|     NoAmmoSoundRef="KF_9MMSnd.9mm_DryFire" | ||||
|     DamageType=Class'NicePack.NiceDamTypeBullpup' | ||||
|     DamageType=class'NiceDamTypeBullpup' | ||||
|     DamageMin=48 | ||||
|     DamageMax=48 | ||||
|     Momentum=8500.000000 | ||||
| @ -23,7 +23,7 @@ defaultproperties | ||||
|     TweenTime=0.025000 | ||||
|     FireForce="AssaultRifleFire" | ||||
|     FireRate=0.100000 | ||||
|     AmmoClass=Class'NicePack.NiceBullpupAmmo' | ||||
|     AmmoClass=class'NiceBullpupAmmo' | ||||
|     ShakeRotMag=(X=75.000000,Y=75.000000,Z=250.000000) | ||||
|     ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000) | ||||
|     ShakeRotTime=0.500000 | ||||
|  | ||||
| @ -16,7 +16,7 @@ defaultproperties | ||||
|     AmmoMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
|     CorrespondingPerkIndex=3 | ||||
|     EquipmentCategoryID=2 | ||||
|     InventoryType=Class'NicePack.NiceBullpup' | ||||
|     InventoryType=class'NiceBullpup' | ||||
|     PickupMessage="You got the Bullpup" | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|     StaticMesh=StaticMesh'KF_pickups_Trip.Rifle.Bullpup_Pickup' | ||||
|  | ||||
| @ -3,7 +3,7 @@ class NiceDamTypeBullpup extends NiceDamageTypeVetCommando | ||||
| defaultproperties | ||||
| { | ||||
|     HeadShotDamageMult=1.500000 | ||||
|     WeaponClass=Class'NicePack.NiceBullpup' | ||||
|     WeaponClass=class'NiceBullpup' | ||||
|     DeathString="%k killed %o (Bullpup)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| class NiceCZ805M extends CZ805M; | ||||
| defaultproperties | ||||
| { | ||||
|     FireModeClass(0)=Class'NicePack.NiceCZ805MFire' | ||||
|     FireModeClass(1)=Class'NicePack.NiceCZ805MAltFire' | ||||
|     PickupClass=Class'NicePack.NiceCZ805MPickup' | ||||
|     FireModeClass(0)=class'NiceCZ805MFire' | ||||
|     FireModeClass(1)=class'NiceCZ805MAltFire' | ||||
|     PickupClass=class'NiceCZ805MPickup' | ||||
|     ItemName="CZ-805M Medic/Assault Rifle NW" | ||||
| } | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| class NiceCZ805MAltFire extends CZ805MAltFire; | ||||
| defaultproperties | ||||
| { | ||||
|     ProjectileClass=Class'NicePack.NiceCZ805MHealingProjectile' | ||||
|     ProjectileClass=class'NiceCZ805MHealingProjectile' | ||||
| } | ||||
|  | ||||
| @ -3,5 +3,5 @@ defaultproperties | ||||
| { | ||||
|     MaxAmmo=300 | ||||
|     InitialAmount=150 | ||||
|     PickupClass=Class'NicePack.NiceCZ805MAmmoPickup' | ||||
|     PickupClass=class'NiceCZ805MAmmoPickup' | ||||
| } | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| class NiceCZ805MAmmoPickup extends CZ805MAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     InventoryType=Class'NicePack.NiceCZ805MAmmo' | ||||
|     InventoryType=class'NiceCZ805MAmmo' | ||||
| } | ||||
|  | ||||
| @ -3,7 +3,7 @@ defaultproperties | ||||
| { | ||||
|     maxVerticalRecoilAngle=270 | ||||
|     maxHorizontalRecoilAngle=135 | ||||
|     DamageType=Class'NicePack.NiceDamTypeCZ805M' | ||||
|     DamageType=class'NiceDamTypeCZ805M' | ||||
|     DamageMax=40 | ||||
|     AmmoClass=Class'NicePack.NiceCZ805MAmmo' | ||||
|     AmmoClass=class'NiceCZ805MAmmo' | ||||
| } | ||||
|  | ||||
| @ -6,6 +6,6 @@ defaultproperties | ||||
|     Description="Horzine's modification of CZ-805 BREN rifle with attached healing dart launcher. Useful for both Medic and Commando perks." | ||||
|     ItemName="CZ-805M NW" | ||||
|     ItemShortName="CZ-805M NW" | ||||
|     InventoryType=Class'NicePack.NiceCZ805M' | ||||
|     InventoryType=class'NiceCZ805M' | ||||
|     PickupMessage="You got the CZ-805M NW" | ||||
| } | ||||
|  | ||||
| @ -3,7 +3,7 @@ class NiceDamTypeCZ805M extends NiceDamageTypeVetCommando | ||||
| defaultproperties | ||||
| { | ||||
|     HeadShotDamageMult=1.500000 | ||||
|     WeaponClass=Class'NicePack.NiceCZ805M' | ||||
|     WeaponClass=class'NiceCZ805M' | ||||
|     DeathString="%k killed %o (CZ 805)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -5,7 +5,7 @@ defaultproperties | ||||
|     MaxPenetrations=3 | ||||
|     flinchMultiplier=0.800000 | ||||
|     HeadShotDamageMult=2.250000 | ||||
|     WeaponClass=Class'NicePack.NiceFNFAL_ACOG_AssaultRifle' | ||||
|     WeaponClass=class'NiceFNFAL_ACOG_AssaultRifle' | ||||
|     DeathString="%k killed %o (FNFAL ACOG)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceFNFALAmmo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=KillingFloorHUD.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceFNFAL_ACOG_Pickup' | ||||
|     WeaponPickupClass=class'NiceFNFAL_ACOG_Pickup' | ||||
|     AmmoPickupAmount=20 | ||||
|     MaxAmmo=180 | ||||
|     InitialAmount=45 | ||||
|     PickupClass=Class'NicePack.NiceFNFALAmmoPickup' | ||||
|     PickupClass=class'NiceFNFALAmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=336,Y1=82,X2=382,Y2=125) | ||||
|     ItemName="FNFAL bullets" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceFNFALAmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=20 | ||||
|     InventoryType=Class'NicePack.NiceFNFALAmmo' | ||||
|     InventoryType=class'NiceFNFALAmmo' | ||||
|     PickupMessage="Rounds 7.62x51mm" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
| } | ||||
|  | ||||
| @ -16,7 +16,7 @@ defaultproperties | ||||
|     FireSoundRef="KF_FNFALSnd.FNFAL_Fire_Single_M" | ||||
|     StereoFireSoundRef="KF_FNFALSnd.FNFAL_Fire_Single_S" | ||||
|     NoAmmoSoundRef="KF_SCARSnd.SCAR_DryFire" | ||||
|     DamageType=Class'NicePack.NiceDamTypeFNFALAssaultRifle' | ||||
|     DamageType=class'NiceDamTypeFNFALAssaultRifle' | ||||
|     DamageMin=66 | ||||
|     DamageMax=66 | ||||
|     Momentum=8500.000000 | ||||
| @ -27,7 +27,7 @@ defaultproperties | ||||
|     TweenTime=0.025000 | ||||
|     FireForce="AssaultRifleFire" | ||||
|     FireRate=0.100000 | ||||
|     AmmoClass=Class'NicePack.NiceFNFALAmmo' | ||||
|     AmmoClass=class'NiceFNFALAmmo' | ||||
|     ShakeRotMag=(X=80.000000,Y=80.000000,Z=450.000000) | ||||
|     ShakeRotRate=(X=7500.000000,Y=7500.000000,Z=7500.000000) | ||||
|     ShakeRotTime=0.650000 | ||||
|  | ||||
| @ -26,7 +26,7 @@ defaultproperties | ||||
|     SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.FNFAL" | ||||
|     PlayerIronSightFOV=55.000000 | ||||
|     ZoomedDisplayFOV=15.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceFNFALFire' | ||||
|     FireModeClass(0)=class'NiceFNFALFire' | ||||
|     FireModeClass(1)=Class'KFMod.NoFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectForce="SwitchToAssaultRifle" | ||||
| @ -41,10 +41,10 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=4 | ||||
|     GroupOffset=12 | ||||
|     PickupClass=Class'NicePack.NiceFNFAL_ACOG_Pickup' | ||||
|     PickupClass=class'NiceFNFAL_ACOG_Pickup' | ||||
|     PlayerViewOffset=(X=3.000000,Y=15.000000,Z=-6.000000) | ||||
|     BobDamping=6.000000 | ||||
|     AttachmentClass=Class'NicePack.NiceFNFAL_ACOG_Attachment' | ||||
|     AttachmentClass=class'NiceFNFAL_ACOG_Attachment' | ||||
|     IconCoords=(X1=245,Y1=39,X2=329,Y2=79) | ||||
|     ItemName="FNFAL" | ||||
|     TransientSoundVolume=1.250000 | ||||
|  | ||||
| @ -15,7 +15,7 @@ defaultproperties | ||||
|     AmmoMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
|     CorrespondingPerkIndex=3 | ||||
|     EquipmentCategoryID=3 | ||||
|     InventoryType=Class'NicePack.NiceFNFAL_ACOG_AssaultRifle' | ||||
|     InventoryType=class'NiceFNFAL_ACOG_AssaultRifle' | ||||
|     PickupMessage="You got the FN FAL with ACOG Sight" | ||||
|     PickupSound=Sound'KF_FNFALSnd.FNFAL_Pickup' | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -3,7 +3,7 @@ defaultproperties | ||||
| { | ||||
|     MaxPenetrations=2 | ||||
|     HeadShotDamageMult=2.000000 | ||||
|     WeaponClass=Class'NicePack.NiceHK417AR' | ||||
|     WeaponClass=class'NiceHK417AR' | ||||
|     DeathString="%k killed %o (HK-417)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -41,7 +41,7 @@ defaultproperties | ||||
|     SelectedHudImageRef="ScrnWeaponPack_T.HK417AR.HK417_selected" | ||||
|     PlayerIronSightFOV=32.000000 | ||||
|     ZoomedDisplayFOV=60.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceHK417Fire' | ||||
|     FireModeClass(0)=class'NiceHK417Fire' | ||||
|     FireModeClass(1)=Class'KFMod.NoFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectAnimRate=2.000000 | ||||
| @ -56,10 +56,10 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=4 | ||||
|     GroupOffset=3 | ||||
|     PickupClass=Class'NicePack.NiceHK417Pickup' | ||||
|     PickupClass=class'NiceHK417Pickup' | ||||
|     PlayerViewOffset=(X=14.000000,Y=7.000000,Z=-4.000000) | ||||
|     BobDamping=6.000000 | ||||
|     AttachmentClass=Class'NicePack.NiceHK417Attachment' | ||||
|     AttachmentClass=class'NiceHK417Attachment' | ||||
|     IconCoords=(X1=253,Y1=146,X2=333,Y2=181) | ||||
|     ItemName="HK-417" | ||||
| } | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceHK417Ammo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=InterfaceContent.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceHK417Pickup' | ||||
|     WeaponPickupClass=class'NiceHK417Pickup' | ||||
|     AmmoPickupAmount=20 | ||||
|     MaxAmmo=180 | ||||
|     InitialAmount=45 | ||||
|  | ||||
| @ -2,6 +2,6 @@ class NiceHK417AmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=20 | ||||
|     InventoryType=Class'NicePack.NiceHK417Ammo' | ||||
|     InventoryType=class'NiceHK417Ammo' | ||||
|     PickupMessage="7.62x51mm NATO" | ||||
| } | ||||
|  | ||||
| @ -11,7 +11,7 @@ defaultproperties | ||||
|     FireSoundRef="ScrnWeaponPack_SND.HK417AR.HK417_shot" | ||||
|     StereoFireSoundRef="ScrnWeaponPack_SND.HK417AR.HK417_shot" | ||||
|     NoAmmoSoundRef="ScrnWeaponPack_SND.HK417AR.HK417_empty" | ||||
|     DamageType=Class'NicePack.NiceDamTypeHK417AR' | ||||
|     DamageType=class'NiceDamTypeHK417AR' | ||||
|     DamageMin=75 | ||||
|     DamageMax=75 | ||||
|     Momentum=20000.000000 | ||||
| @ -22,7 +22,7 @@ defaultproperties | ||||
|     TweenTime=0.025000 | ||||
|     FireForce="AssaultRifleFire" | ||||
|     FireRate=0.230000 | ||||
|     AmmoClass=Class'NicePack.NiceHK417Ammo' | ||||
|     AmmoClass=class'NiceHK417Ammo' | ||||
|     ShakeRotMag=(X=50.000000,Y=50.000000,Z=300.000000) | ||||
|     ShakeRotRate=(X=9500.000000,Y=9500.000000,Z=9500.000000) | ||||
|     ShakeRotTime=0.650000 | ||||
|  | ||||
| @ -13,7 +13,7 @@ defaultproperties | ||||
|     AmmoItemName="7.62x51mm NATO" | ||||
|     CorrespondingPerkIndex=3 | ||||
|     EquipmentCategoryID=2 | ||||
|     InventoryType=Class'NicePack.NiceHK417AR' | ||||
|     InventoryType=class'NiceHK417AR' | ||||
|     PickupMessage="You've got a HK-417" | ||||
|     PickupSound=Sound'ScrnWeaponPack_SND.HK417AR.HK417_pickup' | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -5,7 +5,7 @@ defaultproperties | ||||
|     badDecapMod=0.8000 | ||||
|     HeadShotDamageMult=1.400000 | ||||
|     bSniperWeapon=True | ||||
|     WeaponClass=Class'NicePack.NiceL85A2Z' | ||||
|     WeaponClass=class'NiceL85A2Z' | ||||
|     DeathString="%k killed %o." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceL85A2Ammo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=InterfaceContent.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceL85A2Pickup' | ||||
|     WeaponPickupClass=class'NiceL85A2Pickup' | ||||
|     AmmoPickupAmount=30 | ||||
|     MaxAmmo=210 | ||||
|     InitialAmount=45 | ||||
|     PickupClass=Class'NicePack.NiceL85A2AmmoPickup' | ||||
|     PickupClass=class'NiceL85A2AmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=413,Y1=82,X2=457,Y2=125) | ||||
|     ItemName="Stanag Magazines" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceL85A2AmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=30 | ||||
|     InventoryType=Class'NicePack.NiceL85A2Ammo' | ||||
|     InventoryType=class'NiceL85A2Ammo' | ||||
|     RespawnTime=0.000000 | ||||
|     PickupMessage="Mag (5.56mm)" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.DualiesAmmo' | ||||
|  | ||||
| @ -14,7 +14,7 @@ defaultproperties | ||||
|     FireSoundRef="KF_M4RifleSnd.M4Rifle_Fire_Single_M" | ||||
|     StereoFireSoundRef="KF_M4RifleSnd.M4Rifle_Fire_Single_S" | ||||
|     NoAmmoSoundRef="KF_AK47Snd.AK47_DryFire" | ||||
|     DamageType=Class'NicePack.NiceDamTypeL85A2Z' | ||||
|     DamageType=class'NiceDamTypeL85A2Z' | ||||
|     DamageMin=81 | ||||
|     DamageMax=81 | ||||
|     Momentum=10000.000000 | ||||
| @ -25,7 +25,7 @@ defaultproperties | ||||
|     TweenTime=0.025000 | ||||
|     FireForce="AssaultRifleFire" | ||||
|     FireRate=0.250000 | ||||
|     AmmoClass=Class'NicePack.NiceL85A2Ammo' | ||||
|     AmmoClass=class'NiceL85A2Ammo' | ||||
|     ShakeRotMag=(X=75.000000,Y=75.000000,Z=250.000000) | ||||
|     ShakeRotRate=(X=10000.000000,Y=10000.000000,Z=10000.000000) | ||||
|     ShakeRotTime=3.000000 | ||||
|  | ||||
| @ -15,7 +15,7 @@ defaultproperties | ||||
|     AmmoMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
|     CorrespondingPerkIndex=3 | ||||
|     EquipmentCategoryID=3 | ||||
|     InventoryType=Class'NicePack.NiceL85A2Z' | ||||
|     InventoryType=class'NiceL85A2Z' | ||||
|     PickupMessage="You got the L85A2" | ||||
|     PickupSound=Sound'KF_FNFALSnd.FNFAL_Pickup' | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -37,7 +37,7 @@ defaultproperties | ||||
|     SelectedHudImageRef="NicePackT.L85A2.L85A2_Selected" | ||||
|     PlayerIronSightFOV=40.000000 | ||||
|     ZoomedDisplayFOV=65.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceL85A2Fire' | ||||
|     FireModeClass(0)=class'NiceL85A2Fire' | ||||
|     FireModeClass(1)=Class'KFMod.NoFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectAnimRate=1.500000 | ||||
| @ -53,10 +53,10 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=3 | ||||
|     GroupOffset=1 | ||||
|     PickupClass=Class'NicePack.NiceL85A2Pickup' | ||||
|     PickupClass=class'NiceL85A2Pickup' | ||||
|     PlayerViewOffset=(X=20.000000,Y=25.000000,Z=-10.000000) | ||||
|     BobDamping=6.000000 | ||||
|     AttachmentClass=Class'NicePack.NiceL85A2Attachment' | ||||
|     AttachmentClass=class'NiceL85A2Attachment' | ||||
|     IconCoords=(X1=434,Y1=253,X2=506,Y2=292) | ||||
|     ItemName="L85A2" | ||||
| } | ||||
|  | ||||
| @ -3,7 +3,7 @@ class NiceDamTypeM4AssaultRifle extends NiceDamageTypeVetCommando | ||||
| defaultproperties | ||||
| { | ||||
|     HeadShotDamageMult=1.500000 | ||||
|     WeaponClass=Class'NicePack.NiceM4AssaultRifle' | ||||
|     WeaponClass=class'NiceM4AssaultRifle' | ||||
|     DeathString="%k killed %o (M4)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceM4Ammo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=KillingFloorHUD.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceM4Pickup' | ||||
|     WeaponPickupClass=class'NiceM4Pickup' | ||||
|     AmmoPickupAmount=30 | ||||
|     MaxAmmo=240 | ||||
|     InitialAmount=60 | ||||
|     PickupClass=Class'NicePack.NiceM4AmmoPickup' | ||||
|     PickupClass=class'NiceM4AmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=336,Y1=82,X2=382,Y2=125) | ||||
|     ItemName="M4 bullets" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceM4AmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=30 | ||||
|     InventoryType=Class'NicePack.NiceM4Ammo' | ||||
|     InventoryType=class'NiceM4Ammo' | ||||
|     PickupMessage="Rounds 5.56mm" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
| } | ||||
|  | ||||
| @ -29,7 +29,7 @@ defaultproperties | ||||
|     SelectedHudImageRef="KillingFloor2HUD.WeaponSelect.M4" | ||||
|     PlayerIronSightFOV=65.000000 | ||||
|     ZoomedDisplayFOV=45.000000 | ||||
|     FireModeClass(0)=Class'NicePack.NiceM4Fire' | ||||
|     FireModeClass(0)=class'NiceM4Fire' | ||||
|     FireModeClass(1)=Class'KFMod.NoFire' | ||||
|     PutDownAnim="PutDown" | ||||
|     SelectForce="SwitchToAssaultRifle" | ||||
| @ -44,10 +44,10 @@ defaultproperties | ||||
|     CustomCrossHairTextureName="Crosshairs.HUD.Crosshair_Cross5" | ||||
|     InventoryGroup=3 | ||||
|     GroupOffset=10 | ||||
|     PickupClass=Class'NicePack.NiceM4Pickup' | ||||
|     PickupClass=class'NiceM4Pickup' | ||||
|     PlayerViewOffset=(X=25.000000,Y=18.000000,Z=-6.000000) | ||||
|     BobDamping=6.000000 | ||||
|     AttachmentClass=Class'NicePack.NiceM4Attachment' | ||||
|     AttachmentClass=class'NiceM4Attachment' | ||||
|     IconCoords=(X1=245,Y1=39,X2=329,Y2=79) | ||||
|     ItemName="M4" | ||||
|     TransientSoundVolume=1.250000 | ||||
|  | ||||
| @ -14,12 +14,12 @@ defaultproperties | ||||
|     FireSoundRef="KF_M4RifleSnd.M4Rifle_Fire_Single_M" | ||||
|     StereoFireSoundRef="KF_M4RifleSnd.M4Rifle_Fire_Single_S" | ||||
|     NoAmmoSoundRef="KF_AK47Snd.AK47_DryFire" | ||||
|     DamageType=Class'NicePack.NiceDamTypeM4AssaultRifle' | ||||
|     DamageType=class'NiceDamTypeM4AssaultRifle' | ||||
|     DamageMin=69 | ||||
|     DamageMax=69 | ||||
|     Momentum=8500.000000 | ||||
|     FireRate=0.075000 | ||||
|     AmmoClass=Class'NicePack.NiceM4Ammo' | ||||
|     AmmoClass=class'NiceM4Ammo' | ||||
|     ShakeRotMag=(X=50.000000,Y=50.000000,Z=350.000000) | ||||
|     ShakeRotRate=(X=5000.000000,Y=5000.000000,Z=5000.000000) | ||||
|     ShakeRotTime=0.750000 | ||||
|  | ||||
| @ -16,7 +16,7 @@ defaultproperties | ||||
|     CorrespondingPerkIndex=3 | ||||
|     EquipmentCategoryID=2 | ||||
|     VariantClasses(0)=Class'KFMod.CamoM4Pickup' | ||||
|     InventoryType=Class'NicePack.NiceM4AssaultRifle' | ||||
|     InventoryType=class'NiceM4AssaultRifle' | ||||
|     PickupMessage="You got the M4" | ||||
|     PickupSound=Sound'KF_M4RifleSnd.foley.WEP_M4_Foley_Pickup' | ||||
|     PickupForce="AssaultRiflePickup" | ||||
|  | ||||
| @ -3,7 +3,7 @@ class NiceDamTypeM4M203AssaultRifle extends NiceDamageTypeVetCommando | ||||
| defaultproperties | ||||
| { | ||||
|     HeadShotDamageMult=1.500000 | ||||
|     WeaponClass=Class'NicePack.NiceM4M203AssaultRifle' | ||||
|     WeaponClass=class'NiceM4M203AssaultRifle' | ||||
|     DeathString="%k killed %o (M4 M203)." | ||||
|     FemaleSuicide="%o shot herself in the foot." | ||||
|     MaleSuicide="%o shot himself in the foot." | ||||
|  | ||||
| @ -3,6 +3,6 @@ defaultproperties | ||||
| { | ||||
|     ItemName="M4 203 NW" | ||||
|     ItemShortName="M4 203 N W" | ||||
|     PrimaryWeaponPickup=Class'NicePack.NiceM4Pickup' | ||||
|     InventoryType=Class'NicePack.NiceM4203AssaultRifle' | ||||
|     PrimaryWeaponPickup=class'NiceM4Pickup' | ||||
|     InventoryType=class'NiceM4203AssaultRifle' | ||||
| } | ||||
|  | ||||
| @ -2,11 +2,11 @@ class NiceM4M203Ammo extends NiceAmmo; | ||||
| #EXEC OBJ LOAD FILE=KillingFloorHUD.utx | ||||
| defaultproperties | ||||
| { | ||||
|     WeaponPickupClass=Class'NicePack.NiceM4Pickup' | ||||
|     WeaponPickupClass=class'NiceM4Pickup' | ||||
|     AmmoPickupAmount=30 | ||||
|     MaxAmmo=180 | ||||
|     InitialAmount=60 | ||||
|     PickupClass=Class'NicePack.NiceM4M203AmmoPickup' | ||||
|     PickupClass=class'NiceM4M203AmmoPickup' | ||||
|     IconMaterial=Texture'KillingFloorHUD.Generic.HUD' | ||||
|     IconCoords=(X1=336,Y1=82,X2=382,Y2=125) | ||||
|     ItemName="M4 bullets" | ||||
|  | ||||
| @ -2,7 +2,7 @@ class NiceM4M203AmmoPickup extends NiceAmmoPickup; | ||||
| defaultproperties | ||||
| { | ||||
|     AmmoAmount=30 | ||||
|     InventoryType=Class'NicePack.NiceM4M203Ammo' | ||||
|     InventoryType=class'NiceM4M203Ammo' | ||||
|     PickupMessage="Rounds 5.56mm" | ||||
|     StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' | ||||
| } | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue
	
	Block a user