PWAD3! WeaponSection RGA3 setslot 1 "Riot Shield" "P99" "MP412" "Desert Eagle" setslot 2 "KSG 12" "AA-12" "Model 1887" setslot 3 "PP90M1" "P90" "PM9" "MP7" setslot 4 "M4A1" "M16A4" "SCAR-L" "G36C" setslot 5 "M14 EBR" "AK-47" setslot 6 "L86 LSW" "PKP Pecheneg" "MK46" setslot 7 "Dragunov" "L118A" "MSR" setslot 8 "M320 GLM" "Javelin" setslot 9 "Menu" "C4" "Detonator" "TacticalInsertion" setslot 0 "Killstreak - UAV" "Killstreak - Vests" "Killstreak - Remote Helicopter" addkeysection "Real Guns Ultimate" RealGuns addmenukey "Reload" reload addmenukey "Use Lethal" grenade addmenukey "Use Tactical" invuse addmenukey "Knife attack" knife addmenukey "Drop Weapon" dropcurrent addmenukey "Open Buy Menu" buymenu alias reload "puke 601" alias grenade "puke 603" alias knife "puke 604" alias dropcurrent "puke 621" alias buymenu "puke 519" clearplayerclasses Addplayerclass RGAPlayer addplayerclass RGAPlayer_Assault addplayerclass RGAPlayer_Overwatch addplayerclass RGAPlayer_Recon addplayerclass RGAPlayer_ScoutSniper addplayerclass RGAPlayer_RiotControl addplayerclass RGAPlayer_CrowdControl addplayerclass RGAPlayer_Demolitions #include "D_HEAD" #include "D_DEFAUL" #include "D_INFO" #include "D_PERKS" #include "D_PICKUP" #include "D_MENU" //Buy menu #include "KS_UAV" //UAV #include "KS_VEST" //Vests #include "KS_RECON" //Recon Helicopter //Weapons #include "W_GRENAD" //Grenade, Stuns, Flashbangs and Semtex #include "W_CLAYMO" //Claymore #include "W_BETTY" //Bouncing betty #include "W_C4" //C4 #include "W_TACTIC" //Tactical Insertion #include "W_RIOTSH" //Riot Shield #include "W_MP412" //MP412 handgun #include "W_DEAGLE" //Desert Eagle #include "W_P99" //P99 #include "W_KSG12" //KSG12 shotgun #include "W_AA12" //AA12 #include "W_M1887" //Model 1887 #include "W_L118A" //L118A sniper #include "W_DRAGUN" //Dragunov #include "W_MSR" //MSR #include "W_PM9" //PM9 SMG #include "W_MP7" //MP7 #include "W_P90" //P90 #include "W_PP90M1" //PP90M1 #include "W_M4A1" //M4A1 #include "W_M16A4" //M16A4 #include "W_SCARL" //SCAR-L assault rifle #include "W_G36C" //G36C #include "W_M14EBR" //M14 EBR/MK14 #include "W_AK47" //AK-47 #include "W_MK46" //MK46 LMG #include "W_L86" //L86 LSW #include "W_PKPPEC" //PKP Pecheneg #include "W_M320GL" //M320 GLM launcher #include "W_JAVELI" //Javelin missile launcher actor PlayerStepSmokePuff { -RANDOMIZE +NOCLIP PROJECTILE Damage 0 -NOGRAVITY states { Spawn: TNT1 A 0 TNT1 A 0 A_CheckFloor("Sound") stop Sound: TNT1 A 0 A_SpawnItemEx("PlayerStepSound", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 5 stop } } actor PlayerStepSound { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("footstep/loud") stop } } actor PlayerStepSmokePuff2 : PlayerStepSmokePuff { -NOGRAVITY states { Spawn: TNT1 A 0 TNT1 A 0 A_CheckFloor("Sound") stop Sound: TNT1 A 0 A_SpawnItemEx("PlayerStepSound2", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 5 stop } } actor PlayerStepSound2 { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("footstep/stones2") stop } } actor HitIndicator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(607,0,0,0,0) stop } } actor JuggHitIndicator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(607,0,1,0,0) TNT1 A 0 A_Jump(32,"Die") stop Die: TNT1 A 0 ACS_ExecuteAlways(615,0,2,0,0) stop } } actor BlastHitIndicator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(607,0,2,0,0) stop } } actor SemtexHitIndicator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(607,0,0,0,0) TNT1 A 0 ACS_ExecuteAlways(642,0,1,0,0) TNT1 A 0 ACS_ExecuteAlways(611,0,50,1,6) stop } } actor RGAPlayer : DoomPlayer { Radius 16 Height 48 Player.JumpZ 8 Player.AttackZOffset 14 player.sidemove 0.75 0.65 player.forwardmove 0.75 0.65 player.displayname "Random Stuff" player.soundclass "WW2" player.startitem "MaxWeaponsFilled", 2 player.startitem "RandomItem", 1 damagefactor "Falling", 10.0 +NOSKIN +QUICKTORETALIATE +ISMONSTER States { Spawn: PLAY A 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY A 0 A_JumpIfInventory("Crouching",1,"SpawnCrouching") Loop SpawnCrouching: PLAY A 2 A_SpawnItemEx("PlayerHead",-9,0,28) goto Spawn SeeSound: PLAY A 0 A_AlertMonsters goto See+1 See: PLAY H 0 A_JumpIf(ACS_ExecuteWithResult(609,1,0,0) == 1, "SeeSound") PLAY A 0 A_JumpIfInventory("Perk3_DeadSilence",1,"See_DeadSilence") PLAY A 0 A_JumpIfInventory("Crouching",1,"Crouching") PLAY A 0 A_JumpIfInventory("Walking",1,"SeeAim1") PLAY A 0 A_JumpIfInventory("Aiming",1,"SeeAim1") PLAY AAA 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY B 0 A_JumpIfInventory("Aiming",1,"SeeAim1") PLAY BBB 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY C 0 A_SpawnItemEx("PlayerStepSmokePuff", 0, 0, -8, 0, 0, 0, 0, 128, 0) PLAY A 0 A_JumpIfInventory("Crouching",1,"Crouching") PLAY A 0 A_JumpIfInventory("Walking",1,"SeeAim1") PLAY CCC 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY A 0 A_JumpIfInventory("Aiming",1,"SeeAim1") PLAY DDD 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY B 0 A_JumpIfInventory("Aiming",1,"SeeAim1") PLAY A 0 A_SpawnItemEx("PlayerStepSmokePuff", 0, 0, -8, 0, 0, 0, 0, 128, 0) goto Spawn SeeAim1: PLAY AAAA 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY BBBB 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY C 0 A_SpawnItemEx("PlayerStepSmokePuff2", 0, 0, -8, 0, 0, 0, 0, 128, 0) PLAY CCCC 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY DDDD 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY A 0 A_SpawnItemEx("PlayerStepSmokePuff2", 0, 0, -8, 0, 0, 0, 0, 128, 0) goto Spawn Crouching: PLAY AAAA 2 A_SpawnItemEx("PlayerHead",-2,0,28) PLAY BBBB 2 A_SpawnItemEx("PlayerHead",-2,0,28) PLAY C 0 A_SpawnItemEx("PlayerStepSmokePuff2", 0, 0, -8, 0, 0, 0, 0, 128, 0) PLAY CCCC 2 A_SpawnItemEx("PlayerHead",-2,0,28) PLAY DDDD 2 A_SpawnItemEx("PlayerHead",-2,0,28) PLAY A 0 A_SpawnItemEx("PlayerStepSmokePuff2", 0, 0, -8, 0, 0, 0, 0, 128, 0) goto Spawn See_DeadSilence: PLAY A 0 A_JumpIfInventory("Crouching",1,"Crouching_DeadSilence") PLAY A 0 A_JumpIfInventory("Walking",1,"SeeAim1_DeadSilence") PLAY A 0 A_JumpIfInventory("Aiming",1,"SeeAim1_DeadSilence") PLAY AAA 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY B 0 A_JumpIfInventory("Aiming",1,"SeeAim1_DeadSilence") PLAY BBB 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY A 0 A_JumpIfInventory("Crouching",1,"Crouching_DeadSilence") PLAY A 0 A_JumpIfInventory("Walking",1,"SeeAim1_DeadSilence") PLAY CCC 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY A 0 A_JumpIfInventory("Aiming",1,"SeeAim1_DeadSilence") PLAY DDD 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY B 0 A_JumpIfInventory("Aiming",1,"SeeAim1_DeadSilence") goto Spawn SeeAim1_DeadSilence: PLAY AAAA 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY BBBB 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY CCCC 2 A_SpawnItemEx("PlayerHead",-9,0,50) PLAY DDDD 2 A_SpawnItemEx("PlayerHead",-9,0,50) goto Spawn Crouching_DeadSilence: PLAY AAAA 2 A_SpawnItemEx("PlayerHead",-2,0,28) PLAY BBBB 2 A_SpawnItemEx("PlayerHead",-2,0,28) PLAY CCCC 2 A_SpawnItemEx("PlayerHead",-2,0,28) PLAY DDDD 2 A_SpawnItemEx("PlayerHead",-2,0,28) goto Spawn Missile: PLAY A 0 A_JumpIfInventory("Crouching",1,"MissileCrouching") PLAY EEE 2 A_SpawnItemEx("PlayerHead",-9,0,50) Goto Spawn Melee: PLAY A 0 A_JumpIfInventory("Crouching",1,"MeleeCrouching") PLAY F 2 BRIGHT A_SpawnItemEx("PlayerHead",-9,0,50) Goto Missile MissileCrouching: PLAY EEE 2 A_SpawnItemEx("PlayerHead",-2,0,28) Goto Spawn MeleeCrouching: PLAY F 2 BRIGHT A_SpawnItemEx("PlayerHead",-2,0,28) Goto Missile Pain.Semtex: PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("SemtexHitIndicator",1) PLAY G 0 ACS_Execute(642,0,0,0,0) //Stuck by semtex goto Pain+5 Pain.Shock2: PLAY G 0 A_JumpIfInventory("Perk2_BlastShield",1,3) PLAY G 0 ACS_ExecuteAlways(617,0,0,0,0) PLAY G 1 A_GiveInventory("InCombat",7) goto Pain PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("BlastHitIndicator",1) PLAY G 0 ACS_ExecuteAlways(617,0,0,0,0) goto Pain Pain.Shock: PLAY G 0 A_JumpIfInventory("Perk2_BlastShield",1,3) PLAY G 0 ACS_ExecuteAlways(616,0,0,0,0) PLAY G 1 A_GiveInventory("InCombat",7) goto Pain PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("BlastHitIndicator",1) PLAY G 0 ACS_ExecuteAlways(616,0,0,0,0) goto Pain Pain: PLAY G 0 ACS_ExecuteAlways(600,0,900,900,0) PLAY G 0 ACS_ExecuteAlways(606,0,0,0,0) PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_JumpIfInventory("Perk2_Juggernaut",1,"Pain.Juggernaut") PLAY G 0 A_GiveToTarget("HitIndicator",1) PLAY G 0 A_PlaySoundEx("player/hurt","SoundSlot6") PLAY A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,128) PLAY GGGGGGGG 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,32),0.5,0,0.5,random(0,360),128,0) Goto Spawn Pain.Juggernaut: PLAY G 0 A_GiveToTarget("JuggHitIndicator",1) goto Pain+5 Death.Headshot: PLAY H 0 A_PlaySoundEx("blanksnd","Voice") goto DeathDrop Death: PLAY H 0 A_PlaySoundEx("blanksnd","Voice") PLAY H 0 A_PlaySoundEx("blanksnd","SoundSlot7") PLAY H 1 A_PlaySoundEx("player/die","SoundSlot6") PLAY H 0 A_TakeInventory("KnifeAttack",1) PLAY H 0 A_TakeInventory("Reloading",1) PLAY H 0 A_TakeInventory("Aiming",1) PLAY H 0 A_JumpIfInventory("DS_Martyrdom",1,"DeathDrop") PLAY A 0 A_SpawnItemEx("Gip1",random(-8,8),random(-8,8),32,0,0,1,0,128,128) PLAY H 0 A_JumpIf(ACS_ExecuteWithResult(609,0,0,0) == 1, "DeathLMS") PLAY H 15 A_GiveToTarget("HitIndicator",1) PLAY I 10 A_TakeInventory("C4Existence",1) PLAY H 0 Thing_ChangeTID(0,9999) PLAY J 10 A_NoBlocking PLAY K 10 PLAY L 10 A_PlaySoundEx("generic/bodythump","SoundSlot6") PLAY MN 10 PLAY N 0 A_SpawnItemEx("DeadPlayer",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION,0) PLAY N -1 A_SetTranslucent(0.0,0) Stop Death.Melee: PLAY H 0 A_PlaySoundEx("blanksnd","Voice") PLAY H 0 A_PlaySoundEx("blanksnd","SoundSlot7") goto Death+3 DeathLMS: PLAY H 0 A_GiveToTarget("HitIndicator",1) PLAY I 0 A_TakeInventory("C4Existence",1) PLAY H 0 Thing_ChangeTID(0,9999) PLAY J 0 A_NoBlocking PLAY N 1 A_SpawnItemEx("DyingPlayer",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION,0) PLAY N -1 A_SetTranslucent(0.0,0) Stop DeathDrop: PLAY H 0 A_CustomMissile("FragGrenadeDropped",8,0,0) PLAY H 0 A_TakeInventory("ThrowingGrenade",1) PLAY H 0 A_TakeInventory("FragGrenadeAmmo",1) goto Death+7 XDeath: PLAY O 0 goto Death //Flashbangs and Stuns and explosives Pain.Explosion: PLAY G 0 A_JumpIfInventory("Perk2_BlastShield",1,2) PLAY G 1 A_GiveInventory("InCombat",7) goto Pain+4 PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("BlastHitIndicator",1) goto Pain+5 Pain.Flashbang: PLAY G 0 A_JumpIfInventory("Perk2_BlastShield_PRO",1,3) PLAY G 0 ACS_ExecuteAlways(617,0,1,5,0) PLAY G 1 A_GiveInventory("InCombat",7) goto Pain+4 PLAY G 0 ACS_ExecuteAlways(617,0,2,0,0) PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("BlastHitIndicator",1) goto Pain+5 Pain.Flashbang2: PLAY G 0 A_JumpIfInventory("Perk2_BlastShield_PRO",1,3) PLAY G 0 ACS_ExecuteAlways(617,0,1,3,0) PLAY G 1 A_GiveInventory("InCombat",7) goto Pain+4 PLAY G 0 ACS_ExecuteAlways(617,0,2,0,0) PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("BlastHitIndicator",1) goto Pain+5 Pain.Flashbang3: PLAY G 0 A_JumpIfInventory("Perk2_BlastShield_PRO",1,3) PLAY G 0 ACS_ExecuteAlways(617,0,1,1,0) PLAY G 1 A_GiveInventory("InCombat",7) goto Pain+4 PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("BlastHitIndicator",1) goto Pain+5 Pain.Stun: PLAY G 0 A_JumpIfInventory("Perk2_BlastShield_PRO",1,3) PLAY G 0 ACS_ExecuteAlways(617,0,3,0,0) PLAY G 1 A_GiveInventory("InCombat",7) goto Pain+4 PLAY G 1 A_GiveInventory("InCombat",7) PLAY G 0 A_GiveToTarget("BlastHitIndicator",1) goto Pain+5 } } ACTOR DyingPlayer { Game Doom States { Spawn: PLAY H 15 PLAY IJK 10 PLAY L 10 A_PlaySoundEx("generic/bodythump","SoundSlot6") PLAY MN 10 PLAY N -1 Stop } } ACTOR DeadPlayer { Game Doom States { Spawn: PLAY N -1 Stop } } actor RGAPlayer_Assault : RGAPlayer { player.displayname "Assault" player.startitem "MaxWeaponsFilled", 2 player.startitem "Perk1_Hardline", 1 player.startitem "Perk2_QuickDraw", 1 player.startitem "Perk3_SteadyAim", 1 player.startitem "StunGrenadeInventory", 2 player.startitem "FragGrenadeAmmo", 1 player.startitem "Weight", 3 player.startitem "SCAR-L", 1 player.startitem "SCARLAmmo", 90 player.startitem "SCARLClip", 30 player.startitem "P99", 1 player.startitem "P99Ammo", 24 player.startitem "P99Clip", 12 } actor RGAPlayer_Overwatch : RGAPlayer { player.displayname "Overwatch" player.startitem "MaxWeaponsFilled", 2 player.startitem "Perk1_ExtremeConditioning", 1 player.startitem "Perk2_BlastShield", 1 player.startitem "Perk3_SitRep", 1 player.startitem "FlashbangInventory", 2 player.startitem "FragGrenadeAmmo", 1 player.startitem "Weight", 5 player.startitem "L86 LSW", 1 player.startitem "L86Ammo", 100 player.startitem "L86Clip", 100 player.startitem "Desert Eagle", 1 player.startitem "DeagleAmmo", 21 player.startitem "DeagleClip", 7 } actor RGAPlayer_Recon : RGAPlayer { player.displayname "First Recon" player.startitem "MaxWeaponsFilled", 2 player.startitem "Perk1_SOH", 1 player.startitem "Perk2_Assassin", 1 player.startitem "Perk3_DeadSilence", 1 player.startitem "StunGrenadeInventory", 2 player.startitem "ThrowingKnifeInventory", 1 //player.startitem "FragGrenadeAmmo", 1 player.startitem "Weight", 2 player.startitem "PM9", 1 player.startitem "PM9Ammo", 96 player.startitem "PM9Clip", 32 player.startitem "P99", 1 player.startitem "P99Ammo", 24 player.startitem "P99Clip", 12 } actor RGAPlayer_ScoutSniper : RGAPlayer { player.displayname "Scout Sniper" player.startitem "MaxWeaponsFilled", 2 player.startitem "Perk1_Hardline", 1 player.startitem "Perk2_Assassin", 1 player.startitem "Perk3_Stalker", 1 player.startitem "TacticalInventory", 1 player.startitem "ClaymoreInventory", 1 //player.startitem "FragGrenadeAmmo", 1 player.startitem "Weight", 6 player.startitem "L118A", 1 player.startitem "L118AAmmo", 25 player.startitem "L118AClip", 5 player.startitem "L118APumped", 1 player.startitem "MP412", 1 player.startitem "MP412Ammo", 18 player.startitem "MP412Clip", 6 } actor RGAPlayer_RiotControl : RGAPlayer { player.displayname "Damage Control" player.startitem "MaxWeaponsFilled", 2 player.startitem "Perk1_ExtremeConditioning", 1 player.startitem "Perk2_Juggernaut", 1 player.startitem "Perk3_DeadSilence", 1 player.startitem "StunGrenadeInventory", 2 player.startitem "BettyInventory", 1 //player.startitem "FragGrenadeAmmo", 1 player.startitem "Weight", 3 player.startitem "AA-12", 1 player.startitem "AA12Ammo", 16 player.startitem "AA12Clip", 8 player.startitem "Desert Eagle", 1 player.startitem "DeagleAmmo", 35 player.startitem "DeagleClip", 7 } actor RGAPlayer_Demolitions : RGAPlayer { player.displayname "Demolitionist" player.startitem "MaxWeaponsFilled", 2 player.startitem "Perk1_SOH", 1 player.startitem "Perk2_BlastShield", 1 player.startitem "Perk3_SitRep", 1 player.startitem "ClaymoreInventory", 1 player.startitem "BettyInventory", 2 //player.startitem "FragGrenadeAmmo", 1 player.startitem "Weight", 3 player.startitem "KSG 12", 1 player.startitem "KSG12Ammo", 12 player.startitem "KSG12Clip", 12 player.startitem "M320 GLM", 1 player.startitem "M320Ammo", 2 player.startitem "M320Clip", 1 } actor RGAPlayer_CrowdControl : RGAPlayer { player.displayname "Riot Control" player.startitem "MaxWeaponsFilled", 2 player.startitem "Perk1_ExtremeConditioning", 1 player.startitem "Perk2_BlastShield", 1 player.startitem "Perk3_Stalker", 1 player.startitem "StunGrenadeInventory", 2 player.startitem "FragGrenadeAmmo", 1 player.startitem "Weight", 5 player.startitem "Riot Shield", 1 player.startitem "P99", 1 player.startitem "P99Ammo", 24 player.startitem "P99Clip", 12 } //Guns weapon/dryfire dry_fire //weapon/select sw_gun1 weapon/selectlmg sw_gun3 $volume weapon/dryfire 0.3 //MP412 mp412/fire1 mp41fir1 mp412/fire2 mp41fir2 mp412/dfire1 mp41fib1 //distant mp412/dfire2 mp41fib2 //distant mp412/reload1 mp41open mp412/reload2 mp41out mp412/reload3 mp41in mp412/reload4 mp41clos mp412/select sw_gun2 $rolloff mp412/dfire1 100 600 $rolloff mp412/dfire2 100 600 $rolloff mp412/fire1 500 2000 $rolloff mp412/fire2 500 2000 $limit mp412/fire1 0 $limit mp412/fire2 0 $limit mp412/dfire1 0 $limit mp412/dfire2 0 //Desert Eagle deagle/fire1 deagfir1 deagle/fire2 deagfir2 deagle/dfire1 deagfib1 //distant deagle/dfire2 deagfib2 //distant deagle/reload1 deagclpo deagle/reload2 deagclpi deagle/reload3 deagcock $rolloff deagle/dfire1 100 600 $rolloff deagle/dfire2 100 600 $rolloff deagle/fire1 500 2000 $rolloff deagle/fire2 500 2000 $limit deagle/fire1 0 $limit deagle/fire2 0 $limit deagle/dfire1 0 $limit deagle/dfire2 0 //P99 p99/fire1 p99fir1 p99/fire2 p99fir2 p99/dfire1 p99fib1 //distant p99/dfire2 p99fib2 //distant p99/reload1 p99clpo p99/reload2 p99clpi p99/reload3 p99cock $rolloff p99/dfire1 100 600 $rolloff p99/dfire2 100 600 $rolloff p99/fire1 500 2000 $rolloff p99/fire2 500 2000 $limit p99/fire1 0 $limit p99/fire2 0 $limit p99/dfire1 0 $limit p99/dfire2 0 //KSG12 ksg12/fire1 ksgfir1 ksg12/fire2 ksgfir2 ksg12/dfire1 ksgfib1 //distant ksg12/dfire2 ksgfib2 //distant ksg12/cock1 ksgcok1 ksg12/cock2 ksgcok2 ksg12/reload1 ksgopen ksg12/reload2 ksgin1 ksg12/reload3 ksgclose $random ksg12/shell { ksg12/shell1 ksg12/shell2 } ksg12/shell1 ksgin2 ksg12/shell2 ksgin3 ksg12/select sw_gun2 $rolloff ksg12/dfire1 100 600 $rolloff ksg12/dfire2 100 600 $rolloff ksg12/fire1 500 2000 $rolloff ksg12/fire2 500 2000 $limit ksg12/fire1 0 $limit ksg12/fire2 0 $limit ksg12/dfire1 0 $limit ksg12/dfire2 0 $volume ksg12/fire1 0.75 $volume ksg12/fire2 0.75 //AA12 aa12/fire1 aa12fir1 aa12/fire2 aa12fir2 aa12/dfire1 aa12fib1 //distant aa12/dfire2 aa12fib2 //distant aa12/reload1 aa12clpo aa12/reload2 aa12clpi aa12/reload3 aa12cock $rolloff aa12/dfire1 100 600 $rolloff aa12/dfire2 100 600 $rolloff aa12/fire1 500 2500 $rolloff aa12/fire2 500 2500 $limit aa12/fire1 0 $limit aa12/fire2 0 $limit aa12/dfire1 0 $limit aa12/dfire2 0 //Model 1887 m1887/fire1 m188fir1 m1887/fire2 m188fir2 m1887/dfire1 m188fib1 //distant m1887/dfire2 m188fib2 //distant m1887/cock1 m188open m1887/cock2 m188clos $random m1887/shell { m1887/shell1 m1887/shell2 m1887/shell3 } m1887/shell1 m188shl1 m1887/shell2 m188shl2 m1887/shell3 m188shl3 $rolloff m1887/dfire1 100 600 $rolloff m1887/dfire2 100 600 $rolloff m1887/fire1 500 2500 $rolloff m1887/fire2 500 2500 $limit m1887/fire1 0 $limit m1887/fire2 0 $limit m1887/dfire1 0 $limit m1887/dfire2 0 //L118A l118a/fire1 l118fir1 l118a/fire2 l118fir2 l118a/dfire1 l118fib1 //distant l118a/dfire2 l118fib2 //distant l118a/bolt1 l118open l118a/bolt2 l118clos l118a/reload1 l118up l118a/reload2 l118clpo l118a/reload3 l118clpi $rolloff l118a/dfire1 100 1200 $rolloff l118a/dfire2 100 1200 $rolloff l118a/fire1 1500 11000 $rolloff l118a/fire2 1500 11000 $limit l118a/fire1 0 $limit l118a/fire2 0 $limit l118a/dfire1 0 $limit l118a/dfire2 0 //MSR msr/fire1 msrfir1 msr/dfire1 msrfib1 //distant msr/bolt1 msropen msr/bolt2 msrclos msr/reload1 msrclpo msr/reload2 msrclpi $rolloff msr/dfire1 100 1200 $rolloff msr/fire1 1500 11000 $limit msr/fire1 0 $limit msr/dfire1 0 //Dragunov dragunov/fire1 dragfir1 dragunov/dfire1 dragfib1 //distant dragunov/reload1 dragup dragunov/reload2 dragclpo dragunov/reload3 dragclpi dragunov/reload4 dragcock $rolloff dragunov/dfire1 100 1200 $rolloff dragunov/fire1 1500 11000 $limit dragunov/fire1 0 $limit dragunov/dfire1 0 //PM9 pm9/fire1 pm9fir1 pm9/fire2 pm9fir2 pm9/dfire1 pm9fib1 //distant pm9/dfire2 pm9fib2 //distant pm9/reload1 pm9up pm9/reload2 pm9clpo pm9/reload3 pm9clpi pm9/reload4 pm9cock $rolloff pm9/dfire1 100 600 $rolloff pm9/dfire2 100 600 $rolloff pm9/fire1 500 2000 $rolloff pm9/fire2 500 2000 $limit pm9/fire1 0 $limit pm9/fire2 0 $limit pm9/dfire1 0 $limit pm9/dfire2 0 $volume pm9/fire1 0.75 $volume pm9/fire2 0.75 //MP7 mp7/fire1 mp7fir1 mp7/fire2 mp7fir2 mp7/dfire1 mp7fib1 //distant mp7/dfire2 mp7fib2 //distant mp7/reload1 mp7up mp7/reload2 mp7clpo mp7/reload3 mp7clpi mp7/reload4 mp7cock $rolloff mp7/dfire1 100 600 $rolloff mp7/dfire2 100 600 $rolloff mp7/fire1 500 2000 $rolloff mp7/fire2 500 2000 $limit mp7/fire1 0 $limit mp7/fire2 0 $limit mp7/dfire1 0 $limit mp7/dfire2 0 $volume mp7/fire1 0.8 $volume mp7/fire2 0.8 //P90 P90/fire1 p90fir1 P90/fire2 p90fir2 P90/dfire1 p90fib1 //distant P90/dfire2 p90fib2 //distant P90/reload1 p90up P90/reload2 p90clpo P90/reload3 p90clpi P90/reload4 p90hit P90/reload5 p90cock $rolloff P90/dfire1 100 600 $rolloff P90/dfire2 100 600 $rolloff P90/fire1 500 2000 $rolloff P90/fire2 500 2000 $limit P90/fire1 0 $limit P90/fire2 0 $limit P90/dfire1 0 $limit P90/dfire2 0 //PP90M1 PP90M1/fire1 pp90fir1 PP90M1/fire2 pp90fir2 PP90M1/dfire1 pp90fib1 //distant PP90M1/dfire2 pp90fib2 //distant PP90M1/reload1 pp90up PP90M1/reload2 pp90clpo PP90M1/reload3 pp90in PP90M1/reload4 pp90clpi PP90M1/reload5 pp90cock $rolloff PP90M1/dfire1 100 600 $rolloff PP90M1/dfire2 100 600 $rolloff PP90M1/fire1 500 2000 $rolloff PP90M1/fire2 500 2000 $limit PP90M1/fire1 0 $limit PP90M1/fire2 0 $limit PP90M1/dfire1 0 $limit PP90M1/dfire2 0 //SCAR-L scarl/fire1 scarfir1 scarl/fire2 scarfir2 scarl/dfire1 scarfib1 //distant scarl/dfire2 scarfib2 //distant scarl/reload1 scarclpo scarl/reload2 scarclpi scarl/reload3 scarcock $rolloff scarl/dfire1 100 600 $rolloff scarl/dfire2 100 600 $rolloff scarl/fire1 500 2500 $rolloff scarl/fire2 500 2500 $limit scarl/fire1 0 $limit scarl/fire2 0 $limit scarl/dfire1 0 $limit scarl/dfire2 0 //AK-47 ak47/fire1 ak47fir1 ak47/fire2 ak47fir2 ak47/fire3 ak47fir3 ak47/dfire1 ak47fib1 //distant ak47/dfire2 ak47fib2 //distant ak47/dfire3 ak47fib3 //distant ak47/reload1 ak47up ak47/reload2 ak47clpo ak47/reload3 ak47clpi ak47/reload4 ak47cock $rolloff ak47/dfire1 100 600 $rolloff ak47/dfire2 100 600 $rolloff ak47/dfire3 100 600 $rolloff ak47/fire1 500 2500 $rolloff ak47/fire2 500 2500 $rolloff ak47/fire3 500 2500 $limit ak47/fire1 0 $limit ak47/fire2 0 $limit ak47/fire3 0 $limit ak47/dfire1 0 $limit ak47/dfire2 0 $limit ak47/dfire3 0 //M4A1 M4A1/fire1 m4a1fir1 M4A1/fire2 m4a1fir2 M4A1/dfire1 m4a1fib1 //distant M4A1/dfire2 m4a1fib2 //distant M4A1/reload1 m4a1clpo M4A1/reload2 m4a1clpi M4A1/reload3 m4a1cock $rolloff M4A1/dfire1 100 600 $rolloff M4A1/dfire2 100 600 $rolloff M4A1/fire1 500 2500 $rolloff M4A1/fire2 500 2500 $limit M4A1/fire1 0 $limit M4A1/fire2 0 $limit M4A1/dfire1 0 $limit M4A1/dfire2 0 //M16A4 M16A4/fire1 m16afir1 M16A4/fire2 m16afir2 M16A4/dfire1 m16afib1 //distant M16A4/dfire2 m16afib2 //distant $rolloff M16A4/dfire1 100 600 $rolloff M16A4/dfire2 100 600 $rolloff M16A4/fire1 500 2500 $rolloff M16A4/fire2 500 2500 $limit M16A4/fire1 0 $limit M16A4/fire2 0 $limit M16A4/dfire1 0 $limit M16A4/dfire2 0 //G36C g36c/fire1 g36cfir1 g36c/fire2 g36cfir2 g36c/fire3 g36cfir3 g36c/dfire1 g36cfib1 //distant g36c/dfire2 g36cfib2 //distant g36c/dfire3 g36cfib3 //distant g36c/reload1 g36cup g36c/reload2 g36cclpo g36c/reload3 g36cclpi g36c/reload4 g36ccock $rolloff g36c/dfire1 100 600 $rolloff g36c/dfire2 100 600 $rolloff g36c/dfire3 100 600 $rolloff g36c/fire1 500 2500 $rolloff g36c/fire2 500 2500 $rolloff g36c/fire3 500 2500 $limit g36c/fire1 0 $limit g36c/fire2 0 $limit g36c/fire3 0 $limit g36c/dfire1 0 $limit g36c/dfire2 0 $limit g36c/dfire3 0 //M14 EBR m14/fire1 mk14fir1 m14/fire2 mk14fir2 m14/dfire1 mk14fib1 //distant m14/dfire2 mk14fib2 //distant m14/reload1 mk14clpo m14/reload2 mk14clpi m14/reload3 mk14cock $rolloff m14/dfire1 100 600 $rolloff m14/dfire2 100 600 $rolloff m14/fire1 500 2500 $rolloff m14/fire2 500 2500 $limit m14/fire1 0 $limit m14/fire2 0 $limit m14/dfire1 0 $limit m14/dfire2 0 $volume m14/fire1 0.75 $volume m14/fire2 0.75 //MK46 mk46/fire1 mk46fir1 mk46/fire2 mk46fir2 mk46/dfire1 mk46fib1 //distant mk46/dfire2 mk46fib2 //distant mk46/reload1 mk46rel1 mk46/reload2 mk46rel2 mk46/reload3 mk46rel3 mk46/reload4 mk46rel4 mk46/reload5 mk46rel5 mk46/reload6 mk46rel6 mk46/reload7 mk46rel7 mk46/reload8 mk46rel8 mk46/reload9 mk46rel9 $rolloff mk46/dfire1 100 600 $rolloff mk46/dfire2 100 600 $rolloff mk46/fire1 500 3000 $rolloff mk46/fire2 500 3000 $limit mk46/fire1 0 $limit mk46/fire2 0 $limit mk46/dfire1 0 $limit mk46/dfire2 0 //L86 L86/fire1 L86fir1 L86/fire2 L86fir2 L86/dfire1 L86fib1 //distant L86/dfire2 L86fib2 //distant L86/reload1 L86up L86/reload2 L86clpo L86/reload3 L86clpi L86/reload4 L86hit L86/reload5 L86cock $rolloff L86/dfire1 100 600 $rolloff L86/dfire2 100 600 $rolloff L86/fire1 500 3000 $rolloff L86/fire2 500 3000 $limit L86/fire1 0 $limit L86/fire2 0 $limit L86/dfire1 0 $limit L86/dfire2 0 //PKP Pecheneg pkpp/deselect pkppdesl pkpp/fire1 pkppfir1 pkpp/fire2 pkppfir2 pkpp/fire3 pkppfir3 pkpp/dfire1 pkppfib1 //distant pkpp/dfire2 pkppfib2 //distant pkpp/dfire3 pkppfib3 //distant pkpp/reload1 pkpprel1 pkpp/reload2 pkpprel2 pkpp/reload3 pkpprel3 pkpp/reload4 pkpprel4 pkpp/reload5 pkpprel5 pkpp/reload6 pkpprel6 pkpp/reload7 pkpprel7 pkpp/reload8 pkpprel8 $rolloff pkpp/dfire1 100 600 $rolloff pkpp/dfire2 100 600 $rolloff pkpp/dfire3 100 600 $rolloff pkpp/fire1 500 3000 $rolloff pkpp/fire2 500 3000 $rolloff pkpp/fire3 500 3000 $limit pkpp/fire1 0 $limit pkpp/fire2 0 $limit pkpp/fire3 0 $limit pkpp/dfire1 0 $limit pkpp/dfire2 0 $limit pkpp/dfire3 0 //M320 GLM m320/fire1 glmfir1 m320/fire2 glmfir2 m320/dfire1 glmfib1 //distant m320/dfire2 glmfib2 //distant m320/reload1 glmopen m320/reload2 glmout m320/reload3 glmin m320/reload4 glmclos $rolloff m320/dfire1 100 600 $rolloff m320/dfire2 100 600 $rolloff m320/fire1 800 3500 $rolloff m320/fire2 800 3500 $limit m320/fire1 0 $limit m320/fire2 0 $limit m320/dfire1 0 $limit m320/dfire2 0 javelin/select sw_gun4 javelin/fire javfire javelin/open javopen javelin/down javdown javelin/lockseek lockseek javelin/lockon lockon javelin/loop javfloop javelin/fall javfall $rolloff javelin/fire 500 6000 $limit javelin/fire 0 $random javelin/explosion { javelin/explosion1 javelin/explosion2 } javelin/explosion1 javexpl1 javelin/explosion2 javexpl2 $rolloff javelin/explosion 1000 6000 $rolloff javelin/loop 500 2000 $rolloff javelin/fall 1000 6000 //Riot Shield $random riot/damage { riot/damage1 riot/damage2 riot/damage3 } $random riot/hit { riot/hit1 riot/hit2 } $random riot/swing { riot/swing1 riot/swing2 } riot/damage1 riotdam1 riot/damage2 riotdam2 riot/damage3 riotdam3 riot/hit1 riothit1 riot/hit2 riothit2 riot/swing1 riotswg1 riot/swing2 riotswg2 $limit riot/damage 0 $random melee/swing { melee/swing1 melee/swing2 melee/swing3 } $random melee/hit { melee/hit1 melee/hit2 melee/hit3 } $random melee/wall { melee/wall1 melee/wall2 melee/wall3 } melee/swing1 buttswg1 melee/swing2 buttswg2 melee/swing3 buttswg3 melee/hit1 knifhit1 melee/hit2 knifhit2 melee/hit3 knifhit3 melee/wall1 knifwal1 melee/wall2 knifwal2 melee/wall3 knifwal3 $volume melee/swing 0.3 //$volume melee/hit 1.0 //$volume melee/wall 1.0 $random knife/twall { knife/twall1 knife/twall2 knife/twall3 } knife/twall1 knifwap1 knife/twall2 knifwap2 knife/twall3 knifwap3 knife/pickup knifpick $random tactical/insert { tactical/insert1 tactical/insert2 tactical/insert3 } tactical/insert1 tacttry1 tactical/insert2 tacttry2 tactical/insert3 tacttry3 tactical/flare tactland tactical/loop tactloop semtex/stuck smtxstuk semtex/beep smtxbeep semtex/beep2 smtxbee2 claymore/click clayclic claymore/place clayland claymore/pickup c4pickup betty/land c4land betty/activate bettygo c4/click c4click flash/pinpull flshppul flash/throw flshthro flash/hit flshhit $random flash/explosion { flash/explosion1 flash/explosion2 } flash/explosion1 flshexp1 flash/explosion2 flshexp2 $rolloff flash/explosion 1000 3000 grenade/throw fragthro grenade/pinpull fragpin $random grenade/lob { grenade/lob1 grenade/lob2 grenade/lob3 grenade/lob4 } grenade/lob1 grenlob1 grenade/lob2 grenlob2 grenade/lob3 grenlob3 grenade/lob4 grenlob4 $random grenade/explosion { grenade/explosion1 grenade/explosion2 grenade/explosion3 } grenade/explosion1 grenexp1 grenade/explosion2 grenexp2 grenade/explosion3 grenexp3 $random distant/explosion { distant/explosion1 distant/explosion2 distant/explosion3 } distant/explosion1 distexp1 distant/explosion2 distexp2 distant/explosion3 distexp3 $rolloff grenade/explosion 1000 3000 $rolloff distant/explosion 4000 11000 $limit grenade/explosion 0 $limit distant/explosion 0 $random stun/explosion { stun/explosion1 stun/explosion2 stun/explosion3 stun/explosion4 } stun/explosion1 explo01 stun/explosion2 explo02 stun/explosion3 explo03 stun/explosion4 explo04 $rolloff stun/explosion 1000 3000 stun/hit stunhit //Player stuff $random player/okay { player/okay1 player/okay2 player/okay3 } $random player/hurt { player/hurt1 player/hurt2 player/hurt3 player/hurt4 player/hurt5 player/hurt6 player/hurt7 } $random player/hurtlow { player/hurt blanksnd } $random player/hurtnormal { player/hurt blanksnd blanksnd blanksnd } player/okay1 playoky1 player/okay2 playoky2 player/okay3 playoky3 player/hurt1 playpn1 player/hurt2 playpn2 player/hurt3 playpn3 player/hurt4 playpn4 player/hurt5 playpn5 player/hurt6 playpn6 player/hurt7 playpn7 player/heartbeat playhart $random player/holdbreath { player/holdbreath1 player/holdbreath2 } player/holdbreath1 plyrhol1 player/holdbreath2 plyrhol2 player/exhale1 plyrexh1 player/exhale2 plyrexh2 player/exhale3 plyrexh3 $random generic/bodythump { generic/bodythump1 generic/bodythump2 generic/bodythump3 generic/bodythump4 generic/bodythump5 } generic/bodythump1 bodystn1 generic/bodythump2 bodystn2 generic/bodythump3 bodystn3 generic/bodythump4 bodystn4 generic/bodythump5 bodystn5 $random footstep/loud { footstep/louds1 footstep/louds2 } $random footstep/louds1 { footstep/loud1 footstep/loud2 footstep/loud3 footstep/loud4 } $random footstep/louds2 { footstep/loud5 footstep/loud6 footstep/loud7 footstep/loud8 } footstep/loud1 steplou1 footstep/loud2 steplou2 footstep/loud3 steplou3 footstep/loud4 steplou4 footstep/loud5 steplou5 footstep/loud6 steplou6 footstep/loud7 steplou7 footstep/loud8 steplou8 $volume footstep/loud 0.6 $alias weapon/select footstep/gear $volume weapon/select 0.5 $random footstep/crunch { footstep/crunch1 footstep/crunch2 } $random footstep/gear { footstep/gear2 footstep/gear3 } $random footstep/stone { footstep/stone1 footstep/stone2 footstep/stone3 } $random footstep/stones2 { footstep/stone1 footstep/stone2 footstep/stone3 } footstep/crunch1 crunch01 footstep/crunch2 crunch02 footstep/gear1 stepger1 footstep/gear2 stepger2 footstep/gear3 stepger3 footstep/stone1 stepstn1 footstep/stone2 stepstn2 footstep/stone3 stepstn3 footstep/stone4 stepstn4 $volume footstep/stone 0.6 $volume footstep/stones2 0.2 $rolloff footstep/stone 200 1000 $rolloff footstep/stones2 50 150 $rolloff footstep/gear 200 600 $limit footstep/stone 0 $limit footstep/stones2 0 sitrep/ping sitrping $rolloff sitrep/ping 1000 2000 $playersound ww2 male *death blanksnd $playersound ww2 male *xdeath blanksnd $playersound ww2 male *gibbed blanksnd $playersound ww2 male *pain100 blanksnd $playersounddup ww2 male *pain75 *pain100 $playersounddup ww2 male *pain50 *pain100 $playersounddup ww2 male *pain25 *pain100 $playeralias ww2 male *grunt footstep/crunch $playersound ww2 male *land landstn1 $playersound ww2 male *jump dsjump $playersound ww2 male *fist dspunch $playersound ww2 male *usefail dsnoway $playersound ww2 female *death blanksnd $playersound ww2 female *xdeath blanksnd $playersound ww2 female *gibbed blanksnd $playersound ww2 female *pain100 blanksnd $playersounddup ww2 female *pain75 *pain100 $playersounddup ww2 female *pain50 *pain100 $playersounddup ww2 female *pain25 *pain100 $playeralias ww2 female *grunt footstep/crunch $playersound ww2 female *land landstn1 $playersound ww2 female *jump dsjump $playersound ww2 female *fist dspunch $playersound ww2 female *usefail dsnoway $random player/die { player/die1 player/die2 player/die3 player/die4 player/die5 player/die6 player/die7 player/die8 player/die9 } player/die1 sovdeth1 player/die2 sovdeth2 player/die3 sovdeth3 player/die4 sovdeth4 player/die5 sovdeth5 player/die6 sovdeth6 player/die7 sovdeth7 player/die8 sovdeth8 player/die9 sovdeth9 $rolloff player/die 1000 2500 $random generic/headshot { generic/headshot1 generic/headshot2 } generic/headshot1 hedshot1 generic/headshot2 hedshot2 $limit generic/headshot 0 $random generic/fleshhit { flesh/hit1 flesh/hit2 flesh/hit3 flesh/hit4 } flesh/hit1 fleshit1 flesh/hit2 fleshit2 flesh/hit3 fleshit3 flesh/hit4 fleshit4 $volume generic/ricochet 0.5 $random generic/ricochet { world/hit1 world/hit2 world/hit3 world/hit4 world/hit5 world/hit6 world/hit7 } world/hit1 bullhit1 world/hit2 bullhit2 world/hit3 bullhit3 world/hit4 bullhit4 world/hit5 bullhit5 world/hit6 bullhit6 world/hit7 bullhit7 generic/hitindicator hitsound blanksnd blanksnd $limit blanksnd 0 world/quake blanksnd game/rank mp_level game/shellshock shelshok menu/move menumove menu/select menusele menu/buyperk menubuyp menu/buyweapon menubuyw $rolloff menu/move 32 32 $rolloff menu/select 32 32 //announcer deathstreak/obtain deathstr uav/online kuuav uav/enemy keuav uav/obtain ksuav uav/waiting kwuav vest/online kuvest vest/obtain ksvest vest/waiting kwvest vest/pickup vestuse recon/online kurrecon recon/enemy kerrecon recon/obtain ksrrecon recon/waiting kwrrecon recon/loop rccloop recon/use reconuse $rolloff uav/online 32 32 $rolloff uav/enemy 32 32 $rolloff uav/obtain 32 32 $rolloff vest/online 32 32 $rolloff vest/obtain 32 32 $rolloff recon/online 32 32 $rolloff recon/enemy 32 32 $rolloff recon/obtain 32 32 actor RGUWeapon : Weapon { obituary "%o was killed." hitobituary "\cf%k \cm>> \cgMelee \cm>> \cf%o" inventory.pickupmessage "Snagged an item!" inventory.pickupsound "misc/weaponup" weapon.selectionorder 500 weapon.kickback 50 decal BulletChip +NOAUTOFIRE +NOALERT +IGNORESKILL States { Flash: TNT1 A 35 A_GiveInventory("Firing",1) TNT1 A 0 A_TakeInventory("Firing",1) stop } } actor HHBulletPuff replaces BulletPuff { spawnid 131 renderstyle Translucent alpha 0.5 -NONETID +NOBLOCKMAP +NOGRAVITY -ALLOWPARTICLES damagetype "Bullet" +NOEXTREMEDEATH +PUFFONACTORS +PUFFGETSOWNER states { Spawn: TNT1 A 1 TNT1 A 0 A_JumpIfCloser(16,"Nothing") TNT1 A 0 A_GiveToTarget("HitIndicator",1) PUFF A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 4 stop Nothing: SPRK A 0 stop Crash: TNT1 A 1 PUFF A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 4 A_SpawnItemEx("Ricochet", 0, 0, 0, 0, 0, 0, 0, 128, 150) TNT1 A 4 stop } } actor MeleeAttack : FastProjectile { obituary "\cf%k \cm>> \cgKnife \cm>> \cf%o" RenderStyle None -RANDOMIZE PROJECTILE Speed 48 Damage (110) damagetype "Melee" +NOEXTREMEDEATH radius 4 height 4 states { Spawn: TNT1 A 2 stop Death: //hit wall PUFF A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_PlaySound("melee/wall") stop XDeath: //hit actor PUFF A 0 //A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_PlaySound("melee/hit") stop } } actor MeleeAttack2 : MeleeAttack { damage (150) } actor MeleePuff : HHBulletPuff { damagetype "Melee" states { Spawn: TNT1 A 1 TNT1 A 0 A_GiveToTarget("HitIndicator",1) // PUFF A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 4 A_SpawnItemEx("MeleeSlice", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 4 stop Crash: PUFF A 0 PUFF A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 4 A_SpawnItemEx("MeleeHit", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 4 stop } } actor Ricochet { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("generic/ricochet") stop } } actor MeleeHit { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("melee/wall") stop } } actor MeleeSlice { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("melee/hit") stop } } actor ActorHit { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("generic/fleshhit") stop } } actor HHBlood replaces Blood { Mass 5 +NOBLOCKMAP +NOTELEPORT States { Spawn: BLUD A 0 BLUD CCCC 1 A_SpawnItemEx("HHBlood2",0,0,random(-6,6),0.5,0,0.5,random(-180,180),128,0) BLUD C 4 //A_SpawnItemEx("ActorHit", 0, 0, 0, 0, 0, 0, 0, 128, 64) BLUD BA 8 BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,128) Stop Spray: SPRY ABCDEF 3 SPRY G 2 Stop } } actor HHBloodSplatter : Blood Replaces BloodSplatter { Mass 5 +NOBLOCKMAP +NOTELEPORT States { Spawn: BLUD C 0 BLUD C 8 A_SpawnItemEx("ActorHit", 0, 0, 0, 0, 0, 0, 0, 128, 64) BLUD BA 8 Stop Spray: SPRY ABCDEF 3 SPRY G 2 Stop } } actor ExplosionMain { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP +NOGRAVITY Scale 1.0 states { Spawn: EXP1 AA 0 A_SpawnItemEx("ExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP1 A 0 A_SpawnItemEx("ExplosionLarge",0,0,0,0,0,0,0,128,0) EXP1 AAAAA 0 A_SpawnItemEx("ExplosionSmokePuff",random(-32,32),random(-32,32),random(1,24),0,0,0.25*random(1,4),0,128,0) EXP1 AB 1 bright EXP1 BB 0 A_SpawnItemEx("ExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP1 CDEF 1 bright EXP1 FF 0 A_SpawnItemEx("ExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP1 GHIJ 1 bright EXP1 A 0 A_SpawnItemEx("ExplosionLarge",0,0,0,0,0,0,0,128,0) EXP3 AB 1 bright EXP3 BB 0 A_SpawnItemEx("ExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP3 CDEF 1 bright EXP3 FF 0 A_SpawnItemEx("ExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP3 GHI 1 bright stop } } actor ExplosionSmall { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(128,11) EXP1 ABCDEFGHIJ 3 bright stop TNT1 A 0 A_Jump(128,10) EXP2 ABCDEFGHI 3 bright stop TNT1 A 0 A_Jump(128,10) EXP3 ABCDEFGHI 3 bright stop TNT1 A 0 A_Jump(128,9) EXP4 ABCDEFGH 3 bright stop EXP5 ABCDEFGHIJK 3 bright stop } } actor ExplosionLarge { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.75 states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(128,11) EXP1 ABCDEFGHIJ 4 bright stop TNT1 A 0 A_Jump(128,10) EXP2 ABCDEFGHI 4 bright stop TNT1 A 0 A_Jump(128,10) EXP3 ABCDEFGHI 4 bright stop TNT1 A 0 A_Jump(128,9) EXP4 ABCDEFGH 4 bright stop EXP5 ABCDEFGHIJK 4 bright stop } } actor ExplosionSmokePuff { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 4.0 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.0625) SMK1 A 0 A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(-8,8),0,0,0.25*random(1,4),0,128,192) stop Spawn2: SMK2 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.0625) SMK1 A 0 A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(-8,8),0,0,0.25*random(1,4),0,128,192) stop Spawn3: SMK3 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.0625) stop Spawn4: SMK4 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.0625) stop } } actor ImpactSmokePuff { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 1.0 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 AAAAA 0 A_SpawnItemEx("ImpactSpark", 0, 0, 0, random(0,2), random(-2,2), random(-1,1), 0, 128, 64) TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn2: SMK2 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn3: SMK3 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn4: SMK4 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop } } actor ImpactSpark { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 0.05 +CLIENTSIDEONLY +NOINTERACTION -NOGRAVITY Gravity 1.2 states { Spawn: SPRK A 0 SPRK A 1 bright A_FadeOut(0.075) loop } } actor ImpactSpark2 { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 0.08 +CLIENTSIDEONLY +NOINTERACTION -NOGRAVITY Gravity 1.2 states { Spawn: SPRK A 0 SPRK A 1 bright A_FadeOut(0.05) loop } } actor WeaponSmokePuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 1 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 128, 0) stop } } actor WeaponSmokePuffLong { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 1 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffLong_Spawned", 0, 0, 0, 0, 0, 0, 0, 128, 0) stop } } actor WeaponSmokePuffShotgun { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 1 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 0, 0, 0, 0, 0, 0, 0, 128, 0) stop } } actor WeaponSmokePuff_Spawned { RenderStyle Add alpha 0.3 -RANDOMIZE +NOCLIP PROJECTILE Speed 0 Damage 0 Scale 1.5 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 AAA 0 A_SpawnItemEx("ImpactSpark", 0, 0, 0, random(3,3), random(-3,3), random(-3,3), 0, 128, 128) TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn2: SMK2 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn3: SMK3 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn4: SMK4 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop } } actor WeaponSmokePuffLong_Spawned { RenderStyle Add alpha 0.5 -RANDOMIZE +NOCLIP PROJECTILE Speed 0 Damage 0 Scale 2.0 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn2: TNT1 A 0 A_Stop SMK2 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn3: TNT1 A 0 A_Stop SMK3 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn4: TNT1 A 0 A_Stop SMK4 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop } } actor WeaponSmokePuffShotgun_Spawned { RenderStyle Add alpha 0.5 -RANDOMIZE +NOCLIP PROJECTILE Speed 0 Damage 0 Scale 2.0 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 AAA 0 A_SpawnItemEx("ImpactSpark", 0, 0, 0, random(3,3), random(-3,3), random(-3,3), 0, 128, 0) TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn2: TNT1 A 0 A_Stop SMK2 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn3: TNT1 A 0 A_Stop SMK3 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn4: TNT1 A 0 A_Stop SMK4 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop } } actor FlightSmokePuff { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 0.5 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn2: SMK2 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn3: SMK3 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop Spawn4: SMK4 ABCDEFGHIJKLMNOP 2 bright A_FadeOut(0.05) stop } } actor WeaponSmokePuff_BigMuzzle { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 1 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 128, 0) stop } } actor MuzzleFlash { RenderStyle Add alpha 0.25 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 0.15 +CLIENTSIDEONLY +NOINTERACTION states { Spawn: MUZZ A 0 MUZZ A 2 bright A_Jump(128,"Spawn2","Spawn3","Spawn4","Spawn5","Spawn6") stop Spawn2: MUZZ B 2 bright stop Spawn3: MUZZ C 2 bright stop Spawn4: MUZZ D 2 bright stop Spawn5: MUZZ E 2 bright stop Spawn6: MUZZ F 2 bright stop } } actor MuzzleFlash2 : MuzzleFlash { alpha 0.5 Scale 0.25 } actor MuzzleFlash3 : MuzzleFlash { alpha 0.25 Scale 0.25 } actor HHBlood2 : Blood { +FORCEXYBILLBOARD Mass 5 +NOBLOCKMAP +NOTELEPORT scale 0.65 gravity 0.2 States { Spawn: BLUD C 0 BLUD C 8 BLUD BA 8 Stop Spray: SPRY ABCDEF 3 SPRY G 2 Stop } } actor Gib { +FORCEXYBILLBOARD radius 2 height 2 speed 3 damage 0 PROJECTILE -NOGRAVITY +RANDOMIZE +DOOMBOUNCE +BOUNCEONACTORS Mass 50 Scale 0.7 gravity 0.3 bouncefactor 0.6 bouncecount 6 seesound "gib/thump" deathsound "gib/thump" } actor Gib1 : Gib { states { Spawn: BLUD AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(-3,3),random(0,2),0,random(0,3),random(-50,50),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) BLUD BBBBBBBB 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(-3,3),random(0,2),0,random(0,3),random(-50,50),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) BLUD CCCCCCCC 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(-3,3),random(0,2),0,random(0,3),random(-50,50),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) loop Death: GIP1 AAAAAAAA 2 A_SpawnItemEx("HHBlood2",random(-5,5),random(-5,5),random(0,2),0,0,5,0,128,200) GIP1 A 35 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,64) stop } } actor Gip1 : Gib { +NOCLIP states { Spawn: BLUD AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(-9,9),random(-9,9),random(-4,4),random(1,2),0,random(-1,1),random(-180,180),128,0) BLUD AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(-9,9),random(-9,9),random(-4,4),random(1,2),0,random(-1,1),random(-180,180),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-16,16),random(-16,16),-32,0,0,-4,0,128,224) BLUD BBBBBBBB 1 A_SpawnItemEx("HHBlood2",random(-9,9),random(-9,9),random(-4,4),random(1,2),0,random(-1,1),random(-180,180),128,0) BLUD BBBBBBBB 1 A_SpawnItemEx("HHBlood2",random(-9,9),random(-9,9),random(-4,4),random(1,2),0,random(-1,1),random(-180,180),128,0) BLUD A 1 A_SpawnItemEx("SmallBloodPool2",random(-16,16),random(-16,16),-32,0,0,-4,0,128,224) stop Death: GIP1 AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(-9,9),random(-9,9),random(-4,4),random(1,2),0,random(-1,1),random(-180,180),128,0) GIP1 AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(-9,9),random(-9,9),random(-4,4),random(1,2),0,random(-1,1),random(-180,180),128,0) stop } } actor Gib2 : Gib { speed 0 seesound "" deathsound "" states { Spawn: BLUD AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,32),0.5,0,0.5,random(0,360),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) BLUD BBBBBBBB 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,32),0.5,0,0.5,random(0,360),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) BLUD CCCCCCCC 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,32),0.5,0,0.5,random(0,360),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) BLUD AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,32),0.5,0,0.5,random(0,360),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) Death: GIP1 AAAAAAAAAAAAAAA 2 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,32),0.5,0,0.5,random(0,360),128,0) GIP1 A 35 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,0,0,128,64) stop } } ACTOR SmallBloodPool2 { +FORCEXYBILLBOARD Game Doom Radius 20 Height 1 +NOBLOCKMAP +MOVEWITHSECTOR scale 0.5 States { Spawn: POB2 AAA 350 Stop } } actor Gib3 : Gib { speed 0 seesound "" deathsound "" states { Spawn: BLUD AAAAAAAA 1 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,4),0.5,0,0.5,random(0,360),128,0) BLUD A 0 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,-4,0,128,224) Death: GIP1 AAAAAAAA 2 A_SpawnItemEx("HHBlood2",random(2,5),random(-2,2),random(0,4),0.5,0,0.5,random(0,360),128,0) GIP1 A 35 A_SpawnItemEx("SmallBloodPool2",random(-6,6),random(-6,6),-32,0,0,0,0,128,64) stop } } actor M203Shell { obituary "%k popped %o with the M203!" radius 5 height 5 speed 45 damage (35) deathsound "generic/fleshhit" PROJECTILE -NOGRAVITY +RANDOMIZE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER -NOTELEPORT Scale 0.05 gravity 0.4 bouncefactor 0.5 DamageType "Explosion" states { Spawn: G69X AAAAAA 1 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) G69X A 0 A_GiveInventory("M203Armed",1) Loop XDeath: TNT1 A 0 TNT1 A 0 A_GiveToTarget("HitIndicator",1) Death: TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed") TNT1 A 0 A_Explode(220,16,0) TNT1 A 20 A_SpawnItemEx("M203ShellUnarmedDrop",0,0,0,-2,0,2,random(-8,8),0,0) stop DeathArmed: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_Explode(100,125) TNT1 A 0 A_Explode(80,250) TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 A 20 stop } } //Grenades need .2 or so seconds before it arms. actor M203Armed : Inventory { inventory.amount 0 inventory.maxamount 1 } ACTOR M203ShellUnarmedDrop { Speed 1 Height 1 Radius 0 Scale 0.03 gravity 0.5 bouncefactor 0.5 bouncecount 3 +DOOMBOUNCE +MISSILE SeeSound "misc/shell" DeathSound "misc/shell" States { Spawn: G69X A 0 G69X AAAAA 5 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) G69X A -1 Loop Death: G69X A 1050 Stop } } actor MaxWeaponsFilled : Ammo { inventory.amount 0 inventory.maxamount 2 ammo.backpackamount 0 ammo.backpackmaxamount 3 +IGNORESKILL } //Is this player a Bot? Determines to fire a semi-auto weapon actor IsBot : Inventory { inventory.amount 0 inventory.maxamount 1 } //Determine when it's ready to regenerate actor InCombat : Inventory { inventory.amount 0 inventory.maxamount 14 } //Determine when it's ready to regenerate actor ReadyRegen : Inventory { inventory.amount 0 inventory.maxamount 1 } actor WasHeadshot: Inventory { inventory.amount 0 inventory.maxamount 1 } //Snipers actor HoldBreath : Inventory { inventory.amount 0 inventory.maxamount 35 } actor BreathWait : Inventory { inventory.amount 0 inventory.maxamount 35 } //Check this to make player move quieter actor Crouching : Inventory { inventory.amount 0 inventory.maxamount 1 } actor Walking : Inventory { inventory.amount 0 inventory.maxamount 1 } //Check this to make the next shot less accurate actor Firing : Inventory { inventory.amount 0 inventory.maxamount 1 } //Check this to make aiming inaccurate actor Moving : Inventory { inventory.amount 0 inventory.maxamount 1 } //Check this to use "Equipment" item actor ThrowingGrenade : Inventory { inventory.amount 0 inventory.maxamount 1 } //Check this to throw Special grenade actor ThrowingSpecial : Inventory { inventory.amount 0 inventory.maxamount 1 } //Check this to use knife attack actor KnifeAttack : Inventory { inventory.amount 0 inventory.maxamount 1 } //Weight of the weapon - determines player speed actor Weight : Inventory { inventory.amount 0 inventory.maxamount 6 } //Given when puking the reload script. actor Reloading : Inventory { inventory.amount 0 inventory.maxamount 1 } //Given when pressing altfire to aim, reduces speed by %65 actor Aiming : Inventory { inventory.amount 0 inventory.maxamount 1 } //Prevents shellshock and gas grenade effect overlapping actor Shellshocked : Inventory { inventory.amount 0 inventory.maxamount 1 } //Just give random weapons and stuff actor RandomItem : Inventory { inventory.amount 0 inventory.maxamount 1 } //Self explanitory actor IsRed : Inventory { inventory.amount 0 inventory.maxamount 1 } actor IsBlue : Inventory { inventory.amount 0 inventory.maxamount 1 } actor GiveXPBonus : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(611,0,1,2,0) stop } } //Hardcore mode actor HardcoreMode : Inventory { inventory.amount 0 inventory.maxamount 1 } actor PowerHardcoreVulnerability : PowerProtection { damagefactor "Normal", 2.0 } ACTOR HardcoreVulnerability : PowerupGiver { +NOGRAVITY +INVENTORY.AUTOACTIVATE +ALWAYSPICKUP Inventory.MaxAmount 0 Powerup.Duration -99999 Powerup.Type "HardcoreVulnerability" Inventory.PickupAnnouncerEntry "" } actor PowerJuicedSpeed : PowerSpeed { Speed 1.5 } ACTOR JuicedSpeedBoost : PowerupGiver { +NOGRAVITY +INVENTORY.AUTOACTIVATE +ALWAYSPICKUP Inventory.MaxAmount 0 Powerup.Duration -6 Powerup.Type "JuicedSpeed" Inventory.PickupAnnouncerEntry "" } //Make AI do something actor AIStuff : CustomInventory { States { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 A_GiveInventory("BotSpeed",1) TNT1 A 0 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,180) TNT1 A 0 A_JumpIfTargetInLOS("Stuff") TNT1 A 0 A_Jump(32,"Reload") stop Reload: TNT1 A 0 ACS_ExecuteAlways(601,0,0,0,0) stop Stuff: TNT1 A 0 A_FaceTarget TNT1 A 0 A_JumpIfCloser(110,"Melee") TNT1 A 0 A_Jump(6,"Grenade") TNT1 A 0 A_Jump(64,"Aim") stop Melee: TNT1 A 0 A_FaceTarget TNT1 A 0 A_GiveInventory("KnifeAttack",1) stop Grenade: TNT1 A 0 A_GiveInventory("KnifeAttack",1) TNT1 A 0 A_GiveInventory("ThrowingGrenade",1) TNT1 A 0 A_Jump(256,"GrenadeThrow","Betty","Semtex","Flash","Stun","Claymore") stop GrenadeThrow: TNT1 A 0 ACS_ExecuteAlways(603,0,0,0,0) stop Betty: TNT1 A 0 A_GiveInventory("ThrowingBetty",1) stop Semtex: TNT1 A 0 A_GiveInventory("ThrowingSemtex",1) stop Flash: TNT1 A 0 A_GiveInventory("ThrowingFlashbang",1) stop Stun: TNT1 A 0 A_GiveInventory("ThrowingStunGrenade",1) stop Claymore: TNT1 A 0 A_GiveInventory("ThrowingClaymore",1) stop Aim: TNT1 A 0 A_GiveInventory("Aiming",1) stop } } actor PowerBotSpeed : PowerSpeed { Speed 0.5 } ACTOR BotSpeed : PowerupGiver { +NOGRAVITY +INVENTORY.AUTOACTIVATE +ALWAYSPICKUP Inventory.MaxAmount 0 Powerup.Duration -999 Powerup.Type "BotSpeed" Inventory.PickupAnnouncerEntry "" } actor RemoveMines : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 A_DamageChildren(100,"Vanish") stop } } //Martyrdom: Drop a live grenade on death actor DS_Martyrdom : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Sleight of Hand: Increased reload speed actor Perk1_SOH : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Sleight of Hand PRO: Increased weapon switch and shotgun pump speed actor Perk1_SOH_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Scavenger: Pickup blue backpacks which give ammo and stuff actor Perk1_Scavenger : Inventory { inventory.amount 0 inventory.maxamount 1 } //Scavenger PRO: Spawn with moar ammo actor Perk1_Scavenger_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Extreme Conditioning: Increased health regeneration speed actor Perk1_ExtremeConditioning : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Extreme Conditioning PRO: Slightly increased movement speed actor Perk1_ExtremeConditioning_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Hardline: Increased XP gain actor Perk1_Hardline : Inventory { inventory.amount 0 inventory.maxamount 1 } //Hardline PRO: Reduce amount of deaths needed for deathstreak, by 1 actor Perk1_Hardline_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Assassin: Invisible to UAV and stuff actor Perk2_Assassin : Inventory { inventory.amount 0 inventory.maxamount 1 } //Assassin PRO: Don't know, yet actor Perk2_Assassin_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Quick Draw: Increased ADS speed actor Perk2_QuickDraw : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Quick Draw PRO: Increased grenade and knife recovery actor Perk2_QuickDraw_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Juggernaut: Increased damage resistance (20%) actor Perk2_Juggernaut : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Juggernaut PRO: Increased damage recovery speed actor Perk2_Juggernaut_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Blast Shield: Increased explosive resistance (30%) actor Perk2_BlastShield : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Blast Shield PRO: Stun/Flash resistance (100%) actor Perk2_BlastShield_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Stalker: Increased speed while ADS actor Perk3_Stalker : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Stalker PRO: delay claymores and mines actor Perk3_Stalker_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Dead Silence: Silent footsteps, immune to SitRep Pro actor Perk3_DeadSilence : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Dead Silence PRO: reduced falling damage (90%) actor Perk3_DeadSilence_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //SitRep: Track enemy explosives actor Perk3_SitRep : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //SitRep PRO: Enemy players ping actor Perk3_SitRep_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Steady Aim: Reduced recoil actor Perk3_SteadyAim : Inventory { inventory.amount 0 inventory.maxamount 1 } //Coded and working. --- //Steady Aim PRO: Improved hold breath actor Perk3_SteadyAim_Pro : Inventory { inventory.amount 0 inventory.maxamount 1 } actor PowerPerk2_JuggernautEffectPower : PowerProtection { damagefactor "Normal", 0.8 damagefactor "Melee", 1.0 damagefactor "Explosion", 0.9 } actor Perk2_JuggernautEffect : PowerupGiver { inventory.maxamount 0 powerup.type "Perk2_JuggernautEffectPower" powerup.duration 9999999 +AUTOACTIVATE states { Spawn: TNT1 A -1 stop } } actor PowerPerk2_BlastShieldEffectPower : PowerProtection { damagefactor "Explosion", 0.65 } actor Perk2_BlastShieldEffect : PowerupGiver { inventory.maxamount 0 powerup.type "Perk2_BlastShieldEffectPower" powerup.duration 9999999 +AUTOACTIVATE states { Spawn: TNT1 A -1 stop } } actor PowerPerk2_BlastShieldProEffectPower : PowerProtection { damagefactor "Flashbang", 1.0 damagefactor "Flashbang2", 1.0 damagefactor "Flashbang3", 1.0 damagefactor "Stun", 1.0 } actor Perk2_BlastShieldProEffect : PowerupGiver { inventory.maxamount 0 powerup.type "Perk2_BlastShieldProEffectPower" powerup.duration 9999999 +AUTOACTIVATE states { Spawn: TNT1 A -1 stop } } actor PowerPerk3_DeadSilenceProEffectPower : PowerProtection { damagefactor "Falling", 0.1 } actor Perk3_DeadSilenceProEffect : PowerupGiver { inventory.maxamount 0 powerup.type "Perk3_DeadSilenceProEffectPower" powerup.duration 9999999 +AUTOACTIVATE states { Spawn: TNT1 A -1 stop } } actor Perk3_SitRepEffect : CustomInventory { inventory.amount 1 inventory.maxamount 1 +INVENTORY.AUTOACTIVATE states { Pickup: TNT1 A 0 ACS_ExecuteAlways(638,0,0,0,0) stop } } actor Perk3_SitRepProEffect : CustomInventory { inventory.amount 1 inventory.maxamount 1 +INVENTORY.AUTOACTIVATE states { Pickup: TNT1 A 0 ACS_ExecuteAlways(641,0,0,0,0) stop } } ACTOR PlayerHead { RenderStyle None Height 6 Health 5 Radius 11 speed 0 +NOGRAVITY +NORADIUSDMG +SERVERSIDEONLY +NOCLIP -SOLID +NOBLOOD +SHOOTABLE +GHOST damagetype "Decapitated" damagefactor "Monster", 0.0 Painchance 256 obituary "\cf%k \cc>> \cvheadshot \cc>> \cf%o" states { Spawn: SPRK A 3 stop Nothing: SPRK A 0 stop Death: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK AAA 0 A_SpawnItemEx("HHBlood",0,0,0,0,0,0,0,0,0) SPRK A 0 A_SpawnItemEx("HeadshotSound",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK A 1 A_Explode(40,32,0) Stop Death.MP412: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_MP412",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.Deagle: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_Deagle",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.P99: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_P99",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.KSG12: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_KSG12",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.AA12: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_AA12",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.Model1887: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_Model1887",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.PM9: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_PM9",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.MP7: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_MP7",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.P90: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_P90",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.PP90M1: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_PP90M1",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.SCARL: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_SCARL",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.G36C: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_G36C",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.AK47: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_AK47",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.M4A1: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_M4A1",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.M16A4: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_M16A4",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.M14: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_M14",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.L118A: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_L118A",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator2",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.MSR: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_MSR",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator2",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.Dragunov: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_Dragunov",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator2",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.M320: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_M320",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator2",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.Melee: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_Melee",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator2",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.MK46: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_MK46",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.L86: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_L86",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.PKP: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_PKP",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop Death.Recon: TNT1 A 0 A_JumpIfCloser(16,"Nothing") SPRK A 0 A_SpawnItemEx("HeadDamage_Recon",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("HeadshotIndicator",1) SPRK AA 1 A_Explode(5,4,0) Stop } } actor HeadDamage_MP412 { RenderStyle None Height 10 Health 5 Radius 16 speed 0 +NOGRAVITY +NOCLIP -SOLID +SHOOTABLE obituary "\cf%k \cc>> \ciMP412 \cvheadshot \cc>> \cf%o" damagetype "Headshot" states { Spawn: TNT1 A 5 stop Death: TNT1 AAA 0 A_SpawnItemEx("HHBlood",0,0,0,0,0,0,0,128,0) TNT1 A 0 A_SpawnItemEx("HeadshotSound",0,0,0,0,0,0,0,0,0) TNT1 A 2 A_Explode(65,32,0) Stop } } actor HeadDamage_P99 : HeadDamage_MP412 { obituary "\cf%k \cc>> \ciP99 \cvheadshot \cc>> \cf%o" } actor HeadDamage_Deagle : HeadDamage_MP412 { obituary "\cf%k \cc>> \ciDesert Eagle \cvheadshot \cc>> \cf%o" states { Spawn: TNT1 A 5 stop Death: TNT1 AAA 0 A_SpawnItemEx("HHBlood",0,0,0,0,0,0,0,128,0) TNT1 A 0 A_SpawnItemEx("HeadshotSound",0,0,0,0,0,0,0,0,0) TNT1 A 2 A_Explode(75,32,0) Stop } } actor HeadDamage_M16A4 : HeadDamage_Deagle { obituary "\cf%k \cc>> \csM16A4 \cvheadshot \cc>> \cf%o" } actor HeadDamage_M14 : HeadDamage_Deagle { obituary "\cf%k \cc>> \csM14 EBR \cvheadshot \cc>> \cf%o" } actor HeadDamage_KSG12 : HeadDamage_MP412 { obituary "\cf%k \cc>> \caKSG 12 \cvheadshot \cc>> \cf%o" states { Spawn: TNT1 A 5 stop Death: TNT1 AAA 0 A_SpawnItemEx("HHBlood",0,0,0,0,0,0,0,128,0) TNT1 A 0 A_SpawnItemEx("HeadshotSound",0,0,0,0,0,0,0,0,0) TNT1 A 2 A_Explode(50,32,0) Stop } } actor HeadDamage_AA12 : HeadDamage_KSG12 { obituary "\cf%k \cc>> \caAA-12 \cvheadshot \cc>> \cf%o" } actor HeadDamage_SCARL : HeadDamage_KSG12 { obituary "\cf%k \cc>> \csSCAR-L \cvheadshot \cc>> \cf%o" } actor HeadDamage_G36C : HeadDamage_KSG12 { obituary "\cf%k \cc>> \csG36C \cvheadshot \cc>> \cf%o" } actor HeadDamage_AK47 : HeadDamage_KSG12 { obituary "\cf%k \cc>> \csAK-47 \cvheadshot \cc>> \cf%o" } actor HeadDamage_MK46 : HeadDamage_KSG12 { obituary "\cf%k \cc>> \cqMK46 \cvheadshot \cc>> \cf%o" } actor HeadDamage_PKP : HeadDamage_KSG12 { obituary "\cf%k \cc>> \cqPKP Pecheneg \cvheadshot \cc>> \cf%o" } actor HeadDamage_L86 : HeadDamage_KSG12 { obituary "\cf%k \cc>> \cqL86 LSW \cvheadshot \cc>> \cf%o" } actor HeadDamage_Recon : HeadDamage_KSG12 { obituary "\cf%k \cc>> \cnRemote Helicopter \cvheadshot \cc>> \cf%o" } actor HeadDamage_M4A1 : HeadDamage_KSG12 { obituary "\cf%k \cc>> \csM4A1 \cvheadshot \cc>> \cf%o" } actor HeadDamage_MP7 : HeadDamage_KSG12 { obituary "\cf%k \cc>> \cdMP7 \cvheadshot \cc>> \cf%o" } actor HeadDamage_Model1887 : HeadDamage_KSG12 { obituary "\cf%k \cc>> \caModel 1887 \cvheadshot \cc>> \cf%o" } actor HeadDamage_PM9 : HeadDamage_MP412 { obituary "\cf%k \cc>> \cdPM9 \cvheadshot \cc>> \cf%o" states { Spawn: TNT1 A 5 stop Death: TNT1 AAA 0 A_SpawnItemEx("HHBlood",0,0,0,0,0,0,0,128,0) TNT1 A 0 A_SpawnItemEx("HeadshotSound",0,0,0,0,0,0,0,0,0) TNT1 A 2 A_Explode(35,32,0) Stop } } actor HeadDamage_P90 : HeadDamage_PM9 { obituary "\cf%k \cc>> \cdP90 \cvheadshot \cc>> \cf%o" } actor HeadDamage_PP90M1 : HeadDamage_PM9 { obituary "\cf%k \cc>> \cdPP90M1 \cvheadshot \cc>> \cf%o" } actor HeadDamage_L118A : HeadDamage_MP412 { obituary "\cf%k \cc>> \cgL118A \cvheadshot \cc>> \cf%o" states { Spawn: TNT1 A 5 stop Death: TNT1 AAA 0 A_SpawnItemEx("HHBlood",0,0,0,0,0,0,0,128,0) TNT1 A 0 A_SpawnItemEx("HeadshotSound",0,0,0,0,0,0,0,0,0) TNT1 A 2 A_Explode(250,32,0) Stop } } actor HeadDamage_Melee : HeadDamage_L118A { obituary "\cf%k \cc>> \cgknife \cvheadshot \cc>> \cf%o" } actor HeadDamage_M320 : HeadDamage_L118A { obituary "\cf%k \cc>> \cfM320 GLM \cvheadshot \cc>> \cf%o" } actor HeadDamage_MSR : HeadDamage_L118A { obituary "\cf%k \cc>> \cgMSR \cvheadshot \cc>> \cf%o" } actor HeadDamage_Dragunov : HeadDamage_MP412 { obituary "\cf%k \cc>> \cgDragunov \cvheadshot \cc>> \cf%o" states { Spawn: TNT1 A 5 stop Death: TNT1 AAA 0 A_SpawnItemEx("HHBlood",0,0,0,0,0,0,0,128,0) TNT1 A 0 A_SpawnItemEx("HeadshotSound",0,0,0,0,0,0,0,0,0) TNT1 A 2 A_Explode(175,32,0) Stop } } actor HeadshotIndicator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 //A_JumpIf(ACS_ExecuteWithResult(613,0,0,0) == 1, "Go") // stop //Go: TNT1 A 0 ACS_ExecuteAlways(509,0,1,0,0) TNT1 A 0 ACS_ExecuteAlways(611,0,5,1,2) stop } } actor HeadshotIndicator2 : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 //A_JumpIf(ACS_ExecuteWithResult(613,0,0,0) == 1, "Go") // stop //Go: TNT1 A 0 ACS_ExecuteAlways(509,0,1,0,0) TNT1 A 0 ACS_ExecuteAlways(611,0,25,1,6) stop } } actor HeadshotSound { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("generic/headshot") stop } } actor GunSpawner : RandomSpawner { DropItem "MP412Pickup2" DropItem "KSG12Pickup2" DropItem "L118APickup2" DropItem "PM9Pickup2" DropItem "SCARLPickup2" DropItem "M320Pickup2" DropItem "DeaglePickup2" DropItem "AA12Pickup2" DropItem "MK46Pickup2" DropItem "MP7Pickup2" DropItem "AK47Pickup2" DropItem "MSRPickup2" DropItem "JavelinPickup2" DropItem "M4A1Pickup2" DropItem "M16A4Pickup2" DropItem "P90Pickup2" DropItem "Model1887Pickup2" DropItem "PP90M1Pickup2" DropItem "DragunovPickup2" DropItem "PP9Pickup2" DropItem "L86Pickup2" DropItem "G36CPickup2" DropItem "M14Pickup2" DropItem "PKPPickup2" DropItem "RiotShieldPickup2" } actor GunSpawner1 : GunSpawner replaces Chainsaw {} actor GunSpawner2 : GunSpawner replaces Pistol{} actor GunSpawner3 : GunSpawner replaces Shotgun{} actor GunSpawner4 : GunSpawner replaces SuperShotgun{} actor GunSpawner5 : GunSpawner replaces Chaingun{} actor GunSpawner6 : GunSpawner replaces Minigun{} actor GunSpawner7 : GunSpawner replaces RocketLauncher{} actor GunSpawner8 : GunSpawner replaces GrenadeLauncher{} actor GunSpawner9 : GunSpawner replaces PlasmaRifle{} actor GunSpawner10 : GunSpawner replaces Railgun{} actor GunSpawner11 : GunSpawner replaces BFG9000{} actor GunSpawner12 : GunSpawner replaces BFG10k{} actor "Menu" : Weapon { obituary "%o was killed." inventory.pickupmessage "Snagged an item!" weapon.selectionorder 500 weapon.kickback 0 decal BulletChip +NOAUTOFIRE +NOALERT states { Spawn: TNT1 A 0 stop Ready: TNT1 A 0 TNT1 A 0 ACS_ExecuteAlways(690,0,0,0,0) TNT1 A 0 ACS_ExecuteAlways(691,0,0,0,0) TNT1 A 2 A_WeaponReady TNT1 A 0 A_SpawnItemEx("LightBulbIcon",0,0,52,0,0,0,0,0,0) goto Ready+3 Deselect: TNT1 A 0 A_Lower TNT1 A 0 A_TakeInventory("MenuPlace",30) TNT1 A 0 A_TakeInventory("MenuCursor",30) TNT1 A 0 A_TakeInventory("Menu") TNT1 A 0 A_Lower TNT1 A 1 A_Lower loop Select: TNT1 A 0 A_Raise TNT1 A 0 A_Raise TNT1 A 1 A_Raise loop AltFire: TNT1 A 0 A_PlaySound("menu/move") TNT1 A 3 A_GiveInventory("MenuCursor",1) goto Ready+4 Fire: TNT1 A 0 A_PlaySound("menu/select") TNT1 A 3 ACS_ExecuteAlways(692,0,0,0,0) goto Ready+4 } } actor MenuPlace : Inventory { inventory.amount 0 inventory.maxamount 20 } actor MenuCursor : Inventory { inventory.amount 0 inventory.maxamount 15 } actor LightBulbIcon { Radius 8 Height 8 +NOGRAVITY +NOBLOCKMAP +DONTSPLASH States { Spawn: CNSL A 3 Bright Stop } } actor DebugXP : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 //A_JumpIf(ACS_ExecuteWithResult(613,0,0,0) == 1, "Go") // stop //Go: TNT1 A 0 ACS_ExecuteAlways(509,0,1,0,0) TNT1 A 0 ACS_ExecuteAlways(611,0,5000,1,6) stop } } actor "Killstreak - UAV" : Weapon { obituary "%o somehow died by the phone." weapon.selectionorder 999 weapon.kickback 25 +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON +WEAPON.NOALERT +CHEATNOTWEAPON +NOLMS states { Ready: PHON A 4 A_PlayWeaponSound("c4/click") PHON BCDEFGH 4 TNT1 A 0 ACS_ExecuteAlways(643,0,0,0,0) TNT1 A 0 ACS_ExecuteAlways(611,0,100,1,6) PHON H 0 A_TakeInventory("Killstreak - UAV",1) loop Deselect: TNT1 AA 0 A_Lower TNT1 A 1 A_Lower loop Select: PHON A 0 A_Raise loop Fire: TNT1 A 1 goto Ready } } actor UAVActivator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(635,0,0,0,0) // Track players stop } } actor "Killstreak - Vests" : Weapon { obituary "%o somehow died by vests." weapon.selectionorder 999 weapon.kickback 25 +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON +WEAPON.NOALERT +CHEATNOTWEAPON +NOLMS states { Ready: VSTA ABCDEFG 3 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state VSTA G 1 A_WeaponReady loop Deselect: VSTA FEDCBA 3 DeselectFull: TNT1 AA 0 A_Lower TNT1 A 1 A_Lower loop Select: PHON A 0 A_Raise loop Fire: VSTB ABCDE 4 TNT1 A 4 A_PlayWeaponSound("c4/click") TNT1 A 0 A_GiveInventory("VestUse") TNT1 A 0 ACS_ExecuteAlways(643,0,1,0,0) TNT1 A 0 ACS_ExecuteAlways(611,0,150,1,6) PHON H 0 A_TakeInventory("Killstreak - Vests",1) goto Ready } } actor VestActivator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(645,0,0,0,0) // Track vests stop } } actor VestUse : CustomInventory { inventory.icon "BETTICON" inventory.amount 1 inventory.maxamount 1 scale 0.2 +INVENTORY.AUTOACTIVATE states { Spawn: BROK B -1 stop Use: TNT1 A 0 A_PlaySoundEx("grenade/throw","SoundSlot5") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 0, "ClayRed") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 1, "ClayBlue") TNT1 A 0 A_SpawnItemEx("VestFree",48,0,32,10,0,0,0,SXF_NOCHECKPOSITION,0) stop ClayRed: TNT1 A 0 A_SpawnItemEx("VestRed",48,0,32,10,0,0,0,SXF_NOCHECKPOSITION,0) stop ClayBlue: TNT1 A 0 A_SpawnItemEx("VestBlue",48,0,32,10,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor VestFree : CustomInventory { Health 100 +SHOOTABLE +NOBLOOD inventory.pickupmessage "Vest" inventory.pickupsound "vest/pickup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 0.2 States { Spawn: VSTX A 0 VSTX A 0 Thing_ChangeTID(0,8902) VSTX A 2 A_CheckFloor(1) wait VSTX A 0 A_Stop VSTX B 1050 A_PlaySound("betty/land") stop Pickup: GUNP A 0 GUNP A 0 ACS_ExecuteWithResult(646,0,0,0) stop //destroy because we don't want other players getting it FailPickup: VSTX B 1 fail Death: VSTX AAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-32,32),random(-32,32),random(0,32),0,0,random(0,random(-4,-1)*0.5),0,128,0) VSTX AA 0 A_SpawnItemEx("ExplosionSmokePuff",random(-32,32),random(-32,32),random(0,32),0,0,random(0,random(-4,-1)*0.5),0,128,0) VSTX B 2 BRIGHT VSTX AAAA 0 A_SpawnItemEx("StunExplosionSpark",random(-32,32),random(-32,32),random(0,32),0,0,random(0,random(-4,-1)*0.5),0,128,0) VSTX AA 0 A_SpawnItemEx("ExplosionSmokePuff",random(-32,32),random(-32,32),random(0,32),0,0,random(0,random(-4,-1)*0.5),0,128,0) VSTX B 2 BRIGHT stop } } actor VestRed : VestFree { States { Spawn: VSTX A 0 VSTX A 0 Thing_ChangeTID(0,8901) VSTX A 2 A_CheckFloor(1) wait VSTX A 0 A_Stop VSTX B 2100 A_PlaySound("betty/land") stop Pickup: GUNP A 0 A_JumpIfInventory("Perk2_Vest",1,"FailPickup") // If the player already has this vest, they get nothing GUNP A 0 A_JumpIfInventory("IsRed",1,"DoPickup") //only allow red team players to pick this up fail DoPickup: GUNP A 0 GUNP A 0 A_PlaySoundEx("vest/pickup","SoundSlot5") GUNP A 0 ACS_ExecuteWithResult(646,0,0,0) fail //This stays until destroyed or expired FailPickup: VSTX B 1 fail } } actor VestBlue : VestFree { States { Spawn: VSTX A 0 VSTX A 0 Thing_ChangeTID(0,8900) VSTX A 2 A_CheckFloor(1) wait VSTX A 0 A_Stop VSTX B 2100 A_PlaySound("betty/land") stop Pickup: GUNP A 0 A_JumpIfInventory("Perk2_Vest",1,"FailPickup") // If the player already has this vest, they get nothing GUNP A 0 A_JumpIfInventory("IsBlue",1,"DoPickup") //only allow red team players to pick this up fail DoPickup: GUNP A 0 GUNP A 0 A_PlaySoundEx("vest/pickup","SoundSlot5") GUNP A 0 ACS_ExecuteWithResult(646,0,0,0) fail //This stays until destroyed or expired FailPickup: VSTX B 1 fail } } actor Perk2_Vest : Inventory { inventory.amount 0 inventory.maxamount 1 } actor PowerPerk2_VestEffectPower : PowerProtection { damagefactor "Normal", 0.7 damagefactor "Melee", 1.0 damagefactor "Explosion", 0.7 } actor Perk2_VestEffect : PowerupGiver { inventory.maxamount 0 powerup.type "Perk2_VestEffectPower" powerup.duration 9999999 +AUTOACTIVATE states { Spawn: TNT1 A -1 stop } } actor "Killstreak - Remote Helicopter" : Weapon { obituary "%o somehow died by helicopter." weapon.selectionorder 999 weapon.kickback 25 +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON +WEAPON.NOALERT +CHEATNOTWEAPON +NOLMS states { Ready: TNT1 A 0 A_PlaySound("c4/click",5,1.0,0) RRCA ABCDE 3 A_WeaponReady(WRF_NOFIRE) RRCA F 3 A_PlaySound("recon/loop",5,1.0,1) RRCA GHI 3 //goto InHand -- intentional drop to next state InHand: //Ready state COPT D 0 A_PlaySound("recon/loop",5,1.0,1) RRCA JKLKJLKJLKJKLKJLKJLK 1 A_WeaponReady loop Deselect: RRCA IHG 3 RRCA F 3 A_PlaySound("c4/click",5,1.0,0) RRCA EDCBA 3 DeselectFull: TNT1 AA 0 A_Lower TNT1 A 1 A_Lower loop Select: PHON A 0 A_Raise loop Fire: RRCA J 1 A_JumpIf(ACS_ExecuteWithResult(647,1,0,0) == 1, 2) RRCA K 1 A_Print("Air space too crowded") goto Ready TNT1 A 0 A_PlaySound("recon/use",5,1.0,0) TNT1 A 2 A_SpawnItemEx("RemoteReconHelicopter",16,0,8,0,0,0,0,0,0) //spawn copter TNT1 A 0 ACS_ExecuteAlways(643,0,2,0,0) //which killstreak is this? TNT1 A 1 ACS_ExecuteAlways(611,0,200,1,6) //award XP for earning/using this TNT1 A 0 ACS_ExecuteAlways(647,0,0,0,0) //copter deployed! TNT1 A 0 A_TakeInventory("Killstreak - Remote Helicopter",1) goto Ready } } actor ReconBullet : HHBulletPuff { damagetype "Recon" } actor RemoteReconHelicopter { radius 16 height 16 health 250 damage 22 speed 0 scale 0.25 mass 25 obituary "\cf%k \cc>> \cnRemote Helicopter \cc>> \cf%o" MONSTER +NOBLOOD +SHOOTABLE +LOOKALLAROUND +NOTARGET +GHOST +THRUGHOST +DROPOFF -SOLID -CANPASS reactiontime 35 gravity 0.25 CameraHeight 16 +NOGRAVITY states { Spawn: COPT A 0 COPT A 0 Thing_ChangeTID(0,8910) goto Spawn2 Spawn2: COPT A 0 COPT A 1 A_JumpIfInventory("MP7Counter",1,"Attack") COPT B 1 A_Stop COPT C 1 COPT D 1 A_Stop COPT D 0 A_PlaySound("recon/loop",5,1.0,1) COPT D 0 A_LookEx(0,0,0,0,360,"Spawn2") Loop Attack: COPT A 0 A_CustomMissile("MP7Puff",4,0,0,2,pitch) COPT A 0 A_TakeInventory("MP7Counter",5) COPT A 1 BRIGHT A_CustomBulletAttack(6.0, 6.0, 1, 5, "ReconBullet", 1500, 1) COPT B 1 BRIGHT A_Stop COPT C 1 BRIGHT COPT D 1 A_Stop COPT D 0 A_AlertMonsters goto Spawn2 Explode: TNT1 AAAA 0 DamageThing(2000) Death: COPT A 5 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_PlaySoundEx("stun/explosion","SoundSlot5") TNT1 A 10 A_SpawnItemEx("StunExplosionMain",0,0,0,0,0,0,0,0,0) stop } } actor RemoteControl : Weapon { obituary "\cf%k \cc>> \cnRemote Helicopter \cc>> \cf%o" weapon.selectionorder 1 weapon.kickback 25 +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON +WEAPON.NOALERT +CHEATNOTWEAPON +NOLMS states { Ready: TNT1 A 1 A_WeaponReady loop Deselect: TNT1 AA 0 A_Lower TNT1 A 1 A_Lower loop Select: TNT1 A 0 A_Raise loop Fire: TNT1 A 4 goto Ready } } //Determine speed to throw grenade actor ThrowPower : Ammo { inventory.amount 0 inventory.maxamount 100 ammo.backpackamount 0 ammo.backpackmaxamount 100 +IGNORESKILL } actor FragGrenadeAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 2 inventory.maxamount 4 ammo.backpackamount 2 ammo.backpackmaxamount 8 +IGNORESKILL } actor ThrowingFlashbang : Inventory { inventory.amount 0 inventory.maxamount 1 } actor ThrowingStunGrenade : Inventory { inventory.amount 0 inventory.maxamount 1 } actor ThrowingSemtex : Inventory { inventory.amount 0 inventory.maxamount 1 } actor ThrowingKnife : Inventory { inventory.amount 0 inventory.maxamount 1 } actor ThrowingKnifeInventory : CustomInventory { inventory.pickupmessage "Throwing Knife" inventory.pickupsound "knife/pickup" Inventory.MaxAmount 4 Inventory.Icon "KNIFICON" Scale 0.75 //+INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: KNFX B 2100 stop Use: TNT1 A 0 A_GiveInventory("KnifeAttack",1) TNT1 A 0 A_GiveInventory("ThrowingGrenade",1) TNT1 A 0 A_GiveInventory("ThrowingKnife",1) stop } } actor SemtexInventory : CustomInventory { inventory.pickupmessage "Semtex" inventory.pickupsound "grenade/lob" Inventory.MaxAmount 4 Inventory.Icon "SEMTEXIC" Scale 0.5 //+INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_GiveInventory("KnifeAttack",1) TNT1 A 0 A_GiveInventory("ThrowingGrenade",1) TNT1 A 0 A_GiveInventory("ThrowingSemtex",1) stop } } actor StunGrenadeInventory : CustomInventory { inventory.pickupmessage "Flashbangs" inventory.pickupsound "grenade/lob" Inventory.MaxAmount 4 Inventory.Icon "STUNGREN" Scale 0.5 +INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_GiveInventory("KnifeAttack",1) TNT1 A 0 A_GiveInventory("ThrowingGrenade",1) TNT1 A 0 A_GiveInventory("ThrowingStunGrenade",1) stop } } actor FlashbangInventory : CustomInventory { inventory.pickupmessage "Flashbangs" inventory.pickupsound "grenade/lob" Inventory.MaxAmount 4 Inventory.Icon "FLSHBNG" Scale 0.5 +INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_GiveInventory("KnifeAttack",1) TNT1 A 0 A_GiveInventory("ThrowingGrenade",1) TNT1 A 0 A_GiveInventory("ThrowingFlashbang",1) stop } } actor FragGrenade { obituary "\cf%k \cc>> \cngrenade impact \cc>> \cf%o" radius 5 height 5 speed 20 damage (2) PROJECTILE -NOGRAVITY +RANDOMIZE +HEXENBOUNCE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER +BOUNCEONACTORS +ROCKETTRAIL -NOTELEPORT +TELESTOMP +THRUGHOST Scale 0.16 gravity 0.4 bouncefactor 0.5 damagetype "Explosion" ReactionTime 3 seesound "grenade/lob" states { Spawn: FRGX A 1 FRGX ABCD 5 FRGX E 5 FRGX FG 5 FRGX H 5 A_Countdown goto Spawn+2 Death: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeExplosion",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop } } actor FragGrenade0 : FragGrenade { speed 6 seesound "" damage 0 } actor FragGrenade1 : FragGrenade { speed 12 seesound "" damage 0 } actor FragGrenade2 : FragGrenade { speed 26 } actor FragGrenade3 : FragGrenade { speed 32 } actor FragGrenade4 : FragGrenade { speed 38 damage (25) } actor FragGrenadeDropped : FragGrenade { speed 2 damage 0 PROJECTILE -NOGRAVITY +RANDOMIZE +HEXENBOUNCE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER +BOUNCEONACTORS +ROCKETTRAIL -NOTELEPORT -TELESTOMP Scale 0.16 gravity 0.4 bouncefactor 0.5 damagetype "Explosion" ReactionTime 3 seesound "grenade/lob" states { Spawn: FRGX A 1 FRGX ABCD 5 FRGX E 5 FRGX FG 5 FRGX H 5 A_Countdown FRGX H 0 A_Stop FRGX H 0 A_NoGravity goto Spawn+2 Death: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,1,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("MartyrGrenadeExplosion",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop } } actor FragGrenadeExplosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \ckFrag grenade \cc>> \cf%o" DamageType "Explosion" states { Spawn: TNT1 A 0 TNT1 A 0 A_Explode(125,200) TNT1 A 5 A_Explode(50,96) stop } } actor MartyrGrenadeExplosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cnmartyrdom \cc>> \cf%o" DamageType "Explosion" states { Spawn: TNT1 A 0 TNT1 A 0 A_Explode(100,150) TNT1 A 5 A_Explode(60,96) stop } } actor FragGrenadeShock { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cnexplosion shock \cc>> \cf%o" DamageType "Shock" states { Spawn: TNT1 A 1 TNT1 A 5 A_Explode(15,80) stop } } actor FlashbangThrown { obituary "\cf%k \cc>> \cnflashbang impact \cc>> \cf%o" radius 5 height 5 speed 28 damage (2) PROJECTILE -NOGRAVITY +RANDOMIZE +HEXENBOUNCE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER +BOUNCEONACTORS +ROCKETTRAIL -NOTELEPORT +TELESTOMP +THRUGHOST Scale 0.1 gravity 0.5 bouncefactor 0.5 damagetype "Explosion" ReactionTime 2 seesound "grenade/lob" states { Spawn: GRNX A 1 GRNX ABCDEFGHIJKLM 2 GRNX N 2 A_Countdown goto Spawn+1 Death: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_PlaySoundEx("flash/explosion","SoundSlot5") TNT1 A 0 A_PlaySoundEx("flash/explosion","SoundSlot6") TNT1 A 0 A_SpawnItemEx("FlashbangExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 1 A_SpawnItemEx("FlashbangExplosionLarge",-1,0,0,0,0,0,0,0,0) TNT1 A 1 A_SpawnItemEx("FlashbangExplosionMedium",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FlashbangExplosionSmall",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-3,3), 0, random(-1,3), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-3,3), 0, random(-1,3), random(-180,180), 128, 0) TNT1 A 15 stop } } actor FlashbangExplosionSmall { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cnflashbang \cc>> \cf%o" DamageType "Flashbang" states { Spawn: TNT1 A 0 TNT1 A 5 A_Explode(5,300) stop } } actor FlashbangExplosionMedium : FlashbangExplosionSmall { DamageType "Flashbang2" states { Spawn: TNT1 A 0 TNT1 A 5 A_Explode(5,600) stop } } actor FlashbangExplosionLarge : FlashbangExplosionSmall { DamageType "Flashbang3" states { Spawn: TNT1 A 0 TNT1 A 5 A_Explode(5,900) stop } } actor FlashbangExplosionMain { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP +NOGRAVITY Scale 1.0 states { Spawn: FLAR BBBBBBB 0 A_SpawnItemEx("FlashbangExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 3 BRIGHT FLAR BBBBBBB 0 A_SpawnItemEx("FlashbangExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 3 BRIGHT FLAR BBBBBBB 0 A_SpawnItemEx("FlashbangExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 3 BRIGHT FLAR BBBBBBB 0 A_SpawnItemEx("FlashbangExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 3 BRIGHT FLAR BBBBBBB 0 A_SpawnItemEx("FlashbangExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 3 BRIGHT FLAR BBBBBBB 0 A_SpawnItemEx("FlashbangExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 3 BRIGHT FLAR BBBBBBB 0 A_SpawnItemEx("FlashbangExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BBBBBB 1 BRIGHT A_FadeOut(0.2) stop } } actor FlashbangExplosionSpark { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.05 states { Spawn: TNT1 A 1 FLAR B 2 bright FLAR BBBBBBBBBBBBBB 1 bright A_SetTranslucent(random(0,2)*0.25,1) stop } } actor StunGrenadeThrown { obituary "\cf%k \cc>> \cnstun grenade impact \cc>> \cf%o" radius 5 height 5 speed 32 damage (2) PROJECTILE -NOGRAVITY +RANDOMIZE +DOOMBOUNCE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER +BOUNCEONACTORS +ROCKETTRAIL -NOTELEPORT +TELESTOMP +THRUGHOST Scale 0.1 gravity 0.75 bouncefactor 0.3 damagetype "Explosion" ReactionTime 2 seesound "grenade/lob" states { Spawn: GRNX A 1 GRNX ABCDEFGHIJKLMN 2 GRNX ABCDEFGHIJKLMN 2 GRNX ABCDEFGHIJKLMN 2 GRNX N -1 goto Spawn+1 Death: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_PlaySoundEx("stun/explosion","SoundSlot5") TNT1 A 0 A_SpawnItemEx("StunExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("StunExplosion",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-3,3), 0, random(-1,3), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-3,3), 0, random(-1,3), random(-180,180), 128, 0) TNT1 A 15 stop } } actor StunExplosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cnstun grenade \cc>> \cf%o" DamageType "Stun" states { Spawn: TNT1 A 0 TNT1 A 5 A_Explode(5,400) stop } } actor StunExplosionMain { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP +NOGRAVITY Scale 1.0 states { Spawn: FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BB 0 A_SpawnItemEx("ExplosionSmokePuff",random(-64,64),random(-64,64),random(-64,64),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 2 BRIGHT FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BB 0 A_SpawnItemEx("ExplosionSmokePuff",random(-64,64),random(-64,64),random(-64,64),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 2 BRIGHT FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BB 0 A_SpawnItemEx("ExplosionSmokePuff",random(-64,64),random(-64,64),random(-64,64),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 2 BRIGHT FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BB 0 A_SpawnItemEx("ExplosionSmokePuff",random(-64,64),random(-64,64),random(-64,64),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 2 BRIGHT FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BB 0 A_SpawnItemEx("ExplosionSmokePuff",random(-64,64),random(-64,64),random(-64,64),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 2 BRIGHT FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BB 0 A_SpawnItemEx("ExplosionSmokePuff",random(-64,64),random(-64,64),random(-64,64),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR B 2 BRIGHT FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BB 0 A_SpawnItemEx("ExplosionSmokePuff",random(-64,64),random(-64,64),random(-64,64),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BBBBBB 1 BRIGHT A_FadeOut(0.2) stop } } actor StunExplosionSpark { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.02 states { Spawn: TNT1 A 1 FLAR B 1 bright FLAR BBBBBBBBB 1 bright A_SetTranslucent(random(0,2)*0.25,1) stop } } actor PowerFlashbangSpeed : PowerSpeed { Speed 0.75 } ACTOR FlashbangSpeed : PowerupGiver { +NOGRAVITY +INVENTORY.AUTOACTIVATE +ALWAYSPICKUP Inventory.MaxAmount 0 Powerup.Duration -5 Powerup.Type "FlashbangSpeed" Inventory.PickupAnnouncerEntry "" } actor PowerShellshockSpeed : PowerSpeed { Speed 0.5 } ACTOR ShellshockSpeed : PowerupGiver { +NOGRAVITY +INVENTORY.AUTOACTIVATE +ALWAYSPICKUP Inventory.MaxAmount 0 Powerup.Duration -5 Powerup.Type "ShellshockSpeed" Inventory.PickupAnnouncerEntry "" } actor PowerStunSpeed : PowerSpeed { Speed 0.2 } ACTOR StunSpeed : PowerupGiver { +NOGRAVITY +INVENTORY.AUTOACTIVATE +ALWAYSPICKUP Inventory.MaxAmount 0 Powerup.Duration -5 Powerup.Type "StunSpeed" Inventory.PickupAnnouncerEntry "" } actor SemtexCounter : Inventory { inventory.amount 0 inventory.maxamount 18 } actor SemtexThrown { obituary "\cf%k \cc>> \cnsemtex impact \cc>> \cf%o" radius 5 height 5 speed 30 damage (6) PROJECTILE -NOGRAVITY +RANDOMIZE //+HEXENBOUNCE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER +BOUNCEONACTORS +ROCKETTRAIL -NOTELEPORT +TELESTOMP +THRUGHOST //+SEEKERMISSILE Scale 0.16 gravity 0.65 bouncefactor 0.5 damagetype "Semtex" ReactionTime 1 seesound "semtex/beep" states { Spawn: TNT1 A 0 TNT1 A 0 A_JumpIfInventory("SemtexCounter",18,"Explode") FRGX A 4 A_GiveInventory("SemtexCounter",1) TNT1 A 0 A_SpawnItemEx("SemtexBeeper", 0, 0, 4, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_JumpIfInventory("SemtexCounter",18,"Explode") FRGX A 4 A_GiveInventory("SemtexCounter",1) loop Explode: TNT1 A 0 A_GiveInventory("SemtexCounter",17) TNT1 AAAA 0 A_Countdown goto Death XDeath: FRGX A 15 stop Death: TNT1 A 0 A_NoGravity TNT1 A 0 A_Fire(32) TNT1 A 0 A_SpawnItemEx("SemtexBeeper", 0, 0, 4, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_JumpIfInventory("SemtexCounter",18,"RealDeath") TNT1 A 4 A_GiveInventory("SemtexCounter",1) TNT1 A 0 A_Fire(32) TNT1 A 0 A_JumpIfInventory("SemtexCounter",18,"RealDeath") TNT1 A 4 A_GiveInventory("SemtexCounter",1) loop RealDeath: TNT1 A 0 A_NoGravity TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("SemtexExplosion",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop } } actor SemtexExplosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cksemtex \cc>> \cf%o" DamageType "Explosion" states { Spawn: TNT1 A 0 TNT1 A 0 A_Explode(125,180) TNT1 A 5 A_Explode(50,96) stop } } actor SemtexStuckExplosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cnsemtex stuck \cc>> \cf%o" DamageType "Explosion" reactiontime 1 states { Spawn: TNT1 A 48 TNT1 AAAA 0 A_Countdown Death: TNT1 A 0 A_NoGravity TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("SemtexStuckExplosion2",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop } } actor SemtexStuckExplosion2 : SemtexExplosion { obituary "\cf%k \cc>> \cnsemtex stuck \cc>> \cf%o" } actor SemtexBeeper { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 0.08 +CLIENTSIDEONLY +NOINTERACTION states { Spawn: SPRK A 0 SPRK C 1 bright A_FadeOut(0.225) loop } } actor ThrowingKnifeThrown { obituary "\cf%k \cc>> \cnthrowing knife \cc>> \cf%o" radius 5 height 5 speed 50 damage (130) PROJECTILE -NOGRAVITY +RANDOMIZE +NOEXTREMEDEATH +THRUGHOST +ROCKETTRAIL Scale 0.75 gravity 0.8 bouncefactor 0.3 damagetype "ThrowingKnife" ReactionTime 2 states { Spawn: KNFX ABCD 1 loop Death: TNT1 A 0 TNT1 A 0 A_PlaySoundEx("knife/twall","SoundSlot5") TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 15 TNT1 A 15 A_SpawnItemEx("ThrowingKnifeInventory",-8,0,0,0,0,0,0,0,0) stop XDeath: TNT1 A 1 TNT1 A 0 A_PlaySoundEx("generic/fleshhit","SoundSlot5") TNT1 A 15 TNT1 A 15 A_SpawnItemEx("ThrowingKnifeInventory",-8,0,0,0,0,0,0,0,0) stop } } actor FriendlyExplosiveBlue { Radius 8 Height 8 +NOGRAVITY +NOBLOCKMAP +DONTSPLASH +CLIENTSIDEONLY visibletoteam 0 scale 0.25 States { Spawn: FEXP A 15 Bright Stop } } actor FriendlyExplosiveRed : FriendlyExplosiveBlue { visibletoteam 1 } //Planting actor ThrowingClaymore : Inventory { inventory.amount 0 inventory.maxamount 1 } actor ClaymoreInventory : CustomInventory { inventory.pickupmessage "Claymore" inventory.pickupsound "claymore/pickup" Inventory.MaxAmount 4 Inventory.Icon "CLAYICON" Scale 0.5 //+INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_GiveInventory("KnifeAttack",1) TNT1 A 0 A_GiveInventory("ThrowingGrenade",1) TNT1 A 0 A_GiveInventory("ThrowingClaymore",1) stop } } actor ClaymoreUse : CustomInventory { inventory.icon "CLAYICON" inventory.amount 1 inventory.maxamount 1 scale 0.7 +INVENTORY.AUTOACTIVATE states { Spawn: BROK B -1 stop Use: TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 0, "ClayRed") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 1, "ClayBlue") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 2, "ClayGreen") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 3, "ClayGold") TNT1 A 0 A_SpawnItemEx("ClaymoreColoured",30,0,-8,0,0,-5,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_SETMASTER,0) TNT1 A 0 A_PlaySound("claymore/place") stop ClayRed: TNT1 A 0 A_SpawnItemEx("Claymore",30,0,-8,0,0,-5,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0) TNT1 A 0 A_PlaySound("claymore/place") stop ClayBlue: TNT1 A 0 A_SpawnItemEx("ClaymoreBlue",30,0,-8,0,0,-5,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0) TNT1 A 0 A_PlaySound("claymore/place") stop ClayGreen: TNT1 A 0 A_SpawnItemEx("ClaymoreGreen",30,0,-8,0,0,-5,0,SXF_NOCHECKPOSITION,0) TNT1 A 0 A_PlaySound("claymore/place") stop ClayGold: TNT1 A 0 A_SpawnItemEx("ClaymoreGold",30,0,-8,0,0,-5,0,SXF_NOCHECKPOSITION,0) TNT1 A 0 A_PlaySound("claymore/place") stop } } actor Claymore { radius 8 height 14 health 20 damage 22 speed 0 scale 0.2 mass 9999999 obituary "\cf%k \cc>> \cfClaymore \cc>> \cf%o" MONSTER +HEXENBOUNCE +NOBLOOD +SHOOTABLE -NOGRAVITY +LOOKALLAROUND +NOTARGET +BOUNCEONACTORS +GHOST +THRUGHOST -SOLID damagetype "Explosion" bouncefactor 0 reactiontime 2 deathsound "claymore/click" states { Spawn: CLAY A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 CLAY A 10 ACS_ExecuteAlways(640,0,1,0,0)//Claymores CLAY A 0 A_NoGravity CLAY A 0 A_Stop CLAY A 5 A_Look goto See See: CLAY A 0 A_SpawnItemEx("ClaymoreTrip",6,-6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",12,-12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",18,-18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",24,-24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",30,-30,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",36,-36,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",6,6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",12,12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",18,18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",24,24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTrip",30,30,8,0,0,0,0,128,0) CLAY A 2 A_SpawnItemEx("ClaymoreTrip",36,36,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("FriendlyExplosiveRed",0,0,32,0,0,0,0,128,0) CLAY A 2 A_LookEx(LOF_NOSOUNDCHECK,12,512,1,90,"Seen") Loop Seen: CLAY A 2 A_JumpIfInTargetInventory("IsRed",1,4) CLAY A 2 A_JumpIfCloser(256,2) CLAY A 0 A_ClearTarget goto See CLAY A 0 goto Explode CLAY A 0 A_ClearTarget goto See Explode: TNT1 AAAA 0 A_Countdown Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") CLAY A 10 A_PlayWeaponSound("claymore/click") TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("ClaymoreExploShrapnelDamage",32,0,random(-35,35),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 10 stop Death2: CLAY A 0 CLAY A 70 A_PlayWeaponSound("claymore/click") goto Death+2 Death.Vanish: CLAY A 0 stop } } actor ClaymoreTrip { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 0.05 +CLIENTSIDEONLY +NOINTERACTION Gravity 1.2 states { Spawn: SPRK A 0 SPRK C 2 bright A_FadeOut(0.225) loop } } actor ClaymoreExploShrapnelDamage { obituary "\cf%k \cc>> \cfClaymore \cc>> \cf%o" radius 2 height 2 speed 80 damage (35) renderstyle Add alpha 1.0 PROJECTILE -NOGRAVITY +RANDOMIZE +DOOMBOUNCE +BLOODSPLATTER Scale 0.05 bouncefactor 0.4 reactiontime 2 damagetype "Explosion" states { Spawn: SPRK A 4 bright stop Death: SPRK A 2 A_FadeOut(0.1) loop } } actor ClaymoreBlue : Claymore { states { Spawn: CLAY A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 CLAY A 10 ACS_ExecuteAlways(640,0,0,0,0)//Claymores CLAY A 0 A_NoGravity CLAY A 0 A_Stop CLAY A 5 A_Look goto See See: CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",6,-6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",12,-12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",18,-18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",24,-24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",30,-30,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",36,-36,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",6,6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",12,12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",18,18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",24,24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripBlue",30,30,8,0,0,0,0,128,0) CLAY A 2 A_SpawnItemEx("ClaymoreTripBlue",36,36,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("FriendlyExplosiveBlue",0,0,32,0,0,0,0,128,0) CLAY A 2 A_LookEx(LOF_NOSOUNDCHECK,12,512,1,90,"Seen") Loop Seen: CLAY A 2 A_JumpIfInTargetInventory("IsBlue",1,4) CLAY A 2 A_JumpIfCloser(256,2) CLAY A 0 A_ClearTarget goto See CLAY A 0 goto Explode CLAY A 0 A_ClearTarget goto See Explode: TNT1 AAAA 0 A_Countdown Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") CLAY A 10 A_PlayWeaponSound("claymore/click") TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("ClaymoreExploShrapnelDamage",32,0,random(-35,35),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 10 stop Death2: CLAY A 0 CLAY A 70 A_PlayWeaponSound("claymore/click") goto Death+2 } } actor ClaymoreGreen : Claymore { states { Spawn: CLAY A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 CLAY A 10 A_GiveToTarget("HitIndicator",1) CLAY A 0 A_NoGravity CLAY A 0 A_Stop CLAY A 5 A_Look goto See See: CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",6,-6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",12,-12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",18,-18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",24,-24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",30,-30,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",36,-36,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",6,6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",12,12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",18,18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",24,24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",30,30,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",36,36,8,0,0,0,0,128,0) CLAY A 2 A_JumpIfTargetInLOS("Seen",90) CLAY A 0 A_Look Loop Seen: CLAY A 2 A_JumpIfCloser(256,2) CLAY A 0 A_ClearTarget goto See CLAY A 0 goto Explode CLAY A 0 A_ClearTarget goto See Explode: TNT1 AAAA 0 A_Countdown Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") CLAY A 10 A_PlayWeaponSound("claymore/click") TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("ClaymoreExploShrapnelDamage",32,0,random(-35,35),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 10 stop Death2: CLAY A 0 CLAY A 70 A_PlayWeaponSound("claymore/click") goto Death+2 } } actor ClaymoreGold : Claymore { states { Spawn: CLAY A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 CLAY A 10 A_GiveToTarget("HitIndicator",1) CLAY A 0 A_NoGravity CLAY A 0 A_Stop CLAY A 5 A_Look goto See See: CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",6,-6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",12,-12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",18,-18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",24,-24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",30,-30,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",36,-36,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",6,6,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",12,12,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",18,18,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",24,24,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",30,30,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGold",36,36,8,0,0,0,0,128,0) CLAY A 2 A_JumpIfTargetInLOS("Seen",90) CLAY A 0 A_Look Loop Seen: CLAY A 2 A_JumpIfCloser(256,1) goto See CLAY A 0 goto Explode Explode: TNT1 AAAA 0 A_Countdown Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") CLAY A 10 A_PlayWeaponSound("claymore/click") TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("ClaymoreExploShrapnelDamage",32,0,random(-35,35),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 10 stop Death2: CLAY A 0 CLAY A 70 A_PlayWeaponSound("claymore/click") goto Death+2 } } actor ClaymoreTripBlue : ClaymoreTrip { states { Spawn: SPRK A 0 SPRK D 2 bright A_FadeOut(0.225) loop } } actor ClaymoreTripGreen : ClaymoreTrip { states { Spawn: SPRK A 0 SPRK B 2 bright A_FadeOut(0.225) loop } } actor ClaymoreTripGold : ClaymoreTrip { states { Spawn: SPRK A 0 SPRK A 2 bright A_FadeOut(0.225) loop } } actor ClaymoreColoured : Claymore { states { Spawn: CLAY A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 CLAY A 10 ACS_ExecuteAlways(640,0,1,0,0)//Claymores CLAY A 0 A_NoGravity CLAY A 0 A_Stop CLAY A 5 A_Look goto See See: CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",6,-6,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",12,-12,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",18,-18,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",24,-24,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",30,-30,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",36,-36,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",6,6,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",12,12,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",18,18,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",24,24,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",30,30,8,0,0,0,0,129,0) CLAY A 0 A_SpawnItemEx("ClaymoreTripGreen",36,36,8,0,0,0,0,129,0) CLAY A 2 A_LookEx(LOF_NOSOUNDCHECK,12,512,1,90,"Seen") Loop Seen: CLAY A 2 A_JumpIfCloser(256,2) CLAY A 0 A_ClearTarget goto See CLAY A 0 goto Explode CLAY A 0 A_ClearTarget goto See Explode: TNT1 AAAA 0 A_Countdown Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") CLAY A 10 A_PlayWeaponSound("claymore/click") TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("ClaymoreExploShrapnelDamage",32,0,random(-35,35),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 10 stop Death2: CLAY A 0 CLAY A 70 A_PlayWeaponSound("claymore/click") goto Death+2 } } //Planting actor ThrowingBetty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor BettyInventory : CustomInventory { inventory.pickupmessage "Betty" inventory.pickupsound "claymore/pickup" Inventory.MaxAmount 4 Inventory.Icon "BETTICON" Scale 0.5 //+INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_GiveInventory("KnifeAttack",1) TNT1 A 0 A_GiveInventory("ThrowingGrenade",1) TNT1 A 0 A_GiveInventory("ThrowingBetty",1) stop } } actor BettyUse : CustomInventory { inventory.icon "BETTICON" inventory.amount 1 inventory.maxamount 1 scale 0.7 +INVENTORY.AUTOACTIVATE states { Spawn: BROK B -1 stop Use: TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 0, "ClayRed") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 1, "ClayBlue") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 2, "ClayGreen") TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(637,0,0,0) == 3, "ClayGold") TNT1 A 0 A_SpawnItemEx("BettyColoured",16,0,32,10,0,0,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_SETMASTER,0) stop ClayRed: TNT1 A 0 A_SpawnItemEx("Betty",16,0,32,10,0,-5,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0) stop ClayBlue: TNT1 A 0 A_SpawnItemEx("BettyBlue",16,0,32,10,0,-5,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0) stop ClayGreen: TNT1 A 0 A_SpawnItemEx("BettyBlue",16,0,32,10,0,-5,0,SXF_NOCHECKPOSITION,0)//lolwut stop ClayGold: TNT1 A 0 A_SpawnItemEx("BettyBlue",16,0,32,10,0,-5,0,SXF_NOCHECKPOSITION,0) stop } } actor Betty { radius 8 height 14 health 20 damage 22 speed 0 scale 0.2 mass 9999999 obituary "\cf%k \cc>> \cfBouncing Betty \cc>> \cf%o" MONSTER +HEXENBOUNCE +NOBLOOD +SHOOTABLE -NOGRAVITY +LOOKALLAROUND +NOTARGET +BOUNCEONACTORS +GHOST +THRUGHOST -SOLID damagetype "Explosion" bouncefactor 0 gravity 0.6 reactiontime 2 deathsound "betty/activate" states { Spawn: BETT A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 BETT A 1 ACS_ExecuteAlways(640,0,1,1,0)//Betties BETT A 1 A_CheckFloor(1) wait BETT B 0 A_PlaySound("betty/land") BETT B 0 A_NoGravity BETT B 35 A_Stop BETT B 5 A_Look goto See See: BETT B 2 A_SpawnItemEx("BettyTrip",0,0,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("FriendlyExplosiveRed",0,0,32,0,0,0,0,128,0) BETT BBBB 2 A_LookEx(LOF_NOSOUNDCHECK,0,512,1,360,"Seen") Loop Seen: BETT B 2 A_JumpIfInTargetInventory("IsRed",1,4) BETT B 2 A_JumpIfCloser(256,2) BETT B 0 A_ClearTarget goto See BETT A 0 goto Explode BETT A 0 A_ClearTarget goto See Explode: TNT1 AAAA 0 DamageThing(20) Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") BETT B 0 A_NoGravity BETT B 5 A_Stop BETT C 3 A_PlaySoundEx("betty/activate","SoundSlot5") BETT A 3 ThrustThingZ(0,20,0,0) BETT BBBBBB 2 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) BETT B 1 A_Gravity BETT BBBBBBBB 2 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,0,2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 10 stop Death2: BETT A 0 BETT A 50 A_PlayWeaponSound("claymore/click") goto Death+1 Death.Vanish: TNT1 A 0 stop } } actor BettyTrip { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 0.1 +CLIENTSIDEONLY +NOINTERACTION Gravity 1.2 states { Spawn: SPRK C 6 SPRK C 3 bright A_FadeOut(0.225) loop } } actor BettyExploShrapnelDamage { obituary "\cf%k \cc>> \cfBouncing Betty \cc>> \cf%o" radius 2 height 2 speed 80 damage (100) renderstyle Add alpha 1.0 PROJECTILE -NOGRAVITY +RANDOMIZE +DOOMBOUNCE +BLOODSPLATTER Scale 0.1 bouncefactor 0.4 reactiontime 2 damagetype "Explosion" states { Spawn: SPRK A 4 bright stop Death: SPRK A 2 A_FadeOut(0.1) loop } } actor BettyBlue : Betty { states { Spawn: BETT A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 BETT A 1 ACS_ExecuteAlways(640,0,0,1,0)//Betties BETT A 1 A_CheckFloor(1) wait BETT B 0 A_PlaySound("betty/land") BETT B 0 A_NoGravity BETT B 35 A_Stop BETT B 5 A_Look goto See See: BETT B 2 A_SpawnItemEx("BettyTripBlue",0,0,8,0,0,0,0,128,0) CLAY A 0 A_SpawnItemEx("FriendlyExplosiveBlue",0,0,32,0,0,0,0,128,0) BETT BBBB 2 A_LookEx(LOF_NOSOUNDCHECK,0,512,1,360,"Seen") Loop Seen: BETT B 2 A_JumpIfInTargetInventory("IsBlue",1,4) BETT B 2 A_JumpIfCloser(256,2) BETT B 0 A_ClearTarget goto See BETT A 0 goto Explode BETT A 0 A_ClearTarget goto See Explode: TNT1 AAAA 0 DamageThing(20) Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") BETT B 0 A_NoGravity BETT B 5 A_Stop BETT C 3 A_PlaySoundEx("betty/activate","SoundSlot5") BETT A 3 ThrustThingZ(0,20,0,0) BETT BBBBBB 2 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) BETT B 1 A_Gravity BETT BBBBBBBB 2 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,0,2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 10 stop Death2: BETT A 0 BETT A 35 A_PlayWeaponSound("claymore/click") goto Death+1 } } actor BettyColoured : Betty { states { Spawn: BETT A 1 //CLAY A 0 A_JumpIf(ACS_ExecuteWithResult(608,0,0,0) == 1, 5) //CLAY AAAA 35 BETT A 1 ACS_ExecuteAlways(640,0,1,1,0)//Betties BETT A 1 A_CheckFloor(1) wait BETT B 0 A_PlaySound("betty/land") BETT B 0 A_NoGravity BETT B 35 A_Stop BETT B 5 A_Look goto See See: BETT B 0 A_SpawnItemEx("BettyTripGreen",0,0,8,0,0,0,0,129,0) BETT BBBB 2 A_LookEx(LOF_NOSOUNDCHECK,0,512,1,360,"Seen") Loop Seen: BETT B 2 A_JumpIfCloser(256,2) BETT B 0 A_ClearTarget goto See BETT A 0 goto Explode Explode: TNT1 AAAA 0 DamageThing(20) Death: TNT1 A 0 A_JumpIfInTargetInventory("Perk3_Stalker_Pro",1,"Death2") BETT B 0 A_NoGravity BETT B 5 A_Stop BETT C 3 A_PlaySoundEx("betty/activate","SoundSlot5") BETT A 3 ThrustThingZ(0,20,0,0) BETT BBBBBB 2 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) BETT B 1 A_Gravity BETT BBBBBBBB 2 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,128,0) TNT1 AAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,0,2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile("BettyExploShrapnelDamage",0,0,random(-180,180),2,random(2,3)) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlayWeaponSound("stun/explosion") TNT1 A 10 stop Death2: BETT A 0 BETT A 35 A_PlayWeaponSound("claymore/click") goto Death+1 } } actor BettyTripBlue : BettyTrip { states { Spawn: SPRK D 6 SPRK D 3 bright A_FadeOut(0.225) loop } } actor BettyTripGreen : BettyTrip { states { Spawn: SPRK B 6 SPRK B 3 bright A_FadeOut(0.225) loop } } actor BettyTripGold : BettyTrip { states { Spawn: SPRK A 6 SPRK A 3 bright A_FadeOut(0.225) loop } } actor C4Inventory : CustomInventory { inventory.pickupmessage "C4" inventory.pickupsound "grenade/lob" Inventory.MaxAmount 4 Inventory.Icon "C4ICON" Scale 0.5 //+INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_JumpIfInventory("C4",1,"FailSelect") TNT1 A 0 A_JumpIfInventory("Detonator",1,"FailSelect2") TNT1 A 0 A_GiveInventory("C4",1) TNT1 A 0 A_SelectWeapon("C4") fail FailSelect: TNT1 A 0 A_SelectWeapon("C4") fail FailSelect2: TNT1 A 0 A_SelectWeapon("Detonator") fail } } actor C4Inventory2 : C4Inventory { +INVENTORY.AUTOACTIVATE states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_JumpIfInventory("C4",1,"FailSelect") TNT1 A 0 A_JumpIfInventory("Detonator",1,"FailSelect2") TNT1 A 0 A_GiveInventory("C4",1) TNT1 A 0 A_SelectWeapon("C4") stop FailSelect: TNT1 A 0 A_SelectWeapon("C4") stop FailSelect2: TNT1 A 0 A_SelectWeapon("Detonator") stop } } actor "C4" : Weapon { obituary "\cf%k \cc>> \cfC4 \cc>> \cf%o" weapon.selectionorder 999 weapon.kickback 25 +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON +WEAPON.NOALERT states { Ready: FRGE A 1 A_WeaponReady loop Deselect: FRGE AA 0 A_Lower FRGE A 1 A_Lower loop Select: FRGE A 0 A_Raise FRGE A 1 A_Raise loop Fire: FRGE A 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE A 0 A_FireCustomMissile("C4Thrown",0,1) FRGE F 0 A_GiveInventory("Detonator",1) FRGE F 0 A_GiveInventory("C4Existence",1) FRGE BCDEF 3 FRGE F 0 A_SelectWeapon("Detonator") FRGE F 0 A_TakeInventory("C4",1) goto Ready } } actor "Detonator" : Weapon { obituary "\cf%k \cc>> \cfC4 \cc>> \cf%o" weapon.selectionorder 999 weapon.kickback 25 +WEAPON.WIMPY_WEAPON +WEAPON.MELEEWEAPON +WEAPON.NOALERT +NOLMS +CHEATNOTWEAPON states { Ready: FRGF A 1 A_WeaponReady loop Deselect: FRGF AA 0 A_Lower FRGF A 1 A_Lower loop Select: FRGF A 0 A_Raise FRGF A 1 A_Raise loop Fire: FRGF A 0 FRGF F 0 A_GiveInventory("C4DetonatorCheck",1) FRGF A 0 A_PlaySoundEx("c4/click","SoundSlot5") FRGF BCDEFG 4 TNT1 F 8 TNT1 F 0 A_TakeInventory("C4DetonatorCheck",1) FRGF F 0 A_TakeInventory("C4Existence",1) FRGE F 0 A_TakeInventory("C4Inventory",1) TNT1 F 0 A_TakeInventory("Detonator",1) goto Ready } } actor C4DetonatorCheck : Inventory { inventory.amount 0 inventory.maxamount 1 } actor C4Existence : Inventory { inventory.amount 0 inventory.maxamount 1 } actor C4Thrown { obituary "\cf%k \cc>> \cfC4 \cc>> \cf%o" health 20 radius 6 height 8 speed 20 damage 0 PROJECTILE +NOEXTREMEDEATH -NOGRAVITY +NOTARGETSWITCH damagetype "Explosion" scale 0.15 states { Spawn: C4XA B -1 loop XDeath: //Fall to ground C4XA B 1 A_CheckFloor(1) wait Death: //Stick to wall or decorative object C4XA B 0 C4XA B 0 A_PlaySound("betty/land") C4XA B 0 A_JumpIfInTargetInventory("IsRed",1,3) C4XA B 0 A_JumpIfInTargetInventory("IsBlue",1,3) TNT1 A 1 A_SpawnItem("C4Armed") stop TNT1 A 1 A_SpawnItem("C4ArmedRed") stop TNT1 A 1 A_SpawnItem("C4ArmedBlue") stop } } actor C4Armed { obituary "\cf%k \cc>> \cfC4 \cc>> \cf%o" health 1 radius 6 height 6 -SOLID //+NOTARGETSWITCH +SHOOTABLE +NOBLOOD mass 999999 damagetype "Explosion" damagefactor "Flashbang", 0.0 damagefactor "Flashbang2", 0.0 damagefactor "Flashbang3", 0.0 damagefactor "Stun", 0.0 scale 0.15 states { Spawn: C4XA B 0 C4XA B 0 ACS_ExecuteAlways(640,0,1,2,0) //C4 C4XA BB 1 A_CheckFloor("Floor") C4XA C 0 A_NoGravity C4XA C 0 A_Stop goto Wall Floor: //C4XA C 0 A_SpawnItemEx("FriendlyExplosiveRed",0,0,32,0,0,0,0,128,0) C4XA C 4 A_SpawnItemEx("ClaymoreTrip",0,0,8,0,0,0,0,129,0) C4XA C 1 A_JumpIfInTargetInventory("C4Existence",1,1) stop C4XA C 1 A_JumpIfInTargetInventory("C4DetonatorCheck",1,"Explode") loop Wall: //C4XA A 0 A_SpawnItemEx("FriendlyExplosiveRed",0,0,32,0,0,0,0,128,0) C4XA A 4 A_SpawnItemEx("ClaymoreTrip",0,0,0,0,0,0,0,129,0) C4XA A 1 A_JumpIfInTargetInventory("C4Existence",1,1) stop C4XA A 1 A_JumpIfInTargetInventory("C4DetonatorCheck",1,"Explode") loop Death: TNT1 A 0 goto Explode+3 Explode: C4XA A 0 A_CheckFloor("ExplodeFloor") C4XA A 20 A_PlaySoundEx("c4/click","SoundSlot5") C4XA A 1 A_SetInvulnerable TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 0 A_Explode(140,350) TNT1 A 0 A_Explode(70,200) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop ExplodeFloor: C4XA C 20 A_PlaySoundEx("c4/click","SoundSlot5") C4XA C 1 A_SetInvulnerable goto Explode+3 } } actor C4Explosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cfC4 \cc>> \cf%o" DamageType "Explosion" states { Spawn: TNT1 A 0 TNT1 A 0 A_Explode(140,350) TNT1 A 5 A_Explode(70,200) stop } } actor C4ArmedRed : C4Armed { states { Spawn: C4XA B 0 C4XA B 0 ACS_ExecuteAlways(640,0,1,2,0) //C4 C4XA BB 1 A_CheckFloor("Floor") C4XA C 0 A_NoGravity C4XA C 0 A_Stop goto Wall Floor: C4XA C 0 A_SpawnItemEx("FriendlyExplosiveRed",0,0,32,0,0,0,0,128,0) C4XA C 4 A_SpawnItemEx("ClaymoreTrip",0,0,8,0,0,0,0,129,0) C4XA C 1 A_JumpIfInTargetInventory("C4Existence",1,1) stop C4XA C 1 A_JumpIfInTargetInventory("C4DetonatorCheck",1,"Explode") loop Wall: C4XA A 0 A_SpawnItemEx("FriendlyExplosiveRed",0,0,32,0,0,0,0,128,0) C4XA A 4 A_SpawnItemEx("ClaymoreTrip",0,0,0,0,0,0,0,129,0) C4XA A 1 A_JumpIfInTargetInventory("C4Existence",1,1) stop C4XA A 1 A_JumpIfInTargetInventory("C4DetonatorCheck",1,"Explode") loop Death: TNT1 A 0 goto Explode+3 Explode: C4XA A 0 A_CheckFloor("ExplodeFloor") C4XA A 20 A_PlaySoundEx("c4/click","SoundSlot5") C4XA A 1 A_SetInvulnerable TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 0 A_Explode(140,350) TNT1 A 0 A_Explode(70,200) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop ExplodeFloor: C4XA C 20 A_PlaySoundEx("c4/click","SoundSlot5") C4XA C 1 A_SetInvulnerable goto Explode+3 } } actor C4ArmedBlue : C4Armed { states { Spawn: C4XA B 0 C4XA B 0 ACS_ExecuteAlways(640,0,0,2,0) //C4 C4XA BB 1 A_CheckFloor("Floor") C4XA C 0 A_NoGravity C4XA C 0 A_Stop goto Wall Floor: C4XA C 0 A_SpawnItemEx("FriendlyExplosiveBlue",0,0,32,0,0,0,0,128,0) C4XA C 4 A_SpawnItemEx("ClaymoreTripBlue",0,0,8,0,0,0,0,129,0) C4XA C 1 A_JumpIfInTargetInventory("C4Existence",1,1) stop C4XA C 1 A_JumpIfInTargetInventory("C4DetonatorCheck",1,"Explode") loop Wall: C4XA A 0 A_SpawnItemEx("FriendlyExplosiveBlue",0,0,32,0,0,0,0,128,0) C4XA A 4 A_SpawnItemEx("ClaymoreTripBlue",0,0,0,0,0,0,0,129,0) C4XA A 1 A_JumpIfInTargetInventory("C4Existence",1,1) stop C4XA A 1 A_JumpIfInTargetInventory("C4DetonatorCheck",1,"Explode") loop Death: TNT1 A 0 goto Explode+3 Explode: C4XA A 0 A_CheckFloor("ExplodeFloor") C4XA A 20 A_PlaySoundEx("c4/click","SoundSlot5") C4XA A 1 A_SetInvulnerable TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,0,0,0,0,0,0,0) TNT1 A 0 A_Explode(140,350) TNT1 A 0 A_Explode(70,200) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), 0, random(-1,5), random(-180,180), 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop ExplodeFloor: C4XA C 20 A_PlaySoundEx("c4/click","SoundSlot5") C4XA C 1 A_SetInvulnerable goto Explode+3 } } actor TacticalInventory : CustomInventory { inventory.pickupmessage "Tactical Insertion" inventory.pickupsound "tactical/insert" Inventory.MaxAmount 2 Inventory.Icon "TACTICON" Scale 0.5 +INVENTORY.INVBAR inventory.respawntics 2100 states { Spawn: BROK A -1 stop Use: TNT1 A 0 A_GiveInventory("TacticalInsertion",1) TNT1 A 0 A_SelectWeapon("TacticalInsertion") stop } } actor TacticalInventory2 : TacticalInventory { +INVENTORY.AUTOACTIVATE } actor TacticalInsertion : RGUWeapon { weapon.selectionorder 500 inventory.pickupmessage "Snagged an item." states { Ready: TACT A 0 A_JumpIf(ACS_ExecuteWithResult(653,0,0,0) == 1, "InHand") TACT ABC 4 A_WeaponReady(WRF_NOFIRE) TACT D 4 A_PlayWeaponSound("tactical/insert") TACT EFGHI 4 A_WeaponReady(WRF_NOFIRE) TACT D 4 A_PlayWeaponSound("tactical/insert") TACT EFGHI 4 A_WeaponReady(WRF_NOFIRE) TACT D 4 A_PlayWeaponSound("tactical/insert") TACT EFGC 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state TACT C 1 A_WeaponReady loop Deselect: TACT C 1 A_Lower loop Select: TACT A 1 A_Raise TACT A 0 A_Raise loop Fire: TACT A 0 A_JumpIf(ACS_ExecuteWithResult(653,0,0,0) == 1, "Fire2") TNT1 A 6 A_PlaySound("tactical/flare") TNT1 A 35 ACS_ExecuteAlways(651,0,0,0,0) TNT1 A 0 A_GiveInventory("TacticalInventory",1) TNT1 A 0 A_TakeInventory("TacticalInsertion",1) goto Ready Fire2: TACT A 35 ACS_ExecuteAlways(654,0,0,0,0) goto Ready AltFire: TACT A 35 ACS_ExecuteAlways(655,0,0,0,0) goto Ready Spawn: BKPK A 1 stop } } ACTOR TacticalInsertionPlaced { Game Doom Radius 8 Height 16 Health 50 +SHOOTABLE +NOBLOOD //+SOLID //+NOCLIP //+NOBLOCKMAP damagefactor "Telefrag", 0.0 States { Spawn: CAND A 0 A_SpawnItemEx("WeaponSmokePuff", random(-3,3), random(-3,3), random(12,15), 0, 0, 0, random(0,360), 128, 0) CAND A 28 bright A_PlaySound("tactical/loop") CAND AAAAAAA 35 bright A_SpawnItemEx("WeaponSmokePuff", random(-3,3), random(-3,3), random(12,15), 0, 0, 0, random(0,360), 128, 0) loop Death: CAND A 35 bright ACS_ExecuteAlways(655,0,1,0,0) stop } } actor MP412Pickup : CustomInventory { inventory.pickupmessage "MP412" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.0 States { Spawn: GUNP H 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MP412",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,1,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MP412Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("MP412Ammo",6) stop FailPickup: GUNP H 1 fail FailPickup2: GUNP H 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor MP412Pickup2 : MP412Pickup { inventory.respawntics 1050 States { Spawn: GUNP H -1 stop } } actor MP412PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("MP412Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor MP412Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 6 inventory.maxamount 36 ammo.backpackamount 6 ammo.backpackmaxamount 48 +IGNORESKILL } actor MP412Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 6 ammo.backpackamount 0 ammo.backpackmaxamount 6 +IGNORESKILL } actor MP412Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("mp412/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("mp412/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("mp412/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("mp412/dfire2","SoundSlot6") stop } } actor MP412Bullet : HHBulletPuff { damagetype "MP412" } actor "MP412" : RGUWeapon { obituary "\cf%k \cc>> \ciMP412 \cc>> \cf%o" inventory.pickupmessage "MP412" weapon.selectionorder 22 weapon.ammotype "MP412Clip" weapon.ammouse 1 weapon.ammogive 6 weapon.ammotype2 "MP412Ammo" weapon.ammouse2 0 weapon.ammogive2 6 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("MP412Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",1) //Determines player speed - 1 means normal speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") MP4A A 2 A_PlayWeaponSound("mp412/select") MP4A BCDEF 2 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state MP4A F 0 A_JumpIfNoAmmo("Reload") MP4A F 0 A_JumpIfInventory("Aiming",1,"Aiming") MP4A F 0 A_JumpIfInventory("Reloading",1,"Reload") MP4A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MP4A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) MP4A F 1 A_WeaponReady loop Aiming: MP4C D 0 A_JumpIfInventory("Reloading",1,"Reload") MP4C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MP4C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") MP4F ABCDE 2 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: MP4A F 0 A_JumpIfInventory("Aiming",1,"FireAim") MP4A F 1 A_JumpIfNoAmmo("ReloadStart") MP4B A 0 A_FireCustomMissile("MP412Puff",0,0,8,1) //Fire effect and sound MP4B A 1 BRIGHT A_FireBullets (6.5, 6.5, -1, 12, "MP412Bullet", 1, 2300) MP4B B 0 ACS_ExecuteAlways(600,0,900,900,0) //Recoil script - 600 recoil, revert aim MP4B B 1 BRIGHT A_GunFlash MP4B B 0 A_JumpIfNoAmmo("FireEmpty") MP4B C 1 MP4B DEFGHIJ 1 A_WeaponReady MP4B A 0 A_JumpIfInventory("MP412Ammo",1,2) MP4B A 0 A_ReFire goto InHand MP4B A 0 A_JumpIfNoAmmo(2) MP4B A 0 A_ReFire goto InHand MP4B A 0 //A_GiveInventory("Colt45Empty",1) //Go to reload goto Reload FireEmpty: MP4B CDEFGHIJ 1 MP4A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+15 FireAim: MP4C D 1 A_JumpIfNoAmmo("ReloadStart") MP4D A 0 A_FireCustomMissile("MP412Puff",0,0,0,4) //Fire effect and sound MP4D A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, 14, "MP412Bullet", 1, 2300) MP4D B 0 ACS_ExecuteAlways(600,0,900,900,0) //Recoil script - 600 recoil, revert aim MP4D B 1 BRIGHT A_GunFlash MP4D B 0 A_JumpIfNoAmmo("FireEmptyAim") MP4D C 1 MP4D DEFGHIJ 1 A_WeaponReady MP4D A 0 A_JumpIfInventory("MP412Ammo",1,2) MP4D A 0 A_ReFire goto Aiming MP4D A 0 A_JumpIfNoAmmo(2) MP4D A 0 A_ReFire goto Aiming MP4D A 0 //A_GiveInventory("Colt45Empty",1) //Go to reload goto Reload FireEmptyAim: MP4D CDEFGHIJ 1 MP4C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+15 Hold: MP4A F 3 A_JumpIfInventory("Aiming",1,"HoldAim") MP4A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MP4A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4A F 0 A_JumpIfInventory("IsBot",1,"Fire") MP4A F 1 A_ReFire goto InHand HoldAim: MP4C D 3 MP4C D 0 A_JumpIfInventory("IsBot",1,"FireAim") MP4C D 1 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") MP4C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") MP4C A 0 A_ZoomFactor(1.0) //No FOV change for handguns MP4C ABCD 2 MP4C D 0 A_GiveInventory("Aiming",1) MP4C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: MP4C D 0 A_ZoomFactor(1.0) MP4C DCBA 2 MP4C A 0 A_TakeInventory("Aiming",1) MP4C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw MP4C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") MP4C A 0 A_ZoomFactor(1.0) //No FOV change for handguns MP4C ABCD 1 MP4C D 0 A_GiveInventory("Aiming",1) MP4C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: MP4C D 0 A_ZoomFactor(1.0) MP4C DCBA 1 MP4C A 0 A_TakeInventory("Aiming",1) MP4C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: MP4C D 1 A_ZoomFactor(1.0) MP4C DCBA 1 MP4C A 0 A_TakeInventory("Aiming",1) MP4C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("MP412Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") MP4E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") //MP4E A 0 A_JumpIfInventory("Colt45Empty",1,"ReloadStartEmpty") MP4E A 0 A_WeaponReady(WRF_NOFIRE) MP4E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E B 0 A_WeaponReady(WRF_NOFIRE) MP4E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E C 0 A_PlaySoundEx("mp412/reload1","SoundSlot5") MP4E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times MP4E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E D 0 A_WeaponReady(WRF_NOFIRE) MP4E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E E 0 A_WeaponReady(WRF_NOFIRE) MP4E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E F 0 A_WeaponReady(WRF_NOFIRE) MP4E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E G 0 A_WeaponReady(WRF_NOFIRE) MP4E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E H 0 A_PlaySoundEx("mp412/reload2","SoundSlot5") MP4E H 0 A_WeaponReady(WRF_NOFIRE) MP4E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E I 0 A_WeaponReady(WRF_NOFIRE) MP4E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E J 0 A_WeaponReady(WRF_NOFIRE) MP4E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E K 0 A_WeaponReady(WRF_NOFIRE) MP4E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E L 0 A_WeaponReady(WRF_NOFIRE) MP4E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E M 0 A_WeaponReady(WRF_NOFIRE) MP4E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E N 0 A_WeaponReady(WRF_NOFIRE) MP4E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E O 0 A_WeaponReady(WRF_NOFIRE) MP4E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E P 0 A_PlaySoundEx("mp412/reload3","SoundSlot5") MP4E P 0 A_WeaponReady(WRF_NOFIRE) MP4E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E Q 0 A_WeaponReady(WRF_NOFIRE) MP4E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("MP412Clip",1) TNT1 A 0 A_TakeInventory("MP412Ammo",1) TNT1 A 0 A_JumpIfInventory("MP412Clip",6,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("MP412Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) MP4E R 0 A_WeaponReady(WRF_NOFIRE) MP4E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E S 0 A_WeaponReady(WRF_NOFIRE) MP4E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E T 0 A_PlaySoundEx("mp412/reload4","SoundSlot5") MP4E T 0 A_WeaponReady(WRF_NOFIRE) MP4E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E U 0 A_WeaponReady(WRF_NOFIRE) MP4E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E V 0 A_WeaponReady(WRF_NOFIRE) MP4E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E W 0 A_WeaponReady(WRF_NOFIRE) MP4E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E X 0 A_WeaponReady(WRF_NOFIRE) MP4E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E Y 0 A_WeaponReady(WRF_NOFIRE) MP4E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP4E Z 0 A_WeaponReady(WRF_NOFIRE) MP4E Z 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor DeaglePickup : CustomInventory { inventory.pickupmessage "Desert Eagle" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 1050 scale 1.0 States { Spawn: GUNP B 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("Desert Eagle",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,7,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("DeagleAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("DeagleAmmo",7) stop FailPickup: GUNP B 1 fail FailPickup2: GUNP B 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor DeaglePickup2 : DeaglePickup { inventory.respawntics 1050 States { Spawn: GUNP B -1 stop } } actor DeaglePickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("DeaglePickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor DeagleAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 7 inventory.maxamount 42 ammo.backpackamount 7 ammo.backpackmaxamount 56 +IGNORESKILL } actor DeagleClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 7 ammo.backpackamount 0 ammo.backpackmaxamount 7 +IGNORESKILL } actor DeaglePuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("deagle/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("deagle/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("deagle/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("deagle/dfire2","SoundSlot6") stop } } actor DeagleBullet : HHBulletPuff { damagetype "Deagle" } actor DeagleEmpty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "Desert Eagle" : RGUWeapon { obituary "\cf%k \cc>> \ciDesert Eagle \cc>> \cf%o" inventory.pickupmessage "Desert Eagle" weapon.selectionorder 22 weapon.ammotype "DeagleClip" weapon.ammouse 1 weapon.ammogive 7 weapon.ammotype2 "DeagleAmmo" weapon.ammouse2 0 weapon.ammogive2 7 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("DeaglePickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",1) //Determines player speed - 1 means normal speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") DEAA A 2 //A_PlayWeaponSound("weapon/select") DEAA BCDEF 2 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state DEAA F 0 A_JumpIfNoAmmo("Reload") DEAA F 0 A_JumpIfInventory("Aiming",1,"Aiming") DEAA F 0 A_JumpIfInventory("Reloading",1,"Reload") DEAA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") DEAA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) DEAA F 0 A_JumpIfNoAmmo(2) DEAA F 1 A_WeaponReady loop DEAA Z 1 A_WeaponReady loop Aiming: DEAC D 0 A_JumpIfInventory("Reloading",1,"Reload") DEAC D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") DEAC D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAC D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") DEAF ABCDE 2 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: DEAA F 0 A_JumpIfInventory("Aiming",1,"FireAim") DEAA F 1 A_JumpIfNoAmmo("ReloadStart") DEAB A 0 A_FireCustomMissile("DeaglePuff",0,0,8,1) //Fire effect and sound DEAB A 1 BRIGHT A_FireBullets (8.5, 8.5, -1, 13, "DeagleBullet", 1, 2300) DEAB B 0 ACS_ExecuteAlways(600,0,1800,1800,0) //Recoil script - 600 recoil, revert aim DEAB B 1 BRIGHT A_GunFlash DEAB B 0 A_JumpIfNoAmmo("FireEmpty") DEAB C 1 DEAB DEFG 1 A_WeaponReady DEAB A 0 A_JumpIfInventory("DeagleAmmo",1,2) DEAB A 0 A_ReFire goto InHand DEAB A 0 A_JumpIfNoAmmo(2) DEAB A 0 A_ReFire goto InHand DEAB A 0 A_GiveInventory("DeagleEmpty",1) //Go to reload goto Reload FireEmpty: DEAB CDEFG 1 DEAA Z 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: DEAC D 1 A_JumpIfNoAmmo("ReloadStart") DEAD A 0 A_FireCustomMissile("DeaglePuff",0,0,0,4) //Fire effect and sound DEAD A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, 16, "DeagleBullet", 1, 3000) DEAD B 0 ACS_ExecuteAlways(600,0,1800,1800,0) //Recoil script - 600 recoil, revert aim DEAD B 1 BRIGHT A_GunFlash DEAD B 0 A_JumpIfNoAmmo("FireEmptyAim") DEAD C 1 DEAD DEFG 1 A_WeaponReady DEAD A 0 A_JumpIfInventory("DeagleAmmo",1,2) DEAD A 0 A_ReFire goto Aiming DEAD A 0 A_JumpIfNoAmmo(2) DEAD A 0 A_ReFire goto Aiming DEAD A 0 A_GiveInventory("DeagleEmpty",1) //Go to reload goto Reload FireEmptyAim: DEAD CDEFG 1 DEAC D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: DEAA F 3 A_JumpIfInventory("Aiming",1,"HoldAim") DEAA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") DEAA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAA F 0 A_JumpIfInventory("IsBot",1,"Fire") DEAA F 1 A_ReFire goto InHand HoldAim: DEAC D 3 DEAC D 0 A_JumpIfInventory("IsBot",1,"FireAim") DEAC D 1 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") DEAC A 0 A_JumpIfInventory("Aiming",1,"AltFire2") DEAC A 0 A_ZoomFactor(1.0) //No FOV change for handguns DEAC ABCD 2 DEAC D 0 A_GiveInventory("Aiming",1) DEAC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: DEAC D 0 A_ZoomFactor(1.0) DEAC DCBA 2 DEAC A 0 A_TakeInventory("Aiming",1) DEAC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw DEAC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") DEAC A 0 A_ZoomFactor(1.0) //No FOV change for handguns DEAC ABCD 1 DEAC D 0 A_GiveInventory("Aiming",1) DEAC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: DEAC D 0 A_ZoomFactor(1.0) DEAC DCBA 1 DEAC A 0 A_TakeInventory("Aiming",1) DEAC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: DEAC D 1 A_ZoomFactor(1.0) DEAC DCBA 1 DEAC A 0 A_TakeInventory("Aiming",1) DEAC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("DeagleAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") DEAE A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") DEAE A 0 A_JumpIfInventory("DeagleEmpty",1,"ReloadStartEmpty") DEAE A 0 A_WeaponReady(WRF_NOFIRE) DEAE A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE B 0 A_PlaySoundEx("deagle/reload1","SoundSlot5") DEAE B 0 A_WeaponReady(WRF_NOFIRE) DEAE B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times DEAE C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE D 0 A_WeaponReady(WRF_NOFIRE) DEAE D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE E 0 A_WeaponReady(WRF_NOFIRE) DEAE E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE F 0 A_WeaponReady(WRF_NOFIRE) DEAE F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE G 0 A_WeaponReady(WRF_NOFIRE) DEAE G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE H 0 A_WeaponReady(WRF_NOFIRE) DEAE H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE I 0 A_PlaySoundEx("deagle/reload2","SoundSlot5") DEAE I 0 A_WeaponReady(WRF_NOFIRE) DEAE I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("DeagleClip",1) TNT1 A 0 A_TakeInventory("DeagleAmmo",1) TNT1 A 0 A_JumpIfInventory("DeagleClip",7,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("DeagleAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) DEAE J 0 A_WeaponReady(WRF_NOFIRE) DEAE J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE K 0 A_WeaponReady(WRF_NOFIRE) DEAE K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE L 0 A_WeaponReady(WRF_NOFIRE) DEAE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE M 0 A_WeaponReady(WRF_NOFIRE) DEAE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadStartEmpty: DEAE N 0 A_WeaponReady(WRF_NOFIRE) DEAE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE O 0 A_PlaySoundEx("deagle/reload1","SoundSlot5") DEAE O 0 A_WeaponReady(WRF_NOFIRE) DEAE O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE P 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times DEAE P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE Q 0 A_WeaponReady(WRF_NOFIRE) DEAE Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE R 0 A_WeaponReady(WRF_NOFIRE) DEAE R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE S 0 A_WeaponReady(WRF_NOFIRE) DEAE S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE T 0 A_WeaponReady(WRF_NOFIRE) DEAE T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE U 0 A_WeaponReady(WRF_NOFIRE) DEAE U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE V 0 A_WeaponReady(WRF_NOFIRE) DEAE V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE W 0 A_PlaySoundEx("deagle/reload2","SoundSlot5") DEAE W 0 A_WeaponReady(WRF_NOFIRE) DEAE W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmoEmpty ReloadAmmoEmpty: TNT1 A 0 A_GiveInventory("DeagleClip",1) TNT1 A 0 A_TakeInventory("DeagleAmmo",1) TNT1 A 0 A_JumpIfInventory("DeagleClip",7,"ReloadEndEmpty") TNT1 A 0 A_JumpIfInventory("DeagleAmmo",1,"ReloadAmmoEmpty") goto ReloadEndEmpty ReloadEndEmpty: TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_TakeInventory("DeagleEmpty",1) DEAE X 0 A_WeaponReady(WRF_NOFIRE) DEAE X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE Y 0 A_PlaySoundEx("deagle/reload3","SoundSlot5") DEAE Y 0 A_WeaponReady(WRF_NOFIRE) DEAE Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE L 0 A_WeaponReady(WRF_NOFIRE) DEAE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DEAE M 0 A_WeaponReady(WRF_NOFIRE) DEAE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor P99Pickup : CustomInventory { inventory.pickupmessage "P99" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 1050 scale 1.0 States { Spawn: GUNP T 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("P99",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,20,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("P99Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("P99Ammo",12) stop FailPickup: GUNP T 1 fail FailPickup2: GUNP T 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor P99Pickup2 : P99Pickup { inventory.respawntics 1050 States { Spawn: GUNP T -1 stop } } actor P99PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("P99Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor P99Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 12 inventory.maxamount 60 ammo.backpackamount 12 ammo.backpackmaxamount 96 +IGNORESKILL } actor P99Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 12 ammo.backpackamount 0 ammo.backpackmaxamount 12 +IGNORESKILL } actor P99Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("P99/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("P99/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("P99/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("P99/dfire2","SoundSlot6") stop } } actor P99Bullet : HHBulletPuff { damagetype "P99" } actor P99Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "P99" : RGUWeapon { obituary "\cf%k \cc>> \ciP99 \cc>> \cf%o" inventory.pickupmessage "P99" weapon.selectionorder 22 weapon.ammotype "P99Clip" weapon.ammouse 1 weapon.ammogive 12 weapon.ammotype2 "P99Ammo" weapon.ammouse2 0 weapon.ammogive2 12 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("P99Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",1) //Determines player speed - 1 means normal speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") P99A A 2 //A_PlayWeaponSound("weapon/select") P99A BCDEF 2 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state P99A F 0 A_JumpIfNoAmmo("Reload") P99A F 0 A_JumpIfInventory("Aiming",1,"Aiming") P99A F 0 A_JumpIfInventory("Reloading",1,"Reload") P99A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") P99A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) P99A F 1 A_WeaponReady loop Aiming: P99C D 0 A_JumpIfInventory("Reloading",1,"Reload") P99C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") P99C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") P99F ABCDE 2 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: P99A F 0 A_JumpIfInventory("Aiming",1,"FireAim") P99A F 1 A_JumpIfNoAmmo("ReloadStart") P99B A 0 A_FireCustomMissile("P99Puff",0,0,10,1) //Fire effect and sound P99B A 1 BRIGHT A_FireBullets (6.5, 6.5, -1, 8, "P99Bullet", 1, 2300) P99B B 0 ACS_ExecuteAlways(600,0,600,600,0) //Recoil script - 600 recoil, revert aim P99B B 1 BRIGHT A_GunFlash P99B B 0 A_JumpIfNoAmmo("FireEmpty") P99B CDEF 1 A_WeaponReady P99B A 0 A_JumpIfInventory("P99Ammo",1,2) P99B A 0 A_ReFire goto InHand P99B A 0 A_JumpIfNoAmmo(2) P99B A 0 A_ReFire goto InHand P99B A 0 A_GiveInventory("P99Empty",1) //Go to reload goto Reload FireEmpty: P99B CDEF 1 P99A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 FireAim: P99C D 1 A_JumpIfNoAmmo("ReloadStart") P99D A 0 A_FireCustomMissile("P99Puff",0,0,0,4) //Fire effect and sound P99D A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, 10, "P99Bullet", 1, 3000) P99D B 0 ACS_ExecuteAlways(600,0,600,600,0) //Recoil script - 600 recoil, revert aim P99D B 1 BRIGHT A_GunFlash P99D B 0 A_JumpIfNoAmmo("FireEmptyAim") P99D CDEF 1 A_WeaponReady P99D A 0 A_JumpIfInventory("P99Ammo",1,2) P99D A 0 A_ReFire goto Aiming P99D A 0 A_JumpIfNoAmmo(2) P99D A 0 A_ReFire goto Aiming P99D A 0 A_GiveInventory("P99Empty",1) //Go to reload goto Reload FireEmptyAim: P99D CDEF 1 P99C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 Hold: P99A F 3 A_JumpIfInventory("Aiming",1,"HoldAim") P99A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") P99A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99A F 0 A_JumpIfInventory("IsBot",1,"Fire") P99A F 1 A_ReFire goto InHand HoldAim: P99C D 3 P99C D 0 A_JumpIfInventory("IsBot",1,"FireAim") P99C D 1 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") P99C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") P99C A 0 A_ZoomFactor(1.0) //No FOV change for handguns P99C ABCD 2 P99C D 0 A_GiveInventory("Aiming",1) P99C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: P99C D 0 A_ZoomFactor(1.0) P99C DCBA 2 P99C A 0 A_TakeInventory("Aiming",1) P99C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw P99C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") P99C A 0 A_ZoomFactor(1.0) //No FOV change for handguns P99C ABCD 1 P99C D 0 A_GiveInventory("Aiming",1) P99C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: P99C D 0 A_ZoomFactor(1.0) P99C DCBA 1 P99C A 0 A_TakeInventory("Aiming",1) P99C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: P99C D 1 A_ZoomFactor(1.0) P99C DCBA 1 P99C A 0 A_TakeInventory("Aiming",1) P99C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("P99Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") P99E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") P99E A 0 A_JumpIfInventory("P99Empty",1,"ReloadStartEmpty") P99E A 0 A_WeaponReady(WRF_NOFIRE) P99E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E B 0 A_WeaponReady(WRF_NOFIRE) P99E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times P99E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E D 0 A_WeaponReady(WRF_NOFIRE) P99E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E E 0 A_PlaySoundEx("P99/reload1","SoundSlot5") P99E E 0 A_WeaponReady(WRF_NOFIRE) P99E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E F 0 A_WeaponReady(WRF_NOFIRE) P99E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E G 0 A_WeaponReady(WRF_NOFIRE) P99E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E H 0 A_WeaponReady(WRF_NOFIRE) P99E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E I 0 A_PlaySoundEx("P99/reload2","SoundSlot5") P99E I 0 A_WeaponReady(WRF_NOFIRE) P99E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("P99Clip",1) TNT1 A 0 A_TakeInventory("P99Ammo",1) TNT1 A 0 A_JumpIfInventory("P99Clip",12,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("P99Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) P99E J 0 A_WeaponReady(WRF_NOFIRE) P99E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E K 0 A_WeaponReady(WRF_NOFIRE) P99E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E L 0 A_WeaponReady(WRF_NOFIRE) P99E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadStartEmpty: P99E M 0 A_WeaponReady(WRF_NOFIRE) P99E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E N 0 A_WeaponReady(WRF_NOFIRE) P99E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E O 0 A_WeaponReady(WRF_NOFIRE) P99E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E P 0 A_PlaySoundEx("P99/reload1","SoundSlot5") P99E P 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times P99E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E Q 0 A_WeaponReady(WRF_NOFIRE) P99E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E R 0 A_WeaponReady(WRF_NOFIRE) P99E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E S 0 A_WeaponReady(WRF_NOFIRE) P99E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E T 0 A_WeaponReady(WRF_NOFIRE) P99E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E U 0 A_PlaySoundEx("P99/reload2","SoundSlot5") P99E U 0 A_WeaponReady(WRF_NOFIRE) P99E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E V 0 A_WeaponReady(WRF_NOFIRE) P99E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E W 0 A_WeaponReady(WRF_NOFIRE) P99E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmoEmpty ReloadAmmoEmpty: TNT1 A 0 A_GiveInventory("P99Clip",1) TNT1 A 0 A_TakeInventory("P99Ammo",1) TNT1 A 0 A_JumpIfInventory("P99Clip",12,"ReloadEndEmpty") TNT1 A 0 A_JumpIfInventory("P99Ammo",1,"ReloadAmmoEmpty") goto ReloadEndEmpty ReloadEndEmpty: TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_TakeInventory("P99Empty",1) P99E X 0 A_PlaySoundEx("p99/reload3","SoundSlot5") P99E X 0 A_WeaponReady(WRF_NOFIRE) P99E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99E Y 0 A_WeaponReady(WRF_NOFIRE) P99E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P99A F 0 A_WeaponReady(WRF_NOFIRE) P99A F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor KSG12Pickup : CustomInventory { inventory.pickupmessage "KSG 12" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP C 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("KSG 12",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,2,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("KSG12Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("KSG12Ammo",12) stop FailPickup: GUNP C 1 fail FailPickup2: GUNP C 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor KSG12Pickup2 : KSG12Pickup { inventory.respawntics 1050 States { Spawn: GUNP C -1 stop } } actor KSG12PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("KSG12Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor KSG12Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 12 inventory.maxamount 60 ammo.backpackamount 12 ammo.backpackmaxamount 96 +IGNORESKILL } actor KSG12Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 12 ammo.backpackamount 0 ammo.backpackmaxamount 12 +IGNORESKILL } actor KSG12Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("ksg12/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("ksg12/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("ksg12/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("ksg12/dfire2","SoundSlot6") stop } } actor KSG12Bullet : HHBulletPuff { damagetype "KSG12" } actor KSG12Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor KSG12Pumped : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "KSG 12" : RGUWeapon { obituary "\cf%k \cc>> \caKSG 12 \cc>> \cf%o" inventory.pickupmessage "KSG 12" weapon.selectionorder 19 weapon.ammotype "KSG12Clip" weapon.ammouse 1 weapon.ammogive 12 weapon.ammotype2 "KSG12Ammo" weapon.ammouse2 0 weapon.ammogive2 12 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("KSG12Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") KSGA A 4 A_PlayWeaponSound("weapon/select") KSGA BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state KSGA F 0 A_JumpIfNoAmmo("Reload") KSGA F 0 A_JumpIfInventory("Aiming",1,"Aiming") KSGA F 0 A_JumpIfInventory("Reloading",1,"Reload") KSGA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") KSGA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGA F 0 A_JumpIfInventory("KSG12Pumped",1,1) //if shotgun wasn't pumped, it will jump to pump goto Fire+13 TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) KSGA F 1 A_WeaponReady loop Aiming: KSGC D 0 A_JumpIfInventory("Reloading",1,"Reload") KSGC D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") KSGC D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGC D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") KSGF ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHFire") KSGA F 0 A_JumpIfInventory("Reloading",1,"ReloadEnd") KSGA F 0 A_JumpIfInventory("Aiming",1,"FireAim") KSGA F 0 A_JumpIfNoAmmo("ReloadStart") KSGB H 0 A_TakeInventory("KSG12Pumped",1) KSGB A 0 A_FireCustomMissile("KSG12Puff",0,0,8,1) //Fire effect and sound KSGB A 0 BRIGHT A_FireBullets (6.5, 6.5, 2, random(5,9), "KSG12Bullet", 0, 2000) KSGB A 0 BRIGHT A_FireBullets (6.5, 6.5, 2, random(5,9), "KSG12Bullet", 0, 2000) KSGB A 2 BRIGHT A_FireBullets (6.5, 6.5, 2, random(5,9), "KSG12Bullet", 1, 2000) KSGB B 0 ACS_ExecuteAlways(600,0,1500,150*random(6,7),0) //Recoil script KSGB B 2 BRIGHT A_GunFlash KSGB CDE 2 KSGB B 0 A_JumpIfNoAmmo(9) KSGB F 4 A_PlayWeaponSound("ksg12/cock1") KSGB G 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("KSG12Empty",1) KSGB H 0 A_GiveInventory("KSG12Pumped",1) KSGB H 4 A_PlayWeaponSound("ksg12/cock2") KSGB IJK 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) KSGA F 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) KSGA A 0 A_JumpIfInventory("KSG12Ammo",1,2) KSGA A 0 A_ReFire goto InHand KSGB A 0 A_JumpIfNoAmmo(2) KSGB A 0 A_ReFire goto InHand KSGB A 0 A_GiveInventory("KSG12Empty",1) //Go to reload goto Reload FireEmpty: MP4B CDEFGHIJ 1 MP4A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+15 FireAim: KSGC D 0 A_JumpIfNoAmmo("ReloadStart") KSGD H 0 A_TakeInventory("KSG12Pumped",1) KSGD A 0 A_FireCustomMissile("KSG12Puff",0,0,0,4) //Fire effect and sound KSGD A 0 BRIGHT A_FireBullets (6.5, 6.5, 2, random(6,9), "KSG12Bullet", 0, 2000) KSGD A 0 BRIGHT A_FireBullets (6.5, 6.5, 2, random(6,9), "KSG12Bullet", 0, 2000) KSGD A 2 BRIGHT A_FireBullets (6.5, 6.5, 2, random(6,9), "KSG12Bullet", 1, 2000) KSGD B 0 ACS_ExecuteAlways(600,0,1500,150*random(6,7),0) //Recoil script KSGD B 2 BRIGHT A_GunFlash KSGD CDE 2 KSGD B 0 A_JumpIfNoAmmo(9) KSGD F 4 A_PlayWeaponSound("ksg12/cock1") KSGD G 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("KSG12Empty",1) KSGD H 0 A_GiveInventory("KSG12Pumped",1) KSGD H 4 A_PlayWeaponSound("ksg12/cock2") KSGD IJK 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) KSGC D 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) KSGA A 0 A_JumpIfInventory("KSG12Ammo",1,2) KSGA A 0 A_ReFire goto InHand KSGD A 0 A_JumpIfNoAmmo(2) KSGD A 0 A_ReFire goto InHand KSGD A 0 A_GiveInventory("KSG12Empty",1) //Go to reload goto Reload FireEmptyAim: MP4D CDEFGHIJ 1 MP4C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+15 Hold: MP4A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") MP4A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MP4A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: MP4C D 0 goto FireAim AltFire: //Aim M18A F 0 A_JumpIfInventory("Reloading",1,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") KSGC A 0 A_JumpIfInventory("Aiming",1,"AltFire2") KSGC A 0 A_ZoomFactor(1.2) KSGC ABCD 3 KSGC D 0 A_GiveInventory("Aiming",1) KSGC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: KSGC D 0 A_ZoomFactor(1.0) KSGC DCBA 3 KSGC A 0 A_TakeInventory("Aiming",1) KSGC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw KSGC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") KSGC A 0 A_ZoomFactor(1.2) KSGC ABCD 1 KSGC D 0 A_GiveInventory("Aiming",1) KSGC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: KSGC D 0 A_ZoomFactor(1.0) KSGC DCBA 1 KSGC A 0 A_TakeInventory("Aiming",1) KSGC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: KSGC D 1 A_ZoomFactor(1.0) KSGC DCBA 2 KSGC A 0 A_TakeInventory("Aiming",1) KSGC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("KSG12Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") KSGE A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") TNT1 A 0 A_GiveInventory("Reloading",1) KSGE A 0 A_WeaponReady(WRF_NOFIRE) KSGE T 0 A_PlaySoundEx("ksg12/reload1","SoundSlot5") KSGE A 0 A_WeaponReady(WRF_NOFIRE) KSGE A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE B 0 A_WeaponReady(WRF_NOFIRE) KSGE B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times KSGE C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE D 0 A_WeaponReady(WRF_NOFIRE) KSGE D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE E 0 A_WeaponReady(WRF_NOFIRE) KSGE E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("KSG12Clip",1) TNT1 A 0 A_TakeInventory("KSG12Ammo",1) KSGE K 0 A_PlaySoundEx("ksg12/shell","SoundSlot5") KSGE K 0 A_WeaponReady(WRF_NOFIRE) KSGE K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE F 0 A_WeaponReady(WRF_NOBOB) KSGE F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE G 0 A_WeaponReady(WRF_NOBOB) KSGE G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE H 0 A_WeaponReady(WRF_NOBOB) KSGE H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE I 0 A_WeaponReady(WRF_NOBOB) KSGE I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE J 0 A_WeaponReady(WRF_NOBOB) KSGE J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_JumpIfInventory("KSG12Clip",12,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("KSG12Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) KSGE L 0 A_PlaySoundEx("ksg12/reload3","SoundSlot5") KSGE L 0 A_WeaponReady(WRF_NOFIRE) KSGE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE M 0 A_WeaponReady(WRF_NOFIRE) KSGE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE N 0 A_JumpIfInventory("KSG12Empty",1,"ReloadEndEmpty") //Gun was emptied, it needs to pump again KSGE N 0 A_WeaponReady(WRF_NOFIRE) KSGE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_GiveInventory("KSG12Pumped",1) TNT1 A 0 A_TakeInventory("KSG12Empty",1) KSGE N 0 A_PlaySoundEx("ksg12/cock1","SoundSlot5") KSGE N 0 A_WeaponReady(WRF_NOFIRE) KSGE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE O 0 A_WeaponReady(WRF_NOFIRE) KSGE O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE P 0 A_PlaySoundEx("ksg12/cock2","SoundSlot5") KSGE P 0 A_WeaponReady(WRF_NOFIRE) KSGE P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGE Q 0 A_WeaponReady(WRF_NOFIRE) KSGE Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") KSGA F 0 A_WeaponReady(WRF_NOFIRE) KSGA F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 GiveSOHFire: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Fire+1 } } actor AA12Pickup : CustomInventory { inventory.pickupmessage "AA-12" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP A 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("AA-12",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,8,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("AA12Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("AA12Ammo",8) stop FailPickup: GUNP A 1 fail FailPickup2: GUNP A 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor AA12Pickup2 : AA12Pickup { inventory.respawntics 1050 States { Spawn: GUNP A -1 stop } } actor AA12PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("AA12Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor AA12Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 8 inventory.maxamount 40 ammo.backpackamount 8 ammo.backpackmaxamount 64 +IGNORESKILL } actor AA12Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 8 ammo.backpackamount 0 ammo.backpackmaxamount 8 +IGNORESKILL } actor AA12Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("aa12/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("aa12/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("aa12/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("aa12/dfire2","SoundSlot6") stop } } actor AA12Bullet : HHBulletPuff { damagetype "AA12" } actor AA12Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "AA-12" : RGUWeapon { obituary "\cf%k \cc>> \caAA-12 \cc>> \cf%o" inventory.pickupmessage "AA-12" weapon.selectionorder 19 weapon.ammotype "AA12Clip" weapon.ammouse 1 weapon.ammogive 8 weapon.ammotype2 "AA12Ammo" weapon.ammouse2 0 weapon.ammogive2 8 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("AA12Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") AA2A A 4 A_PlayWeaponSound("weapon/select") AA2A BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state AA2A F 0 A_JumpIfNoAmmo("Reload") AA2A F 0 A_JumpIfInventory("Aiming",1,"Aiming") AA2A F 0 A_JumpIfInventory("Reloading",1,"Reload") AA2A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") AA2A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) AA2A F 1 A_WeaponReady loop Aiming: AA2C D 0 A_JumpIfInventory("Reloading",1,"Reload") AA2C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") AA2C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") AA2A EDCBA 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: AA2A F 0 A_JumpIfInventory("Aiming",1,"FireAim") AA2A F 0 A_JumpIfNoAmmo("ReloadStart") AA2B A 0 A_FireCustomMissile("AA12Puff",0,0,8,1) //Fire effect and sound AA2B A 0 BRIGHT A_FireBullets (9.5, 9.5, 2, random(4,6), "AA12Bullet", 0, 1000) AA2B A 0 BRIGHT A_FireBullets (9.5, 9.5, 2, random(4,6), "AA12Bullet", 0, 1000) AA2B A 1 BRIGHT A_FireBullets (9.5, 9.5, 2, random(4,6), "AA12Bullet", 1, 1000) AA2B B 0 ACS_ExecuteAlways(600,0,1500,150*random(6,7),0) //Recoil script - 600 recoil, revert aim AA2B B 1 BRIGHT A_GunFlash AA2B CDEF 1 A_JumpIfNoAmmo("FireEmpty") AA2B A 0 A_JumpIfInventory("AA12Ammo",1,3) AA2A F 1 A_ReFire goto InHand AA2B A 0 A_JumpIfNoAmmo(2) AA2B A 0 A_ReFire goto InHand AA2B A 0 A_GiveInventory("AA12Empty",1) //Go to reload goto Reload FireEmpty: AA2B CDEF 1 AA2A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+14 FireAim: AA2C D 0 A_JumpIfNoAmmo("ReloadStart") AA2D A 0 A_FireCustomMissile("AA12Puff",0,0,0,4) //Fire effect and sound AA2D A 0 BRIGHT A_FireBullets (9.5, 9.5, 2, random(4,6), "AA12Bullet", 0, 1000) AA2D A 0 BRIGHT A_FireBullets (9.5, 9.5, 2, random(4,6), "AA12Bullet", 0, 1000) AA2D A 1 BRIGHT A_FireBullets (9.5, 9.5, 2, random(4,6), "AA12Bullet", 1, 1000) AA2D B 0 ACS_ExecuteAlways(600,0,1500,150*random(6,7),0) //Recoil script - 600 recoil, revert aim AA2D B 1 BRIGHT A_GunFlash AA2D CDEF 1 A_JumpIfNoAmmo("FireEmptyAim") AA2D A 0 A_JumpIfInventory("AA12Ammo",1,3) AA2D F 1 A_ReFire goto InHand AA2D A 0 A_JumpIfNoAmmo(2) AA2D A 0 A_ReFire goto InHand AA2D A 0 A_GiveInventory("AA12Empty",1) //Go to reload goto Reload FireEmptyAim: AA2D CDEF 1 AA2C D 1 A_PlayWeaponSound("weapon/dryfire") goto FireAim+13 Hold: AA2A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") AA2A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") AA2A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: AA2C D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") AA2C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") AA2C A 0 A_ZoomFactor(1.2) AA2C ABCD 3 AA2C D 0 A_GiveInventory("Aiming",1) AA2C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: AA2C D 0 A_ZoomFactor(1.0) AA2C DCBA 3 AA2C A 0 A_TakeInventory("Aiming",1) AA2C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw AA2C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") AA2C A 0 A_ZoomFactor(1.2) AA2C ABCD 1 AA2C D 0 A_GiveInventory("Aiming",1) AA2C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: AA2C D 0 A_ZoomFactor(1.0) AA2C DCBA 1 AA2C A 0 A_TakeInventory("Aiming",1) AA2C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: AA2C D 1 A_ZoomFactor(1.0) AA2C DCBA 2 AA2C A 0 A_TakeInventory("Aiming",1) AA2C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("AA12Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") AA2E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") AA2E A 0 A_WeaponReady(WRF_NOFIRE) AA2E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E B 0 A_WeaponReady(WRF_NOFIRE) AA2E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times AA2E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E D 0 A_PlaySoundEx("aa12/reload1","SoundSlot5") AA2E D 0 A_WeaponReady(WRF_NOFIRE) AA2E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E E 0 A_WeaponReady(WRF_NOFIRE) AA2E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E F 0 A_WeaponReady(WRF_NOFIRE) AA2E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E G 0 A_WeaponReady(WRF_NOFIRE) AA2E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E H 0 A_WeaponReady(WRF_NOFIRE) AA2E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E I 0 A_WeaponReady(WRF_NOFIRE) AA2E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E J 0 A_WeaponReady(WRF_NOFIRE) AA2E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E K 0 A_WeaponReady(WRF_NOFIRE) AA2E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E L 0 A_PlaySoundEx("aa12/reload2","SoundSlot5") AA2E L 0 A_WeaponReady(WRF_NOFIRE) AA2E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("AA12Clip",1) TNT1 A 0 A_TakeInventory("AA12Ammo",1) TNT1 A 0 A_JumpIfInventory("AA12Clip",8,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("AA12Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) AA2E A 0 A_JumpIfInventory("AA12Empty",1,"ReloadEndEmpty") AA2E M 0 A_WeaponReady(WRF_NOFIRE) AA2E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E N 0 A_WeaponReady(WRF_NOFIRE) AA2E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E O 0 A_WeaponReady(WRF_NOFIRE) AA2E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E P 0 A_WeaponReady(WRF_NOFIRE) AA2E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("AA12Empty",1) AA2E Q 0 A_WeaponReady(WRF_NOFIRE) AA2E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E R 0 A_WeaponReady(WRF_NOFIRE) AA2E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E S 0 A_WeaponReady(WRF_NOFIRE) AA2E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E T 0 A_PlaySoundEx("aa12/reload3","SoundSlot5") AA2E T 0 A_WeaponReady(WRF_NOFIRE) AA2E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E U 0 A_WeaponReady(WRF_NOFIRE) AA2E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E V 0 A_WeaponReady(WRF_NOFIRE) AA2E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E W 0 A_WeaponReady(WRF_NOFIRE) AA2E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E X 0 A_WeaponReady(WRF_NOFIRE) AA2E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E Y 0 A_WeaponReady(WRF_NOFIRE) AA2E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AA2E Z 0 A_WeaponReady(WRF_NOFIRE) AA2E Z 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor Model1887Pickup : CustomInventory { inventory.pickupmessage "Model 1887" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP Q 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("Model 1887",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,17,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("Model1887Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("Model1887Ammo",7) stop FailPickup: GUNP Q 1 fail FailPickup2: GUNP Q 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor Model1887Pickup2 : Model1887Pickup { inventory.respawntics 1050 States { Spawn: GUNP Q -1 stop } } actor Model1887PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("Model1887Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor Model1887Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 7 inventory.maxamount 35 ammo.backpackamount 7 ammo.backpackmaxamount 63 +IGNORESKILL } actor Model1887Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 7 ammo.backpackamount 0 ammo.backpackmaxamount 7 +IGNORESKILL } actor Model1887Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("m1887/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("m1887/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("m1887/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("m1887/dfire2","SoundSlot6") stop } } actor Model1887Bullet : HHBulletPuff { damagetype "Model1887" } actor Model1887Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor Model1887Pumped : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "Model 1887" : RGUWeapon { obituary "\cf%k \cc>> \caModel 1887 \cc>> \cf%o" inventory.pickupmessage "Model 1887" weapon.selectionorder 19 weapon.ammotype "Model1887Clip" weapon.ammouse 1 weapon.ammogive 7 weapon.ammotype2 "Model1887Ammo" weapon.ammouse2 0 weapon.ammogive2 7 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("Model1887Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") M18A A 4 A_PlayWeaponSound("weapon/select") M18A BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state M18A F 0 A_JumpIfNoAmmo("Reload") M18A F 0 A_JumpIfInventory("Aiming",1,"Aiming") M18A F 0 A_JumpIfInventory("Reloading",1,"Reload") M18A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M18A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18A F 0 A_JumpIfInventory("Model1887Pumped",1,1) //if shotgun wasn't pumped, it will jump to pump goto Fire+13 TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) M18A F 1 A_WeaponReady loop Aiming: M18C D 0 A_JumpIfInventory("Reloading",1,"Reload") M18C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M18C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") M18F ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHFire") M18A F 0 A_JumpIfInventory("Reloading",1,"ReloadEnd") M18A F 0 A_JumpIfInventory("Aiming",1,"FireAim") M18A F 0 A_JumpIfNoAmmo("ReloadStart") M18B H 0 A_TakeInventory("Model1887Pumped",1) M18B A 0 A_FireCustomMissile("Model1887Puff",0,0,8,1) //Fire effect and sound M18B A 0 BRIGHT A_FireBullets (7.5, 7.5, 3, random(6,10), "Model1887Bullet", 0, 2000) M18B A 0 BRIGHT A_FireBullets (6.5, 6.5, 3, random(6,10), "Model1887Bullet", 0, 2000) M18B A 2 BRIGHT A_FireBullets (6.5, 6.5, 2, random(6,10), "Model1887Bullet", 1, 2000) M18B B 0 ACS_ExecuteAlways(600,0,1500,150*random(6,7),0) //Recoil script M18B B 2 BRIGHT A_GunFlash M18B C 2 M18B B 0 A_JumpIfNoAmmo(12) M18B D 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) M18B E 4 A_PlayWeaponSound("m1887/cock1") M18B FG 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("Model1887Empty",1) M18B H 0 A_GiveInventory("Model1887Pumped",1) M18B H 4 A_PlayWeaponSound("m1887/cock2") M18B IJKL 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) M18A F 0 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) M18A A 0 A_JumpIfInventory("Model1887Ammo",1,2) M18A A 0 A_ReFire goto InHand M18B A 0 A_JumpIfNoAmmo(2) M18B A 0 A_ReFire goto InHand M18B A 0 A_GiveInventory("Model1887Empty",1) //Go to reload goto Reload FireAim: M18C D 0 A_JumpIfNoAmmo("ReloadStart") M18D H 0 A_TakeInventory("Model1887Pumped",1) M18D A 0 A_FireCustomMissile("Model1887Puff",0,0,0,4) //Fire effect and sound M18D A 0 BRIGHT A_FireBullets (7.5, 7.5, 3, random(7,10), "Model1887Bullet", 0, 2000) M18D A 0 BRIGHT A_FireBullets (6.5, 6.5, 3, random(7,10), "Model1887Bullet", 0, 2000) M18D A 2 BRIGHT A_FireBullets (6.5, 6.5, 2, random(7,10), "Model1887Bullet", 1, 2000) M18D B 0 ACS_ExecuteAlways(600,0,1500,150*random(6,7),0) //Recoil script M18D B 2 BRIGHT A_GunFlash M18D C 2 M18D B 0 A_JumpIfNoAmmo(12) M18D D 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) M18D E 4 A_PlayWeaponSound("m1887/cock1") M18D FG 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("Model1887Empty",1) M18D H 0 A_GiveInventory("Model1887Pumped",1) M18D H 4 A_PlayWeaponSound("m1887/cock2") M18D IJKL 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) M18C D 0 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) M18C A 0 A_JumpIfInventory("Model1887Ammo",1,2) M18C A 0 A_ReFire goto InHand M18D A 0 A_JumpIfNoAmmo(2) M18D A 0 A_ReFire goto InHand M18D A 0 A_GiveInventory("Model1887Empty",1) //Go to reload goto Reload Hold: M18A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") M18A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M18A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: M18D D 0 goto FireAim AltFire: //Aim M18A F 0 A_JumpIfInventory("Reloading",1,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") M18C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") M18C A 0 A_ZoomFactor(1.2) M18C ABCD 3 M18C D 0 A_GiveInventory("Aiming",1) M18C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: M18C D 0 A_ZoomFactor(1.0) M18C DCBA 3 M18C A 0 A_TakeInventory("Aiming",1) M18C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw M18C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") M18C A 0 A_ZoomFactor(1.2) M18C ABCD 1 M18C D 0 A_GiveInventory("Aiming",1) M18C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: M18C D 0 A_ZoomFactor(1.0) M18C DCBA 1 M18C A 0 A_TakeInventory("Aiming",1) M18C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: M18C D 1 A_ZoomFactor(1.0) M18C DCBA 2 M18C A 0 A_TakeInventory("Aiming",1) M18C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("Model1887Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") M18E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") TNT1 A 0 A_GiveInventory("Reloading",1) M18E A 0 A_WeaponReady(WRF_NOFIRE) M18E A 0 A_WeaponReady(WRF_NOFIRE) M18E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E B 0 A_PlaySoundEx("m1887/cock1","SoundSlot5") M18E B 0 A_WeaponReady(WRF_NOFIRE) M18E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times M18E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E D 0 A_WeaponReady(WRF_NOFIRE) M18E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E E 0 A_WeaponReady(WRF_NOFIRE) M18E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E F 0 A_WeaponReady(WRF_NOFIRE) M18E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E G 0 A_WeaponReady(WRF_NOFIRE) M18E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("Model1887Clip",1) TNT1 A 0 A_TakeInventory("Model1887Ammo",1) M18E L 0 A_WeaponReady(WRF_NOBOB) M18E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E H 0 A_WeaponReady(WRF_NOFIRE) M18E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E I 0 A_WeaponReady(WRF_NOBOB) M18E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E J 0 A_PlaySoundEx("m1887/shell","SoundSlot5") M18E J 0 A_WeaponReady(WRF_NOBOB) M18E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E K 0 A_WeaponReady(WRF_NOBOB) M18E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_JumpIfInventory("Model1887Clip",12,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("Model1887Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) M18E L 0 A_WeaponReady(WRF_NOFIRE) M18E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E M 0 A_WeaponReady(WRF_NOFIRE) M18E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E N 0 A_WeaponReady(WRF_NOFIRE) M18E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E O 0 A_WeaponReady(WRF_NOFIRE) M18E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E P 0 A_WeaponReady(WRF_NOFIRE) M18E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_GiveInventory("Model1887Pumped",1) TNT1 A 0 A_TakeInventory("Model1887Empty",1) M18E Q 0 A_PlaySoundEx("m1887/cock2","SoundSlot5") M18E Q 0 A_WeaponReady(WRF_NOFIRE) M18E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E R 0 A_WeaponReady(WRF_NOFIRE) M18E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E S 0 A_WeaponReady(WRF_NOFIRE) M18E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M18E T 0 A_WeaponReady(WRF_NOFIRE) M18E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 GiveSOHFire: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Fire+1 } } //LEEBAH! actor L118APickup : CustomInventory { inventory.pickupmessage "L118A" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 2.0 States { Spawn: GUNP D 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("L118A",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,3,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("L118AAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("L118AAmmo",5) stop FailPickup: GUNP D 1 fail FailPickup2: GUNP D 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor L118APickup2 : L118APickup { inventory.respawntics 1050 States { Spawn: GUNP D -1 stop } } actor L118APickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("L118APickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor L118AAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 5 inventory.maxamount 25 ammo.backpackamount 5 ammo.backpackmaxamount 40 +IGNORESKILL } actor L118AClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 5 ammo.backpackamount 0 ammo.backpackmaxamount 5 +IGNORESKILL } actor L118APuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("l118a/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("l118a/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("l118a/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("l118a/dfire2","SoundSlot6") stop } } actor L118ABullet : HHBulletPuff { damagetype "L118A" } actor L118AEmpty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor L118APumped : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "L118A" : RGUWeapon { obituary "\cf%k \cc>> \cgL118A \cc>> \cf%o" inventory.pickupmessage "L118A" weapon.selectionorder 20 weapon.ammotype "L118AClip" weapon.ammouse 1 weapon.ammogive 5 weapon.ammotype2 "L118AAmmo" weapon.ammouse2 0 weapon.ammogive2 5 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("L118APickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",6) //Determines player speed - 6 means fast, but slow ADS movement speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") L11A A 4 A_PlayWeaponSound("weapon/select") L11A BCDEFGHI 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state L11A I 0 A_JumpIfNoAmmo("Reload") L11A I 0 A_JumpIfInventory("Aiming",1,"Aiming") L11A I 0 A_JumpIfInventory("Reloading",1,"Reload") L11A I 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") L11A I 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11A I 0 A_JumpIfInventory("L118APumped",1,1) //if shotgun wasn't pumped, it will jump to pump goto Fire+14 TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) L11A I 1 A_WeaponReady loop Aiming: SCOP C 0 A_JumpIfInventory("Reloading",1,"Reload") SCOP C 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") SCOP C 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCOP C 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",6) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") L11F ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHFire") L11A I 0 A_JumpIfInventory("Reloading",1,"ReloadEnd") L11A I 0 A_JumpIfInventory("Aiming",1,"FireAim") L11A I 1 A_JumpIfNoAmmo("ReloadStart") L11B H 0 A_TakeInventory("L118APumped",1) L11B A 0 A_FireCustomMissile("L118APuff",0,0,8,1) //Fire effect and sound L11B A 3 BRIGHT A_FireBullets (12.5, 12.5, -1, 45, "L118ABullet", 1, 3000) L11B B 0 ACS_ExecuteAlways(600,0,2100,150*random(7,11),0) //Recoil script L11B B 3 BRIGHT A_GunFlash L11B CDEF 3 L11B B 0 A_JumpIfNoAmmo("FireEmpty") L11B G 4 A_PlayWeaponSound("l118a/bolt1") L11B H 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("L118AEmpty",1) L11B I 0 A_GiveInventory("L118APumped",1) L11B I 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) L11B J 4 A_PlayWeaponSound("l118a/bolt2") L11B KLMN 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) L11A I 0 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) L11A A 0 A_JumpIfInventory("L118AAmmo",1,2) L11A A 0 A_ReFire goto InHand L11B A 0 A_JumpIfNoAmmo(2) L11B A 0 A_ReFire goto InHand L11B A 0 A_GiveInventory("L118AEmpty",1) //Go to reload goto Reload FireEmpty: L11A I 3 L11A A 0 A_GiveInventory("L118AEmpty",1) //Go to reload L11A I 1 //A_PlayWeaponSound("weapon/dryfire") goto Fire+25 FireAim: SCOP C 1 A_JumpIfNoAmmo("ReloadStart") SCOP C 0 A_TakeInventory("L118APumped",1) SCOP C 0 A_FireCustomMissile("L118APuff",0,0,8,1) //Fire effect and sound SCOP C 3 BRIGHT A_FireBullets (0.0, 0.0, 2, 45, "L118ABullet", 1, 9001) SCOP C 0 ACS_ExecuteAlways(600,0,2100,2100,0) //Recoil script SCOP C 3 BRIGHT A_GunFlash L11B B 0 A_JumpIfNoAmmo("FireEmptyAim") SCOP CCCC 3 A_WeaponReady(WRF_NOPRIMARY|WRF_NOBOB) SCOP C 4 A_PlayWeaponSound("l118a/bolt1") SCOP C 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("L118AEmpty",1) SCOP C 0 A_GiveInventory("L118APumped",1) SCOP C 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) SCOP C 4 A_PlayWeaponSound("l118a/bolt2") SCOP CCCC 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) SCOP C 0 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) SCOP A 0 A_JumpIfInventory("L118AAmmo",1,2) SCOP A 0 A_ReFire goto InHand SCOP A 0 A_JumpIfNoAmmo(2) SCOP A 0 A_ReFire goto InHand SCOP A 0 A_GiveInventory("L118AEmpty",1) //Go to reload goto Reload FireEmptyAim: SCOP CCCC 3 L11B A 0 A_GiveInventory("L118AEmpty",1) //Go to reload SCOP C 1 A_PlayWeaponSound("weapon/dryfire") goto FireAim+22 Hold: L11A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") L11A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") L11A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: SCOP D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") SCOP A 0 A_JumpIfInventory("Aiming",1,"AltFire2") L11C ABCD 4 SCOP A 0 A_ZoomFactor(3.0,ZOOM_INSTANT) SCOP D 1 ACS_ExecuteAlways(600,0,1,0,3) SCOP D 0 A_GiveInventory("Aiming",1) SCOP D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: L11C D 0 A_ZoomFactor(1.0,ZOOM_INSTANT) L11C A 0 A_TakeInventory("Aiming",1) L11C A 0 ACS_ExecuteAlways(602,0,0,0,0) L11C DCBA 4 goto InHand AltFire_QD: //Aim with QuickDraw L11C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") L11C ABCD 2 L11C A 0 A_ZoomFactor(3.0,ZOOM_INSTANT) SCOP D 1 ACS_ExecuteAlways(600,0,1,0,3) L11C D 0 A_GiveInventory("Aiming",1) L11C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: L11C D 0 A_ZoomFactor(1.0,ZOOM_INSTANT) L11C A 0 A_TakeInventory("Aiming",1) L11C A 0 ACS_ExecuteAlways(602,0,0,0,0) L11C DCBA 2 goto InHand ReloadStartAim: L11C D 1 A_ZoomFactor(1.0,ZOOM_INSTANT) L11C DCBA 3 L11C A 0 A_TakeInventory("Aiming",1) L11C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("L118AAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStartEmpty: L11B E 0 A_WeaponReady(WRF_NOFIRE) L11B E 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B F 0 A_WeaponReady(WRF_NOFIRE) L11B F 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B G 0 A_PlayWeaponSound("l118a/bolt1") L11B G 0 A_WeaponReady(WRF_NOFIRE) L11B G 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B H 0 A_WeaponReady(WRF_NOFIRE) L11B H 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B I 0 A_WeaponReady(WRF_NOFIRE) L11B I 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadStart+10 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") L11E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") L11E A 0 A_JumpIfInventory("L118AEmpty",1,"ReloadStartEmpty") L11E A 0 A_WeaponReady(WRF_NOFIRE) L11E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E B 0 A_WeaponReady(WRF_NOFIRE) L11E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times L11E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E D 0 A_PlaySoundEx("l118a/reload1","SoundSlot5") L11E D 0 A_WeaponReady(WRF_NOFIRE) L11E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E E 0 A_WeaponReady(WRF_NOFIRE) L11E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E F 0 A_WeaponReady(WRF_NOFIRE) L11E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E G 0 A_PlaySoundEx("l118a/reload2","SoundSlot5") L11E G 0 A_WeaponReady(WRF_NOFIRE) L11E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E H 0 A_WeaponReady(WRF_NOFIRE) L11E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E I 0 A_WeaponReady(WRF_NOFIRE) L11E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E J 0 A_WeaponReady(WRF_NOFIRE) L11E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E K 0 A_WeaponReady(WRF_NOFIRE) L11E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E L 0 A_WeaponReady(WRF_NOFIRE) L11E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E M 0 A_WeaponReady(WRF_NOFIRE) L11E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E N 0 A_PlaySoundEx("l118a/reload3","SoundSlot5") L11E N 0 A_WeaponReady(WRF_NOFIRE) L11E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E O 0 A_WeaponReady(WRF_NOFIRE) L11E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("L118AClip",1) TNT1 A 0 A_TakeInventory("L118AAmmo",1) TNT1 A 0 A_JumpIfInventory("L118AClip",5,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("L118AAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) L11E P 0 A_WeaponReady(WRF_NOFIRE) L11E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E Q 0 A_WeaponReady(WRF_NOFIRE) L11E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E R 0 A_WeaponReady(WRF_NOFIRE) L11E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E S 0 A_WeaponReady(WRF_NOFIRE) L11E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E T 0 A_JumpIfInventory("L118AEmpty",1,"ReloadEndEmpty") L11E T 0 A_WeaponReady(WRF_NOFIRE) L11E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11E U 0 A_WeaponReady(WRF_NOFIRE) L11E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_GiveInventory("L118APumped",1) TNT1 A 0 A_TakeInventory("L118AEmpty",1) L11B J 0 A_PlayWeaponSound("l118a/bolt2") L11B J 0 A_WeaponReady(WRF_NOFIRE) L11B J 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B K 0 A_WeaponReady(WRF_NOFIRE) L11B K 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B L 0 A_WeaponReady(WRF_NOFIRE) L11B L 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B M 0 A_WeaponReady(WRF_NOFIRE) L11B M 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L11B N 0 A_WeaponReady(WRF_NOFIRE) L11B N 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 GiveSOHFire: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Fire+1 } } actor DragunovPickup : CustomInventory { inventory.pickupmessage "Dragunov" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 2.0 States { Spawn: GUNP S 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MSR",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,19,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("DragunovAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("DragunovAmmo",10) stop FailPickup: GUNP S 1 fail FailPickup2: GUNP S 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor DragunovPickup2 : DragunovPickup { inventory.respawntics 1050 States { Spawn: GUNP S -1 stop } } actor DragunovPickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("MSRPickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor DragunovAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 10 inventory.maxamount 50 ammo.backpackamount 10 ammo.backpackmaxamount 80 +IGNORESKILL } actor DragunovClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 10 ammo.backpackamount 0 ammo.backpackmaxamount 10 +IGNORESKILL } actor DragunovPuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_PlaySoundEx("Dragunov/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("Dragunov/dfire1","SoundSlot6") stop } } actor DragunovBullet : HHBulletPuff { damagetype "Dragunov" } actor DragunovEmpty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "Dragunov" : RGUWeapon { obituary "\cf%k \cc>> \cgDragunov \cc>> \cf%o" inventory.pickupmessage "Dragunov" weapon.selectionorder 20 weapon.ammotype "DragunovClip" weapon.ammouse 1 weapon.ammogive 5 weapon.ammotype2 "DragunovAmmo" weapon.ammouse2 0 weapon.ammogive2 10 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("DragunovPickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",4) //Determines player speed - 4 means slower, but not slowest TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") DRAA A 4 A_PlayWeaponSound("weapon/select") DRAA BCDEFGHI 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state DRAA I 0 A_JumpIfNoAmmo("Reload") DRAA I 0 A_JumpIfInventory("Aiming",1,"Aiming") DRAA I 0 A_JumpIfInventory("Reloading",1,"Reload") DRAA I 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") DRAA I 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) DRAA I 1 A_WeaponReady loop Aiming: SCOP A 0 A_JumpIfInventory("Reloading",1,"Reload") SCOP A 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") SCOP A 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCOP A 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",6) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") DRAA HGFEDCBA 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: DRAA I 0 A_JumpIfInventory("Aiming",1,"FireAim") DRAA I 1 A_JumpIfNoAmmo("ReloadStart") DRAB A 0 A_FireCustomMissile("DragunovPuff",0,0,6,1) //Fire effect and sound DRAB A 2 BRIGHT A_FireBullets (12.5, 12.5, -1, random(25,34), "DragunovBullet", 1, 3000) DRAB B 0 ACS_ExecuteAlways(600,0,1800,150*random(7,11),0) //Recoil script DRAB B 2 BRIGHT A_GunFlash DRAB CDE 2 A_WeaponReady(WRF_NOFIRE) DRAB D 0 A_JumpIfNoAmmo("FireEmpty") DRAA I 8 A_WeaponReady DRAA A 0 A_JumpIfInventory("DragunovAmmo",1,2) DRAA A 0 A_ReFire goto InHand DRAB A 0 A_JumpIfNoAmmo(2) DRAB A 0 A_ReFire goto InHand DRAB A 0 A_GiveInventory("DragunovEmpty",1) //Go to reload goto Reload FireEmpty: DRAA I 3 DRAA A 0 A_GiveInventory("DragunovEmpty",1) //Go to reload DRAA I 1 //A_PlayWeaponSound("weapon/dryfire") goto Fire+11 FireAim: SCOP A 1 A_JumpIfNoAmmo("ReloadStart") SCOP A 0 A_FireCustomMissile("DragunovPuff",0,0,0,1) //Fire effect and sound SCOP A 2 BRIGHT A_FireBullets (0.1, 0.1, 1, random(25,40), "DragunovBullet", 1, 10000) SCOP A 0 ACS_ExecuteAlways(600,0,1800,1800,0) //Recoil script SCOP A 2 BRIGHT A_GunFlash SCOP AAA 2 A_WeaponReady(WRF_NOFIRE) SCOP A 0 A_JumpIfNoAmmo("FireEmptyAim") SCOP A 8 A_WeaponReady(WRF_NOBOB) SCOP A 0 A_JumpIfInventory("DragunovAmmo",1,2) SCOP A 0 A_ReFire goto InHand SCOP A 0 A_JumpIfNoAmmo(2) SCOP A 0 A_ReFire goto InHand SCOP A 0 A_GiveInventory("DragunovEmpty",1) //Go to reload goto Reload FireEmptyAim: SCOP AAAA 3 L11B A 0 A_GiveInventory("DragunovEmpty",1) //Go to reload SCOP A 1 A_PlayWeaponSound("weapon/dryfire") goto FireAim+10 Hold: DRAA F 0 A_JumpIfInventory("Aiming",1,"HoldAim") DRAA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") DRAA I 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAA I 2 A_JumpIfInventory("IsBot",1,"Fire") DRAA I 0 A_ReFire goto InHand HoldAim: SCOP A 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") SCOP A 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCOP A 2 A_JumpIfInventory("IsBot",1,"FireAim") SCOP A 0 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") SCOP A 0 A_JumpIfInventory("Aiming",1,"AltFire2") DRAC ABCD 4 SCOP A 0 A_ZoomFactor(3.0,ZOOM_INSTANT) SCOP D 0 A_GiveInventory("Aiming",1) SCOP D 0 ACS_ExecuteAlways(602,0,0,0,0) SCOP D 0 ACS_ExecuteAlways(600,0,1,0,3) goto Aiming AltFire2: DRAC D 0 A_ZoomFactor(1.0,ZOOM_INSTANT) DRAC A 0 A_TakeInventory("Aiming",1) DRAC A 0 ACS_ExecuteAlways(602,0,0,0,0) DRAC DCBA 4 goto InHand AltFire_QD: //Aim with QuickDraw DRAC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") DRAC ABCD 2 DRAC A 0 A_ZoomFactor(3.0,ZOOM_INSTANT) DRAC D 0 A_GiveInventory("Aiming",1) DRAC D 0 ACS_ExecuteAlways(602,0,0,0,0) DRAC D 0 ACS_ExecuteAlways(600,0,1,0,3) goto Aiming AltFire2_QD: DRAC D 0 A_ZoomFactor(1.0,ZOOM_INSTANT) DRAC A 0 A_TakeInventory("Aiming",1) DRAC A 0 ACS_ExecuteAlways(602,0,0,0,0) DRAC DCBA 2 goto InHand ReloadStartAim: DRAC D 1 A_ZoomFactor(1.0,ZOOM_INSTANT) DRAC DCBA 3 DRAC A 0 A_TakeInventory("Aiming",1) DRAC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("DragunovAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") DRAE A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") DRAE A 0 A_PlaySoundEx("dragunov/reload1","SoundSlot5") DRAE A 0 A_WeaponReady(WRF_NOFIRE) DRAE A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE B 0 A_WeaponReady(WRF_NOFIRE) DRAE B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE C 0 A_PlaySoundEx("dragunov/reload2","SoundSlot5") DRAE C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times DRAE C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE D 0 A_WeaponReady(WRF_NOFIRE) DRAE D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE E 0 A_WeaponReady(WRF_NOFIRE) DRAE E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE F 0 A_WeaponReady(WRF_NOFIRE) DRAE F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE G 0 A_WeaponReady(WRF_NOFIRE) DRAE G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE H 0 A_WeaponReady(WRF_NOFIRE) DRAE H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE I 0 A_WeaponReady(WRF_NOFIRE) DRAE I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE J 0 A_WeaponReady(WRF_NOFIRE) DRAE J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE K 0 A_WeaponReady(WRF_NOFIRE) DRAE K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE L 0 A_WeaponReady(WRF_NOFIRE) DRAE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE M 0 A_PlaySoundEx("dragunov/reload3","SoundSlot5") DRAE M 0 A_WeaponReady(WRF_NOFIRE) DRAE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("DragunovClip",1) TNT1 A 0 A_TakeInventory("DragunovAmmo",1) TNT1 A 0 A_JumpIfInventory("DragunovClip",10,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("DragunovAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) DRAE N 0 A_WeaponReady(WRF_NOFIRE) DRAE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE O 0 A_WeaponReady(WRF_NOFIRE) DRAE O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE P 0 A_JumpIfInventory("DragunovEmpty",1,"ReloadEndEmpty") DRAE P 0 A_WeaponReady(WRF_NOFIRE) DRAE P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE Q 0 A_WeaponReady(WRF_NOFIRE) DRAE Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE R 0 A_WeaponReady(WRF_NOFIRE) DRAE R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAA I 0 A_WeaponReady(WRF_NOFIRE) DRAA I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("DragunovEmpty",1) DRAE S 0 A_WeaponReady(WRF_NOFIRE) DRAE S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE T 0 A_PlayWeaponSound("dragunov/reload4") DRAE T 0 A_WeaponReady(WRF_NOFIRE) DRAE T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE U 0 A_WeaponReady(WRF_NOFIRE) DRAE U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE V 0 A_WeaponReady(WRF_NOFIRE) DRAE V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE W 0 A_WeaponReady(WRF_NOFIRE) DRAE W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE X 0 A_WeaponReady(WRF_NOFIRE) DRAE X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE Y 0 A_WeaponReady(WRF_NOFIRE) DRAE Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAE Z 0 A_WeaponReady(WRF_NOFIRE) DRAE Z 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") DRAA I 0 A_WeaponReady(WRF_NOFIRE) DRAA I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 GiveSOHFire: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Fire+1 } } actor MSRPickup : CustomInventory { inventory.pickupmessage "MSR" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 2.0 States { Spawn: GUNP L 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MSR",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,12,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MSRAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("MSRAmmo",5) stop FailPickup: GUNP L 1 fail FailPickup2: GUNP L 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor MSRPickup2 : MSRPickup { inventory.respawntics 1050 States { Spawn: GUNP L -1 stop } } actor MSRPickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("MSRPickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor MSRAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 5 inventory.maxamount 25 ammo.backpackamount 5 ammo.backpackmaxamount 40 +IGNORESKILL } actor MSRClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 5 ammo.backpackamount 0 ammo.backpackmaxamount 5 +IGNORESKILL } actor MSRPuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_PlaySoundEx("msr/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("msr/dfire1","SoundSlot6") stop } } actor MSRBullet : HHBulletPuff { damagetype "MSR" } actor MSREmpty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor MSRPumped : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "MSR" : RGUWeapon { obituary "\cf%k \cc>> \cgMSR \cc>> \cf%o" inventory.pickupmessage "MSR" weapon.selectionorder 20 weapon.ammotype "MSRClip" weapon.ammouse 1 weapon.ammogive 5 weapon.ammotype2 "MSRAmmo" weapon.ammouse2 0 weapon.ammogive2 5 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("MSRPickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",4) //Determines player speed - 4 means slower, but not slowest TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") MSRA A 4 A_PlayWeaponSound("weapon/select") MSRA BCDEFGHI 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state MSRA I 0 A_JumpIfNoAmmo("Reload") MSRA I 0 A_JumpIfInventory("Aiming",1,"Aiming") MSRA I 0 A_JumpIfInventory("Reloading",1,"Reload") MSRA I 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MSRA I 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRA I 0 A_JumpIfInventory("MSRPumped",1,1) //if shotgun wasn't pumped, it will jump to pump goto Fire+12 TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) MSRA I 1 A_WeaponReady loop Aiming: SCOP D 0 A_JumpIfInventory("Reloading",1,"Reload") SCOP D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") SCOP D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCOP D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") MSRA HGFEDCBA 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHFire") MSRA I 0 A_JumpIfInventory("Reloading",1,"ReloadEnd") MSRA I 0 A_JumpIfInventory("Aiming",1,"FireAim") MSRA I 1 A_JumpIfNoAmmo("ReloadStart") MSRB H 0 A_TakeInventory("MSRPumped",1) MSRB A 0 A_FireCustomMissile("MSRPuff",0,0,8,1) //Fire effect and sound MSRB A 4 BRIGHT A_FireBullets (12.5, 12.5, -1, 50, "MSRBullet", 1, 3000) MSRB B 0 ACS_ExecuteAlways(600,0,3000,2400,0) //Recoil script MSRB B 4 BRIGHT A_GunFlash MSRB C 4 MSRA I 0 MSRB D 0 A_JumpIfNoAmmo("FireEmpty") MSRB DEF 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) MSRB G 4 A_PlayWeaponSound("msr/bolt1") MSRB H 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("MSREmpty",1) MSRB I 0 A_GiveInventory("MSRPumped",1) MSRB I 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) MSRB J 4 A_PlayWeaponSound("msr/bolt2") MSRB KLM 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) MSRA I 0 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) MSRA A 0 A_JumpIfInventory("MSRAmmo",1,2) MSRA A 0 A_ReFire goto InHand MSRB A 0 A_JumpIfNoAmmo(2) MSRB A 0 A_ReFire goto InHand MSRB A 0 A_GiveInventory("MSREmpty",1) //Go to reload goto Reload FireEmpty: MSRA I 3 MSRA A 0 A_GiveInventory("MSREmpty",1) //Go to reload MSRA I 1 //A_PlayWeaponSound("weapon/dryfire") goto Fire+25 FireAim: SCOP D 1 A_JumpIfNoAmmo("ReloadStart") SCOP D 0 A_TakeInventory("MSRPumped",1) SCOP D 0 A_FireCustomMissile("MSRPuff",0,0,8,1) //Fire effect and sound SCOP D 4 BRIGHT A_FireBullets (0.0, 0.0, 2, 50, "MSRBullet", 1, 9001) SCOP D 0 ACS_ExecuteAlways(600,0,3000,2400,0) //Recoil script SCOP D 0 BRIGHT A_GunFlash SCOP D 0 A_JumpIfNoAmmo("FireEmptyAim") SCOP DDDDD 4 A_WeaponReady(WRF_NOPRIMARY|WRF_NOBOB) SCOP D 4 A_PlayWeaponSound("msr/bolt1") SCOP D 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) TNT1 A 0 A_TakeInventory("MSREmpty",1) SCOP D 0 A_GiveInventory("MSRPumped",1) SCOP D 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) SCOP D 4 A_PlayWeaponSound("msr/bolt2") SCOP DDD 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) SCOP D 0 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) SCOP A 0 A_JumpIfInventory("MSRAmmo",1,2) SCOP A 0 A_ReFire goto InHand SCOP A 0 A_JumpIfNoAmmo(2) SCOP A 0 A_ReFire goto InHand SCOP A 0 A_GiveInventory("MSREmpty",1) //Go to reload goto Reload FireEmptyAim: SCOP DDDD 3 L11B A 0 A_GiveInventory("MSREmpty",1) //Go to reload SCOP D 1 A_PlayWeaponSound("weapon/dryfire") goto FireAim+22 Hold: MSRA F 0 A_JumpIfInventory("Aiming",1,"HoldAim") MSRA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MSRA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: SCOP D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") SCOP A 0 A_JumpIfInventory("Aiming",1,"AltFire2") MSRC ABCD 4 SCOP A 0 A_ZoomFactor(3.0,ZOOM_INSTANT) SCOP D 0 A_GiveInventory("Aiming",1) SCOP D 0 ACS_ExecuteAlways(602,0,0,0,0) SCOP D 0 ACS_ExecuteAlways(600,0,1,0,3) goto Aiming AltFire2: MSRC D 0 A_ZoomFactor(1.0,ZOOM_INSTANT) MSRC A 0 A_TakeInventory("Aiming",1) MSRC A 0 ACS_ExecuteAlways(602,0,0,0,0) MSRC DCBA 4 goto InHand AltFire_QD: //Aim with QuickDraw MSRC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") MSRC ABCD 2 MSRC A 0 A_ZoomFactor(3.0,ZOOM_INSTANT) MSRC D 0 A_GiveInventory("Aiming",1) MSRC D 0 ACS_ExecuteAlways(602,0,0,0,0) SCOP D 0 ACS_ExecuteAlways(600,0,1,0,3) goto Aiming AltFire2_QD: MSRC D 0 A_ZoomFactor(1.0,ZOOM_INSTANT) MSRC A 0 A_TakeInventory("Aiming",1) MSRC A 0 ACS_ExecuteAlways(602,0,0,0,0) MSRC DCBA 2 goto InHand ReloadStartAim: MSRC D 1 A_ZoomFactor(1.0,ZOOM_INSTANT) MSRC A 0 A_TakeInventory("Aiming",1) MSRC A 0 ACS_ExecuteAlways(602,0,0,0,0) MSRC DCBA 3 goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("MSRAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStartEmpty: MSRB D 0 A_WeaponReady(WRF_NOFIRE) MSRB D 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB E 0 A_WeaponReady(WRF_NOFIRE) MSRB E 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB F 0 A_WeaponReady(WRF_NOFIRE) MSRB F 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB G 0 A_PlayWeaponSound("msr/bolt1") MSRB G 0 A_WeaponReady(WRF_NOFIRE) MSRB G 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB H 0 A_WeaponReady(WRF_NOFIRE) MSRB H 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadStart+7 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") MSRE A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") MSRE A 0 A_JumpIfInventory("MSREmpty",1,"ReloadStartEmpty") MSRE A 0 A_WeaponReady(WRF_NOFIRE) MSRE A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE B 0 A_WeaponReady(WRF_NOFIRE) MSRE B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times MSRE C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE D 0 A_PlaySoundEx("msr/reload1","SoundSlot5") MSRE D 0 A_WeaponReady(WRF_NOFIRE) MSRE D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE E 0 A_WeaponReady(WRF_NOFIRE) MSRE E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE F 0 A_WeaponReady(WRF_NOFIRE) MSRE F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE G 0 A_WeaponReady(WRF_NOFIRE) MSRE G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE H 0 A_WeaponReady(WRF_NOFIRE) MSRE H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE I 0 A_WeaponReady(WRF_NOFIRE) MSRE I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE J 0 A_WeaponReady(WRF_NOFIRE) MSRE J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE K 0 A_WeaponReady(WRF_NOFIRE) MSRE K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE L 0 A_PlaySoundEx("msr/reload2","SoundSlot5") MSRE L 0 A_WeaponReady(WRF_NOFIRE) MSRE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("MSRClip",1) TNT1 A 0 A_TakeInventory("MSRAmmo",1) TNT1 A 0 A_JumpIfInventory("MSRClip",5,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("MSRAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) MSRE M 0 A_WeaponReady(WRF_NOFIRE) MSRE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRE N 0 A_JumpIfInventory("MSREmpty",1,"ReloadEndEmpty") MSRE N 0 A_WeaponReady(WRF_NOFIRE) MSRE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRA I 0 A_WeaponReady(WRF_NOFIRE) MSRA I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_GiveInventory("MSRPumped",1) TNT1 A 0 A_TakeInventory("MSREmpty",1) MSRB I 0 A_WeaponReady(WRF_NOFIRE) MSRB I 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB J 0 A_PlayWeaponSound("msr/bolt2") MSRB J 0 A_WeaponReady(WRF_NOFIRE) MSRB J 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB K 0 A_WeaponReady(WRF_NOFIRE) MSRB K 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB L 0 A_WeaponReady(WRF_NOFIRE) MSRB L 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRB M 0 A_WeaponReady(WRF_NOFIRE) MSRB M 4 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MSRA I 0 A_WeaponReady(WRF_NOFIRE) MSRA I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 GiveSOHFire: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Fire+1 } } actor PM9Pickup : CustomInventory { inventory.pickupmessage "PM9" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.25 States { Spawn: GUNP E 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("PM9",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,4,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("PM9Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("PM9Ammo",32) stop FailPickup: GUNP E 1 fail FailPickup2: GUNP E 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor PM9Pickup2 : PM9Pickup { inventory.respawntics 1050 States { Spawn: GUNP E -1 stop } } actor PM9PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("PM9Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor PM9Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 32 inventory.maxamount 160 ammo.backpackamount 32 ammo.backpackmaxamount 256 +IGNORESKILL } actor PM9Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 32 ammo.backpackamount 0 ammo.backpackmaxamount 32 +IGNORESKILL } actor PM9Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("pm9/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("pm9/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("pm9/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("pm9/dfire2","SoundSlot6") stop } } actor PM9Bullet : HHBulletPuff { damagetype "PM9" } actor PM9Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "PM9" : RGUWeapon { obituary "\cf%k \cc>> \cdPM9 \cc>> \cf%o" inventory.pickupmessage "PM9" weapon.selectionorder 18 weapon.ammotype "PM9Clip" weapon.ammouse 1 weapon.ammogive 32 weapon.ammotype2 "PM9Ammo" weapon.ammouse2 0 weapon.ammogive2 32 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("PM9Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",1) //Determines player speed - 1 means normal speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") PM9A A 3 A_PlayWeaponSound("weapon/select") PM9A BCDEF 3 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state PM9A F 0 A_JumpIfNoAmmo("Reload") PM9A F 0 A_JumpIfInventory("Aiming",1,"Aiming") PM9A F 0 A_JumpIfInventory("Reloading",1,"Reload") PM9A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PM9A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) PM9A F 1 A_WeaponReady loop Aiming: PM9C D 0 A_JumpIfInventory("Reloading",1,"Reload") PM9C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PM9C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") PM9A EDCBA 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: PM9A F 0 A_JumpIfInventory("Aiming",1,"FireAim") PM9A F 0 A_JumpIfNoAmmo("ReloadStart") PM9B A 0 A_FireCustomMissile("PM9Puff",0,0,12,1) //Fire effect and sound PM9B A 1 BRIGHT A_FireBullets (8.5, 8.5, -1, 5, "PM9Bullet", 1, 3000) PM9B B 0 ACS_ExecuteAlways(600,0,450,150*random(2,3),0) //Recoil script - 600 recoil, revert aim PM9B B 1 BRIGHT A_GunFlash PM9B C 1 A_JumpIfNoAmmo("FireEmpty") PM9B A 0 A_JumpIfInventory("PM9Ammo",1,3) PM9B DE 1 A_ReFire goto InHand PM9B A 0 A_JumpIfNoAmmo(2) PM9B A 0 A_ReFire goto InHand PM9B A 0 A_GiveInventory("PM9Empty",1) //Go to reload goto Reload FireEmpty: PM9B DE 1 PM9A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+10 FireAim: PM9C D 0 A_JumpIfNoAmmo("ReloadStart") PM9D A 0 A_FireCustomMissile("PM9Puff",0,0,0,4) //Fire effect and sound PM9D A 1 BRIGHT A_FireBullets (1.0, 1.0, -1, 5, "PM9Bullet", 1, 3000) PM9D B 0 ACS_ExecuteAlways(600,0,450,150*random(2,3),0) //Recoil script - 600 recoil, revert aim PM9D B 1 BRIGHT A_GunFlash PM9D C 1 A_JumpIfNoAmmo("FireEmptyAim") PM9D A 0 A_JumpIfInventory("PM9Ammo",1,3) PM9D DE 1 A_ReFire goto InHand PM9D A 0 A_JumpIfNoAmmo(2) PM9D A 0 A_ReFire goto InHand PM9D A 0 A_GiveInventory("PM9Empty",1) //Go to reload goto Reload FireEmptyAim: PM9D DE 1 PM9C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+10 Hold: PM9A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") PM9A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PM9A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: PM9C D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") PM9C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") PM9C A 0 A_ZoomFactor(1.2) PM9C ABCD 3 PM9C D 0 A_GiveInventory("Aiming",1) PM9C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: PM9C D 0 A_ZoomFactor(1.0) PM9C DCBA 3 PM9C A 0 A_TakeInventory("Aiming",1) PM9C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw PM9C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") PM9C A 0 A_ZoomFactor(1.2) PM9C ABCD 1 PM9C D 0 A_GiveInventory("Aiming",1) PM9C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: PM9C D 0 A_ZoomFactor(1.0) PM9C DCBA 1 PM9C A 0 A_TakeInventory("Aiming",1) PM9C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: PM9C D 1 A_ZoomFactor(1.0) PM9C DCBA 2 PM9C A 0 A_TakeInventory("Aiming",1) PM9C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("PM9Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") PM9E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") PM9A F 0 A_PlaySoundEx("pm9/reload1","SoundSlot5") PM9A F 0 A_WeaponReady(WRF_NOFIRE) PM9A F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E A 0 A_WeaponReady(WRF_NOFIRE) PM9E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E B 0 A_WeaponReady(WRF_NOFIRE) PM9E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E C 0 A_PlaySoundEx("pm9/reload2","SoundSlot5") PM9E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times PM9E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E D 0 A_WeaponReady(WRF_NOFIRE) PM9E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E E 0 A_WeaponReady(WRF_NOFIRE) PM9E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E F 0 A_WeaponReady(WRF_NOFIRE) PM9E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E G 0 A_WeaponReady(WRF_NOFIRE) PM9E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E H 0 A_WeaponReady(WRF_NOFIRE) PM9E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E I 0 A_WeaponReady(WRF_NOFIRE) PM9E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E J 0 A_WeaponReady(WRF_NOFIRE) PM9E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E K 0 A_PlaySoundEx("pm9/reload3","SoundSlot5") PM9E K 0 A_WeaponReady(WRF_NOFIRE) PM9E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E L 0 A_WeaponReady(WRF_NOFIRE) PM9E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("PM9Clip",1) TNT1 A 0 A_TakeInventory("PM9Ammo",1) TNT1 A 0 A_JumpIfInventory("PM9Clip",32,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("PM9Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) PM9E A 0 A_JumpIfInventory("PM9Empty",1,"ReloadEndEmpty") PM9E M 0 A_WeaponReady(WRF_NOFIRE) PM9E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E N 0 A_WeaponReady(WRF_NOFIRE) PM9E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E O 0 A_WeaponReady(WRF_NOFIRE) PM9E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("PM9Empty",1) PM9E P 0 A_WeaponReady(WRF_NOFIRE) PM9E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E Q 0 A_WeaponReady(WRF_NOFIRE) PM9E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E R 0 A_PlaySoundEx("pm9/reload4","SoundSlot5") PM9E R 0 A_WeaponReady(WRF_NOFIRE) PM9E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E S 0 A_WeaponReady(WRF_NOFIRE) PM9E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E T 0 A_WeaponReady(WRF_NOFIRE) PM9E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E U 0 A_WeaponReady(WRF_NOFIRE) PM9E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E V 0 A_WeaponReady(WRF_NOFIRE) PM9E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PM9E W 0 A_WeaponReady(WRF_NOFIRE) PM9E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor MP7Pickup : CustomInventory { inventory.pickupmessage "MP7" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.25 States { Spawn: GUNP J 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MP7",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,10,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MP7Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("MP7Ammo",40) stop FailPickup: GUNP J 1 fail FailPickup2: GUNP J 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor MP7Pickup2 : MP7Pickup { inventory.respawntics 1050 States { Spawn: GUNP J -1 stop } } actor MP7PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("MP7Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor MP7Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 40 inventory.maxamount 200 ammo.backpackamount 40 ammo.backpackmaxamount 320 +IGNORESKILL } actor MP7Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 40 ammo.backpackamount 0 ammo.backpackmaxamount 40 +IGNORESKILL } actor MP7Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("mp7/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("mp7/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("mp7/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("mp7/dfire2","SoundSlot6") stop } } actor MP7Bullet : HHBulletPuff { damagetype "MP7" } actor MP7Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor MP7Counter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "MP7" : RGUWeapon { obituary "\cf%k \cc>> \cdMP7 \cc>> \cf%o" inventory.pickupmessage "MP7" weapon.selectionorder 18 weapon.ammotype "MP7Clip" weapon.ammouse 1 weapon.ammogive 40 weapon.ammotype2 "MP7Ammo" weapon.ammouse2 0 weapon.ammogive2 40 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("MP7Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",1) //Determines player speed - 1 means normal speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") MP7A A 3 A_PlayWeaponSound("weapon/select") MP7A BCDEF 3 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state MP7A F 0 A_JumpIfNoAmmo("Reload") MP7A F 0 A_JumpIfInventory("Aiming",1,"Aiming") MP7A F 0 A_JumpIfInventory("Reloading",1,"Reload") MP7A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MP7A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) MP7A F 1 A_WeaponReady loop Aiming: MP7C D 0 A_JumpIfInventory("Reloading",1,"Reload") MP7C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MP7C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") MP7F ABCDE 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: MP7A F 0 A_JumpIfInventory("Aiming",1,"FireAim") MP7A F 0 A_JumpIfNoAmmo("ReloadStart") MP7B A 0 A_FireCustomMissile("MP7Puff",0,0,12,-1) //Fire effect and sound MP7B A 1 BRIGHT A_FireBullets (8.5, 8.5, -1, 5, "MP7Bullet", 1, 3000) MP7B B 0 ACS_ExecuteAlways(600,0,random(2,3)*150,random(2,3)*150,8) //Recoil script - mode 8, which is unpredictable recoil MP7B B 1 BRIGHT A_GunFlash MP7B A 0 A_JumpIfInventory("MP7Counter",1,9) //This makes the gun shoot that lil bit extra faster, but not too fast MP7B A 0 A_GiveInventory("MP7Counter",1) MP7B CD 1 A_JumpIfNoAmmo("FireEmpty") MP7B A 0 A_JumpIfInventory("MP7Ammo",1,2) MP7B E 1 A_ReFire goto InHand MP7B A 0 A_JumpIfNoAmmo(2) MP7B A 0 A_ReFire goto InHand MP7B A 0 A_GiveInventory("MP7Empty",1) //Go to reload goto Reload MP7B C 1 A_JumpIfNoAmmo("FireEmpty") MP7B A 0 A_TakeInventory("MP7Counter",2) goto Fire+10 FireEmpty: MP7B E 1 MP7A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: MP7C D 0 A_JumpIfNoAmmo("ReloadStart") MP7D A 0 A_FireCustomMissile("MP7Puff",0,0,0,4) //Fire effect and sound MP7D A 1 BRIGHT A_FireBullets (1.0, 1.0, -1, 5, "MP7Bullet", 1, 3000) MP7D B 0 ACS_ExecuteAlways(600,0,random(2,3)*150,random(2,3)*150,8) //Recoil script - 600 recoil, revert aim MP7D B 1 BRIGHT A_GunFlash MP7D A 0 A_JumpIfInventory("MP7Counter",1,9) MP7D A 0 A_GiveInventory("MP7Counter",1) MP7D CD 1 A_JumpIfNoAmmo("FireEmptyAim") MP7D A 0 A_JumpIfInventory("MP7Ammo",1,2) MP7D E 1 A_ReFire goto InHand MP7D A 0 A_JumpIfNoAmmo(2) MP7D A 0 A_ReFire goto InHand MP7D A 0 A_GiveInventory("MP7Empty",1) //Go to reload goto Reload MP7D C 1 A_JumpIfNoAmmo("FireEmptyAim") MP7D A 0 A_TakeInventory("MP7Counter",2) goto FireAim+9 FireEmptyAim: MP7D E 1 MP7C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: MP7A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") MP7A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MP7A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: MP7C D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") MP7C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") MP7C A 0 A_ZoomFactor(1.2) MP7C ABCD 3 MP7C D 0 A_GiveInventory("Aiming",1) MP7C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: MP7C D 0 A_ZoomFactor(1.0) MP7C DCBA 3 MP7C A 0 A_TakeInventory("Aiming",1) MP7C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw MP7C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") MP7C A 0 A_ZoomFactor(1.2) MP7C ABCD 1 MP7C D 0 A_GiveInventory("Aiming",1) MP7C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: MP7C D 0 A_ZoomFactor(1.0) MP7C DCBA 1 MP7C A 0 A_TakeInventory("Aiming",1) MP7C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: MP7C D 1 A_ZoomFactor(1.0) MP7C DCBA 2 MP7C A 0 A_TakeInventory("Aiming",1) MP7C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("MP7Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") MP7A A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") MP7A F 0 A_PlaySoundEx("mp7/reload1","SoundSlot5") MP7A F 0 A_WeaponReady(WRF_NOFIRE) MP7A F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E A 0 A_WeaponReady(WRF_NOFIRE) MP7E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E B 0 A_PlaySoundEx("mp7/reload2","SoundSlot5") MP7E B 0 A_WeaponReady(WRF_NOFIRE) MP7E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times MP7E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E D 0 A_WeaponReady(WRF_NOFIRE) MP7E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E E 0 A_WeaponReady(WRF_NOFIRE) MP7E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E F 0 A_WeaponReady(WRF_NOFIRE) MP7E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E G 0 A_WeaponReady(WRF_NOFIRE) MP7E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E H 0 A_WeaponReady(WRF_NOFIRE) MP7E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E I 0 A_WeaponReady(WRF_NOFIRE) MP7E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E J 0 A_WeaponReady(WRF_NOFIRE) MP7E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E K 0 A_WeaponReady(WRF_NOFIRE) MP7E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E L 0 A_WeaponReady(WRF_NOFIRE) MP7E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E M 0 A_WeaponReady(WRF_NOFIRE) MP7E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E N 0 A_PlaySoundEx("mp7/reload3","SoundSlot5") MP7E N 0 A_WeaponReady(WRF_NOFIRE) MP7E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("MP7Clip",1) TNT1 A 0 A_TakeInventory("MP7Ammo",1) TNT1 A 0 A_JumpIfInventory("MP7Clip",40,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("MP7Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) MP7E O 0 A_WeaponReady(WRF_NOFIRE) MP7E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E P 0 A_WeaponReady(WRF_NOFIRE) MP7E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E Q 0 A_JumpIfInventory("MP7Empty",1,"ReloadEndEmpty") MP7E Q 0 A_WeaponReady(WRF_NOFIRE) MP7E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7A F 0 A_WeaponReady(WRF_NOFIRE) MP7A F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("MP7Empty",1) MP7E P 0 A_JumpIfInventory("MP7Empty",1,"ReloadEndEmpty") MP7E R 0 A_WeaponReady(WRF_NOFIRE) MP7E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E S 0 A_WeaponReady(WRF_NOFIRE) MP7E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E T 0 A_WeaponReady(WRF_NOFIRE) MP7E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E U 0 A_PlaySoundEx("mp7/reload4","SoundSlot5") MP7E U 0 A_WeaponReady(WRF_NOFIRE) MP7E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E V 0 A_WeaponReady(WRF_NOFIRE) MP7E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E W 0 A_WeaponReady(WRF_NOFIRE) MP7E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MP7E X 0 A_WeaponReady(WRF_NOFIRE) MP7E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor P90Pickup : CustomInventory { inventory.pickupmessage "P90" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.2 States { Spawn: GUNP P 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("P90",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,16,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("P90Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("P90Ammo",50) stop FailPickup: GUNP P 1 fail FailPickup2: GUNP P 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor P90Pickup2 : P90Pickup { inventory.respawntics 1050 States { Spawn: GUNP P -1 stop } } actor P90PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("P90Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor P90Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 50 inventory.maxamount 200 ammo.backpackamount 50 ammo.backpackmaxamount 400 +IGNORESKILL } actor P90Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 50 ammo.backpackamount 0 ammo.backpackmaxamount 50 +IGNORESKILL } actor P90Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("P90/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("P90/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("P90/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("P90/dfire2","SoundSlot6") stop } } actor P90Bullet : HHBulletPuff { damagetype "P90" } actor P90Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor P90Counter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "P90" : RGUWeapon { obituary "\cf%k \cc>> \cdP90 \cc>> \cf%o" inventory.pickupmessage "P90" weapon.selectionorder 18 weapon.ammotype "P90Clip" weapon.ammouse 1 weapon.ammogive 50 weapon.ammotype2 "P90Ammo" weapon.ammouse2 0 weapon.ammogive2 50 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("P90Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",2) //Determines player speed - 2 means mostly normal speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") P90A A 4 A_PlayWeaponSound("weapon/select") P90A BCDEF 3 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state P90A F 0 A_JumpIfNoAmmo("Reload") P90A F 0 A_JumpIfInventory("Aiming",1,"Aiming") P90A F 0 A_JumpIfInventory("Reloading",1,"Reload") P90A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") P90A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) P90A F 1 A_WeaponReady loop Aiming: P90C D 0 A_JumpIfInventory("Reloading",1,"Reload") P90C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") P90C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") P90A EDCBA 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: P90B A 0 A_GiveInventory("P90Counter",1) P90A F 0 A_JumpIfInventory("Aiming",1,"FireAim") P90A F 0 A_JumpIfNoAmmo("ReloadStart") P90B A 0 A_FireCustomMissile("P90Puff",0,0,10,0) //Fire effect and sound P90B A 1 BRIGHT A_FireBullets (8.5, 8.5, -1, random(4,5), "P90Bullet", 1, 3000) P90B B 0 ACS_ExecuteAlways(600,0,450,450,0) //Recoil script - 600 recoil, revert aim P90B B 1 BRIGHT A_GunFlash P90B A 0 A_JumpIfInventory("P90Counter",3,7) //This makes the gun shoot that lil bit extra faster, but not too fast P90B C 1 A_JumpIfNoAmmo("FireEmpty") P90B A 0 A_JumpIfInventory("P90Ammo",1,2) P90B D 1 A_ReFire goto InHand P90B A 0 A_JumpIfNoAmmo(2) P90B A 0 A_ReFire goto InHand P90B A 0 A_GiveInventory("P90Empty",1) //Go to reload goto Reload P90B C 0 A_JumpIfNoAmmo("FireEmpty") P90B A 0 A_TakeInventory("P90Counter",random(2,3)) goto Fire+9 FireEmpty: P90B D 1 P90A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 FireAim: P90B A 0 A_GiveInventory("P90Counter",1) P90C D 0 A_JumpIfNoAmmo("ReloadStart") P90D A 0 A_FireCustomMissile("P90Puff",0,0,0,4) //Fire effect and sound P90D A 1 BRIGHT A_FireBullets (1.5, 1.5, -1, random(4,5), "P90Bullet", 1, 3000) P90D B 0 ACS_ExecuteAlways(600,0,450,450,0) //Recoil script - 600 recoil, revert aim P90D B 1 BRIGHT A_GunFlash P90D A 0 A_JumpIfInventory("P90Counter",3,7) //This makes the gun shoot that lil bit extra faster, but not too fast P90D C 1 A_JumpIfNoAmmo("FireEmptyAim") P90D A 0 A_JumpIfInventory("P90Ammo",1,2) P90D D 1 A_ReFire goto InHand P90D A 0 A_JumpIfNoAmmo(2) P90D A 0 A_ReFire goto InHand P90D A 0 A_GiveInventory("P90Empty",1) //Go to reload goto Reload P90D C 0 A_JumpIfNoAmmo("FireEmptyAim") P90D A 0 A_TakeInventory("P90Counter",random(2,3)) goto FireAim+8 FireEmptyAim: P90D D 1 P90C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 Hold: P90A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") P90A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") P90A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: P90A D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") P90C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") P90C A 0 A_ZoomFactor(1.2) P90C ABCD 3 P90C D 0 A_GiveInventory("Aiming",1) P90C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: P90C D 0 A_ZoomFactor(1.0) P90C DCBA 3 P90C A 0 A_TakeInventory("Aiming",1) P90C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw P90C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") P90C A 0 A_ZoomFactor(1.2) P90C ABCD 1 P90C D 0 A_GiveInventory("Aiming",1) P90C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: P90C D 0 A_ZoomFactor(1.0) P90C DCBA 1 P90C A 0 A_TakeInventory("Aiming",1) P90C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: P90C D 1 A_ZoomFactor(1.0) P90C DCBA 2 P90C A 0 A_TakeInventory("Aiming",1) P90C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("P90Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") P90E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") P90E A 0 A_PlaySoundEx("p90/reload1","SoundSlot5") P90E A 0 A_WeaponReady(WRF_NOFIRE) P90E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E B 0 A_WeaponReady(WRF_NOFIRE) P90E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times P90E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E D 0 A_PlaySoundEx("p90/reload2","SoundSlot5") P90E D 0 A_WeaponReady(WRF_NOFIRE) P90E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E E 0 A_WeaponReady(WRF_NOFIRE) P90E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E F 0 A_WeaponReady(WRF_NOFIRE) P90E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E G 0 A_WeaponReady(WRF_NOFIRE) P90E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E H 0 A_WeaponReady(WRF_NOFIRE) P90E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E I 0 A_WeaponReady(WRF_NOFIRE) P90E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E J 0 A_WeaponReady(WRF_NOFIRE) P90E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E K 0 A_WeaponReady(WRF_NOFIRE) P90E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E L 0 A_PlaySoundEx("p90/reload3","SoundSlot5") P90E L 0 A_WeaponReady(WRF_NOFIRE) P90E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E M 0 A_WeaponReady(WRF_NOFIRE) P90E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("P90Clip",1) TNT1 A 0 A_TakeInventory("P90Ammo",1) TNT1 A 0 A_JumpIfInventory("P90Clip",50,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("P90Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) P90E N 0 A_WeaponReady(WRF_NOFIRE) P90E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E O 0 A_PlaySoundEx("p90/reload4","SoundSlot5") P90E O 0 A_WeaponReady(WRF_NOFIRE) P90E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E P 0 A_JumpIfInventory("P90Empty",1,"ReloadEndEmpty") P90E P 0 A_WeaponReady(WRF_NOFIRE) P90E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E Q 0 A_WeaponReady(WRF_NOFIRE) P90E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E R 0 A_WeaponReady(WRF_NOFIRE) P90E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("P90Empty",1) P90E S 0 A_WeaponReady(WRF_NOFIRE) P90E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E T 0 A_WeaponReady(WRF_NOFIRE) P90E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E U 0 A_WeaponReady(WRF_NOFIRE) P90E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E V 0 A_PlaySoundEx("p90/reload5","SoundSlot5") P90E V 0 A_WeaponReady(WRF_NOFIRE) P90E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E W 0 A_WeaponReady(WRF_NOFIRE) P90E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E X 0 A_WeaponReady(WRF_NOFIRE) P90E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E Y 0 A_WeaponReady(WRF_NOFIRE) P90E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor PP90M1Pickup : CustomInventory { inventory.pickupmessage "PP90M1" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.2 States { Spawn: GUNP R 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("PP90M1",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,18,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("PP90M1Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("PP90M1Ammo",36) stop FailPickup: GUNP R 1 fail FailPickup2: GUNP R 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor PP90M1Pickup2 : PP90M1Pickup { inventory.respawntics 1050 States { Spawn: GUNP R -1 stop } } actor PP90M1PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("PP90M1Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor PP90M1Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 36 inventory.maxamount 180 ammo.backpackamount 36 ammo.backpackmaxamount 288 +IGNORESKILL } actor PP90M1Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 36 ammo.backpackamount 0 ammo.backpackmaxamount 36 +IGNORESKILL } actor PP90M1Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("PP90M1/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("PP90M1/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("PP90M1/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("PP90M1/dfire2","SoundSlot6") stop } } actor PP90M1Bullet : HHBulletPuff { damagetype "PP90M1" } actor PP90M1Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor PP90M1Counter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "PP90M1" : RGUWeapon { obituary "\cf%k \cc>> \cdPP90M1 \cc>> \cf%o" inventory.pickupmessage "PP90M1" weapon.selectionorder 18 weapon.ammotype "PP90M1Clip" weapon.ammouse 1 weapon.ammogive 36 weapon.ammotype2 "PP90M1Ammo" weapon.ammouse2 0 weapon.ammogive2 36 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("PP90M1Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",2) //Determines player speed - 2 means mostly normal speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") PP9A A 4 A_PlayWeaponSound("weapon/select") PP9A BCDEF 3 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state PP9A F 0 A_JumpIfNoAmmo("Reload") PP9A F 0 A_JumpIfInventory("Aiming",1,"Aiming") PP9A F 0 A_JumpIfInventory("Reloading",1,"Reload") PP9A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PP9A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) PP9A F 1 A_WeaponReady loop Aiming: PP9C D 0 A_JumpIfInventory("Reloading",1,"Reload") PP9C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PP9C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") PP9F ABCDE 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: PP9B A 0 A_GiveInventory("PP90M1Counter",1) PP9A F 0 A_JumpIfInventory("Aiming",1,"FireAim") PP9A F 0 A_JumpIfNoAmmo("ReloadStart") PP9B A 0 A_FireCustomMissile("PP90M1Puff",0,0,10,0) //Fire effect and sound PP9B A 1 BRIGHT A_FireBullets (8.5, 8.5, -1, random(3,5), "PP90M1Bullet", 1, 3000) PP9B B 0 ACS_ExecuteAlways(600,0,450,450,0) //Recoil script - 600 recoil, revert aim PP9B B 1 BRIGHT A_GunFlash PP9B A 0 A_JumpIfInventory("PP90M1Counter",2,7) //This makes the gun shoot that lil bit extra faster, but not too fast PP9B C 1 A_JumpIfNoAmmo("FireEmpty") PP9B A 0 A_JumpIfInventory("PP90M1Ammo",1,2) PP9B D 1 A_ReFire goto InHand PP9B A 0 A_JumpIfNoAmmo(2) PP9B A 0 A_ReFire goto InHand PP9B A 0 A_GiveInventory("PP90M1Empty",1) //Go to reload goto Reload PP9B C 0 A_JumpIfNoAmmo("FireEmpty") PP9B A 0 A_TakeInventory("PP90M1Counter",random(2,3)) goto Fire+9 FireEmpty: PP9B D 1 PP9A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 FireAim: PP9B A 0 A_GiveInventory("PP90M1Counter",1) PP9C D 0 A_JumpIfNoAmmo("ReloadStart") PP9D A 0 A_FireCustomMissile("PP90M1Puff",0,0,0,4) //Fire effect and sound PP9D A 1 BRIGHT A_FireBullets (1.5, 1.5, -1, random(3,5), "PP90M1Bullet", 1, 3000) PP9D B 0 ACS_ExecuteAlways(600,0,450,450,0) //Recoil script - 600 recoil, revert aim PP9D B 1 BRIGHT A_GunFlash PP9D A 0 A_JumpIfInventory("PP90M1Counter",2,7) //This makes the gun shoot that lil bit extra faster, but not too fast PP9D C 1 A_JumpIfNoAmmo("FireEmptyAim") PP9D A 0 A_JumpIfInventory("PP90M1Ammo",1,2) PP9D D 1 A_ReFire goto InHand PP9D A 0 A_JumpIfNoAmmo(2) PP9D A 0 A_ReFire goto InHand PP9D A 0 A_GiveInventory("PP90M1Empty",1) //Go to reload goto Reload PP9D C 0 A_JumpIfNoAmmo("FireEmptyAim") PP9D A 0 A_TakeInventory("PP90M1Counter",random(2,3)) goto FireAim+8 FireEmptyAim: PP9D D 1 PP9C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 Hold: PP9A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") PP9A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PP9A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: PP9A D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") PP9C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") PP9C A 0 A_ZoomFactor(1.2) PP9C ABCD 3 PP9C D 0 A_GiveInventory("Aiming",1) PP9C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: PP9C D 0 A_ZoomFactor(1.0) PP9C DCBA 3 PP9C A 0 A_TakeInventory("Aiming",1) PP9C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw PP9C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") PP9C A 0 A_ZoomFactor(1.2) PP9C ABCD 1 PP9C D 0 A_GiveInventory("Aiming",1) PP9C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: PP9C D 0 A_ZoomFactor(1.0) PP9C DCBA 1 PP9C A 0 A_TakeInventory("Aiming",1) PP9C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: PP9C D 1 A_ZoomFactor(1.0) PP9C DCBA 2 PP9C A 0 A_TakeInventory("Aiming",1) PP9C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("PP90M1Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") PP9E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") PP9E A 0 A_PlaySoundEx("PP90M1/reload1","SoundSlot5") PP9E A 0 A_WeaponReady(WRF_NOFIRE) PP9E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E B 0 A_WeaponReady(WRF_NOFIRE) PP9E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times PP9E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E D 0 A_PlaySoundEx("PP90M1/reload2","SoundSlot5") PP9E D 0 A_WeaponReady(WRF_NOFIRE) PP9E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E E 0 A_WeaponReady(WRF_NOFIRE) PP9E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E F 0 A_WeaponReady(WRF_NOFIRE) PP9E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E G 0 A_WeaponReady(WRF_NOFIRE) PP9E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E H 0 A_WeaponReady(WRF_NOFIRE) PP9E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E I 0 A_WeaponReady(WRF_NOFIRE) PP9E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E J 0 A_WeaponReady(WRF_NOFIRE) PP9E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E K 0 A_WeaponReady(WRF_NOFIRE) PP9E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E L 0 A_PlaySoundEx("PP90M1/reload3","SoundSlot5") PP9E L 0 A_WeaponReady(WRF_NOFIRE) PP9E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E M 0 A_WeaponReady(WRF_NOFIRE) PP9E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E N 0 A_WeaponReady(WRF_NOFIRE) PP9E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E O 0 A_PlaySoundEx("PP90M1/reload4","SoundSlot5") PP9E O 0 A_WeaponReady(WRF_NOFIRE) PP9E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("PP90M1Clip",1) TNT1 A 0 A_TakeInventory("PP90M1Ammo",1) TNT1 A 0 A_JumpIfInventory("PP90M1Clip",36,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("PP90M1Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) PP9E P 0 A_JumpIfInventory("PP90M1Empty",1,"ReloadEndEmpty") PP9E P 0 A_WeaponReady(WRF_NOFIRE) PP9E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E Q 0 A_WeaponReady(WRF_NOFIRE) PP9E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") P90E R 0 A_WeaponReady(WRF_NOFIRE) PP9E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("PP90M1Empty",1) PP9E S 0 A_WeaponReady(WRF_NOFIRE) PP9E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E T 0 A_WeaponReady(WRF_NOFIRE) PP9E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E U 0 A_WeaponReady(WRF_NOFIRE) PP9E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E V 0 A_WeaponReady(WRF_NOFIRE) PP9E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E W 0 A_PlaySoundEx("PP90M1/reload5","SoundSlot5") PP9E W 0 A_WeaponReady(WRF_NOFIRE) PP9E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E X 0 A_WeaponReady(WRF_NOFIRE) PP9E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E Y 0 A_WeaponReady(WRF_NOFIRE) PP9E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PP9E Z 0 A_WeaponReady(WRF_NOFIRE) PP9E Z 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor M4A1Pickup : CustomInventory { inventory.pickupmessage "M4A1" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP N 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M4A1",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,14,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M4A1Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("M4A1Ammo",30) stop FailPickup: GUNP N 1 fail FailPickup2: GUNP N 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor M4A1Pickup2 : M4A1Pickup { inventory.respawntics 1050 States { Spawn: GUNP N -1 stop } } actor M4A1PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("M4A1Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor M4A1Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 30 inventory.maxamount 150 ammo.backpackamount 30 ammo.backpackmaxamount 240 +IGNORESKILL } actor M4A1Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 30 ammo.backpackamount 0 ammo.backpackmaxamount 30 +IGNORESKILL } actor M4A1Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("M4A1/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("M4A1/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("M4A1/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("M4A1/dfire2","SoundSlot6") stop } } actor M4A1Bullet : HHBulletPuff { damagetype "M4A1" } actor M4A1Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor M4A1Counter : Inventory { inventory.amount 0 inventory.maxamount 2 } actor "M4A1" : RGUWeapon { obituary "\cf%k \cc>> \csM4A1 \cc>> \cf%o" inventory.pickupmessage "M4A1" weapon.selectionorder 17 weapon.ammotype "M4A1Clip" weapon.ammouse 1 weapon.ammogive 30 weapon.ammotype2 "M4A1Ammo" weapon.ammouse2 0 weapon.ammogive2 30 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("M4A1Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") M4AA A 4 A_PlayWeaponSound("weapon/select") M4AA BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state M4AA F 0 A_JumpIfNoAmmo("Reload") M4AA F 0 A_JumpIfInventory("Aiming",1,"Aiming") M4AA F 0 A_JumpIfInventory("Reloading",1,"Reload") M4AA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M4AA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) M4AA F 1 A_WeaponReady loop Aiming: M4AC D 0 A_JumpIfInventory("Reloading",1,"Reload") M4AC D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M4AC D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AC D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") M4AF ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: M4AB A 0 A_GiveInventory("M4A1Counter",1) M4AA F 0 A_JumpIfInventory("Aiming",1,"FireAim") M4AA F 0 A_JumpIfNoAmmo("ReloadStart") M4AB A 0 A_FireCustomMissile("M4A1Puff",0,0,8,0) //Fire effect and sound M4AB A 1 BRIGHT A_FireBullets (9.5, 9.5, -1, 6, "M4A1Bullet", 1, 6000) M4AB B 0 ACS_ExecuteAlways(600,0,450,450,0) //Recoil script - 600 recoil, revert aim M4AB B 1 BRIGHT A_GunFlash M4AB A 0 A_JumpIfInventory("M4A1Counter",2,8) //This makes the gun shoot that lil bit extra faster, but not too fast M4AB CD 1 A_JumpIfNoAmmo("FireEmpty") M4AB A 0 A_JumpIfInventory("M4A1Ammo",1,2) M4AB E 1 A_ReFire goto InHand M4AB A 0 A_JumpIfNoAmmo(2) M4AB A 0 A_ReFire goto InHand M4AB A 0 A_GiveInventory("M4A1Empty",1) //Go to reload goto Reload M4AB C 1 A_JumpIfNoAmmo("FireEmpty") M4AB A 0 A_TakeInventory("M4A1Counter",random(1,2)) goto Fire+10 FireEmpty: M4AB E 1 M4AA F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: M4AB A 0 A_GiveInventory("M4A1Counter",1) M4AC D 0 A_JumpIfNoAmmo("ReloadStart") M4AD A 0 A_FireCustomMissile("M4A1Puff",0,0,0,4) //Fire effect and sound M4AD A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, 6, "M4A1Bullet", 1, 6000) M4AD B 0 ACS_ExecuteAlways(600,0,450,450,0) //Recoil script - 600 recoil, revert aim M4AD B 1 BRIGHT A_GunFlash M4AD A 0 A_JumpIfInventory("M4A1Counter",2,8) M4AD CD 1 A_JumpIfNoAmmo("FireEmptyAim") M4AD A 0 A_JumpIfInventory("M4A1Ammo",1,2) M4AD E 1 A_ReFire goto InHand M4AD A 0 A_JumpIfNoAmmo(2) M4AD A 0 A_ReFire goto InHand M4AD A 0 A_GiveInventory("M4A1Empty",1) //Go to reload goto Reload M4AD C 1 A_JumpIfNoAmmo("FireEmptyAim") M4AD A 0 A_TakeInventory("M4A1Counter",random(1,2)) goto FireAim+9 FireEmptyAim: M4AD E 1 M4AC D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: M4AA F 0 A_JumpIfInventory("Aiming",1,"HoldAim") M4AA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M4AA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: M4AC D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") M4AC A 0 A_JumpIfInventory("Aiming",1,"AltFire2") M4AC A 0 A_ZoomFactor(1.2) M4AC ABCD 3 M4AC D 0 A_GiveInventory("Aiming",1) M4AC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: M4AC D 0 A_ZoomFactor(1.0) M4AC DCBA 3 M4AC A 0 A_TakeInventory("Aiming",1) M4AC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw M4AC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") M4AC A 0 A_ZoomFactor(1.2) M4AC ABCD 1 M4AC D 0 A_GiveInventory("Aiming",1) M4AC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: M4AC D 0 A_ZoomFactor(1.0) M4AC DCBA 1 M4AC A 0 A_TakeInventory("Aiming",1) M4AC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: M4AC D 1 A_ZoomFactor(1.0) M4AC DCBA 2 M4AC A 0 A_TakeInventory("Aiming",1) M4AC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("M4A1Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") M4AE A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") M4AE A 0 A_PlaySoundEx("M4A1/reload1","SoundSlot5") M4AE A 0 A_WeaponReady(WRF_NOFIRE) M4AE A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE B 0 A_WeaponReady(WRF_NOFIRE) M4AE B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times M4AE C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE D 0 A_WeaponReady(WRF_NOFIRE) M4AE D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE E 0 A_WeaponReady(WRF_NOFIRE) M4AE E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE F 0 A_WeaponReady(WRF_NOFIRE) M4AE F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE G 0 A_WeaponReady(WRF_NOFIRE) M4AE G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE H 0 A_WeaponReady(WRF_NOFIRE) M4AE H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE I 0 A_PlaySoundEx("M4A1/reload2","SoundSlot5") M4AE I 0 A_WeaponReady(WRF_NOFIRE) M4AE I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE J 0 A_WeaponReady(WRF_NOFIRE) M4AE J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("M4A1Clip",1) TNT1 A 0 A_TakeInventory("M4A1Ammo",1) TNT1 A 0 A_JumpIfInventory("M4A1Clip",30,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("M4A1Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) M4AE A 0 A_JumpIfInventory("M4A1Empty",1,"ReloadEndEmpty") M4AE K 0 A_WeaponReady(WRF_NOFIRE) M4AE K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE L 0 A_WeaponReady(WRF_NOFIRE) M4AE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE M 0 A_WeaponReady(WRF_NOFIRE) M4AE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("M4A1Empty",1) M4AE N 0 A_WeaponReady(WRF_NOFIRE) M4AE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE N 0 A_PlaySoundEx("M4A1/reload3","SoundSlot5") M4AE O 0 A_WeaponReady(WRF_NOFIRE) M4AE O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE P 0 A_WeaponReady(WRF_NOFIRE) M4AE P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE Q 0 A_WeaponReady(WRF_NOFIRE) M4AE Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M4AE R 0 A_WeaponReady(WRF_NOFIRE) M4AE R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor M16A4Pickup : CustomInventory { inventory.pickupmessage "M4A1" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP O 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M16A4",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,15,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M16A4Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("M16A4Ammo",30) stop FailPickup: GUNP O 1 fail FailPickup2: GUNP O 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor M16A4Pickup2 : M16A4Pickup { inventory.respawntics 1050 States { Spawn: GUNP O -1 stop } } actor M16A4PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("M16A4Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor M16A4Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 30 inventory.maxamount 150 ammo.backpackamount 30 ammo.backpackmaxamount 240 +IGNORESKILL } actor M16A4Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 30 ammo.backpackamount 0 ammo.backpackmaxamount 30 +IGNORESKILL } actor M16A4Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("M16A4/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("M16A4/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("M16A4/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("M16A4/dfire2","SoundSlot6") stop } } // No sound actor M16A4Puff2 { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 5 stop } } actor M16A4Bullet : HHBulletPuff { damagetype "M16A4" } actor M16A4Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "M16A4" : RGUWeapon { obituary "\cf%k \cc>> \csM16A4 \cc>> \cf%o" inventory.pickupmessage "M16A4" weapon.selectionorder 17 weapon.ammotype "M16A4Clip" weapon.ammouse 1 weapon.ammogive 30 weapon.ammotype2 "M16A4Ammo" weapon.ammouse2 0 weapon.ammogive2 30 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("M16A4Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") M16A A 4 A_PlayWeaponSound("weapon/select") M16A BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state M16A F 0 A_JumpIfNoAmmo("Reload") M16A F 0 A_JumpIfInventory("Aiming",1,"Aiming") M16A F 0 A_JumpIfInventory("Reloading",1,"Reload") M16A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M16A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) M16A F 1 A_WeaponReady loop Aiming: M16C D 0 A_JumpIfInventory("Reloading",1,"Reload") M16C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M16C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") M16F ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: M16A F 0 A_JumpIfInventory("Aiming",1,"FireAim") M16A F 0 A_JumpIfNoAmmo("ReloadStart") M16B A 0 A_FireCustomMissile("M16A4Puff",0,0,6,0) //Fire effect and sound M16B A 1 BRIGHT A_FireBullets (9.5, 9.5, -1, 9, "M16A4Bullet", 1, 6000) M16B B 0 ACS_ExecuteAlways(600,0,450,450,8) //Recoil script - 600 recoil, revert aim M16B BC 1 BRIGHT A_GunFlash M16B A 0 A_FireCustomMissile("M16A4Puff2",0,0,6,0) M16B D 1 BRIGHT A_FireBullets (9.5, 9.5, -1, 9, "M16A4Bullet", 1, 6000) M16B B 0 ACS_ExecuteAlways(600,0,450,450,8) M16B ED 1 BRIGHT A_GunFlash M16B A 0 A_FireCustomMissile("M16A4Puff2",0,0,6,0) M16B A 1 BRIGHT A_FireBullets (9.5, 9.5, -1, 9, "M16A4Bullet", 1, 6000) M16B B 0 ACS_ExecuteAlways(600,0,600,600,8) M16B B 1 BRIGHT A_GunFlash M16B CD 1 A_JumpIfNoAmmo("FireEmpty") M16B A 0 A_JumpIfInventory("M16A4Ammo",1,2) M16B E 1 A_ReFire goto InHand M16B A 0 A_JumpIfNoAmmo(2) M16B A 0 A_ReFire goto InHand M16B A 0 A_GiveInventory("M16A4Empty",1) //Go to reload goto Reload FireEmpty: M16B E 1 M16A F 1 A_PlayWeaponSound("weapon/dryfire") M16B A 0 A_JumpIfNoAmmo(2) M16B A 0 A_ReFire goto InHand M16B A 0 A_GiveInventory("M16A4Empty",1) //Go to reload goto Reload FireAim: M16C D 0 A_JumpIfNoAmmo("ReloadStart") M16D A 0 A_FireCustomMissile("M16A4Puff",0,0,0,4) //Fire effect and sound M16D A 1 BRIGHT A_FireBullets (1.0, 1.0, -1, 9, "M16A4Bullet", 1, 6000) M16D B 0 ACS_ExecuteAlways(600,0,450,450,8) //Recoil script - 600 recoil, revert aim M16D BC 1 BRIGHT A_GunFlash M16D A 0 A_FireCustomMissile("M16A4Puff2",0,0,0,4) M16D D 1 BRIGHT A_FireBullets (1.0, 1.0, -1, 9, "M16A4Bullet", 1, 6000) M16D B 0 ACS_ExecuteAlways(600,0,450,450,8) M16D ED 1 BRIGHT A_GunFlash M16D A 0 A_FireCustomMissile("M16A4Puff2",0,0,0,4) M16D A 1 BRIGHT A_FireBullets (1.0, 1.0, -1, 9, "M16A4Bullet", 1, 6000) M16D B 0 ACS_ExecuteAlways(600,0,600,600,8) M16D B 1 BRIGHT A_GunFlash M16D CD 1 A_JumpIfNoAmmo("FireEmptyAim") M16D A 0 A_JumpIfInventory("M16A4Ammo",1,2) M16D E 1 A_ReFire goto InHand M16D A 0 A_JumpIfNoAmmo(2) M16D A 0 A_ReFire goto InHand M16D A 0 A_GiveInventory("M16A4Empty",1) //Go to reload goto Reload FireEmptyAim: M16D E 1 M16C D 1 A_PlayWeaponSound("weapon/dryfire") M16D A 0 A_JumpIfNoAmmo(2) M16D A 0 A_ReFire goto InHand M16D A 0 A_GiveInventory("M16A4Empty",1) //Go to reload goto Reload Hold: M16A F 3 A_JumpIfInventory("Aiming",1,"HoldAim") M16A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M16A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16A F 0 A_JumpIfInventory("IsBot",1,"Fire") M16A F 1 A_ReFire goto InHand HoldAim: M16C D 3 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M16C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16C D 0 A_JumpIfInventory("IsBot",1,"Fire") M16C D 1 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") M16C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") M16C A 0 A_ZoomFactor(1.2) M16C ABCD 3 M16C D 0 A_GiveInventory("Aiming",1) M16C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: M16C D 0 A_ZoomFactor(1.0) M16C DCBA 3 M16C A 0 A_TakeInventory("Aiming",1) M16C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw M16C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") M16C A 0 A_ZoomFactor(1.2) M16C ABCD 1 M16C D 0 A_GiveInventory("Aiming",1) M16C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: M16C D 0 A_ZoomFactor(1.0) M16C DCBA 1 M16C A 0 A_TakeInventory("Aiming",1) M16C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: M16C D 1 A_ZoomFactor(1.0) M16C DCBA 2 M16C A 0 A_TakeInventory("Aiming",1) M16C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("M16A4Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") M16E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") M16E A 0 A_PlaySoundEx("M4A1/reload1","SoundSlot5") M16E A 0 A_WeaponReady(WRF_NOFIRE) M16E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E B 0 A_WeaponReady(WRF_NOFIRE) M16E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times M16E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E D 0 A_WeaponReady(WRF_NOFIRE) M16E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E E 0 A_WeaponReady(WRF_NOFIRE) M16E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E F 0 A_WeaponReady(WRF_NOFIRE) M16E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E G 0 A_WeaponReady(WRF_NOFIRE) M16E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E H 0 A_WeaponReady(WRF_NOFIRE) M16E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E I 0 A_PlaySoundEx("M4A1/reload2","SoundSlot5") M16E I 0 A_WeaponReady(WRF_NOFIRE) M16E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E J 0 A_WeaponReady(WRF_NOFIRE) M16E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("M16A4Clip",1) TNT1 A 0 A_TakeInventory("M16A4Ammo",1) TNT1 A 0 A_JumpIfInventory("M16A4Clip",30,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("M16A4Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) M16E A 0 A_JumpIfInventory("M16A4Empty",1,"ReloadEndEmpty") M16E K 0 A_WeaponReady(WRF_NOFIRE) M16E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E L 0 A_WeaponReady(WRF_NOFIRE) M16E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E M 0 A_WeaponReady(WRF_NOFIRE) M16E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("M16A4Empty",1) M16E N 0 A_WeaponReady(WRF_NOFIRE) M16E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E N 0 A_PlaySoundEx("M4A1/reload3","SoundSlot5") M16E O 0 A_WeaponReady(WRF_NOFIRE) M16E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E P 0 A_WeaponReady(WRF_NOFIRE) M16E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E Q 0 A_WeaponReady(WRF_NOFIRE) M16E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M16E R 0 A_WeaponReady(WRF_NOFIRE) M16E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor SCARLPickup : CustomInventory { inventory.pickupmessage "SCAR-L" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP I 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("SCAR-L",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,5,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("SCARLAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("SCARLAmmo",30) stop FailPickup: GUNP I 1 fail FailPickup2: GUNP I 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor SCARLPickup2 : SCARLPickup { inventory.respawntics 1050 States { Spawn: GUNP I -1 stop } } actor SCARLPickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("SCARLPickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor SCARLAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 30 inventory.maxamount 150 ammo.backpackamount 30 ammo.backpackmaxamount 240 +IGNORESKILL } actor SCARLClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 30 ammo.backpackamount 0 ammo.backpackmaxamount 30 +IGNORESKILL } actor SCARLPuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("scarl/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("scarl/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("scarl/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("scarl/dfire2","SoundSlot6") stop } } actor SCARLBullet : HHBulletPuff { damagetype "SCARL" } actor SCARLEmpty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor SCARLCounter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "SCAR-L" : RGUWeapon { obituary "\cf%k \cc>> \csSCAR-L \cc>> \cf%o" inventory.pickupmessage "SCAR-L" weapon.selectionorder 17 weapon.ammotype "SCARLClip" weapon.ammouse 1 weapon.ammogive 30 weapon.ammotype2 "SCARLAmmo" weapon.ammouse2 0 weapon.ammogive2 30 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("SCARLPickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") SCAA A 4 A_PlayWeaponSound("weapon/select") SCAA BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state SCAA F 0 A_JumpIfNoAmmo("Reload") SCAA F 0 A_JumpIfInventory("Aiming",1,"Aiming") SCAA F 0 A_JumpIfInventory("Reloading",1,"Reload") SCAA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") SCAA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) SCAA F 1 A_WeaponReady loop Aiming: SCAC D 0 A_JumpIfInventory("Reloading",1,"Reload") SCAC D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") SCAC D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAC D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") SCAF ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: SCAB A 0 A_GiveInventory("SCARLCounter",1) SCAA F 0 A_JumpIfInventory("Aiming",1,"FireAim") SCAA F 0 A_JumpIfNoAmmo("ReloadStart") SCAB A 0 A_FireCustomMissile("SCARLPuff",0,0,8,0) //Fire effect and sound SCAB A 1 BRIGHT A_FireBullets (9.5, 9.5, -1, 8, "SCARLBullet", 1, 6000) SCAB B 0 ACS_ExecuteAlways(600,0,600,150*random(3,4),0) //Recoil script - 600 recoil, revert aim SCAB B 1 BRIGHT A_GunFlash SCAB A 0 A_JumpIfInventory("SCARLCounter",3,8) //This makes the gun shoot that lil bit extra faster, but not too fast SCAB CD 1 A_JumpIfNoAmmo("FireEmpty") SCAB A 0 A_JumpIfInventory("SCARLAmmo",1,2) SCAB E 1 A_ReFire goto InHand SCAB A 0 A_JumpIfNoAmmo(2) SCAB A 0 A_ReFire goto InHand SCAB A 0 A_GiveInventory("SCARLEmpty",1) //Go to reload goto Reload SCAB C 1 A_JumpIfNoAmmo("FireEmpty") SCAB A 0 A_TakeInventory("SCARLCounter",random(2,3)) goto Fire+10 FireEmpty: SCAB E 1 SCAA F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: SCAB A 0 A_GiveInventory("SCARLCounter",1) SCAC D 0 A_JumpIfNoAmmo("ReloadStart") SCAD A 0 A_FireCustomMissile("SCARLPuff",0,0,0,4) //Fire effect and sound SCAD A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, 8, "SCARLBullet", 1, 6000) SCAD B 0 ACS_ExecuteAlways(600,0,600,600,0) //Recoil script - 600 recoil, revert aim SCAD B 1 BRIGHT A_GunFlash SCAB A 0 A_JumpIfInventory("SCARLCounter",3,8) SCAD CD 1 A_JumpIfNoAmmo("FireEmptyAim") SCAD A 0 A_JumpIfInventory("SCARLAmmo",1,2) SCAD E 1 A_ReFire goto InHand SCAD A 0 A_JumpIfNoAmmo(2) SCAD A 0 A_ReFire goto InHand SCAD A 0 A_GiveInventory("SCARLEmpty",1) //Go to reload goto Reload SCAD C 1 A_JumpIfNoAmmo("FireEmptyAim") SCAD A 0 A_TakeInventory("SCARLCounter",random(2,3)) goto FireAim+9 FireEmptyAim: SCAD E 1 SCAC D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: SCAA F 0 A_JumpIfInventory("Aiming",1,"HoldAim") SCAA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") SCAA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: SCAC D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") SCAC A 0 A_JumpIfInventory("Aiming",1,"AltFire2") SCAC A 0 A_ZoomFactor(1.2) SCAC ABCD 3 SCAC D 0 A_GiveInventory("Aiming",1) SCAC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: SCAC D 0 A_ZoomFactor(1.0) SCAC DCBA 3 SCAC A 0 A_TakeInventory("Aiming",1) SCAC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw SCAC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") SCAC A 0 A_ZoomFactor(1.2) SCAC ABCD 1 SCAC D 0 A_GiveInventory("Aiming",1) SCAC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: SCAC D 0 A_ZoomFactor(1.0) SCAC DCBA 1 SCAC A 0 A_TakeInventory("Aiming",1) SCAC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: SCAC D 1 A_ZoomFactor(1.0) SCAC DCBA 2 SCAC A 0 A_TakeInventory("Aiming",1) SCAC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("SCARLAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") SCAE A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") SCAE A 0 A_WeaponReady(WRF_NOFIRE) SCAE A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE B 0 A_WeaponReady(WRF_NOFIRE) SCAE B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE C 0 A_PlaySoundEx("scarl/reload1","SoundSlot5") SCAE C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times SCAE C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE D 0 A_WeaponReady(WRF_NOFIRE) SCAE D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE E 0 A_WeaponReady(WRF_NOFIRE) SCAE E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE F 0 A_WeaponReady(WRF_NOFIRE) SCAE F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE G 0 A_WeaponReady(WRF_NOFIRE) SCAE G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE H 0 A_WeaponReady(WRF_NOFIRE) SCAE H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE I 0 A_PlaySoundEx("scarl/reload2","SoundSlot5") SCAE I 0 A_WeaponReady(WRF_NOFIRE) SCAE I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE J 0 A_WeaponReady(WRF_NOFIRE) SCAE J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("SCARLClip",1) TNT1 A 0 A_TakeInventory("SCARLAmmo",1) TNT1 A 0 A_JumpIfInventory("SCARLClip",30,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("SCARLAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) SCAE A 0 A_JumpIfInventory("SCARLEmpty",1,"ReloadEndEmpty") SCAE K 0 A_WeaponReady(WRF_NOFIRE) SCAE K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE L 0 A_WeaponReady(WRF_NOFIRE) SCAE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE M 0 A_WeaponReady(WRF_NOFIRE) SCAE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE N 0 A_WeaponReady(WRF_NOFIRE) SCAE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE O 0 A_WeaponReady(WRF_NOFIRE) SCAE O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("SCARLEmpty",1) SCAE P 0 A_WeaponReady(WRF_NOFIRE) SCAE P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE Q 0 A_PlaySoundEx("scarl/reload3","SoundSlot5") SCAE Q 0 A_WeaponReady(WRF_NOFIRE) SCAE Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE R 0 A_WeaponReady(WRF_NOFIRE) SCAE R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE S 0 A_WeaponReady(WRF_NOFIRE) SCAE S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE T 0 A_WeaponReady(WRF_NOFIRE) SCAE T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE U 0 A_WeaponReady(WRF_NOFIRE) SCAE U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE M 0 A_WeaponReady(WRF_NOFIRE) SCAE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE N 0 A_WeaponReady(WRF_NOFIRE) SCAE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") SCAE O 0 A_WeaponReady(WRF_NOFIRE) SCAE O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor AK47Pickup : CustomInventory { inventory.pickupmessage "AK-47" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP K 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("AK-47",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,11,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("AK47Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("AK47Ammo",30) stop FailPickup: GUNP K 1 fail FailPickup2: GUNP K 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor AK47Pickup2 : AK47Pickup { inventory.respawntics 1050 States { Spawn: GUNP K -1 stop } } actor AK47PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("AK47Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor AK47Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 30 inventory.maxamount 150 ammo.backpackamount 30 ammo.backpackmaxamount 240 +IGNORESKILL } actor AK47Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 30 ammo.backpackamount 0 ammo.backpackmaxamount 30 +IGNORESKILL } actor AK47Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(170,"Spawn2","Spawn3") TNT1 A 0 A_PlaySoundEx("AK47/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("AK47/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("AK47/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("AK47/dfire2","SoundSlot6") stop Spawn3: TNT1 A 0 A_PlaySoundEx("AK47/fire3","SoundSlot5") TNT1 A 5 A_PlaySoundEx("AK47/dfire3","SoundSlot6") stop } } actor AK47Bullet : HHBulletPuff { damagetype "AK47" } actor AK47Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "AK-47" : RGUWeapon { obituary "\cf%k \cc>> \csAK-47 \cc>> \cf%o" inventory.pickupmessage "AK-47" weapon.selectionorder 17 weapon.ammotype "AK47Clip" weapon.ammouse 1 weapon.ammogive 30 weapon.ammotype2 "AK47Ammo" weapon.ammouse2 0 weapon.ammogive2 30 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("AK47Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") AK4A A 4 A_PlayWeaponSound("weapon/select") AK4A BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state AK4A F 0 A_JumpIfNoAmmo("Reload") AK4A F 0 A_JumpIfInventory("Aiming",1,"Aiming") AK4A F 0 A_JumpIfInventory("Reloading",1,"Reload") AK4A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") AK4A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) AK4A F 1 A_WeaponReady loop Aiming: AK4C D 0 A_JumpIfInventory("Reloading",1,"Reload") AK4C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") AK4C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") AK4F ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: AK4A F 0 A_JumpIfInventory("Aiming",1,"FireAim") AK4A F 0 A_JumpIfNoAmmo("ReloadStart") AK4B A 0 A_FireCustomMissile("AK47Puff",0,0,7,2) //Fire effect and sound AK4B A 1 BRIGHT A_FireBullets (9.5, 9.5, -1, random(8,9), "AK47Bullet", 1, 6000) AK4B B 0 ACS_ExecuteAlways(600,0,600,150*random(3,4),8) //Recoil script - 600 recoil, revert aim AK4B B 1 BRIGHT A_GunFlash AK4B C 1 A_JumpIfNoAmmo("FireEmpty") AK4B A 0 A_JumpIfInventory("AK47Ammo",1,2) AK4B DE 1 A_ReFire goto InHand AK4B A 0 A_JumpIfNoAmmo(2) AK4B A 0 A_ReFire goto InHand AK4B A 0 A_GiveInventory("AK47Empty",1) //Go to reload goto Reload FireEmpty: AK4B DE 1 AK4A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+10 FireAim: AK4C D 0 A_JumpIfNoAmmo("ReloadStart") AK4D A 0 A_FireCustomMissile("AK47Puff",0,0,0,4) //Fire effect and sound AK4D A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, random(8,9), "AK47Bullet", 1, 6000) AK4D B 0 ACS_ExecuteAlways(600,0,600,150*random(3,4),8) //Recoil script - 600 recoil, revert aim AK4D B 1 BRIGHT A_GunFlash AK4D C 1 A_JumpIfNoAmmo("FireEmptyAim") AK4D A 0 A_JumpIfInventory("AK47Ammo",1,2) AK4D DE 1 A_ReFire goto InHand AK4D A 0 A_JumpIfNoAmmo(2) AK4D A 0 A_ReFire goto InHand AK4D A 0 A_GiveInventory("AK47Empty",1) //Go to reload goto Reload FireEmptyAim: AK4D DE 1 AK4D D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: AK4A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") AK4A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") AK4A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: AK4C D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") AK4C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") AK4C A 0 A_ZoomFactor(1.2) AK4C ABCD 3 AK4C D 0 A_GiveInventory("Aiming",1) AK4C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: AK4C D 0 A_ZoomFactor(1.0) AK4C DCBA 3 AK4C A 0 A_TakeInventory("Aiming",1) AK4C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw AK4C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") AK4C A 0 A_ZoomFactor(1.2) AK4C ABCD 1 AK4C D 0 A_GiveInventory("Aiming",1) AK4C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: AK4C D 0 A_ZoomFactor(1.0) AK4C DCBA 1 AK4C A 0 A_TakeInventory("Aiming",1) AK4C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: AK4C D 1 A_ZoomFactor(1.0) AK4C DCBA 2 AK4C A 0 A_TakeInventory("Aiming",1) AK4C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("AK47Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") AK4E A 0 A_PlaySoundEx("ak47/reload1","SoundSlot5") AK4E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") AK4E A 0 A_WeaponReady(WRF_NOFIRE) AK4E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E B 0 A_WeaponReady(WRF_NOFIRE) AK4E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times AK4E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E D 0 A_WeaponReady(WRF_NOFIRE) AK4E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E E 0 A_PlaySoundEx("ak47/reload2","SoundSlot5") AK4E E 0 A_WeaponReady(WRF_NOFIRE) AK4E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E F 0 A_WeaponReady(WRF_NOFIRE) AK4E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E G 0 A_WeaponReady(WRF_NOFIRE) AK4E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E H 0 A_WeaponReady(WRF_NOFIRE) AK4E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E I 0 A_WeaponReady(WRF_NOFIRE) AK4E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E J 0 A_WeaponReady(WRF_NOFIRE) AK4E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E K 0 A_WeaponReady(WRF_NOFIRE) AK4E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E L 0 A_WeaponReady(WRF_NOFIRE) AK4E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("AK47Clip",1) TNT1 A 0 A_TakeInventory("AK47Ammo",1) TNT1 A 0 A_JumpIfInventory("AK47Clip",30,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("AK47Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) AK4E M 0 A_PlaySoundEx("ak47/reload3","SoundSlot5") AK4E M 0 A_WeaponReady(WRF_NOFIRE) AK4E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E N 0 A_WeaponReady(WRF_NOFIRE) AK4E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E O 0 A_WeaponReady(WRF_NOFIRE) AK4E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E P 0 A_JumpIfInventory("AK47Empty",1,"ReloadEndEmpty") AK4E P 0 A_WeaponReady(WRF_NOFIRE) AK4E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("AK47Empty",1) AK4E Q 0 A_WeaponReady(WRF_NOFIRE) AK4E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E R 0 A_WeaponReady(WRF_NOFIRE) AK4E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E S 0 A_PlaySoundEx("ak47/reload4","SoundSlot5") AK4E S 0 A_WeaponReady(WRF_NOFIRE) AK4E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E T 0 A_WeaponReady(WRF_NOFIRE) AK4E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E U 0 A_WeaponReady(WRF_NOFIRE) AK4E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E V 0 A_WeaponReady(WRF_NOFIRE) AK4E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") AK4E W 0 A_WeaponReady(WRF_NOFIRE) AK4E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor G36CPickup : CustomInventory { inventory.pickupmessage "G36C" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.5 States { Spawn: GUNP V 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("G36C",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,22,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("G36CAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("G36CAmmo",30) stop FailPickup: GUNP V 1 fail FailPickup2: GUNP V 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor G36CPickup2 : G36CPickup { inventory.respawntics 1050 States { Spawn: GUNP V -1 stop } } actor G36CPickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("G36CPickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor G36CAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 30 inventory.maxamount 150 ammo.backpackamount 30 ammo.backpackmaxamount 240 +IGNORESKILL } actor G36CClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 30 ammo.backpackamount 0 ammo.backpackmaxamount 30 +IGNORESKILL } actor G36CPuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(170,"Spawn2","Spawn3") TNT1 A 0 A_PlaySoundEx("g36c/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("g36c/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("g36c/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("g36c/dfire2","SoundSlot6") stop Spawn3: TNT1 A 0 A_PlaySoundEx("g36c/fire3","SoundSlot5") TNT1 A 5 A_PlaySoundEx("g36c/dfire3","SoundSlot6") stop } } actor G36CBullet : HHBulletPuff { damagetype "G36C" } actor G36CEmpty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor G36CCounter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "G36C" : RGUWeapon { obituary "\cf%k \cc>> \csG36C \cc>> \cf%o" inventory.pickupmessage "G36C" weapon.selectionorder 17 weapon.ammotype "G36CClip" weapon.ammouse 1 weapon.ammogive 30 weapon.ammotype2 "G36CAmmo" weapon.ammouse2 0 weapon.ammogive2 30 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("G36CPickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slower speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") G36A A 4 A_PlayWeaponSound("weapon/select") G36A BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state G36A F 0 A_JumpIfNoAmmo("Reload") G36A F 0 A_JumpIfInventory("Aiming",1,"Aiming") G36A F 0 A_JumpIfInventory("Reloading",1,"Reload") G36A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") G36A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) G36A F 1 A_WeaponReady loop Aiming: G36C D 0 A_JumpIfInventory("Reloading",1,"Reload") G36C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") G36C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") G36F ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: G36B A 0 A_GiveInventory("G36CCounter",1) G36A F 0 A_JumpIfInventory("Aiming",1,"FireAim") G36A F 0 A_JumpIfNoAmmo("ReloadStart") G36B A 0 A_FireCustomMissile("G36CPuff",0,0,8,0) //Fire effect and sound G36B A 1 BRIGHT A_FireBullets (9.5, 9.5, -1, random(7,9), "G36CBullet", 1, 6000) G36B B 0 ACS_ExecuteAlways(600,0,600,150*random(3,4),8) //Recoil script - 600 recoil, revert aim G36B B 1 BRIGHT A_GunFlash G36B A 0 A_JumpIfInventory("G36CCounter",3,8) //This makes the gun shoot that lil bit extra faster, but not too fast G36B CD 1 A_JumpIfNoAmmo("FireEmpty") G36B A 0 A_JumpIfInventory("G36CAmmo",1,2) G36A F 1 A_ReFire goto InHand G36B A 0 A_JumpIfNoAmmo(2) G36B A 0 A_ReFire goto InHand G36B A 0 A_GiveInventory("G36CEmpty",1) //Go to reload goto Reload G36B C 1 A_JumpIfNoAmmo("FireEmpty") G36B A 0 A_TakeInventory("G36CCounter",random(1,2)) goto Fire+10 FireEmpty: G36A F 1 G36A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: G36D A 0 A_GiveInventory("G36CCounter",1) G36C D 0 A_JumpIfNoAmmo("ReloadStart") G36D A 0 A_FireCustomMissile("G36CPuff",0,0,0,4) //Fire effect and sound G36D A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, random(7,9), "G36CBullet", 1, 6000) G36D B 0 ACS_ExecuteAlways(600,0,600,600,8) //Recoil script - 600 recoil, revert aim G36D B 1 BRIGHT A_GunFlash G36D A 0 A_JumpIfInventory("G36CCounter",3,8) G36D CD 1 A_JumpIfNoAmmo("FireEmptyAim") G36D A 0 A_JumpIfInventory("G36CAmmo",1,2) G36C D 1 A_ReFire goto InHand G36D A 0 A_JumpIfNoAmmo(2) G36D A 0 A_ReFire goto InHand G36D A 0 A_GiveInventory("G36CEmpty",1) //Go to reload goto Reload G36D C 1 A_JumpIfNoAmmo("FireEmptyAim") G36D A 0 A_TakeInventory("G36CCounter",random(1,2)) goto FireAim+9 FireEmptyAim: G36C D 1 G36C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: G36A F 0 A_JumpIfInventory("Aiming",1,"HoldAim") G36A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") G36A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: G36C D 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") G36C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") G36C A 0 A_ZoomFactor(1.2) G36C ABCD 3 G36C D 0 A_GiveInventory("Aiming",1) G36C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: G36C D 0 A_ZoomFactor(1.0) G36C DCBA 3 G36C A 0 A_TakeInventory("Aiming",1) G36C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw G36C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") G36C A 0 A_ZoomFactor(1.2) G36C ABCD 1 G36C D 0 A_GiveInventory("Aiming",1) G36C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: G36C D 0 A_ZoomFactor(1.0) G36C DCBA 1 G36C A 0 A_TakeInventory("Aiming",1) G36C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: G36C D 1 A_ZoomFactor(1.0) G36C DCBA 2 G36C A 0 A_TakeInventory("Aiming",1) G36C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("G36CAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") AK4E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") G36A F 0 A_PlaySoundEx("g36c/reload1","SoundSlot5") G36A F 0 A_WeaponReady(WRF_NOFIRE) G36A F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E A 0 A_WeaponReady(WRF_NOFIRE) G36E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E B 0 A_WeaponReady(WRF_NOFIRE) G36E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times G36E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E D 0 A_WeaponReady(WRF_NOFIRE) G36E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E E 0 A_WeaponReady(WRF_NOFIRE) G36E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E F 0 A_PlaySoundEx("g36c/reload2","SoundSlot5") G36E F 0 A_WeaponReady(WRF_NOFIRE) G36E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E G 0 A_WeaponReady(WRF_NOFIRE) G36E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E H 0 A_WeaponReady(WRF_NOFIRE) G36E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E I 0 A_WeaponReady(WRF_NOFIRE) G36E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E J 0 A_PlaySoundEx("g36c/reload3","SoundSlot5") G36E J 0 A_WeaponReady(WRF_NOFIRE) G36E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("G36CClip",1) TNT1 A 0 A_TakeInventory("G36CAmmo",1) TNT1 A 0 A_JumpIfInventory("G36CClip",30,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("G36CAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) G36E K 0 A_WeaponReady(WRF_NOFIRE) G36E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E L 0 A_JumpIfInventory("G36CEmpty",1,"ReloadEndEmpty") G36E L 0 A_WeaponReady(WRF_NOFIRE) G36E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E M 0 A_WeaponReady(WRF_NOFIRE) G36E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E N 0 A_WeaponReady(WRF_NOFIRE) G36E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("G36CEmpty",1) G36E Q 0 A_WeaponReady(WRF_NOFIRE) G36E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E R 0 A_WeaponReady(WRF_NOFIRE) G36E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E S 0 A_PlaySoundEx("g36c/reload4","SoundSlot5") G36E S 0 A_WeaponReady(WRF_NOFIRE) G36E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E T 0 A_WeaponReady(WRF_NOFIRE) G36E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E U 0 A_WeaponReady(WRF_NOFIRE) G36E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E V 0 A_WeaponReady(WRF_NOFIRE) G36E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E W 0 A_WeaponReady(WRF_NOFIRE) G36E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E X 0 A_WeaponReady(WRF_NOFIRE) G36E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") G36E Y 0 A_WeaponReady(WRF_NOFIRE) G36E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor M14Pickup : CustomInventory { inventory.pickupmessage "M14 EBR" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 1050 scale 1.0 States { Spawn: GUNP W 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M14 EBR",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,23,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M14Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("M14Ammo",20) stop FailPickup: GUNP W 1 fail FailPickup2: GUNP W 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor M14Pickup2 : M14Pickup { inventory.respawntics 1050 States { Spawn: GUNP W -1 stop } } actor M14PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("M14Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor M14Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 20 inventory.maxamount 100 ammo.backpackamount 20 ammo.backpackmaxamount 160 +IGNORESKILL } actor M14Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 20 ammo.backpackamount 0 ammo.backpackmaxamount 20 +IGNORESKILL } actor M14Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash", 0, 0, 0, 0, 0, 0, 0, 0, 0) //TNT1 A 0 A_Jump(128,"Spawn2") //TNT1 A 0 A_PlaySoundEx("P99/fire1","SoundSlot5") //TNT1 A 5 A_PlaySoundEx("P99/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("P99/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("P99/dfire2","SoundSlot6") stop } } actor M14Bullet : HHBulletPuff { damagetype "M14" } actor M14Empty : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "M14 EBR" : RGUWeapon { obituary "\cf%k \cc>> \csM14 EBR \cc>> \cf%o" inventory.pickupmessage "M14 EBR" weapon.selectionorder 17 weapon.ammotype "M14Clip" weapon.ammouse 1 weapon.ammogive 20 weapon.ammotype2 "M14Ammo" weapon.ammouse2 0 weapon.ammogive2 20 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("M14Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") M14A A 4 A_PlayWeaponSound("weapon/select") M14A BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state M14A F 0 A_JumpIfNoAmmo("Reload") M14A F 0 A_JumpIfInventory("Aiming",1,"Aiming") M14A F 0 A_JumpIfInventory("Reloading",1,"Reload") M14A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M14A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) M14A F 1 A_WeaponReady loop Aiming: M14C D 0 A_JumpIfInventory("Reloading",1,"Reload") M14C D 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M14C D 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14C D 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") M14F ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: M14A F 0 A_JumpIfInventory("Aiming",1,"FireAim") M14A F 0 A_JumpIfNoAmmo("ReloadStart") M14B A 0 A_FireCustomMissile("M14Puff",0,0,6,1) //Fire effect and sound M14B A 1 BRIGHT A_FireBullets (9.5, 9.5, -1, 13, "M14Bullet", 1, 2300) M14B B 0 ACS_ExecuteAlways(600,0,750,750,8) //Recoil script - 600 recoil, revert aim M14B B 1 BRIGHT A_GunFlash M14B C 1 M14B B 0 A_JumpIfNoAmmo("FireEmpty") M14B DE 1 A_WeaponReady(WRF_NOBOB) M14A F 6 A_WeaponReady(WRF_NOBOB) M14B A 0 A_JumpIfInventory("M14Ammo",1,2) M14B A 0 A_ReFire goto InHand M14B A 0 A_JumpIfNoAmmo(2) M14B A 0 A_ReFire goto InHand M14B A 0 A_GiveInventory("M14Empty",1) //Go to reload goto Reload FireEmpty: M14B DE 1 M14A F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 FireAim: M14C D 0 A_JumpIfNoAmmo("ReloadStart") M14D A 0 A_FireCustomMissile("M14Puff",0,0,0,4) //Fire effect and sound M14D A 1 BRIGHT A_FireBullets (0.5, 0.5, -1, 15, "M14Bullet", 1, 6000) M14D B 0 ACS_ExecuteAlways(600,0,750,750,8) //Recoil script - 600 recoil, revert aim M14D B 1 BRIGHT A_GunFlash M14D C 1 M14D B 0 A_JumpIfNoAmmo("FireEmptyAim") M14D DE 1 A_WeaponReady(WRF_NOBOB) M14C D 6 A_WeaponReady(WRF_NOBOB) M14B A 0 A_JumpIfInventory("M14Ammo",1,2) M14B A 0 A_ReFire goto Aiming M14D A 0 A_JumpIfNoAmmo(2) M14D A 0 A_ReFire goto Aiming M14D A 0 A_GiveInventory("M14Empty",1) //Go to reload goto Reload FireEmptyAim: M14D DE 1 M14C D 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+11 Hold: M14A F 3 A_JumpIfInventory("Aiming",1,"HoldAim") M14A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") M14A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14A F 0 A_JumpIfInventory("IsBot",1,"Fire") M14A F 1 A_ReFire goto InHand HoldAim: M14C D 3 M14C D 0 A_JumpIfInventory("IsBot",1,"FireAim") M14C D 1 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") M14C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") M14C A 0 A_ZoomFactor(1.2) M14C ABCD 3 M14C D 0 A_GiveInventory("Aiming",1) M14C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: M14C D 0 A_ZoomFactor(1.0) M14C DCBA 3 M14C A 0 A_TakeInventory("Aiming",1) M14C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw M14C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") M14C A 0 A_ZoomFactor(1.2) M14C ABCD 1 M14C D 0 A_GiveInventory("Aiming",1) M14C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: M14C D 0 A_ZoomFactor(1.0) M14C DCBA 1 M14C A 0 A_TakeInventory("Aiming",1) M14C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: M14C D 1 A_ZoomFactor(1.0) M14C DCBA 2 M14C A 0 A_TakeInventory("Aiming",1) M14C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("M14Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") M14E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") M14E A 0 A_WeaponReady(WRF_NOFIRE) M14E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E B 0 A_WeaponReady(WRF_NOFIRE) M14E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times M14E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E D 0 A_WeaponReady(WRF_NOFIRE) M14E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E E 0 A_WeaponReady(WRF_NOFIRE) M14E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E F 0 A_PlaySoundEx("m14/reload1","Weapon") M14E F 0 A_WeaponReady(WRF_NOFIRE) M14E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E G 0 A_WeaponReady(WRF_NOFIRE) M14E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E H 0 A_WeaponReady(WRF_NOFIRE) M14E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E I 0 A_WeaponReady(WRF_NOFIRE) M14E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E J 0 A_WeaponReady(WRF_NOFIRE) M14E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E K 0 A_WeaponReady(WRF_NOFIRE) M14E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E L 0 A_WeaponReady(WRF_NOFIRE) M14E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E M 0 A_WeaponReady(WRF_NOFIRE) M14E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E N 0 A_PlaySoundEx("m14/reload2","Weapon") M14E N 0 A_WeaponReady(WRF_NOFIRE) M14E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("M14Clip",1) TNT1 A 0 A_TakeInventory("M14Ammo",1) TNT1 A 0 A_JumpIfInventory("M14Clip",20,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("M14Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) M14E O 0 A_WeaponReady(WRF_NOFIRE) M14E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E P 0 A_JumpIfInventory("M14Empty",1,"ReloadEndEmpty") M14E P 0 A_WeaponReady(WRF_NOFIRE) M14E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E Q 0 A_WeaponReady(WRF_NOFIRE) M14E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand ReloadEndEmpty: TNT1 A 0 A_TakeInventory("M14Empty",1) M14E R 0 A_WeaponReady(WRF_NOFIRE) M14E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E S 0 A_WeaponReady(WRF_NOFIRE) M14E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E T 0 A_WeaponReady(WRF_NOFIRE) M14E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E U 0 A_PlaySoundEx("m14/reload3","SoundSlot5") M14E U 0 A_WeaponReady(WRF_NOFIRE) M14E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E V 0 A_WeaponReady(WRF_NOFIRE) M14E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E W 0 A_WeaponReady(WRF_NOFIRE) M14E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E X 0 A_WeaponReady(WRF_NOFIRE) M14E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") M14E Y 0 A_WeaponReady(WRF_NOFIRE) M14E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon Flash: TNT1 A 0 A_Jump(128,"Flash2") TNT1 A 0 A_PlaySoundEx("m14/fire1","SoundSlot7") TNT1 A 0 A_PlaySoundEx("m14/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("m14/dfire1","SoundSlot6") stop Flash2: TNT1 A 0 A_PlaySoundEx("m14/fire2","SoundSlot7") TNT1 A 0 A_PlaySoundEx("m14/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("m14/dfire2","SoundSlot6") stop GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor L86Pickup : CustomInventory { inventory.pickupmessage "L86 LSW" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.8 States { Spawn: GUNP U 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("L86 LSW",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,21,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("L86Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("L86Ammo",50) stop FailPickup: GUNP U 1 fail FailPickup2: GUNP U 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor L86Pickup2 : L86Pickup { inventory.respawntics 1050 States { Spawn: GUNP U -1 stop } } actor L86PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("L86Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor L86Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 100 inventory.maxamount 300 ammo.backpackamount 100 ammo.backpackmaxamount 500 +IGNORESKILL } actor L86Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 100 ammo.backpackamount 0 ammo.backpackmaxamount 100 +IGNORESKILL } actor L86Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash3", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 //A_Jump(128,"Spawn2") TNT1 A 0 //A_PlaySoundEx("L86/fire1","SoundSlot5") TNT1 A 5 //A_PlaySoundEx("L86/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("L86/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("L86/dfire2","SoundSlot6") stop } } actor L86Bullet : HHBulletPuff { damagetype "L86" } actor L86Counter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "L86 LSW" : RGUWeapon { obituary "\cf%k \cc>> \cqL86 LSW \cc>> \cf%o" inventory.pickupmessage "L86 LSW" weapon.selectionorder 17 weapon.ammotype "L86Clip" weapon.ammouse 1 weapon.ammogive 100 weapon.ammotype2 "L86Ammo" weapon.ammouse2 0 weapon.ammogive2 100 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("L86Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",5) //Determines player speed - 5 means slowest speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") L86A A 4 A_PlayWeaponSound("weapon/selectlmg") L86A BCDEFGH 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state L86A F 0 A_JumpIfNoAmmo("Reload") L86A F 0 A_JumpIfInventory("Aiming",1,"Aiming") L86A F 0 A_JumpIfInventory("Reloading",1,"Reload") L86A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") L86A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) L86A H 1 A_WeaponReady loop Aiming: L86C F 0 A_JumpIfInventory("Reloading",1,"Reload") L86C F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") L86C F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86C F 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") L86F ABCDEF 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: L86B A 0 A_GiveInventory("L86Counter",1) L86A F 0 A_JumpIfInventory("Aiming",1,"FireAim") L86A F 0 A_JumpIfNoAmmo("ReloadStart") L86B A 0 A_FireCustomMissile("L86Puff",0,0,6,1) //Fire effect and sound L86B A 1 BRIGHT A_FireBullets (10.5, 10.5, -1, 7, "L86Bullet", 1, 6000) L86B B 0 ACS_ExecuteAlways(600,0,450,450,8) //Recoil script - mode 8, which is unpredictable recoil L86B B 1 BRIGHT A_GunFlash L86B A 0 A_JumpIfInventory("L86Counter",3,8) //This makes the gun shoot that lil bit extra faster, but not too fast L86B CD 1 A_JumpIfNoAmmo("FireEmpty") L86B A 0 A_JumpIfInventory("L86Ammo",1,2) L86B E 1 A_ReFire goto InHand L86B A 0 A_JumpIfNoAmmo(2) L86B A 0 A_ReFire goto InHand L86B A 0 //A_GiveInventory("L86Empty",1) //Go to reload goto Reload L86B C 1 A_JumpIfNoAmmo("FireEmpty") L86B A 0 A_TakeInventory("L86Counter",random(1,3)) goto Fire+10 FireEmpty: L86B E 1 L86A H 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: L86D A 0 A_GiveInventory("L86Counter",1) L86C D 0 A_JumpIfNoAmmo("ReloadStart") L86D A 0 A_FireCustomMissile("L86Puff",0,0,0,4) //Fire effect and sound L86D A 1 BRIGHT A_FireBullets (1.0, 1.0, -1, random(7,8), "L86Bullet", 1, 6000) L86D B 0 ACS_ExecuteAlways(600,0,450,450,9) //Recoil script - 600 recoil, revert aim L86D B 1 BRIGHT A_GunFlash L86D A 0 A_JumpIfInventory("L86Counter",3,8) L86D CD 1 A_JumpIfNoAmmo("FireEmptyAim") L86D A 0 A_JumpIfInventory("L86Ammo",1,2) L86D E 1 A_ReFire goto InHand L86D A 0 A_JumpIfNoAmmo(2) L86D A 0 A_ReFire goto InHand L86D A 0 //A_GiveInventory("L86Empty",1) //Go to reload goto Reload L86D C 1 A_JumpIfNoAmmo("FireEmptyAim") L86D A 0 A_TakeInventory("L86Counter",random(1,3)) goto FireAim+9 FireEmptyAim: L86D E 1 L86C F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: L86A H 0 A_JumpIfInventory("Aiming",1,"HoldAim") L86A H 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") L86A H 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: L86C F 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") L86C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") L86C A 0 A_ZoomFactor(1.2) L86C ABCDEF 3 L86C D 0 A_GiveInventory("Aiming",1) L86C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: L86C D 0 A_ZoomFactor(1.0) L86C A 0 A_TakeInventory("Aiming",1) L86C A 0 ACS_ExecuteAlways(602,0,0,0,0) L86C FEDCBA 3 goto InHand AltFire_QD: //Aim with QuickDraw L86C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") L86C A 0 A_ZoomFactor(1.2) L86C ABCDEF 1 goto Aiming AltFire2_QD: L86C D 0 A_ZoomFactor(1.0) L86C A 0 A_TakeInventory("Aiming",1) L86C A 0 ACS_ExecuteAlways(602,0,0,0,0) L86C FEDCBA 1 goto InHand ReloadStartAim: L86C F 0 A_ZoomFactor(1.0) L86C FEDCBA 2 L86C A 0 A_TakeInventory("Aiming",1) L86C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("L86Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") L86E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") L86E A 0 A_PlaySoundEx("l86/reload1","Weapon") L86E A 0 A_WeaponReady(WRF_NOFIRE) L86E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E B 0 A_WeaponReady(WRF_NOFIRE) L86E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times L86E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E D 0 A_WeaponReady(WRF_NOFIRE) L86E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E E 0 A_PlaySoundEx("l86/reload2","Weapon") L86E E 0 A_WeaponReady(WRF_NOFIRE) L86E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E F 0 A_WeaponReady(WRF_NOFIRE) L86E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E G 0 A_WeaponReady(WRF_NOFIRE) L86E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E H 0 A_WeaponReady(WRF_NOFIRE) L86E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E I 0 A_WeaponReady(WRF_NOFIRE) L86E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E J 0 A_WeaponReady(WRF_NOFIRE) L86E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E K 0 A_WeaponReady(WRF_NOFIRE) L86E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E L 0 A_WeaponReady(WRF_NOFIRE) L86E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E M 0 A_WeaponReady(WRF_NOFIRE) L86E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E N 0 A_WeaponReady(WRF_NOFIRE) L86E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E O 0 A_PlaySoundEx("l86/reload3","Weapon") L86E O 0 A_WeaponReady(WRF_NOFIRE) L86E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E P 0 A_WeaponReady(WRF_NOFIRE) L86E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E Q 0 A_PlaySoundEx("l86/reload4","SoundSlot5") L86E Q 0 A_WeaponReady(WRF_NOFIRE) L86E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E R 0 A_WeaponReady(WRF_NOFIRE) L86E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E S 0 A_WeaponReady(WRF_NOFIRE) L86E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("L86Clip",1) TNT1 A 0 A_TakeInventory("L86Ammo",1) TNT1 A 0 A_JumpIfInventory("L86Clip",100,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("L86Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) L86E T 0 A_PlaySoundEx("l86/reload5","SoundSlot5") L86E T 0 A_WeaponReady(WRF_NOFIRE) L86E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E U 0 A_WeaponReady(WRF_NOFIRE) L86E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E V 0 A_WeaponReady(WRF_NOFIRE) L86E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E W 0 A_WeaponReady(WRF_NOFIRE) L86E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E X 0 A_WeaponReady(WRF_NOFIRE) L86E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") L86E Y 0 A_WeaponReady(WRF_NOFIRE) L86E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon Flash: TNT1 A 0 A_Jump(128,"Flash2") TNT1 A 0 A_PlaySoundEx("L86/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("L86/dfire1","SoundSlot6") stop Flash2: TNT1 A 0 A_PlaySoundEx("L86/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("L86/dfire2","SoundSlot6") stop GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor MK46Pickup : CustomInventory { inventory.pickupmessage "MK46" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.8 States { Spawn: GUNP G 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MK46",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,9,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("MK46Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("MK46Ammo",50) stop FailPickup: GUNP G 1 fail FailPickup2: GUNP G 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor MK46Pickup2 : MK46Pickup { inventory.respawntics 1050 States { Spawn: GUNP G -1 stop } } actor MK46PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("MK46Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor MK46Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 100 inventory.maxamount 300 ammo.backpackamount 100 ammo.backpackmaxamount 500 +IGNORESKILL } actor MK46Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 100 ammo.backpackamount 0 ammo.backpackmaxamount 100 +IGNORESKILL } actor MK46Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash3", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("mk46/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("mk46/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("mk46/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("mk46/dfire2","SoundSlot6") stop } } actor MK46Bullet : HHBulletPuff { damagetype "MK46" } actor MK46Counter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "MK46" : RGUWeapon { obituary "\cf%k \cc>> \cqMK46 \cc>> \cf%o" inventory.pickupmessage "MK46" weapon.selectionorder 17 weapon.ammotype "MK46Clip" weapon.ammouse 1 weapon.ammogive 100 weapon.ammotype2 "MK46Ammo" weapon.ammouse2 0 weapon.ammogive2 100 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("MK46Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",5) //Determines player speed - 5 means slowest speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") MK4A A 4 A_PlayWeaponSound("weapon/selectlmg") MK4A BCDEFGH 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state MK4A F 0 A_JumpIfNoAmmo("Reload") MK4A F 0 A_JumpIfInventory("Aiming",1,"Aiming") MK4A F 0 A_JumpIfInventory("Reloading",1,"Reload") MK4A F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MK4A F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) MK4A H 1 A_WeaponReady loop Aiming: MK4C F 0 A_JumpIfInventory("Reloading",1,"Reload") MK4C F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MK4C F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4C F 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") MK4G ABCDEF 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: MK4B A 0 A_GiveInventory("MK46Counter",1) MK4A F 0 A_JumpIfInventory("Aiming",1,"FireAim") MK4A F 0 A_JumpIfNoAmmo("ReloadStart") MK4B A 0 A_FireCustomMissile("MK46Puff",0,0,8,1) //Fire effect and sound MK4B A 1 BRIGHT A_FireBullets (10.5, 10.5, -1, 9, "MK46Bullet", 1, 6000) MK4B B 0 ACS_ExecuteAlways(600,0,600,600,9) //Recoil script - mode 8, which is unpredictable recoil MK4B B 1 BRIGHT A_GunFlash MK4B A 0 A_JumpIfInventory("MK46Counter",1,8) //This makes the gun shoot that lil bit extra faster, but not too fast MK4B CD 1 A_JumpIfNoAmmo("FireEmpty") MK4B A 0 A_JumpIfInventory("MK46Ammo",1,2) MK4B E 1 A_ReFire goto InHand MK4B A 0 A_JumpIfNoAmmo(2) MK4B A 0 A_ReFire goto InHand MK4B A 0 //A_GiveInventory("SCARLEmpty",1) //Go to reload goto Reload MK4B C 1 A_JumpIfNoAmmo("FireEmpty") MK4B A 0 A_TakeInventory("MK46Counter",random(1,2)) goto Fire+10 FireEmpty: MK4B E 1 MK4A H 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: MK4D A 0 A_GiveInventory("MK46Counter",1) MK4C D 0 A_JumpIfNoAmmo("ReloadStart") MK4D A 0 A_FireCustomMissile("MK46Puff",0,0,0,4) //Fire effect and sound MK4D A 1 BRIGHT A_FireBullets (1.0, 1.0, -1, 9, "MK46Bullet", 1, 6000) MK4D B 0 ACS_ExecuteAlways(600,0,600,600,9) //Recoil script - 600 recoil, revert aim MK4D B 1 BRIGHT A_GunFlash MK4D A 0 A_JumpIfInventory("MK46Counter",1,8) MK4D CD 1 A_JumpIfNoAmmo("FireEmptyAim") MK4D A 0 A_JumpIfInventory("MK46Ammo",1,2) MK4D E 1 A_ReFire goto InHand MK4D A 0 A_JumpIfNoAmmo(2) MK4D A 0 A_ReFire goto InHand MK4D A 0 //A_GiveInventory("MK46Empty",1) //Go to reload goto Reload MK4D C 1 A_JumpIfNoAmmo("FireEmptyAim") MK4D A 0 A_TakeInventory("MK46Counter",random(1,2)) goto FireAim+9 FireEmptyAim: MK4D E 1 MK4C F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: MK4A H 0 A_JumpIfInventory("Aiming",1,"HoldAim") MK4A H 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") MK4A H 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: MK4C F 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") MK4C A 0 A_JumpIfInventory("Aiming",1,"AltFire2") MK4C A 0 A_ZoomFactor(1.2) MK4C ABCDEF 3 MK4C D 0 A_GiveInventory("Aiming",1) MK4C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: MK4C D 0 A_ZoomFactor(1.0) MK4C A 0 A_TakeInventory("Aiming",1) MK4C A 0 ACS_ExecuteAlways(602,0,0,0,0) MK4C FEDCBA 3 goto InHand AltFire_QD: //Aim with QuickDraw MK4C A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") MK4C A 0 A_ZoomFactor(1.2) MK4C ABCDEF 1 MK4C D 0 A_GiveInventory("Aiming",1) MK4C D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: MK4C D 0 A_ZoomFactor(1.0) MK4C A 0 A_TakeInventory("Aiming",1) MK4C A 0 ACS_ExecuteAlways(602,0,0,0,0) MK4C FEDCBA 1 goto InHand ReloadStartAim: MK4C F 0 A_ZoomFactor(1.0) MK4C FEDCBA 2 MK4C A 0 A_TakeInventory("Aiming",1) MK4C A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("MK46Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") MK4E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") MK4E A 0 A_WeaponReady(WRF_NOFIRE) MK4E A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E B 0 A_PlaySoundEx("mk46/reload1","SoundSlot5") MK4E B 0 A_WeaponReady(WRF_NOFIRE) MK4E B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times MK4E C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E D 0 A_WeaponReady(WRF_NOFIRE) MK4E D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E E 0 A_WeaponReady(WRF_NOFIRE) MK4E E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E F 0 A_WeaponReady(WRF_NOFIRE) MK4E F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E G 0 A_PlaySoundEx("mk46/reload2","SoundSlot5") MK4E G 0 A_WeaponReady(WRF_NOFIRE) MK4E G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E H 0 A_WeaponReady(WRF_NOFIRE) MK4E H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E I 0 A_WeaponReady(WRF_NOFIRE) MK4E I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E J 0 A_WeaponReady(WRF_NOFIRE) MK4E J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E K 0 A_PlaySoundEx("mk46/reload3","SoundSlot5") MK4E K 0 A_WeaponReady(WRF_NOFIRE) MK4E K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E L 0 A_WeaponReady(WRF_NOFIRE) MK4E L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E M 0 A_PlaySoundEx("mk46/reload4","SoundSlot5") MK4E M 0 A_WeaponReady(WRF_NOFIRE) MK4E M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E N 0 A_WeaponReady(WRF_NOFIRE) MK4E N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E O 0 A_WeaponReady(WRF_NOFIRE) MK4E O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E P 0 A_WeaponReady(WRF_NOFIRE) MK4E P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E Q 0 A_WeaponReady(WRF_NOFIRE) MK4E Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E R 0 A_PlaySoundEx("mk46/reload5","SoundSlot5") MK4E R 0 A_WeaponReady(WRF_NOFIRE) MK4E R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E S 0 A_WeaponReady(WRF_NOFIRE) MK4E S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E T 0 A_WeaponReady(WRF_NOFIRE) MK4E T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E U 0 A_WeaponReady(WRF_NOFIRE) MK4E U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E V 0 A_WeaponReady(WRF_NOFIRE) MK4E V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E W 0 A_WeaponReady(WRF_NOFIRE) MK4E W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E X 0 A_WeaponReady(WRF_NOFIRE) MK4E X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E Y 0 A_WeaponReady(WRF_NOFIRE) MK4E Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4E Z 0 A_PlaySoundEx("mk46/reload6","SoundSlot5") MK4E Z 0 A_WeaponReady(WRF_NOFIRE) MK4E Z 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F A 0 A_WeaponReady(WRF_NOFIRE) MK4F A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F B 0 A_WeaponReady(WRF_NOFIRE) MK4F B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F C 0 A_WeaponReady(WRF_NOFIRE) MK4F C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F D 0 A_PlaySoundEx("mk46/reload7","SoundSlot5") MK4F D 0 A_WeaponReady(WRF_NOFIRE) MK4F D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F E 0 A_WeaponReady(WRF_NOFIRE) MK4F E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F F 0 A_WeaponReady(WRF_NOFIRE) MK4F F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F G 0 A_WeaponReady(WRF_NOFIRE) MK4F G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F H 0 A_WeaponReady(WRF_NOFIRE) MK4F H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F I 0 A_WeaponReady(WRF_NOFIRE) MK4F I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F J 0 A_WeaponReady(WRF_NOFIRE) MK4F J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F K 0 A_PlaySoundEx("mk46/reload8","SoundSlot5") MK4F K 0 A_WeaponReady(WRF_NOFIRE) MK4F K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F L 0 A_WeaponReady(WRF_NOFIRE) MK4F L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F M 0 A_WeaponReady(WRF_NOFIRE) MK4F M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F N 0 A_WeaponReady(WRF_NOFIRE) MK4F N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F O 0 A_PlaySoundEx("mk46/reload9","SoundSlot5") MK4F O 0 A_WeaponReady(WRF_NOFIRE) MK4F O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("MK46Clip",1) TNT1 A 0 A_TakeInventory("MK46Ammo",1) TNT1 A 0 A_JumpIfInventory("MK46Clip",100,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("MK46Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) MK4F P 0 A_WeaponReady(WRF_NOFIRE) MK4F P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F Q 0 A_WeaponReady(WRF_NOFIRE) MK4F Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F R 0 A_WeaponReady(WRF_NOFIRE) MK4F R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F S 0 A_WeaponReady(WRF_NOFIRE) MK4F S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F T 0 A_WeaponReady(WRF_NOFIRE) MK4F T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F U 0 A_WeaponReady(WRF_NOFIRE) MK4F U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F V 0 A_WeaponReady(WRF_NOFIRE) MK4F V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F W 0 A_WeaponReady(WRF_NOFIRE) MK4F W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F X 0 A_WeaponReady(WRF_NOFIRE) MK4F X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") MK4F Y 0 A_WeaponReady(WRF_NOFIRE) MK4F Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor PKPPickup : CustomInventory { inventory.pickupmessage "PKP Pecheneg" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.8 States { Spawn: GUNP X 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("PKP Pecheneg",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,24,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("PKPAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("PKPAmmo",50) stop FailPickup: GUNP X 1 fail FailPickup2: GUNP X 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor PKPPickup2 : PKPPickup { inventory.respawntics 1050 States { Spawn: GUNP X -1 stop } } actor PKPPickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("PKPPickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor PKPAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 100 inventory.maxamount 300 ammo.backpackamount 100 ammo.backpackmaxamount 500 +IGNORESKILL } actor PKPClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 100 ammo.backpackamount 0 ammo.backpackmaxamount 100 +IGNORESKILL } actor PKPPuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("WeaponSmokePuff_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash3", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(170,"Spawn2","Spawn3") TNT1 A 0 A_PlaySoundEx("pkpp/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("pkpp/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("pkpp/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("pkpp/dfire2","SoundSlot6") stop Spawn3: TNT1 A 0 A_PlaySoundEx("pkpp/fire3","SoundSlot5") TNT1 A 5 A_PlaySoundEx("pkpp/dfire3","SoundSlot6") stop } } actor PKPBullet : HHBulletPuff { damagetype "PKP" } actor PKPCounter : Inventory { inventory.amount 0 inventory.maxamount 3 } actor "PKP Pecheneg" : RGUWeapon { obituary "\cf%k \cc>> \cqPKP Pecheneg \cc>> \cf%o" inventory.pickupmessage "PKP Pecheneg" weapon.selectionorder 17 weapon.ammotype "PKPClip" weapon.ammouse 1 weapon.ammogive 100 weapon.ammotype2 "PKPAmmo" weapon.ammouse2 0 weapon.ammogive2 100 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("PKPPickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",5) //Determines player speed - 5 means slowest speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") PKPA A 4 A_PlayWeaponSound("weapon/selectlmg") PKPA BCDEFGH 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state PKPA F 0 A_JumpIfNoAmmo("Reload") PKPA F 0 A_JumpIfInventory("Aiming",1,"Aiming") PKPA F 0 A_JumpIfInventory("Reloading",1,"Reload") PKPA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PKPA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) PKPA H 1 A_WeaponReady loop Aiming: PKPC F 0 A_JumpIfInventory("Reloading",1,"Reload") PKPC F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PKPC F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPC F 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") PKPG A 4 A_PlayWeaponSound("pkpp/deselect") PKPG BCDEF 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: PKPB A 0 A_GiveInventory("PKPCounter",1) PKPA F 0 A_JumpIfInventory("Aiming",1,"FireAim") PKPA F 0 A_JumpIfNoAmmo("ReloadStart") PKPB A 0 A_FireCustomMissile("PKPPuff",0,0,8,1) //Fire effect and sound PKPB A 1 BRIGHT A_FireBullets (10.5, 10.5, -1, random(9,10), "PKPBullet", 1, 6000) PKPB B 0 ACS_ExecuteAlways(600,0,600,600,9) //Recoil script - mode 8, which is unpredictable recoil PKPB B 1 BRIGHT A_GunFlash PKPB A 0 A_JumpIfInventory("PKPCounter",3,8) //This makes the gun shoot that lil bit extra faster, but not too fast PKPB CD 1 A_JumpIfNoAmmo("FireEmpty") PKPB A 0 A_JumpIfInventory("PKPAmmo",1,2) PKPB E 1 A_ReFire goto InHand PKPB A 0 A_JumpIfNoAmmo(2) PKPB A 0 A_ReFire goto InHand PKPB A 0 //A_GiveInventory("PKPEmpty",1) //Go to reload goto Reload PKPB C 1 A_JumpIfNoAmmo("FireEmpty") PKPB A 0 A_TakeInventory("PKPCounter",random(2,3)) goto Fire+10 FireEmpty: PKPB E 1 PKPA H 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 FireAim: PKPD A 0 A_GiveInventory("PKPCounter",1) PKPD D 0 A_JumpIfNoAmmo("ReloadStart") PKPD A 0 A_FireCustomMissile("PKPPuff",0,0,0,4) //Fire effect and sound PKPD A 1 BRIGHT A_FireBullets (1.0, 1.0, -1, 9, "PKPBullet", 1, 6000) PKPD B 0 ACS_ExecuteAlways(600,0,600,600,9) //Recoil script - 600 recoil, revert aim PKPD B 1 BRIGHT A_GunFlash PKPD A 0 A_JumpIfInventory("PKPCounter",3,8) PKPD CD 1 A_JumpIfNoAmmo("FireEmptyAim") PKPD A 0 A_JumpIfInventory("PKPAmmo",1,2) PKPD E 1 A_ReFire goto InHand PKPD A 0 A_JumpIfNoAmmo(2) PKPD A 0 A_ReFire goto InHand PKPD A 0 //A_GiveInventory("PKPEmpty",1) //Go to reload goto Reload PKPD C 1 A_JumpIfNoAmmo("FireEmptyAim") PKPD A 0 A_TakeInventory("PKPCounter",random(2,3)) goto FireAim+9 FireEmptyAim: PKPD E 1 PKPC F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+12 Hold: PKPA H 0 A_JumpIfInventory("Aiming",1,"HoldAim") PKPA H 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") PKPA H 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire HoldAim: PKPC F 0 goto FireAim AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") PKPC A 0 A_JumpIfInventory("Aiming",1,"AltFire2") PKPC A 0 A_ZoomFactor(1.2) PKPC ABCDEF 3 PKPC D 0 A_GiveInventory("Aiming",1) PKPC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2: PKPC D 0 A_ZoomFactor(1.0) PKPC A 0 A_TakeInventory("Aiming",1) PKPC A 0 ACS_ExecuteAlways(602,0,0,0,0) PKPC FEDCBA 3 goto InHand AltFire_QD: //Aim with QuickDraw PKPC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") PKPC A 0 A_ZoomFactor(1.2) PKPC ABCDEF 1 PKPC D 0 A_GiveInventory("Aiming",1) PKPC D 0 ACS_ExecuteAlways(602,0,0,0,0) goto Aiming AltFire2_QD: PKPC D 0 A_ZoomFactor(1.0) PKPC A 0 A_TakeInventory("Aiming",1) PKPC A 0 ACS_ExecuteAlways(602,0,0,0,0) PKPC FEDCBA 1 goto InHand ReloadStartAim: PKPC F 0 A_ZoomFactor(1.0) PKPC FEDCBA 2 PKPC A 0 A_TakeInventory("Aiming",1) PKPC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("PKPAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") PKPE A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") PKPE A 0 A_WeaponReady(WRF_NOFIRE) PKPE A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE B 0 A_PlaySoundEx("pkpp/reload1","SoundSlot5") PKPE B 0 A_WeaponReady(WRF_NOFIRE) PKPE B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times PKPE C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE D 0 A_WeaponReady(WRF_NOFIRE) PKPE D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE E 0 A_WeaponReady(WRF_NOFIRE) PKPE E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE F 0 A_WeaponReady(WRF_NOFIRE) PKPE F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE G 0 A_WeaponReady(WRF_NOFIRE) PKPE G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE H 0 A_WeaponReady(WRF_NOFIRE) PKPE H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE I 0 A_PlaySoundEx("pkpp/reload2","SoundSlot5") PKPE I 0 A_WeaponReady(WRF_NOFIRE) PKPE I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE J 0 A_WeaponReady(WRF_NOFIRE) PKPE J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE K 0 A_WeaponReady(WRF_NOFIRE) PKPE K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE L 0 A_WeaponReady(WRF_NOFIRE) PKPE L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE M 0 A_WeaponReady(WRF_NOFIRE) PKPE M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE N 0 A_PlaySoundEx("pkpp/reload3","SoundSlot5") PKPE N 0 A_WeaponReady(WRF_NOFIRE) PKPE N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE O 0 A_WeaponReady(WRF_NOFIRE) PKPE O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE P 0 A_WeaponReady(WRF_NOFIRE) PKPE P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE Q 0 A_WeaponReady(WRF_NOFIRE) PKPE Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE R 0 A_WeaponReady(WRF_NOFIRE) PKPE R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE S 0 A_WeaponReady(WRF_NOFIRE) PKPE S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE T 0 A_WeaponReady(WRF_NOFIRE) PKPE T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE U 0 A_WeaponReady(WRF_NOFIRE) PKPE U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE V 0 A_PlaySoundEx("pkpp/reload4","SoundSlot5") PKPE V 0 A_WeaponReady(WRF_NOFIRE) PKPE V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE W 0 A_WeaponReady(WRF_NOFIRE) PKPE W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE X 0 A_WeaponReady(WRF_NOFIRE) PKPE X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE Y 0 A_WeaponReady(WRF_NOFIRE) PKPE Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPE Z 0 A_WeaponReady(WRF_NOFIRE) PKPE Z 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF A 0 A_WeaponReady(WRF_NOFIRE) PKPF A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF B 0 A_WeaponReady(WRF_NOFIRE) PKPF B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF C 0 A_WeaponReady(WRF_NOFIRE) PKPF C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF D 0 A_PlaySoundEx("pkpp/reload5","SoundSlot5") PKPF D 0 A_WeaponReady(WRF_NOFIRE) PKPF D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF E 0 A_WeaponReady(WRF_NOFIRE) PKPF E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF F 0 A_WeaponReady(WRF_NOFIRE) PKPF F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF G 0 A_WeaponReady(WRF_NOFIRE) PKPF G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF H 0 A_WeaponReady(WRF_NOFIRE) PKPF H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF I 0 A_WeaponReady(WRF_NOFIRE) PKPF I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF J 0 A_PlaySoundEx("pkpp/reload6","SoundSlot5") PKPF J 0 A_WeaponReady(WRF_NOFIRE) PKPF J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF K 0 A_WeaponReady(WRF_NOFIRE) PKPF K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF L 0 A_WeaponReady(WRF_NOFIRE) PKPF L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF M 0 A_WeaponReady(WRF_NOFIRE) PKPF M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF N 0 A_PlaySoundEx("pkpp/reload7","SoundSlot5") PKPF N 0 A_WeaponReady(WRF_NOFIRE) PKPF N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF O 0 A_WeaponReady(WRF_NOFIRE) PKPF O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF P 0 A_WeaponReady(WRF_NOFIRE) PKPF P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF Q 0 A_WeaponReady(WRF_NOFIRE) PKPF Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF R 0 A_PlaySoundEx("pkpp/reload8","SoundSlot5") PKPF R 0 A_WeaponReady(WRF_NOFIRE) PKPF R 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("PKPClip",1) TNT1 A 0 A_TakeInventory("PKPAmmo",1) TNT1 A 0 A_JumpIfInventory("PKPClip",100,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("PKPAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) PKPF S 0 A_WeaponReady(WRF_NOFIRE) PKPF S 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF T 0 A_WeaponReady(WRF_NOFIRE) PKPF T 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF U 0 A_WeaponReady(WRF_NOFIRE) PKPF U 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF V 0 A_PlaySoundEx("weapon/selectlmg","SoundSlot5") PKPF V 0 A_WeaponReady(WRF_NOFIRE) PKPF V 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF W 0 A_WeaponReady(WRF_NOFIRE) PKPF W 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF X 0 A_WeaponReady(WRF_NOFIRE) PKPF X 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF Y 0 A_WeaponReady(WRF_NOFIRE) PKPF Y 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPF Z 0 A_WeaponReady(WRF_NOFIRE) PKPF Z 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") PKPH A 0 A_WeaponReady(WRF_NOFIRE) PKPH A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor M320Pickup : CustomInventory { inventory.pickupmessage "M320 GLM" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.25 States { Spawn: GUNP F 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M320 GLM",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,6,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("M320Ammo",0,"FailPickup") GUNP A 0 A_GiveInventory("M320Ammo",1) stop FailPickup: GUNP F 1 fail FailPickup2: GUNP F 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor M320Pickup2 : M320Pickup { inventory.respawntics 1050 States { Spawn: GUNP F -1 stop } } actor M320PickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("M320Pickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor M320Ammo : Ammo { inventory.icon "CLIPA0" inventory.amount 1 inventory.maxamount 4 ammo.backpackamount 1 ammo.backpackmaxamount 8 +IGNORESKILL } actor M320Clip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 1 ammo.backpackamount 0 ammo.backpackmaxamount 1 +IGNORESKILL } actor M320Puff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 AA 0 A_SpawnItemEx("WeaponSmokePuffShotgun_Spawned", 1, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 0 A_Jump(128,"Spawn2") TNT1 A 0 A_PlaySoundEx("m320/fire1","SoundSlot5") TNT1 A 5 A_PlaySoundEx("m320/dfire1","SoundSlot6") stop Spawn2: TNT1 A 0 A_PlaySoundEx("m320/fire2","SoundSlot5") TNT1 A 5 A_PlaySoundEx("m320/dfire2","SoundSlot6") stop } } actor M320Firing : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "M320 GLM" : RGUWeapon { obituary "\cf%k \cc>> \cfM320 GLM \cc>> \cf%o" inventory.pickupmessage "M320 GLM" weapon.selectionorder 21 weapon.ammotype "M320Clip" weapon.ammouse 1 weapon.ammogive 1 weapon.ammotype2 "M320Ammo" weapon.ammouse2 0 weapon.ammogive2 1 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("M320Pickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop Ready: TNT1 A 0 A_GiveInventory("Weight",3) //Determines player speed - 3 means slow speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") GLMA A 4 A_PlayWeaponSound("mp412/select") GLMA BCDEF 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state GLMA F 0 A_JumpIfNoAmmo("Reload") GLMA F 0 A_JumpIfInventory("Aiming",1,"Aiming") GLMA F 0 A_JumpIfInventory("Reloading",1,"Reload") GLMA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") GLMA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) GLMA F 1 A_WeaponReady loop Aiming: GLMC F 0 A_JumpIfInventory("Reloading",1,"Reload") GLMC F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") GLMC F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLMC F 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") GLMF ABCDE 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: GLMD F 0 A_JumpIfInventory("Aiming",1,2) //Gun automatically goes into aim when firing from hip GLMD A 0 A_GiveInventory("M320Firing",1) //Give firing check then go to aiming goto AltFire GLMC F 1 A_JumpIfNoAmmo("ReloadStart") GLMD A 0 A_FireCustomMissile("M320Puff",0,0,0,4) //Fire effect and sound GLMD A 0 BRIGHT A_FireCustomMissile("M320Shell",0,1,0,6) GLMD B 0 ACS_ExecuteAlways(600,0,1200,1200,0) //Recoil script - 600 recoil, revert aim GLMD A 2 BRIGHT A_GunFlash GLMD B 2 GLMD CDEFGH 2 GLMD A 0 A_TakeInventory("M320Firing",1) GLMD A 0 A_JumpIfInventory("M320Ammo",1,2) GLMD A 0 A_ReFire goto InHand GLMD A 0 A_JumpIfNoAmmo("ReloadStart") GLMD A 0 A_ReFire goto InHand FireEmpty: GLMD CDEFGHIJ 1 GLMD F 1 A_PlayWeaponSound("weapon/dryfire") goto Fire+15 Hold: GLMA F 3 A_JumpIfInventory("Aiming",1,"HoldAim") GLMA F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") GLMA F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLMA F 0 A_JumpIfInventory("IsBot",1,"Fire") GLMA F 1 A_ReFire goto InHand HoldAim: GLMC F 3 GLMC F 0 A_JumpIfInventory("IsBot",1,"Fire") GLMC F 1 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") GLMC A 0 A_JumpIfInventory("Aiming",1,"AltFire2") GLMC A 0 A_ZoomFactor(1.1) //No FOV change for handguns GLMC ABCDE 3 GLMC F 0 A_GiveInventory("Aiming",1) GLMC F 0 ACS_ExecuteAlways(602,0,0,0,0) GLMC F 3 A_JumpIfInventory("M320Firing",1,1) goto Aiming GLMC F 0 goto Fire AltFire2: GLMC D 0 A_ZoomFactor(1.0) GLMC FEDCBA 3 GLMC A 0 A_TakeInventory("Aiming",1) GLMC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw GLMC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") GLMC A 0 A_ZoomFactor(1.1) //No FOV change for handguns GLMC ABCDE 1 GLMC F 0 A_GiveInventory("Aiming",1) GLMC F 0 ACS_ExecuteAlways(602,0,0,0,0) GLMC F 1 A_JumpIfInventory("M320Firing",1,1) goto Aiming GLMC F 0 goto Fire AltFire2_QD: GLMC D 0 A_ZoomFactor(1.0) GLMC FEDCBA 1 GLMC A 0 A_TakeInventory("Aiming",1) GLMC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: GLME A 1 A_ZoomFactor(1.0) // GLMC FEDCBA 3 GLMC A 0 A_TakeInventory("Aiming",1) GLMC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("M320Ammo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") GLME A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") GLME A 0 A_PlaySoundEx("m320/reload1","SoundSlot5") GLME A 0 A_WeaponReady(WRF_NOFIRE) GLME A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME B 0 A_WeaponReady(WRF_NOFIRE) GLME B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME C 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times GLME C 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME D 0 A_PlaySoundEx("m320/reload2","SoundSlot6") GLME D 0 A_WeaponReady(WRF_NOFIRE) GLME D 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME E 0 A_WeaponReady(WRF_NOFIRE) GLME E 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME F 0 A_WeaponReady(WRF_NOFIRE) GLME F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME G 0 A_WeaponReady(WRF_NOFIRE) GLME G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME H 0 A_WeaponReady(WRF_NOFIRE) GLME H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME I 0 A_WeaponReady(WRF_NOFIRE) GLME I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME J 0 A_PlaySoundEx("m320/reload3","SoundSlot5") GLME J 0 A_WeaponReady(WRF_NOFIRE) GLME J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME K 0 A_WeaponReady(WRF_NOFIRE) GLME K 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("M320Clip",1) TNT1 A 0 A_TakeInventory("M320Ammo",1) TNT1 A 0 A_JumpIfInventory("M320Clip",1,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("M320Ammo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) GLME L 0 A_WeaponReady(WRF_NOFIRE) GLME L 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME M 0 A_PlaySoundEx("m320/reload4","SoundSlot5") GLME M 0 A_WeaponReady(WRF_NOFIRE) GLME M 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME N 0 A_WeaponReady(WRF_NOFIRE) GLME N 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME O 0 A_WeaponReady(WRF_NOFIRE) GLME O 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME P 0 A_WeaponReady(WRF_NOFIRE) GLME P 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") GLME Q 0 A_WeaponReady(WRF_NOFIRE) GLME Q 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto InHand KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor M320Shell { obituary "\cf%k \cc>> \cfM320 GLM \cnimpact \cc>> \cf%o" radius 5 height 5 speed 60 damage (10) deathsound "generic/fleshhit" PROJECTILE -NOGRAVITY +RANDOMIZE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER -NOTELEPORT Scale 0.04 gravity 0.3 bouncefactor 0.5 DamageType "M320" +BLOODSPLATTER states { Spawn: G69X AAAA 1 A_SpawnItemEx("FlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) G69X A 0 A_GiveInventory("M203Armed",1) Loop XDeath: TNT1 A 0 TNT1 A 0 A_GiveToTarget("HitIndicator",1) Death: TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed") TNT1 A 0 A_Explode(250,16,0) TNT1 A 20 A_SpawnItemEx("M203ShellUnarmedDrop",0,0,0,-2,0,2,random(-8,8),0,0) stop DeathArmed: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("ExplosionMain",0,0,1,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("M320ShellExplosion",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 A 0 A_PlaySoundEx("grenade/explosion","SoundSlot5") TNT1 A 15 Radius_Quake(9,15,0,8,0) TNT1 A 15 Radius_Quake(5,15,0,16,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 15 Radius_Quake(1,15,0,125,0) stop } } actor M320ShellExplosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cfM320 GLM \cc>> \cf%o" DamageType "Explosion" states { Spawn: TNT1 A 0 TNT1 A 0 A_Explode(120,152,0) TNT1 A 5 A_Explode(50,72) stop } } actor JavelinPickup : CustomInventory { inventory.pickupmessage "Javelin" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.25 States { Spawn: GUNP M 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("Javelin",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,13,0,0) stop AmmoPickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("JavelinAmmo",0,"FailPickup") GUNP A 0 A_GiveInventory("JavelinAmmo",1) stop FailPickup: GUNP M 1 fail FailPickup2: GUNP M 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor JavelinPickup2 : JavelinPickup { inventory.respawntics 1050 States { Spawn: GUNP M -1 stop } } actor JavelinPickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("JavelinPickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor JavelinAmmo : Ammo { inventory.icon "CLIPA0" inventory.amount 1 inventory.maxamount 1 ammo.backpackamount 1 ammo.backpackmaxamount 2 +IGNORESKILL } actor JavelinClip : Ammo { inventory.icon "CLIPA0" inventory.amount 0 inventory.maxamount 1 ammo.backpackamount 0 ammo.backpackmaxamount 1 +IGNORESKILL } actor JavelinPuff { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 28 Damage 0 states { Spawn: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 AAA 0 A_SpawnItemEx("JavelinExplosionSmokePuff", random(-8,8), random(-8,8), random(-8,8), 0, 0, 0, 0, 128, 0) TNT1 A 1 A_SpawnItemEx("MuzzleFlash2", 0, 0, 0, 0, 0, 0, 0, 0, 0) TNT1 A 5 A_PlaySoundEx("javelin/fire","SoundSlot6") stop } } actor JavelinSelected : Inventory { inventory.amount 0 inventory.maxamount 1 } actor JavelinFiring : Inventory { inventory.amount 0 inventory.maxamount 1 } actor JavelinTooClose : Inventory { inventory.amount 0 inventory.maxamount 1 } actor "Javelin" : RGUWeapon { obituary "\cf%k \cc>> \cfJavelin \cc>> \cf%o" inventory.pickupmessage "Javelin" weapon.selectionorder 21 weapon.ammotype "JavelinClip" weapon.ammouse 1 weapon.ammogive 1 weapon.ammotype2 "JavelinAmmo" weapon.ammouse2 0 weapon.ammogive2 0 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("JavelinPickup") stop Select: TNT1 A 1 A_Raise TNT1 AA 0 A_Raise loop ReadyFirst: JAVE ABCDE 5 A_WeaponReady(WRF_NOFIRE) JAVE F 0 A_PlayWeaponSound("javelin/open") JAVE F 5 A_GiveInventory("JavelinSelected",1) JAVE GHIJ 5 A_WeaponReady(WRF_NOFIRE) JAVE K 5 A_PlayWeaponSound("javelin/select") JAVE LMN 5 A_WeaponReady(WRF_NOFIRE) goto InHand Ready: TNT1 A 0 A_GiveInventory("Weight",5) //Determines player speed - 5 means slowest speed TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") TNT1 A 0 A_JumpIfInventory("JavelinSelected",1,1) goto ReadyFirst JAVA A 4 A_PlayWeaponSound("javelin/select") JAVA BCDEFGHIJK 4 A_WeaponReady(WRF_NOFIRE) //goto InHand -- intentional drop to next state InHand: //Ready state JAVA K 0 A_JumpIfNoAmmo("Reload") JAVA K 0 A_JumpIfInventory("Aiming",1,"Aiming") JAVA K 0 A_JumpIfInventory("Reloading",1,"Reload") JAVA K 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") JAVA K 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) JAVA K 1 A_WeaponReady loop Aiming: JAVC L 0 A_JumpIfInventory("Reloading",1,"Reload") JAVC L 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") JAVC L 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") JAVC L 0 A_FireCustomMissile("JavelinRangeCheck",0,0,0,0) //Check range of player from the target JAVC LL 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Determines player speed - 1 means normal speed TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") JAVF B 4 A_PlayWeaponSound("javelin/down") JAVF CDEFGHIJ 4 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Fire: GLMD F 0 A_JumpIfInventory("Aiming",1,2) //Gun automatically goes into aim when firing from hip GLMD A 0 A_GiveInventory("JavelinFiring",1) //Give firing check then go to aiming goto AltFire JAVC L 5 A_JumpIfInventory("BreathWait",2,"FireReal") //this checks if the gun has locked on goto InHand FireReal: JAVC L 1 A_JumpIfInventory("JavelinTooClose",1,"FailFire") JAVC L 1 A_JumpIfNoAmmo("ReloadStart") JAVC L 0 A_FireCustomMissile("JavelinPuff",0,0,0,4) //Fire effect and sound JAVC L 0 A_FireCustomMissile("JavelinShell",0,1,0,6,0,25) JAVC L 0 A_FireCustomMissile("JavelinMarker",0,0,0,0) JAVC L 0 ACS_ExecuteAlways(600,0,1200,1200,0) //Recoil script - 600 recoil, revert aim JAVC L 2 BRIGHT A_GunFlash JAVC L 15 JAVC A 0 A_TakeInventory("JavelinFiring",1) JAVC A 0 A_JumpIfInventory("JavelinAmmo",1,2) JAVC A 0 A_ReFire goto InHand GLMD A 0 A_JumpIfNoAmmo("ReloadStart") GLMD A 0 A_ReFire goto InHand FailFire: JAVC L 25 goto InHand Hold: JAVA K 3 A_JumpIfInventory("Aiming",1,"HoldAim") JAVA K 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") JAVA K 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") JAVA K 0 A_JumpIfInventory("IsBot",1,"Fire") JAVA K 1 A_ReFire goto InHand HoldAim: JAVC LLL 1 JAVC F 0 A_JumpIfInventory("IsBot",1,"Fire") JAVC N 0 A_ReFire goto Aiming AltFire: //Aim TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw",1,"AltFire_QD") JAVC A 0 A_JumpIfInventory("Aiming",1,"AltFire2") JAVC ABCDEFGHIJ 3 JAVC A 0 A_ZoomFactor(1.1) JAVC F 0 A_GiveInventory("Aiming",1) JAVC F 0 ACS_ExecuteAlways(602,0,0,0,0) SCOP D 0 ACS_ExecuteAlways(648,0,0,0,0) JAVC K 3 A_JumpIfInventory("JavelinFiring",1,1) goto Aiming JAVC F 0 goto Fire AltFire2: JAVC D 0 A_ZoomFactor(1.0) JAVC A 0 A_TakeInventory("Aiming",1) JAVC KIHGFEDCBA 3 JAVC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand AltFire_QD: //Aim with QuickDraw JAVC A 0 A_JumpIfInventory("Aiming",1,"AltFire2_QD") JAVC A 0 A_ZoomFactor(1.1) //No FOV change for handguns JAVC ABCDEFGHIJ 1 JAVC F 0 A_GiveInventory("Aiming",1) JAVC F 0 ACS_ExecuteAlways(602,0,0,0,0) SCOP D 0 ACS_ExecuteAlways(648,0,0,0,0) JAVC F 1 A_JumpIfInventory("JavelinFiring",1,1) goto Aiming JAVC F 0 goto Fire AltFire2_QD: JAVC D 0 A_ZoomFactor(1.0) JAVC A 0 A_TakeInventory("Aiming",1) JAVC KIHGFEDCBA 1 JAVC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto InHand ReloadStartAim: JAVC A 1 A_ZoomFactor(1.0) JAVC A 0 A_TakeInventory("Aiming",1) JAVC KIHGFEDCBA 2 JAVC A 0 ACS_ExecuteAlways(602,0,0,0,0) goto ReloadStart+1 Reload: TNT1 A 0 A_JumpIfInventory("JavelinAmmo",1,"ReloadStart") TNT1 A 0 A_TakeInventory("Reloading",1) goto InHand+3 ReloadStart: TNT1 A 0 A_JumpIfInventory("Perk1_SOH",1,"GiveSOHReload") JAVF B 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim") JAVF H 0 A_PlaySoundEx("javelin/down","SoundSlot6") JAVF B 0 A_WeaponReady(WRF_NOFIRE) JAVF B 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") JAVF F 0 A_WeaponReady(WRF_NOFIRE) JAVF F 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") JAVF G 0 A_WeaponReady(WRF_NOFIRE) //This apparent "messy" setup allows for interruption at all times JAVF G 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") JAVF H 0 A_WeaponReady(WRF_NOFIRE) JAVF H 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") JAVF I 0 A_WeaponReady(WRF_NOFIRE) JAVF I 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") JAVF J 0 A_WeaponReady(WRF_NOFIRE) JAVF J 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto ReloadAmmo ReloadAmmo: TNT1 A 0 A_GiveInventory("JavelinClip",1) TNT1 A 0 A_TakeInventory("JavelinAmmo",1) TNT1 A 0 A_JumpIfInventory("JavelinClip",1,"ReloadEnd") TNT1 A 0 A_JumpIfInventory("JavelinAmmo",1,"ReloadAmmo") goto ReloadEnd ReloadEnd: TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_TakeInventory("JavelinSelected",1) TNT1 A 0 A_WeaponReady(WRF_NOFIRE) TNT1 A 5 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_ReFire goto Ready KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") TNT1 A 0 ACS_ExecuteAlways(600,0,900,900,1) //Recoil script KNIF A 1 A_PlaySoundEx("melee/swing","SoundSlot5") KNIF BC 1 KNIF D 1 A_FireCustomMissile("MeleeAttack",0,0,0,0) KNIF EFGHIJ 1 TNT1 A 10 TNT1 A 0 A_TakeInventory("KnifeAttack",1) goto Ready+2 FragGrenade: TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveSOHReload: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto ReloadStart+1 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 } } actor JavelinShell { obituary "\cf%k \cc>> \cfJavelin \cc>> \cf%o" radius 5 height 5 speed 35 damage (10) deathsound "generic/fleshhit" PROJECTILE -NOGRAVITY +RANDOMIZE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER -NOTELEPORT Scale 0.04 gravity 1.25 bouncefactor 0.5 DamageType "Explosion" +BLOODSPLATTER states { Spawn: TNT1 AAAAAAA 1 A_SpawnItemEx("JavelinFlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 0 A_Stop TNT1 A 0 A_NoGravity TNT1 A 5 A_SpawnItemEx("JavelinDummyShooter2",0,0,0,0,0,0,0,0,0) stop SpawnLoop: TNT1 AAAA 1 A_SpawnItemEx("JavelinFlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) Loop XDeath: TNT1 A 0 TNT1 A 0 A_GiveToTarget("HitIndicator",1) Death: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("JavelinShellExplosion",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 A 0 A_PlaySoundEx("javelin/explosion","SoundSlot5") TNT1 A 0 A_PlaySoundEx("javelin/explosion","Weapon") TNT1 AAAAAAAA 0 A_SpawnItemEx("JavelinExplosionMain",random(-64,64),random(-64,64),1,0,0,0,0,0,0) TNT1 A 0 Radius_Quake(9,21,0,16,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),24,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),48,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),72,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),96,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),120,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),144,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),168,0,0,0,0,0,0) TNT1 A 0 Radius_Quake(5,21,0,24,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),192,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),216,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("JavelinExplosionMain",random(-32,32),random(-32,32),240,0,0,0,0,0,0) TNT1 A 12 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 21 Radius_Quake(1,21,0,125,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","Body") TNT1 A 21 Radius_Quake(1,21,0,125,0) stop } } actor JavelinMarker// : FastProjectile { obituary "\cf%k \cc>> \cfJavelin \nmarker \cc>> \cf%o" radius 1 height 1 speed 15 damage (0) deathsound "generic/fleshhit" PROJECTILE +NOEXTREMEDEATH +FORCERADIUSDMG +CANBOUNCEWATER -NOTELEPORT +RIPPER Scale 0.04 bouncefactor 0.5 DamageType "Explosion" states { Spawn: TNT1 A 1 TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(649,0,0,0) == 0, "Destroy") SpawnLoop: TNT1 A 1 //A_PlaySound("javelin/loop",5,1.0,1) Loop Death: TNT1 A 0 TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(649,0,0,0) == 0, "DestroySound") TNT1 A 35 TNT1 A 0 A_PlaySound("javelin/fall",5,1.0,1) TNT1 A 50 A_SpawnItemEx("JavelinDummyShooter",0,0,0,0,0,0,0,0,0) stop DeathReal: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("JavelinShellExplosion",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 A 0 A_PlaySoundEx("javelin/explosion","SoundSlot5") TNT1 A 0 A_PlaySoundEx("javelin/explosion","Weapon") TNT1 AAAAAAAA 0 A_SpawnItemEx("JavelinExplosionMain",random(-64,64),random(-64,64),1,0,0,0,0,0,0) TNT1 A 0 Radius_Quake(9,21,0,16,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),24,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),48,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),72,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),96,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),120,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),144,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),168,0,0,0,0,0,0) TNT1 A 0 Radius_Quake(5,21,0,24,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),192,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),216,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("JavelinExplosionMain",random(-32,32),random(-32,32),240,0,0,0,0,0,0) TNT1 A 12 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 21 Radius_Quake(1,21,0,125,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","Body") TNT1 A 21 Radius_Quake(1,21,0,125,0) stop Destroy: TNT1 A 1 TNT1 A 25 A_PlaySound("generic/fleshhit",5,0.1,0) stop DestroySound: TNT1 A 1 TNT1 A 0 A_PlaySoundEx("javelin/explosion","SoundSlot5") TNT1 A 0 A_PlaySoundEx("javelin/explosion","Weapon") TNT1 A 21 Radius_Quake(9,21,0,16,0) TNT1 A 21 Radius_Quake(5,21,0,24,0) TNT1 A 12 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 21 Radius_Quake(1,21,0,125,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","Body") TNT1 A 21 Radius_Quake(1,21,0,125,0) stop } } actor JavelinDummy { radius 1 height 1 speed 0 damage (0) PROJECTILE +RIPPER states { Spawn: TNT1 AAAA 1 A_SpawnItemEx("JavelinFlightSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) Loop Death: TNT1 A 0 TNT1 A 0 A_AlertMonsters TNT1 A 0 A_SpawnItemEx("JavelinShellExplosion",-1,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("FragGrenadeShock",-1,0,0,0,0,0,0,0,0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-32,32), random(-32,32), random(-32,32), random(-5,5), random(-5,5), random(-1,5), 0, 128, 0) TNT1 A 0 A_PlaySoundEx("javelin/explosion","SoundSlot5") TNT1 A 0 A_PlaySoundEx("javelin/explosion","Weapon") TNT1 AAAAAAAA 0 A_SpawnItemEx("JavelinExplosionMain",random(-64,64),random(-64,64),1,0,0,0,0,0,0) TNT1 A 0 Radius_Quake(9,21,0,16,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),24,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),48,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),72,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),96,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),120,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),144,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),168,0,0,0,0,0,0) TNT1 A 0 Radius_Quake(5,21,0,24,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),192,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("ExplosionMain",random(-32,32),random(-32,32),216,0,0,0,0,0,0) TNT1 A 3 A_SpawnItemEx("JavelinExplosionMain",random(-32,32),random(-32,32),240,0,0,0,0,0,0) TNT1 A 12 A_PlaySoundEx("distant/explosion","SoundSlot6") TNT1 A 21 Radius_Quake(1,21,0,125,0) TNT1 A 0 A_PlaySoundEx("distant/explosion","Body") TNT1 A 21 Radius_Quake(1,21,0,125,0) Death2: TNT1 A 5 stop } } actor JavelinDummyShooter { radius 1 height 1 speed 1 damage (0) PROJECTILE +RIPPER +CEILINGHUGGER states { Spawn: TNT1 A 1 Death: TNT1 A 5 A_SpawnItemEx("JavelinDummy",0,0,-2,0,0,-20,0,SXF_NOCHECKPOSITION,0) stop } } actor JavelinDummyShooter2 { radius 1 height 1 speed 1 damage (0) PROJECTILE +RIPPER states { Spawn: TNT1 A 1 Death: TNT1 A 5 A_SpawnItemEx("JavelinDummy",0,0,2,0,0,20,0,SXF_NOCHECKPOSITION,0) stop } } actor JavelinRangeCheck : FastProjectile { radius 1 height 1 speed 500 damage (0) PROJECTILE +RIPPER states { Spawn: TNT1 A 1 loop Death: TNT1 A 5 A_JumpIfCloser(700,2) TNT1 A 0 A_TakeFromTarget("JavelinTooClose",1) stop TNT1 A 0 A_GiveToTarget("JavelinTooClose",1) stop } } actor JavelinShellExplosion { RenderStyle None -RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 0.7 obituary "\cf%k \cc>> \cfJavelin \cc>> \cf%o" DamageType "Explosion" states { Spawn: TNT1 A 0 TNT1 A 0 A_Explode(300,700) TNT1 A 0 A_Explode(100,256) FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BBBB 0 A_SpawnItemEx("JavelinExplosionSmokePuff",0,0,0,6,0,random(0,random(-4,-1)*0.5),random(0,360),128,0) TNT1 A 2 FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BBBB 0 A_SpawnItemEx("JavelinExplosionSmokePuff",0,0,0,6,0,random(0,random(-4,-1)*0.5),random(0,360),128,0) TNT1 A 2 FLAR BBBB 0 A_SpawnItemEx("StunExplosionSpark",random(-96,96),random(-96,96),random(-96,96),0,0,random(0,random(-4,-1)*0.5),0,128,0) FLAR BBBB 0 A_SpawnItemEx("JavelinExplosionSmokePuff",0,0,0,6,0,random(0,random(-4,-1)*0.5),random(0,360),128,0) TNT1 A 2 stop } } actor JavelinExplosionSmokePuff { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 5.0 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.0625) SMK1 A 0 A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(-8,8),0,0,0.25*random(1,4),0,128,192) stop Spawn2: SMK2 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.0625) SMK1 A 0 A_SpawnItemEx("ExplosionSmokePuff",random(-8,8),random(-8,8),random(-8,8),0,0,0.25*random(1,4),0,128,192) stop Spawn3: SMK3 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.0625) stop Spawn4: SMK4 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.0625) stop } } actor JavelinExplosionMain { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP +NOGRAVITY Scale 1.0 states { Spawn: EXP1 AA 0 A_SpawnItemEx("JavelinExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP1 A 0 A_SpawnItemEx("JavelinExplosionLarge",0,0,0,0,0,0,0,128,0) EXP1 AAAAA 0 A_SpawnItemEx("ExplosionSmokePuff",random(-32,32),random(-32,32),random(1,24),0,0,0.25*random(1,4),0,128,0) EXP1 AB 1 bright EXP1 BB 0 A_SpawnItemEx("JavelinExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP1 CDEF 1 bright EXP1 FF 0 A_SpawnItemEx("JavelinExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP1 GHIJ 1 bright EXP1 A 0 A_SpawnItemEx("JavelinExplosionLarge",0,0,0,0,0,0,0,128,0) EXP3 AB 1 bright EXP3 BB 0 A_SpawnItemEx("JavelinExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP3 CDEF 1 bright EXP3 FF 0 A_SpawnItemEx("JavelinExplosionSmall",random(-48,48),random(-48,48),random(1,48),0.25*random(1,4),0,0.25*random(1,4),random(-180,180),128,0) EXP3 GHI 1 bright stop } } actor JavelinExplosionSmall { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 1.0 states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(128,11) EXP1 ABCDEFGHIJ 5 bright stop TNT1 A 0 A_Jump(128,10) EXP2 ABCDEFGHI 5 bright stop TNT1 A 0 A_Jump(128,10) EXP3 ABCDEFGHI 5 bright stop TNT1 A 0 A_Jump(128,9) EXP4 ABCDEFGH 5 bright stop EXP5 ABCDEFGHIJK 5 bright stop } } actor JavelinExplosionLarge { RenderStyle Add alpha 0.9 +RANDOMIZE +NOCLIP PROJECTILE Speed 1 Damage 0 Scale 1.25 states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(128,11) EXP1 ABCDEFGHIJ 7 bright stop TNT1 A 0 A_Jump(128,10) EXP2 ABCDEFGHI 7 bright stop TNT1 A 0 A_Jump(128,10) EXP3 ABCDEFGHI 7 bright stop TNT1 A 0 A_Jump(128,9) EXP4 ABCDEFGH 7 bright stop EXP5 ABCDEFGHIJK 7 bright stop } } actor JavelinFlightSmokePuff { RenderStyle Add alpha 0.95 -RANDOMIZE +NOCLIP PROJECTILE Speed 2 Damage 0 Scale 1.25 +CLIENTSIDEONLY states { Spawn: TNT1 A 1 TNT1 A 0 A_Jump(156,"Spawn2","Spawn3","Spawn4") SMK1 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn2: SMK2 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn3: SMK3 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop Spawn4: SMK4 ABCDEFGHIJKLMNOP 4 bright A_FadeOut(0.05) stop } } actor RiotShieldPickup : CustomInventory { inventory.pickupmessage "Riot Shield" inventory.pickupsound "misc/w_pkup" +INVENTORY.AUTOACTIVATE inventory.respawntics 35 scale 1.75 States { Spawn: GUNP Y 1050 stop Pickup: GUNP A 0 GUNP A 0 A_JumpIfInventory("Riot Shield",1,"FailPickup") GUNP A 0 A_JumpIfInventory("MaxWeaponsFilled",0,"FailPickup2") GUNP A 0 ACS_ExecuteWithResult(618,25,0,0) stop FailPickup: GUNP Y 1 fail FailPickup2: GUNP Y 1 GUNP A 0 ACS_ExecuteAlways(620,0,2,0,0) fail } } actor RiotShieldPickup2 : RiotShieldPickup { inventory.respawntics 1050 States { Spawn: GUNP Y -1 stop } } actor RiotShieldPickupSpawn { +NOCLIP +NOBLOCKMAP Radius 1 Height 1 States { Spawn: TNT1 A 175 TNT1 A 0 A_PlayWeaponSound("misc/spawn") TNT1 A 0 A_SpawnItemEx("ItemFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) TNT1 A 0 A_SpawnItemEx("RiotShieldPickup",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) stop } } actor RiotShieldAttack : FastProjectile { obituary "\cf%k \cm>> \cgRiot Shield \cm>> \cf%o" RenderStyle None -RANDOMIZE PROJECTILE Speed 48 Damage (80) damagetype "Riot" +NOEXTREMEDEATH radius 4 height 4 states { Spawn: TNT1 A 2 stop Death: //hit PUFF A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0) TNT1 A 1 A_PlaySound("riot/hit") stop } } actor RiotShieldIcon { Radius 1 Height 1 Speed 0 Damage 0 Projectile +NOINTERACTION +CLIENTSIDEONLY scale 0.25 States { Spawn: RIOT Z 2 bright stop } } actor RiotShieldIcon2 : RiotShieldIcon { States { Spawn: RIOT Z 3 bright stop } } actor RiotShieldWall { Radius 6 Height 56 health 5 +SERVERSIDEONLY +NOGRAVITY +NORADIUSDMG +NOCLIP -SOLID +NOBLOOD +SHOOTABLE +GHOST damagefactor "AA12", 0.1 damagefactor "KSG12", 0.1 damagefactor "Model1887", 0.1 damagefactor "Explosion", 0.1 States { Spawn: TNT1 A 2 stop Death: SPRK A 0 A_SpawnItemEx("RiotShieldSound",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("RiotShieldIndicator",1) SPRK A 1 A_Explode(2,48,0) Stop } } actor RiotShieldWall2 : RiotShieldWall { States { Spawn: TNT1 A 3 stop Death: SPRK A 0 A_SpawnItemEx("RiotShieldSound",0,0,0,0,0,0,0,0,0) SPRK A 0 A_GiveToTarget("RiotShieldIndicator",1) SPRK A 1 A_Explode(2,48,0) Stop } } actor RiotShieldIndicator : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 ACS_ExecuteAlways(607,0,3,0,0) stop } } actor RiotShieldSound { radius 1 height 1 +noclip States { Spawn: TNT1 A 0 TNT1 A 1 A_PlaySound("riot/damage") stop } } actor RiotShieldOnBack : CustomInventory { inventory.maxamount 9999 +ALWAYSPICKUP states { Spawn: TNT1 A 5 stop Pickup: TNT1 A 0 A_SpawnItemEx("RiotShieldWall2",-18,-9,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("RiotShieldWall2",-20,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("RiotShieldWall2",-18,9,0,0,0,0,0,0,0) TNT1 A 1 A_SpawnItemEx("RiotShieldIcon2",-16,0,36,0,0,0,0,128,0) stop } } actor "Riot Shield" : RGUWeapon { obituary "\cf%k \cc>> \cgRiot Shield \cc>> \cf%o" inventory.pickupmessage "Riot Shield" weapon.selectionorder 19 states { Spawn: GUNP H 0 GUNP A 0 A_SpawnItem("RiotShieldPickup") stop Flash: TNT1 A 0 A_SpawnItemEx("RiotShieldWall",18,-8,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("RiotShieldWall",20,0,0,0,0,0,0,0,0) TNT1 A 0 A_SpawnItemEx("RiotShieldWall",18,8,0,0,0,0,0,0,0) TNT1 A 1 A_SpawnItemEx("RiotShieldIcon",0,0,72,0,0,0,0,128,0) loop Select: TNT1 A 0 A_GunFlash TNT1 A 1 A_Raise TNT1 AA 0 A_Raise goto Select+1 Ready: TNT1 A 0 A_GiveInventory("Weight",5) //Determines player speed - 5 means slowest TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHSelect") RIOT A 4 A_PlayWeaponSound("weapon/select") RIOT BCDEF 4 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) //goto InHand -- intentional drop to next state InHand: //Ready state RIOT F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") RIOT F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) RIOT F 1 A_WeaponReady(WRF_NOBOB) loop Deselect: TNT1 A 0 A_TakeInventory("Weight",0) //Riot shield protects the player's back, so keep their speed reduced TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"GiveSOHDeselect") RIOT FEDCBA 3 DeselectFull: //Deselect TNT1 AA 0 A_Lower TNT1 A 1 A_Lower TNT1 A 0 A_TakeInventory("RuneDoubleFiringSpeed",1) loop Hold: RIOT F 0 A_JumpIfInventory("ThrowingGrenade",1,"KnifeAttack") RIOT F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack") goto Fire Fire: //knifing and pressing fire will do the same thing KnifeAttack: TNT1 A 0 A_ZoomFactor(1.0) TNT1 A 0 A_GiveInventory("Aiming",1) TNT1 A 0 A_TakeInventory("Reloading",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_JumpIfInventory("Perk2_QuickDraw_Pro",1,"GiveQDKnife") TNT1 A 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade") RIOT GH 5 RIOT I 5 A_PlaySoundEx("riot/swing","SoundSlot5") RIOT J 5 A_SpawnItemEx("RiotShieldAttack",48,0,32,40,0,0,0,0,0) RIOT KL 5 RIOT M 5 A_TakeInventory("Aiming",1) TNT1 A 0 ACS_ExecuteAlways(602,0,0,0,0) TNT1 A 0 A_TakeInventory("KnifeAttack",1) RIOT OPF 5 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB) goto InHand FragGrenade: TNT1 A 0 A_TakeInventory("Aiming",1) TNT1 A 0 A_JumpIfInventory("ThrowingFlashbang",1,"Flashbang") TNT1 A 0 A_JumpIfInventory("ThrowingStunGrenade",1,"StunGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingSemtex",1,"SemtexGrenade") TNT1 A 0 A_JumpIfInventory("ThrowingKnife",1,"ThrowingKnife") TNT1 A 0 A_JumpIfInventory("ThrowingClaymore",1,"Claymore") TNT1 A 0 A_JumpIfInventory("ThrowingBetty",1,"Betty") FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("FragGrenadeAmmo",1) FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGA I 3 A_FireCustomMissile("FragGrenade",0,0,0,16) goto Ready+1 //Reselect weapon Flashbang: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingFlashbang",1) FRGB C 3 A_FireCustomMissile("FlashbangThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon StunGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("flash/pinpull","SoundSlot5") TNT1 A 15 FRGB AB 3 FRGB H 0 A_PlaySoundEx("flash/throw","SoundSlot5") FRGB I 0 A_TakeInventory("ThrowingGrenade",1) FRGB I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingStunGrenade",1) FRGB C 3 A_FireCustomMissile("StunGrenadeThrown",0,0,0,16) FRGB DEFG 3 goto Ready+1 //Reselect weapon SemtexGrenade: FRGA ABCDE 3 FRGA F 3 A_PlaySoundEx("grenade/pinpull","SoundSlot5") TNT1 A 15 FRGA GH 3 FRGA H 0 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGA I 0 A_TakeInventory("ThrowingGrenade",1) FRGA I 0 A_TakeInventory("KnifeAttack",1) FRGB I 0 A_TakeInventory("ThrowingSemtex",1) FRGA I 3 A_FireCustomMissile("SemtexThrown",0,0,0,16) goto Ready+1 //Reselect weapon ThrowingKnife: FRGC AB 3 FRGC C 3 A_PlaySoundEx("melee/swing","SoundSlot5") FRGC D 3 A_FireCustomMissile("ThrowingKnifeThrown",0,0,0,8) FRGC EFG 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingKnife",1) goto Ready+1 //Reselect weapon Claymore: FRGD A 2 A_PlaySoundEx("claymore/click","SoundSlot5") FRGD BCDEFGHIJKLM 2 TNT1 A 3 A_GiveInventory("ClaymoreUse",1) TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingClaymore",1) goto Ready+1 //Reselect weapon Betty: FRGE G 3 A_PlaySoundEx("grenade/throw","SoundSlot5") FRGE B 3 A_GiveInventory("BettyUse",1) FRGE CDEF 3 TNT1 A 15 FRGC I 0 A_TakeInventory("ThrowingGrenade",1) FRGC I 0 A_TakeInventory("KnifeAttack",1) FRGC I 0 A_TakeInventory("ThrowingBetty",1) goto Ready+1 //Reselect weapon GiveSOHSelect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Ready+3 GiveSOHDeselect: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Deselect+6 GiveQDKnife: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto KnifeAttack+5 GiveSOHFire: TNT1 A 0 A_GiveInventory("RuneDoubleFiringSpeed",1) goto Fire+1 } } // Fullscreen HUD statusbar fullscreen, forcescaled { InInventory Not HardcoreMode, 1 || Shellshocked, 1 { drawswitchableimage BlueSkull, "nullimage", "BLUSKLL", 12, 165; drawswitchableimage YellowSkull, "nullimage", "YELSKLL", 24, 165; drawswitchableimage RedSkull, "nullimage", "REDSKLL", 36, 165; drawswitchableimage BlueCard, "nullimage", "BLUCARD", 60, 165; drawswitchableimage YellowCard, "nullimage", "YELCARD", 72, 165; drawswitchableimage RedCard, "nullimage", "REDCARD", 84, 165; drawbar "HEALBAR", "HEALBAR2", Health, horizontal, reverse, 8, 185; drawbar "ARMRBAR", "ARMRBAR2", Armor, horizontal, reverse, 8, 191; drawimage "HEALBAR3", 6, 183; drawnumber 3, CONFONT, Yellow, Health, 44, 184, 0, Red, 33, Green, 66; drawnumber 3, CONFONT, Green, Armor, whennotzero, 98, 187, 0, Red, 33, Blue, 101; drawnumber 3, HUDFONT_DOOM, Gray, ammo2, 285, 180; //IsSelected Not "Fragmentation Grenade", "Stielhandgranate" //{ drawnumber 3, HUDFONT_DOOM, White, ammo1, 235, 180; //} drawselectedinventory alwaysshowcounter, CONFONT, 0, 200, 131, 185, Green; drawnumber 1, CONFONT, Green, ammo FragGrenadeAmmo, whennotzero, 166, 185; DrawSwitchableImage FragGrenadeAmmo, "", "FRAGAMMO", 166, 183; DrawSwitchableImage ThrowingKnifeInventory, "", "KNIFICON", 166, 183; DrawSwitchableImage SemtexInventory, "", "SEMTEXIC", 166, 183; DrawSwitchableImage ClaymoreInventory, "", "CLAYICON", 166, 183; DrawSwitchableImage BettyInventory, "", "BETTICON", 166, 183; DrawSwitchableImage C4Inventory, "", "C4ICON", 166, 183; DrawSwitchableImage C4, "", "C4ICON", 166, 183; DrawSwitchableImage StunGrenadeInventory, "", "STUNGREN", 131, 183; DrawSwitchableImage FlashbangInventory, "", "FLSHBNG", 131, 183; DrawSwitchableImage TacticalInventory, "", "TACTICON", 131, 183; DrawSwitchableImage TacticalInsertion, "", "TACTICON", 131, 183; } } statusbar inventoryfullscreen { drawinventorybar Doom, 7, INDEXFON, 80, 150; } statusbar normal { drawimage "STBAR", 0, 168; InInventory Not HardcoreMode { drawimage "STTPRCNT", 90, 171; drawimage "STTPRCNT", 221, 171; drawnumber 3, HUDFONT_DOOM, red, ammo1, 44, 171; drawnumber 3, HUDFONT_DOOM, red, health, 90, 171; drawnumber 3, HUDFONT_DOOM, red, armor, 221, 171; //keys drawswitchableimage BlueCard && BlueSkull, "nullimage", "STKEYS0", "STKEYS3", "STKEYS6", 239, 171; drawswitchableimage YellowCard && YellowSkull, "nullimage", "STKEYS1", "STKEYS4", "STKEYS7", 239, 181; drawswitchableimage RedCard && RedSkull, "nullimage", "STKEYS2", "STKEYS5", "STKEYS8", 239, 191; drawnumber 3, INDEXFON, gold, ammo Clip, 288, 173; drawnumber 3, INDEXFON, gold, ammo Shell, 288, 179; drawnumber 3, INDEXFON, gold, ammo RocketAmmo, 288, 185; drawnumber 3, INDEXFON, gold, ammo Cell, 288, 191; drawnumber 3, INDEXFON, gold, ammocapacity Clip, 314, 173; drawnumber 3, INDEXFON, gold, ammocapacity Shell, 314, 179; drawnumber 3, INDEXFON, gold, ammocapacity RocketAmmo, 314, 185; drawnumber 3, INDEXFON, gold, ammocapacity Cell, 314, 191; gamemode deathmatch, teamgame { drawnumber 2, HUDFONT_DOOM, red, frags, 138, 171; } gamemode cooperative, singleplayer { drawimage "STARMS", 104, 168; drawswitchableimage weaponslot 2, "STGNUM2", "STYSNUM2", 111, 172; drawswitchableimage weaponslot 3, "STGNUM3", "STYSNUM3", 123, 172; drawswitchableimage weaponslot 4, "STGNUM4", "STYSNUM4", 135, 172; drawswitchableimage weaponslot 5, "STGNUM5", "STYSNUM5", 111, 182; drawswitchableimage weaponslot 6, "STGNUM6", "STYSNUM6", 123, 182; drawswitchableimage weaponslot 7, "STGNUM7", "STYSNUM7", 135, 182; } gamemode cooperative, deathmatch, teamgame { drawimage translatable "STFBANY", 144, 169; } drawselectedinventory alternateonempty, INDEXFON, 143, 168 { drawmugshot "STF", 5, 143, 168; } } } statusbar inventory { drawinventorybar Doom, 7, INDEXFON, 50, 170; } /// this is for Coop // Fullscreen HUD statusbar fullscreen, forcescaled { InInventory Not HardcoreMode, 1 || Shellshocked, 1 { drawswitchableimage BlueSkull, "nullimage", "BLUSKLL", 12, 165; drawswitchableimage YellowSkull, "nullimage", "YELSKLL", 24, 165; drawswitchableimage RedSkull, "nullimage", "REDSKLL", 36, 165; drawswitchableimage BlueCard, "nullimage", "BLUCARD", 60, 165; drawswitchableimage YellowCard, "nullimage", "YELCARD", 72, 165; drawswitchableimage RedCard, "nullimage", "REDCARD", 84, 165; drawbar "HEALBAR", "HEALBAR2", Health, horizontal, reverse, 8, 185; drawbar "ARMRBAR", "ARMRBAR2", Armor, horizontal, reverse, 8, 191; drawimage "HEALBAR3", 6, 183; drawnumber 3, CONFONT, Yellow, Health, 44, 184, 0, Red, 33, Green, 66; drawnumber 3, CONFONT, Green, Armor, whennotzero, 98, 187, 0, Red, 33, Blue, 101; drawnumber 3, HUDFONT_DOOM, Gray, ammo2, 285, 180; //IsSelected Not "Fragmentation Grenade", "Stielhandgranate" //{ drawnumber 3, HUDFONT_DOOM, White, ammo1, 235, 180; //} drawselectedinventory alwaysshowcounter, CONFONT, 131, 183, 131, 185, Green; drawnumber 1, CONFONT, Green, ammo FragGrenadeAmmo, whennotzero, 166, 185; DrawSwitchableImage FragGrenadeAmmo, "", "FRAGAMMO", 166, 183; //drawnumber 1, CONFONT, Green, ammo SmokeGrenadeAmmo, whennotzero, 131, 185; //DrawSwitchableImage SmokeGrenadeAmmo, "", "SMOKAMMO", 131, 183; } } statusbar inventoryfullscreen { drawinventorybar Doom, 7, INDEXFON, 80, 150; } statusbar normal { drawimage "STBAR", 0, 168; InInventory Not HardcoreMode { drawimage "STTPRCNT", 90, 171; drawimage "STTPRCNT", 221, 171; drawnumber 3, HUDFONT_DOOM, red, ammo1, 44, 171; drawnumber 3, HUDFONT_DOOM, red, health, 90, 171; drawnumber 3, HUDFONT_DOOM, red, armor, 221, 171; //keys drawswitchableimage BlueCard && BlueSkull, "nullimage", "STKEYS0", "STKEYS3", "STKEYS6", 239, 171; drawswitchableimage YellowCard && YellowSkull, "nullimage", "STKEYS1", "STKEYS4", "STKEYS7", 239, 181; drawswitchableimage RedCard && RedSkull, "nullimage", "STKEYS2", "STKEYS5", "STKEYS8", 239, 191; drawnumber 3, INDEXFON, gold, ammo Clip, 288, 173; drawnumber 3, INDEXFON, gold, ammo Shell, 288, 179; drawnumber 3, INDEXFON, gold, ammo RocketAmmo, 288, 185; drawnumber 3, INDEXFON, gold, ammo Cell, 288, 191; drawnumber 3, INDEXFON, gold, ammocapacity Clip, 314, 173; drawnumber 3, INDEXFON, gold, ammocapacity Shell, 314, 179; drawnumber 3, INDEXFON, gold, ammocapacity RocketAmmo, 314, 185; drawnumber 3, INDEXFON, gold, ammocapacity Cell, 314, 191; gamemode deathmatch, teamgame { drawnumber 2, HUDFONT_DOOM, red, frags, 138, 171; } gamemode cooperative, singleplayer { drawimage "STARMS", 104, 168; drawswitchableimage weaponslot 2, "STGNUM2", "STYSNUM2", 111, 172; drawswitchableimage weaponslot 3, "STGNUM3", "STYSNUM3", 123, 172; drawswitchableimage weaponslot 4, "STGNUM4", "STYSNUM4", 135, 172; drawswitchableimage weaponslot 5, "STGNUM5", "STYSNUM5", 111, 182; drawswitchableimage weaponslot 6, "STGNUM6", "STYSNUM6", 123, 182; drawswitchableimage weaponslot 7, "STGNUM7", "STYSNUM7", 135, 182; } gamemode cooperative, deathmatch, teamgame { drawimage translatable "STFBANY", 144, 169; } drawselectedinventory alternateonempty, INDEXFON, 143, 168 { drawmugshot "STF", 5, 143, 168; } } } statusbar inventory { drawinventorybar Doom, 7, INDEXFON, 50, 170; } remap TALKA0 BULBH remap CNSLA0 BULBH remap CNSLB0 BULBH remap C4ICON MENUC4 remap BETTICON MENUBETT remap CLAYICON MENUCLAY remap STUNGREN MENUSTUN remap SEMTEXIC MENUSEMT remap FLSHBNG MENUFLSH remap KNIFICON MENUKNIF remap TACTICON MENUTACT remap GUNPA0 GUNPA0H remap GUNPB0 GUNPB0H remap GUNPC0 GUNPC0H remap GUNPD0 GUNPD0H remap GUNPE0 GUNPE0H remap GUNPF0 GUNPF0H remap GUNPG0 GUNPG0H remap GUNPH0 GUNPH0H remap GUNPI0 GUNPI0H remap GUNPJ0 GUNPJ0H remap GUNPK0 GUNPK0H remap GUNPL0 GUNPL0H remap GUNPM0 GUNPM0H remap GUNPN0 GUNPN0H remap GUNPO0 GUNPO0H remap GUNPP0 GUNPP0H remap GUNPQ0 GUNPQ0H remap GUNPR0 GUNPR0H remap GUNPS0 GUNPS0H remap GUNPT0 GUNPT0H remap GUNPU0 GUNPU0H remap GUNPV0 GUNPV0H remap GUNPW0 GUNPW0H remap GUNPX0 GUNPX0H remap GUNPY0 GUNPY0H RGA3SCRP ACS$GG  ODOX Ol O OOOOOOO O # 7EO1g XUW,@@dONkHO 4HO!4! 74O"74O #9O$649O6%649OM&649Od'649O{(649O)649O*649O+649O,6O(#9(#9dOK#d[[GOdO^ OU-WV4.U/WX0WXO4O&}4G1F2FOW24G1F2FZFOd42Zz3~3wFG3wFGFO.U4WnLPg5ᓧO*4.67OP7GO 74$7FO.U7WX8W9ᓧO 4 :ᓧO 4 ;ᓧO/ 45 <[[GOidOc^ `U=WU>W fU?W 3U@W A(9 O!XX GO O?29OT49Oi49O~4O9O4O%Bᓧ9FO""O$[\4O $[\744OBᓧ9FOK""Or$[\4KO$[\74v4O% Bᓧ9FO""O$[\4O $[\744O Bᓧ9FOK ""Or $[\4K O $[\74v 4O O $[\74 O $[\74 4O OR $[\74" O $[\74V 4O CᓧO 4 7DᓧCᓧGO NkCᓧEᓧFO DᓧO 2N29 N 9$[2N29 N 9\72N29 N 9$[2N29 N 9\72N29 N 9$[2N29 N 9\745 2N29N9$[2N29N9\72N29N9$[2N29N9\72N29N9$[2N29N9\7CDᓧFCᓧFFᓧFO GUHWI]JW ̌((UKW 3((4 EᓧCᓧFO HFᓧFO LfE#4 EᓧHFFᓧFON MᓧO" !74% 7ECNfEᓧOI Of4 EᓧO Eᓧ Oq Of4 EᓧO Pf4 QfE#74 4OO d$[ \ 74 Od$[ \ 74 4OOQ$[\74O,$[\74U$ߧRᓧFSᓧFTߧUᓧ FVᓧFG*ߧWᓧFXᓧFG%ߧYᓧ FZᓧFG+ߧ[ᓧF\ᓧFG]ߧ^ᓧF_ᓧFG&ߧ`ᓧFaᓧFGbߧcᓧ FdᓧFGeߧfᓧFgᓧFG'ߧhᓧ FiᓧFGjߧkᓧ(FlᓧFGmߧnᓧ2FoᓧFGpߧqᓧ$FrᓧFG)ߧsᓧFtᓧFG(ߧuᓧFvᓧFGwߧxᓧFyᓧFGzߧ{ᓧF|ᓧFG}ߧ~ᓧFᓧFGߧᓧFᓧFGߧᓧFᓧFGߧᓧdFᓧFGߧᓧdFᓧFG,ߧᓧdFᓧFGᓧFO ᓧO ᓧO3ᓧDᓧFO+4ᓧDᓧFOQf4ᓧDᓧFOw4ᓧDᓧFO34ᓧDᓧFO4ᓧDᓧFOᓧDᓧFO 34ᓧDᓧFO04ᓧDᓧFOV3s4ᓧDᓧFOL4ᓧDᓧFOf&4ᓧDᓧFOLfᓧᓧFGGOg4ᓧOᓧO;`64ᓧOR`64ᓧOi`64ᓧO`64ᓧO`6 ᓧOᓧOߧO Oc ᓧᓧFON#O:ffY4N<ᓧO<FOᓧO{#ᓧ2FGOUW ff#ᓧ2FGOᓧO LgNg4.KO.gᓧOs#ᓧ2FGO^Ng7f74FO#OᓧO33LNgdO#74i74`<FOf X4OM,4O`4Os4OᥧUW@@gGGGGG ᓧO7 9O:4tOO4tOd4tOt9O4O4O4O9O4O4O4OB9O94ON4Oc4Ox4O4O9O4O4O 9OT4GO $4GO"*4G O74G OG)9Obw4Owz4O(4O}4O4O4Op4Om4 O '4 Oj4 O44 OI4 O^,4Os&4Ob4Oe4O%4O+4O]4OwFO4wFOO(O;ON7ᓧO|ᓧOᓧOᓧOᓧOᓧOᓧOᓧO%ᓧODᓧOWᓧOv5ᓧOᓧOᓧOᓧOᓧOᓧOᓧO7ᓧO\ᓧOuᓧOᓧOBᓧOMᓧOO7Z⧝ᓧOO27OH Oy$S0R6ᓧFGO.UWT fgUWH96O|O047UW.UW F6OO4UW.UW6Ov O* 41 UW.UWF O 9g#7 O :g#7 O ;g#7GGFO 4![[FFO!4!O|!~FO|!.UWffᓧFO!4!ᓧ FO!4!ᓧFO!4!ᓧ2FO!4!ᓧdFO! FO# O"%FO4"2 KOK"dOz"n.O"UWXdk4"UWXuU/WX0WX4a%FO`#.U Wdk4a%FOq$GO#z  4#z .U WdkUWXuU/WX0WX4a%FO,%.U WdkUWXuU/WX0WX#74a%Oa%.U WdkdᓧFO%4%ᓧ FO%4%ᓧFO%4%ᓧ2FO%4%ᓧdFO% FO& O&%FO+&2 KOB&d.O&UWXdk4&UWXuU/WX0WX4m'FO8'.U Wdk4m'Om'.U WdkdOw(.U WTUW|̌U/WX0WXAUW,33Lcg2FO(FO(FO(FO(8FO)%FO")4FO?)GFO\)0\FOy) t FO)  FO)   FO) l FO)  FO *FO'*MFOD*FOa*FO~*FO*l-FO* oFO*FO*FO+\KFO,+FOI+FOf+JFO+̧FO+FO+tmFO+FO,.UWXWT U/WX0WXAUWXW,33LgwFO,4,wFO,4,ᓧᓧGO, ᓧGOC-UW 4/)O- XUW :4/ߧDᓧFO-UW 4/%ߧ)ߧGDᓧߧGFO.UW 4/Dᓧ$ߧTߧG%ߧG]ߧGߧGFO.UW 4/DᓧFO.UW 4/Dᓧ'ߧ*ߧGjߧGmߧGpߧGFO%/UW 4/Dᓧ(ߧ+ߧGߧGwߧGzߧG}ߧGߧGFO/ UW 4/&ߧ,ߧGߧGߧGeߧGbߧGO/!UW 7O0E/O07"ᓧFFOH0#72#7"ᓧOV0#g#g$^7 9 9x7 9 9x7 9 9x7 9 9x7 9 9x7 9 9x7 9 9x7O2$^7 9 9x7 9 9x7 9 9x7 9 9x7 9 9x7O3%^7O93O2&g42'gO3%1742(43'gO}3%174B3(7O3'gfO4'g'g)^7 99x7 99x7 99x7 99x7 99x7*$ᓧFO4$48%ᓧFO!5%48&ᓧFOH5&48'ᓧFOo5'48(ᓧFO5(48)ᓧFO5)48*ᓧFO5*48+ᓧFO 6+48 ,ᓧFO26,48 jᓧFOY6j48 ᓧFO648 eᓧFO6e48 ᓧFO648wᓧFO6w48zᓧFO7z48mᓧFOC7m48]ᓧFOj7]48pᓧFO7p48bᓧFO7b48TᓧFO7T48ᓧFO848}ᓧFO-8}48ᓧFOT848ᓧFO{848ᓧFO848GU+WX3U,W$ߧO29$-164=*ߧOb9*.164=&ߧO9&/164=%ߧO9%0164=+ߧO9+1164='ߧO":'2164=(ߧOR:(3164=,ߧO:,4164=)ߧO:)5164=jߧO:j6164=ߧO;7164=eߧOB;e8164=ߧOr;9164=wߧO;w:164=zߧO;z;164=mߧO<m<164=]ߧO2<]=164=pߧOb<p>164=bߧO<b?164=TߧO<T@164=ߧO<A164=}ߧO"=}B164=ߧOR=C164=ߧO=C164=ߧO=D16 9ᓧFFO=9E:ᓧFFO>:F;ᓧFFOL>;G.UXHWTffUW| 3sg#GGGO>.UIW̌F7O @UJW̌O?5h?4?.4R?/FKVwFGFO?|K4a?714D?".ULW̌#74?.UMW̌O[@33GOA @O@܉4@݉)[MUW NLLL4AUNW NGGGOBwOA4BwOA4BwO B4BwOB4BGGGOLBO9C5sB41C.4]BwFOB@OP Q4,CrOP: Q4lB#74LBGOjC33GOD @OC܉4C݉)[MUWNLL4DUNWN 5D4E.4DF@;FOE@4EFr;FO1Er4EF;FObE4EF;FOE4EF ;FOE 4EF: ;FOE: 4DGGGO*F.URW#7O,G O"G.USW 5F4G.4F/FFKVwFGFOGTdT0d4F.74\F.OG7.UUWV(277Ƨ+674G.UUWWfXgGGGOHO?HYZ[4HOcH\6]4HOH^_6 5H4'I.4HKVwFGFOHd4"IVwFOId6OH-4"IO"Ig6O"I4HGGGOTIwFOI";OI"`74`I4 JwFOI";OI"`74I4 J";O J"`74I.UaWT ffbc";FOxJ4J";FOJ67"";FOLNk6"[\"$ HOAKM"HHObKM"HHOKM@"HHOKM@"HHOK" HOK" HOK"d-"#<OL".74J"7OSNDᓧCᓧGOSNNkCEᓧFO&M777CDᓧFCᓧFO!MGUHWI]eW ̌((UKW 3((4LfᓧTGOrM7GUgWff((EᓧCᓧFfᓧTFFOMHOMhfE#4KNEᓧfᓧTFFHFON7ECCᓧONif4KNEᓧfᓧTFFOKNE#74[LOzNjbOvN4zNON*ONᓧߧFONk4N7ᓧON 77Z74NOOOlX16.UmWOO7XF7X.[[GOOUnW33Lof.UpWONPOIPX.UqW4Pdo 6.UrWXg[[GOPsUtWXuWXvWXOPUwWV4'QᓧOQUxWV4'Qyy6  UtWXzWX{O]Q#{<7PU|WF7 OQ}-.4QU~WXUW'OISF FO,RUWXNWXNWXW4BSFFFORUWXNWXNWXWWXNW XNW XW4BSFOBSUWXNWXNWXWWXNW XNW XWWXNWXNWXW.4QUWUtWXWXdFOsTU~WXUWXUWXUW XUW X     GOTUW'9XNW'9XWVOWFFFFFF'F'FOUUWXUWXUWXWXWV.U/WX0WX7d4WFFOVUWXUWXUWXV.U/WX0WX7dAUWXW|33L4WFOVUWXUWV4WO"WUWXV.U/WX4W'GOSWUWXUWV4W'GOWUWXUWV4WOWUWXUWVHOWZ94WGUXWXHOXZ94XGUXWX HO;XZ9 4BXG U XWXyߧOX.UW PUW4 P74UX   yߧᓧFO[.UW, PdUWX^ PUW PUW PUW PUW PUW POZZUWᓧOZUW P4r[ᓧOZUW P4r[ᓧO[UW P4r[ᓧO>[UW P4r[ᓧOr[UW PᓧO[ 7EyߧᓧFOj.UW, PdUWX^ PHHFOD\UW P4\HOx\UW P4\UW PHHFO\UW P43]HO]UW P43]UW PHHFOp]UW P4]HO]UW P4]UW PHHFO^UW& P4_^HO:^UW& P4_^UW& PH HFO^UWX P,4^HO^UWX P,4^UWX P,@HHFO2_UW P@4_@HOf_UW P@4_UW P@ HHFO_UW PT4!` HO_UW PT4!`UW PTHHFO^`UW Ph4`HO`UW Ph4`UW PhHHFO`UW  P|4SaHO.aUW  P|4SaUW  P|HHFOaUWR P4aHOaUWR P4aUWR PH@HFO/bUW P4bHOfbUW P4bUW PHHFObUW P4'cHOcUW P4'cUW PUW PᓧOcUW <UWF ff^HOc4cUWx 4jᓧOzdUW <UWF ff^HOOd4SdUWx 4jᓧOeUW <UWF ff^HOd4dUWx 4jᓧOeUW <UWF ff^HO}e4eUWx 4jᓧO?fUW <,UWF ff^HOf4fUWx 4jᓧOfUW <@UWF ff^@HOf4fUWx 4jᓧOmgUW <TUWF ff^ HOBg4FgUWx 4jᓧOhUW <hUWF ff^HOg4gUWx 4jᓧOhUW <|UWF ff^HOsh4whUWx 4jᓧ O8iUW <UWF ff^HO i4iUWx 4jᓧ OiUW <UWF ff^HOi4iUWx 4jᓧ OljUW <UWF ff^HOAj4EjUWx 4jᓧ OjUW <ᓧ Oj7EyߧᓧFOr.UW, PdUWX^ PUW PHOkUW P4kUW PHOkUW P4 lUW PHO@lUW& P4elUW& PHOlUWX P,4lUWX P,UW PTHOmUW Ph4{>|5@}A~ B:CDE1GG(I JXJQLTNNNPOOOOPP(QLQyQQQTSxStTxWyWzXUXXSFLG<XY[\fm{|~STRL7o  " 0 @ P b u A d q    " ' {    ) H S z  ?ew$-8FT^hq~(17AKPYbjrz&6FRby.@LShqz%6HZg|&.6?R[cx)?Hcjw $-5@ITjqyGV_o %*47?HQ^ltzA}!1@Sct(5CO^ft !.:HUajy 5LdpCw| ":Qk 4 O q ~ !!%!A!p!!!!)"D"Q"^"k"w"""""""" ##&#:#E#Z#####$A$`$$$$$$%4%P%n%%%%% &*&K&g&&&&&&'>'^'{''''''4(n(((.))),*u***>+`+j++++++,&,:,F,b,,,,,--?-]-f---------..Z.c......//'/Faster Reloading \n\n\cfPro: \ccFaster weapon switching \nfaster pump-action and bolt-actionFaster Health Regeneration \n\n\cfPro: \ccFaster movementBlue packs refill ammo \n\n\cfPro: \ccSpawn with extra magsXP earned increased\n\n\cfPro: \cc1 less death required for deathstreaksFaster ADS\n\n\cfPro: \ccFaster knife and grenade recoveryHidden from UAV and reduced\ndamage from killstreaks\n\n\cfPro: \ccNo killcam for players you killExplosive damage taken reduced by 35%\n\n\cfPro: \ccImmune to stuns and flashesAll damage taken reduced by 20%\n\n\cfPro: \ccImproved health regenerationFaster movement while in ADS\n\n\cfPro: \ccDelayed claymores and bettiesSilent footsteps, immune to SitRep Pro\n\n\cfPro: \ccReduced falling damageReduced recoil\n\n\cfPro: \ccLonger hold breath timeDetect enemy explosives\n\n\cfPro: \ccNearby enemies make pinging soundBuy lethal and tactical equipment\ccLethal\cqThrowing Knife - \ccOwned\cqThrowing Knife - \cc$\cf5000\cqBouncing Betty - \ccOwned\cqBouncing Betty - \cc$\cf6000\cqClaymore - \ccOwned\cqClaymore - \cc$\cf8000\cqC4 - \ccOwned\cqC4 - \cc$\cf6000\ccTactical\cmSmoke Grenade - \ccOwned\cmSmoke Grenade - \cc$\cf4000\cdTactical Insertion - \ccOwned\cdTactical Insertion - \cc$\cf6000\cmTrophy System - \ccOwned\cmTrophy System - \cc$\cf6000\cmPortable Radar - \ccOwned\cmPortable Radar - \cc$\cf10000Throw a knife at your enemiesMENUKNIFLand mine that explodes in the airMENUBETTDirectional land mineMENUCLAYRemote C4 explosiveMENUC4Makes lots of smoke\n\cdNot yet addedMENUSMOKChoose where to respawnMENUTACTProtect yourself and allies from explosives\n\cdNot yet addedMENUTROPPings nearby enemy players\nAssassin grants immunity to this\n\cdNot yet addedMENURADASelect Weapon Categories\ccPrimaryAssault Rifles + LMGsSMGs + ShotgunsSniper Rifles + Misc\ccSecondaryHandguns + LaunchersBuy assault rifles and LMGs\ccAssault Rifles\csSCAR-L - \ccOwned\csSCAR-L - \cc$\cf7500\csG36C - \ccOwned\csG36C - \cc$\cf7500\csM14 EBR - \ccOwned\csM14 EBR - \cc$\cf7500\csAK-47 - \ccOwned\csAK-47 - \cc$\cf7500\cmFAD - \ccOwned\cmFAD - \cc$\cf7500\ccLMGs\cqPKP Pecheneg - \ccOwned\cqPKP Pecheneg - \cc$\cf7500\cqMK46 - \ccOwned\cqMK46 Pecheneg - \cc$\cf7500All purpose assault rifleGUNPI0HGUNPV0HSemi-automaticGUNPW0HGUNPK0HAll purpose assault rifle\n\cdNot yet addedFully Automatic, large magazinesGUNPG0HGUNPX0HBuy SMGs and Shotguns\ccSMGs\cdPP90M1 - \ccOwned\cdPP90M1 - \cc$\cf7500\cdP90 - \ccOwned\cdP90 - \cc$\cf7500\cdPM-9 - \ccOwned\cdPM-9 - \cc$\cf7500\cdMP7 - \ccOwned\cdMP7 - \cc$\cf7500\ccShotguns\caAA-12 - \ccOwned\caAA-12 - \cc$\cf7500\caModel 1887 - \ccOwned\caModel 1887 - \cc$\cf7500High mobility and rate of fireGUNPR0HLarge magazinesGUNPP0HGUNPE0HGUNPJ0HFully automatic, low ammoGUNPA0HPump-actionGUNPQ0HYou can't buy thisGain more XPYou bought Sleight of Hand!menu/buyperkYou bought Sleight of Hand Pro!You bought Extreme Conditioning!You bought Extreme Conditioning Pro!You bought Scavenger!You bought Scavenger Pro!You bought Hardline!You bought Hardline Pro!You bought Quick Draw!You bought Quick Draw Pro!You bought Assassin!You bought Assassin Pro!You bought Blast Shield!You bought Blast Shield Pro!You bought Juggernaut!You bought Juggernaut Pro!You bought Stalker!You bought Stalker Pro!You bought Dead Silence!You bought Dead Silence Pro!You bought Steady Aim!You bought Steady Aim Pro!You bought SitRep!You bought SitRep Pro!You bought Throwing Knives!menu/buyweaponYou bought Bouncing Betties!You bought Claymores!You bought C4!You bought Smoke Grenades!You bought Tactical Insertions!You bought Trophy Systems!You bought Portable Radars!You bought the SCAR-L!You bought the G36C!You bought the M14 EBR!You bought the AK-47!You bought the FAD!You bought the PKP Pecheneg!You bought the MK46!You bought the PP90M1!You bought the P90!You bought the PM-9!You bought the MP7!You bought the AA-12!You bought the Model 1887!MINI >?MSTRMEXPLVdow killersidkillershealthkillersguntalkingpointstreakriotshieldcountheadshotcounttacticalinsertionhardcoremodedoublexpstandoffmodehaduavhadreconhadvestsemtexthrowersemtexvictimnobuynouseARAY8    ALIBpACSe#library "RGA3SCRP" #include "zcommon.acs" int KillersID; int KillersHealth; str KillersGun; int Talking; global int 1:PlayerPIN[]; //PINumber of an ID global int 2:PlayerXP[]; //XP earned for the PIN global int 3:PlayerStatus[]; //Can't remember global int 4:PlayerLogged[]; //Is player logged in or not? global int 5:SavedXP[]; //XP stored after logout global int 6:SavedPassword[]; //PIN stored after logout global int 7:PlayerRank[]; //Rank determined by XP global int 8:KillStreak[]; //Current amount of Kills without dying global int 9:KillSession[]; //Total amount of kills since started playing global int 10:PlayerFlags[]; //Special FLAGS global int 11:SavedFlags[]; //Special FLAGS saved after logout global int 12:PlayerSpentXP[]; //XP spent on upgrades and unlocks global int 13:SavedSpentXP[]; //XP spent stored after logout global int 14:PlayerFlags2[]; //Second set of special FLAGS global int 15:SavedFlags2[]; global int 16:PlayerFlags3[]; //Third set of special FLAGS global int 17:SavedFlags3[]; global int 18:DeathStreak[]; //Current amount of deaths without getting a kill global str 19:Perk1[]; //Icon of the perks global str 20:Perk2[]; global str 21:Perk3[]; global int 22:Perk1Amount[]; //Having more than 1 perk in each slot replaces the icon global int 23:Perk2Amount[]; global int 24:Perk3Amount[]; global int 25:Perk1Name[]; //Name of the perk global int 26:Perk2Name[]; global int 27:Perk3Name[]; global str 28:KillStreak1[]; //Killstreak rewards global str 29:KillStreak2[]; global str 30:KillStreak3[]; global int 31:CustomPrimary[]; //Primary weapon global int 32:CustomSecondary[]; //Secondary weapon global int 33:CustomLethal[]; //Lethal equipment global int 34:CustomTactical[]; //Tactical equipment int PointStreak[32]; //This streak doesn't reset when killed, so it should reset at the end of each map instead int RiotShieldCount[32]; //Every 10 hits taken on the riot shield will give 10 XP int HeadshotCount[32]; bool TacticalInsertion[32]; bool HardcoreMode; bool DoubleXP; bool StandOffMode; bool HadUAV[32]; bool HadRecon[32]; bool HadVest[32]; //PLAYER FLAGS //Perk unlocks #define FLAG1_PERK1_SOH 1 #define FLAG1_PERK1_ExCon 2 #define FLAG1_PERK1_Hardline 4 #define FLAG1_PERK1_Scavenger 8 #define FLAG1_PERK2_Juggernaut 16 #define FLAG1_PERK2_BlastShield 32 #define FLAG1_PERK2_Assassin 64 #define FLAG1_PERK2_QuickDraw 128 #define FLAG1_PERK3_SteadyAim 256 #define FLAG1_PERK3_SitRep 512 #define FLAG1_PERK3_DeadSilence 1024 #define FLAG1_PERK3_Stalker 2048 #define FLAG1_PERK1_Something 4096 #define FLAG1_PERK2_Overkill 8192 #define FLAG1_PERK3_LastStand 16384 //Pro versions #define FLAG1_PERK1_SOHPro 32768 #define FLAG1_PERK1_ExConPro 65536 #define FLAG1_PERK1_HardlinePro 131072 #define FLAG1_PERK1_ScavengerPro 262144 #define FLAG1_PERK2_JuggernautPro 524288 #define FLAG1_PERK2_BlastShieldPro 268435456 #define FLAG1_PERK2_AssassinPro 1048576 #define FLAG1_PERK2_QuickDrawPro 2097152 #define FLAG1_PERK3_SteadyAimPro 4194304 #define FLAG1_PERK3_SitRepPro 8388608 #define FLAG1_PERK3_DeadSilencePro 16777216 #define FLAG1_PERK3_StalkerPro 33554432 #define FLAG1_PERK1_SomethingPro 67108864 #define FLAG1_PERK2_OverkillPro 134217728 //GUN FLAGS //#define FLAG2_AR_M4A1 1 //already unlocked //#define FLAG2_AR_M16A4 2 //already unlocked #define FLAG2_AR_SCARL 1 #define FLAG2_AR_G36C 2 #define FLAG2_AR_MK14 4 #define FLAG2_AR_AK47 8 #define FLAG2_AR_FAD 16 //#define FLAG2_SMG_UMP45 1 //already unlocked //#define FLAG2_SMG_MP5 1 //already unlocked #define FLAG2_SMG_PP90M1 32 #define FLAG2_SMG_P90 64 #define FLAG2_SMG_PM9 128 #define FLAG2_SMG_MP7 256 //#define FLAG2_LMG_L86 1 //already unlocked #define FLAG2_LMG_PKP 512 #define FLAG2_LMG_MK46 1024 //#define FLAG2_SNIP_50C 1 //already unlocked #define FLAG2_SNIP_L118A 2048 #define FLAG2_SNIP_DRAG 4096 #define FLAG2_SNIP_MSR 8192 //#define FLAG2_SG_KSG12 1 //already unlocked #define FLAG2_SG_AA12 16384 #define FLAG2_SG_MODEL 32768 #define FLAG2_RIOTSHIELD 65536 //#define FLAG2_HG_USP45 1 //already unlocked #define FLAG2_HG_P99 131072 #define FLAG2_HG_MP412 262144 #define FLAG2_HG_DEAGLE 524288 //#define FLAG2_LA_SMAW 1 //already unlocked #define FLAG2_LA_JAV 1048576 #define FLAG2_LA_GLM 2097152 //EQUIPMENT FLAGS //#define FLAG3_LE_FRAG 1 //already unlocked //#define FLAG3_LE_SEMTEX 1 //already unlocked #define FLAG3_LE_KNIFE 1 #define FLAG3_LE_BETTY 2 #define FLAG3_LE_CLAY 4 #define FLAG3_LE_C4 8 //#define FLAG3_TA_FLASH 1 //already unlocked //#define FLAG3_TA_STUN 1 //already unlocked #define FLAG3_TA_SMOKE 16 #define FLAG3_TA_TACT 32 #define FLAG3_TA_TROPH 64 #define FLAG3_TA_RADAR 128 //Server settings... script 505 OPEN { bool LMS = GetCVAR("lastmanstanding") || GetCVAR("teamlms") || GetCVAR("fakelms"); HardcoreMode = GetCVAR("sv_hardcore"); StandOffMode = GetCVAR("sv_standoff"); DoubleXP = GetCVAR("sv_doublexp"); if(GetCVAR("sv_nodrop") == 0) ConsoleCommand("sv_nodrop 1"); if(GetCVAR("sv_doubleammo") == 1) ConsoleCommand("sv_doubleammo 0"); if(GetCVAR("sv_respawnsuper") == 0) ConsoleCommand("sv_respawnsuper 1"); if(GetCVAR("alwaysapplydmflags") == 0) ConsoleCommand("alwaysapplydmflags 1"); if(GetCVAR("compat_soundslots") == 1) ConsoleCommand("compat_soundslots 0"); if(GetCVAR("compat_instantrespawn") == 1) ConsoleCommand("compat_instantrespawn 0"); if(GetCVAR("sv_nocrouch") == 1) ConsoleCommand("sv_nocrouch 0"); if(GetCVAR("compat_nocrosshair") == 0) ConsoleCommand("compat_nocrosshair 1"); if(GetCVAR("compat_clientssendfullbuttoninfo") == 0) ConsoleCommand("compat_clientssendfullbuttoninfo 1"); if(GetCVAR("sv_noautoaim") == 0) ConsoleCommand("sv_noautoaim 1"); if(GetCVAR("sv_weapondrop") == 0) ConsoleCommand("sv_weapondrop 1"); if(GetCVAR("fakelms") == 0) ConsoleCommand("set fakelms 0"); delay(35*10); restart; } script 509 (int mode) { if(Mode == 2) { } LocalAmbientSound("generic/headshot",127); SetFont("HITINDIH"); SetHudSize(800,600,1); HudMessage(s:"a"; HUDMSG_FADEOUT, CR_UNTRANSLATED, 0, 400.0, 300.0, 0.25, 0.25); } //Set player speed through walking or crouching script 506 ENTER { ACS_ExecuteAlways(612,0,PlayerXP[PlayerPIN[PlayerNumber()]],0,0); //Update XP/level while(GetActorProperty(0,APROP_Health) > 0) { int buttons = GetPlayerInput(-1, INPUT_BUTTONS); if(buttons & BT_SPEED) GiveInventory("Walking",1); else if(buttons & BT_CROUCH) GiveInventory("Crouching",1); else { TakeInventory("Crouching",1); TakeInventory("Walking",1); } delay(5); } } //Bot stuff script 507 (void) NET { while(GetActorProperty(0,APROP_Health) > 0) { GiveInventory("AIStuff",1); delay(6); } } //KILL CAM script source. //Function: It changes view to killer's view, and displays killer's health. //------------------------------------------ //------- Set ID, this will most likely break some wads. //------- Also change Special. script 500 ENTER { if(PlayerIsBot(PlayerNumber())) { GiveInventory("IsBot",1); int Count = 8; if(random(0,Count) == 0) SetWeapon("MP412"); else if(random(0,Count) == 1) SetWeapon("KSG 12"); else if(random(0,Count) == 2) SetWeapon("L118A"); else if(random(0,Count) == 3) SetWeapon("PM9"); else if(random(0,Count) == 4) SetWeapon("SCAR-L"); else if(random(0,Count) == 5) SetWeapon("M320 GLM"); else if(random(0,Count) == 6) SetWeapon("Desert Eagle"); else if(random(0,Count) == 7) SetWeapon("AA-12"); else if(random(0,Count) == 8) SetWeapon("MK46"); if(PlayerLogged[PlayerPIN[PlayerNumber()]] == 0) ACS_ExecuteAlways(511,0,random(1000,9000),random(1000,9000),0); ACS_ExecuteAlways(507,0,0,0,0); } Thing_ChangeTID(0,PlayerNumber()+500); SetThingSpecial(0,226,502,0,PlayerNumber(),0,0); SetActorProperty(0,APROP_SpawnHealth,100); } script 501 RESPAWN { if(PlayerIsBot(PlayerNumber())) { GiveInventory("IsBot",1); ACS_ExecuteAlways(500,0,0,0,0); } Thing_ChangeTID(0,PlayerNumber()+500); SetThingSpecial(0,226,502,0,PlayerNumber(),0,0); SetActorProperty(0,APROP_SpawnHealth,100); ACS_ExecuteAlways(506,0,0,0,0); if(GameType() == GAME_NET_COOPERATIVE || GameType() == GAME_SINGLE_PLAYER) { if(GetActorProperty(0,APROP_HEALTH) < 100) ACS_ExecuteAlways(606,0,0,0,0); SetActorProperty(0,APROP_Invulnerable,0); } if(PlayerLogged[PlayerPIN[PlayerNumber()]] == 0) Print(s:"\cdGain and save XP by creating an ID! \nType 'puke 511' in the console for details"); else { SetFont("BIGFONT"); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); } } //------------------------------------------ //------- Set KillerID/KillerHealth to display/killcam --- RGA2: Play tango down sound script 502 (int number) { int XPUp; if(GetCVAR("teamlms") == 1) XPUp = 200; else if(GetCVAR("lastmanstanding") == 1) XPUp = 125; else if((GetCVAR("lastmanstanding") == 0 || GetCVAR("teamlms") == 0) && GetCVAR("deathmatch") == 1 && GetCVAR("teamplay") == 0) XPUp = 50; else if((GetCVAR("lastmanstanding") == 0 || GetCVAR("teamlms") == 0) && GetCVAR("deathmatch") == 1 && GetCVAR("teamplay") == 1 && PlayerCount() >= 4) XPUp = 100; else XPUp = 50; if(PlayerCount() != 2 && (PlayerFrags() == GetCVAR("fraglimit") || (BlueScore() == GetCVAR("fraglimit") && PlayerTeam() == 0) || (RedScore() == GetCVAR("fraglimit") && PlayerTeam() == 1))) { XPUp += 150; SetFont("BIGFONT"); HudMessage(s:"\ccMatch winning kill!"; HUDMSG_FADEOUT,110+PlayerNumber(),CR_BLUE,0.5,0.3,2.0,2.0); ACS_Execute(516,0,0,0,0); } Deathstreak[PlayerNumber()] = 0; //ACS_ExecuteAlways(611,0,XPUp,0,0); ACS_ExecuteAlways(699,0,XPUp,0,number); ACS_ExecuteAlways(615,0,0,0,0); //Got kill voice if(CheckInventory("Perk2_Assassin_Pro") == 0) KillersID = ActivatorTID(); else KillersID = 0; KillersHealth = GetActorProperty(ActivatorTID(),APROP_Health); KillersGun = ""; Delay(20); //ACS_Execute(504,0,0,0,0); } //------------------------------------------ //------- Player's death, shows killer health and cam after 1 second. Might not work properly. script 503 DEATH { //if killstreak before death is still 0, give 1 to deathstreak, if(Killstreak[PlayerNumber()] == 0) Deathstreak[PlayerNumber()]++; Perk1Amount[PlayerNumber()] = 0; Perk2Amount[PlayerNumber()] = 0; Perk3Amount[PlayerNumber()] = 0; KillStreak[PlayerNumber()] = 0; //Preserve information just for this script; don't want it to view someone else's killer. Delay(1); int KillersHealths = KillersHealth; int KillersIDs = KillersID; str KillersGuns = KillersGun; if(GetCVAR("lastmanstanding") == 1 || GetCVAR("teamlms") == 1) Delay(12); //Make the delay less so it gives dead LMS players a chance to see what damage they did else Delay(36); if(KillersHealths > 0 && GetActorProperty(0,APROP_Health) < 1) //Don't view killers health or cam if he died at the same time you did. Or if you've respawned already. { SetFont("BIGFONT"); ChangeCamera(KillersIDs,0,1); HudMessage(s:"\ccKiller's Health left:\cg ", i:KillersHealths, s:"%";HUDMSG_FADEOUT,0,CR_Blue,0.5,0.6,3.0,2.0); } } script 504 DEATH { if(CheckInventory("Killstreak - UAV") == 1) HadUAV[PlayerNumber()] = True; else HadUAV[PlayerNumber()] = False; if(CheckInventory("Killstreak - Vests") == 1) HadVest[PlayerNumber()] = True; else HadVest[PlayerNumber()] = False; if(CheckInventory("Killstreak - Remote Helicopter") == 1) HadRecon[PlayerNumber()] = True; else HadRecon[PlayerNumber()] = False; } //------------------------------------------ //------- Give stuff, fix minor bugs, and so on script 597 ENTER { TakeInventory("ReadyRegen",1); if(GameType() == GAME_NET_COOPERATIVE || GameType() == GAME_SINGLE_PLAYER) { if(GetActorProperty(0,APROP_HEALTH) < 100) ACS_ExecuteAlways(606,0,0,0,0); SetActorProperty(0,APROP_Invulnerable,0); } ACS_ExecuteAlways(608,0,0,0,0); HudMessage(s:"\cd== \cqRealGunsAdvanced 3: MW3 \cd=="; HUDMSG_FADEOUT,0,CR_BLUE,0.5,0.6,4.0,2.0); HudMessage(s:"\crRelease \cgBeta 2"; HUDMSG_FADEOUT,0,CR_YELLOW,0.5,0.65,4.0,2.0); HudMessage(s:"\crBy \ccVoltlocK"; HUDMSG_FADEOUT,0,CR_YELLOW,0.5,0.7,4.0,2.0); HudMessage(s:"\cc[\cdweapons from \cfCoD:MW3\cc]"; HUDMSG_FADEOUT,0,CR_YELLOW,0.5,0.73,4.0,2.0); SetFont("DOOMFONT"); } //Kickback or recoil script 600 (int Strength, int Reverse, int Mode) NET CLIENTSIDE { int SideKick = 40 + random(0,6)*10; if(Strength == 0) { Strength = 600; Reverse = 600; Mode = 0; } if(Mode == 8 || Mode == 9) { if(Mode == 9) SideKick += 50; if(random(0,3) == 0) Mode = 0; else if(random(0,3) == 1) Mode = 6; else if(random(0,3) == 2) Mode = 7; else Mode = 8; } if(Mode == 0) { if(random(0,1) == 0) Mode = 0; else Mode = 6; } int Counter; if(Mode == 0) { if(CheckInventory("Perk3_SteadyAim") == 1 && random(0,2) < 2) { Strength -= 150; Reverse -= 150; } while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)-SideKick); SetActorPitch(0,GetActorPitch(0)-150); Counter += 150; } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)+SideKick); SetActorPitch(0,GetActorPitch(0)+150); Counter += 150; Delay(1); } } else if(Mode == 6) { if(CheckInventory("Perk3_SteadyAim") == 1 && random(0,2) < 2) { Strength -= 150; Reverse -= 150; } while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)+SideKick); SetActorPitch(0,GetActorPitch(0)-150); Counter += 150; } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)-SideKick); SetActorPitch(0,GetActorPitch(0)+150); Counter += 150; Delay(1); } } else if(Mode == 7) { if(CheckInventory("Perk3_SteadyAim") == 1 && random(0,2) < 2) { Strength -= 150; Reverse -= 150; } while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)-SideKick); SetActorPitch(0,GetActorPitch(0)+150); Counter += 150; } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)+SideKick); SetActorPitch(0,GetActorPitch(0)-150); Counter += 150; Delay(1); } } else if(Mode == 8) { if(CheckInventory("Perk3_SteadyAim") == 1 && random(0,2) < 2) { Strength -= 150; Reverse -= 150; } while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)+SideKick); SetActorPitch(0,GetActorPitch(0)+150); Counter += 150; } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)-SideKick); SetActorPitch(0,GetActorPitch(0)-150); Counter += 150; Delay(1); } } else if(Mode == 1) //Melee from right { while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)-500); SetActorPitch(0,GetActorPitch(0)-500); Counter += 150; Delay(1); } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)+500); SetActorPitch(0,GetActorPitch(0)+500); Counter += 150; Delay(1); } } else if(Mode == 2) //Melee to left { while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)+500); SetActorPitch(0,GetActorPitch(0)-500); Counter += 150; Delay(1); } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)-500); SetActorPitch(0,GetActorPitch(0)+500); Counter += 150; Delay(1); } } else if(Mode == 3) { if(CheckInventory("BreathWait") != 0) terminate; else delay(2); while(CheckInventory("Aiming") == 1 || CheckInventory("BreathWait") != 0) { int buttons = GetPlayerInput(-1, INPUT_BUTTONS); int Pin = PlayerPIN[PlayerNumber()]; int Flags2 = PlayerFlags2[Pin]; Strength = CheckInventory("BreathWait")*2; Counter = 0; while(Counter < 2 && CheckInventory("HoldBreath") == 0) { if(CheckInventory("Aiming") == 1) { SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-10,10)*Strength)); SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-10,10)*Strength)); delay(1); SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-10,10)*Strength)); SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-10,10)*Strength)); delay(1); SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-10,10)*Strength)); SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-10,10)*Strength)); delay(1); } else { SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-3,3)*Strength)); SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-3,3)*Strength)); delay(1); SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-3,3)*Strength)); SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-3,3)*Strength)); delay(1); SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-3,3)*Strength)); SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-3,3)*Strength)); delay(1); } TakeInventory("BreathWait",1); Counter += 1; if(Counter == 2 && CheckInventory("Aiming") == 1 && CheckInventory("BreathWait") == 0 && CheckInventory("Firing") == 0) { SetFont("CONFONT"); HudMessage(s:"\ccHold \cf",k:"+speed", s:"[bind key +speed] \ccto steady aim"; HUDMSG_FADEINOUT,0,CR_WHITE,0.5,0.55,0.0,0.16,0.16); HudMessage(s:"\cc[\cfbind key +speed \ccif unbound]"; HUDMSG_FADEINOUT,0,CR_WHITE,0.5,0.575,0.0,0.16,0.16); } } if(CheckInventory("HoldBreath") == 0 && CheckInventory("BreathWait") == 0) { if(buttons & BT_SPEED && CheckInventory("Firing") == 0) { ActivatorSound("player/holdbreath",127); GiveInventory("HoldBreath",35); } } else if(CheckInventory("HoldBreath") != 0 && buttons & BT_SPEED && CheckInventory("Firing") == 0) { //if((Flags2 & XPFLAG_S_SNIPER)) //Sniper specialty increases hold breath time if(CheckInventory("Perk3_SteadyAim_Pro") == 1) //Steady Aim pro increases hold breath time Delay(33); else Delay(24); TakeInventory("HoldBreath",5); GiveInventory("BreathWait",5); ActivatorSound("player/heartbeat",127); if(CheckInventory("HoldBreath") == 0) ActivatorSound("player/exhale1",127); } else if(CheckInventory("HoldBreath") != 0) { if(CheckInventory("HoldBreath") < 10) ActivatorSound("player/exhale1",127); else if(CheckInventory("HoldBreath") < 20) ActivatorSound("player/exhale2",127); else ActivatorSound("player/exhale3",127); TakeInventory("HoldBreath",35); } delay(1); } } else if(Mode == 4) { while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)-100); SetActorPitch(0,GetActorPitch(0)-800); Counter += 800; Delay(1); } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)+100); SetActorPitch(0,GetActorPitch(0)+800); Counter += 800; Delay(1); } } else if(Mode == 5) { while(Counter < Strength) { SetActorAngle(0,GetActorAngle(0)+1200); SetActorPitch(0,GetActorPitch(0)-2000); Counter += 2000; Delay(1); } Counter = 0; while(Counter < Reverse) { SetActorAngle(0,GetActorAngle(0)-300); SetActorPitch(0,GetActorPitch(0)+400); Counter += 400; Delay(1); } } } //Reload script 601 (void) NET { //------------------------------------------ //------- Checks if weapon is true, or attachment-weapon is true, then checks if clip is not full, then checks if reserve is not 0. if(( ((CheckWeapon("MP412") == 1) && CheckInventory("MP412Clip") < 6 && CheckInventory("MP412Ammo") != 0) || ((CheckWeapon("P99") == 1) && CheckInventory("P99Clip") < 12 && CheckInventory("P99Ammo") != 0) || ((CheckWeapon("Desert Eagle") == 1) && CheckInventory("DeagleClip") < 7 && CheckInventory("DeagleAmmo") != 0) || ((CheckWeapon("KSG 12") == 1) && CheckInventory("KSG12Clip") < 12 && CheckInventory("KSG12Ammo") != 0) || ((CheckWeapon("AA-12") == 1) && CheckInventory("AA12Clip") < 8 && CheckInventory("AA12Ammo") != 0) || ((CheckWeapon("Model 1887") == 1) && CheckInventory("Model1887Clip") < 7 && CheckInventory("Model1887Ammo") != 0) || ((CheckWeapon("L118A") == 1) && CheckInventory("L118AClip") < 5 && CheckInventory("L118AAmmo") != 0) || ((CheckWeapon("Dragunov") == 1) && CheckInventory("DragunovClip") < 10 && CheckInventory("DragunovAmmo") != 0) || ((CheckWeapon("MSR") == 1) && CheckInventory("MSRClip") < 5 && CheckInventory("MSRAmmo") != 0) || ((CheckWeapon("PM9") == 1) && CheckInventory("PM9Clip") < 32 && CheckInventory("PM9Ammo") != 0) || ((CheckWeapon("MP7") == 1) && CheckInventory("MP7Clip") < 40 && CheckInventory("MP7Ammo") != 0) || ((CheckWeapon("P90") == 1) && CheckInventory("P90Clip") < 50 && CheckInventory("P90Ammo") != 0) || ((CheckWeapon("PP90M1") == 1) && CheckInventory("PP90M1Clip") < 36 && CheckInventory("PP90M1Ammo") != 0) || ((CheckWeapon("M320 GLM") == 1) && CheckInventory("M320Clip") < 1 && CheckInventory("M320Ammo") != 0) || ((CheckWeapon("SCAR-L") == 1) && CheckInventory("SCARLClip") < 30 && CheckInventory("SCARLAmmo") != 0) || ((CheckWeapon("M4A1") == 1) && CheckInventory("M4A1Clip") < 30 && CheckInventory("M4A1Ammo") != 0) || ((CheckWeapon("M16A4") == 1) && CheckInventory("M16A4Clip") < 30 && CheckInventory("M16A4Ammo") != 0) || ((CheckWeapon("G36C") == 1) && CheckInventory("G36CClip") < 30 && CheckInventory("G36CAmmo") != 0) || ((CheckWeapon("M14 EBR") == 1) && CheckInventory("M14Clip") < 20 && CheckInventory("M14Ammo") != 0) || ((CheckWeapon("AK-47") == 1) && CheckInventory("AK47Clip") < 30 && CheckInventory("AK47Ammo") != 0) || ((CheckWeapon("L86 LSW") == 1) && CheckInventory("L86Clip") < 100 && CheckInventory("L86Ammo") != 0) || ((CheckWeapon("PKP Pecheneg") == 1) && CheckInventory("PKPClip") < 100 && CheckInventory("PKPAmmo") != 0) || ((CheckWeapon("MK46") == 1) && CheckInventory("MK46Clip") < 100 && CheckInventory("MK46Ammo") != 0) //|| ) && CheckInventory("Reloading") == 0) { GiveInventory("Reloading",1); //ACS_ExecuteAlways(615,0,1,0,0); //Reload voice } } //------------------------------------------ //------- Sets player speed, affected by "ExtremeConditioning pro" perk and Stalker script 602 (int mode) { int Pin = PlayerPIN[PlayerNumber()]; int Flags = PlayerFlags[Pin]; int SpeedBonus = 0; int SpeedBonusAim = 0; /*if((Flags & XPFLAG_P_SPEED)) { SpeedBonus = 0.1; SpeedBonusAim = 0.05; }*/ if(CheckInventory("Perk3_Stalker") == 1) { SpeedBonusAim = 0.125; } if(CheckInventory("Perk1_ExtremeConditioning_Pro") == 1) { SpeedBonus = 0.1; SpeedBonusAim = 0.075; } if(CheckInventory("Weight") == 1 && CheckInventory("Aiming") == 0) SetActorProperty(0,APROP_Speed,1.0+SpeedBonus); else if(CheckInventory("Weight") == 2 && CheckInventory("Aiming") == 0) SetActorProperty(0,APROP_Speed,0.9+SpeedBonus); else if(CheckInventory("Weight") == 3 && CheckInventory("Aiming") == 0) SetActorProperty(0,APROP_Speed,0.8+SpeedBonus); else if(CheckInventory("Weight") == 4 && CheckInventory("Aiming") == 0) SetActorProperty(0,APROP_Speed,0.7+SpeedBonus); else if(CheckInventory("Weight") == 5 && CheckInventory("Aiming") == 0) SetActorProperty(0,APROP_Speed,0.6+SpeedBonus); else if(CheckInventory("Weight") == 6 && CheckInventory("Aiming") == 0) SetActorProperty(0,APROP_Speed,0.8+SpeedBonus); if(CheckInventory("Weight") == 1 && CheckInventory("Aiming") == 1) SetActorProperty(0,APROP_Speed,0.7+SpeedBonusAim); else if(CheckInventory("Weight") == 2 && CheckInventory("Aiming") == 1) SetActorProperty(0,APROP_Speed,0.6+SpeedBonusAim); //Lighter weapons (SMG and Handgun) get less slowdown from Aim else if(CheckInventory("Weight") == 3 && CheckInventory("Aiming") == 1) SetActorProperty(0,APROP_Speed,0.45+SpeedBonusAim); else if(CheckInventory("Weight") == 4 && CheckInventory("Aiming") == 1) SetActorProperty(0,APROP_Speed,0.3+(SpeedBonusAim*2)); else if(CheckInventory("Weight") == 5 && CheckInventory("Aiming") == 1) SetActorProperty(0,APROP_Speed,0.15+(SpeedBonusAim*2)); else if(CheckInventory("Weight") == 6 && CheckInventory("Aiming") == 1) SetActorProperty(0,APROP_Speed,0.3+(SpeedBonusAim*2)); ACS_ExecuteAlways(614,0,0,0,0); } //------------------------------------------ //------- Throw grenade. script 603 (void) NET { if((CheckInventory("FragGrenadeAmmo") != 0 && CheckInventory("ThrowingGrenade") == 0) || (PlayerIsBot(PlayerNumber()) || GetCvar("sv_infiniteammo") == 1)) { GiveInventory("ThrowingGrenade",1); //if(CheckInventory("Reloading") == 1) GiveInventory("KnifeAttack",1); ACS_ExecuteAlways(615,0,4,0,0); //Grenade out voice } else if(CheckInventory("FragGrenadeAmmo") == 0) { If(CheckInventory("SemtexInventory") > 0) UseInventory("SemtexInventory"); else if(CheckInventory("ThrowingKnifeInventory") > 0) UseInventory("ThrowingKnifeInventory"); else if(CheckInventory("ClaymoreInventory") > 0) UseInventory("ClaymoreInventory"); else if(CheckInventory("BettyInventory") > 0) UseInventory("BettyInventory"); else if(CheckInventory("C4Inventory") > 0) UseInventory("C4Inventory"); } /*else if(CheckInventory("SmokeGrenadeAmmo") != 0 && CheckInventory("ThrowingGrenade") == 0) { SetWeapon("Smoke Grenade"); SetWeapon("Smoke Grenade "); Delay(15); ACS_ExecuteAlways(615,0,5,0,0); //Smoke out voice GiveInventory("ThrowingGrenade",1); //if(CheckInventory("Reloading") == 1) GiveInventory("KnifeAttack",1); }*/ } //------------------------------------------ //------- Use Knife script 604 (void) NET { GiveInventory("KnifeAttack",1); //Hack, refer to decorate coding. } //Regeneration script 606 (void) { int Pin = PlayerPIN[PlayerNumber()]; int Flags = PlayerFlags[Pin]; int Flags2 = PlayerFlags2[Pin]; int Flags3 = PlayerFlags3[Pin]; int RegenBonus; int RecoveryBonus; /*if((Flags & XPFLAG_REGEN1)) RegenBonus = 2; else if((Flags & XPFLAG_REGEN2)) RegenBonus = 4; */ if(CheckInventory("Perk2_Juggernaut_Pro") == 1) RecoveryBonus = 2; if(CheckInventory("Perk1_ExtremeConditioning") == 1) RegenBonus = 8; if(CheckWeapon("Riot Shield") == 1) RiotShieldCount[PlayerNumber()]++; if(RiotShieldCount[PlayerNumber()] >= 10) {ACS_ExecuteAlways(611,0,10,1,2); RiotShieldCount[PlayerNumber()] = 0;} if(CheckInventory("Shellshocked") == 0 && CheckInventory("Riot Shield") == 0) { if(GetActorProperty(0,APROP_Health) > 35) FadeRange(255,0,0,0.4,0,0,0,0.0,0.35); else FadeRange(255,0,0,0.6,0,0,0,0.0,0.8); } if(CheckInventory("ReadyRegen") == 0) { GiveInventory("ReadyRegen",1); While(GetActorProperty(0,APROP_Health) < GetActorProperty(0,APROP_SpawnHealth) && GetActorProperty(0,APROP_Health) > 0) { if(CheckInventory("InCombat") > 0) { TakeInventory("InCombat",1+RecoveryBonus); if(GetActorProperty(0,APROP_Health) < 35 || (CheckInventory("HardcoreMode") == 1 && GetActorProperty(0,APROP_Health) < 50)) HudMessage(s:"You're hurt! Get to cover!"; HUDMSG_FADEOUT, 0, CR_WHITE, 0.5, 0.4, 0.6, 2.0); if(GetActorProperty(0,APROP_Health) < 35 || (CheckInventory("HardcoreMode") == 1 && GetActorProperty(0,APROP_Health) < 50)) { if(CheckInventory("Shellshocked") == 0) FadeRange(255,0,0,0.3,0,0,0,0.0,0.5); LocalAmbientSound("player/hurtlow",127); LocalAmbientSound("player/heartbeat",127); } else if(GetActorProperty(0,APROP_Health) < 75) LocalAmbientSound("player/hurtnormal",127); if(CheckInventory("InCombat") == 0) { if(GetActorProperty(0,APROP_Health) < 35 || (CheckInventory("HardcoreMode") == 1 && GetActorProperty(0,APROP_Health) < 50)) LocalAmbientSound("player/heartbeat",127); Delay(25+(RecoveryBonus*5)); ActivatorSound("player/okay",127); GiveInventory("Health",1); } Delay(25); } else if(GetActorProperty(0,APROP_Health) < GetActorProperty(0,APROP_SpawnHealth) && GetActorProperty(0,APROP_Health) > 0) { if(GetActorProperty(0,APROP_Health) < 35) { if(CheckInventory("Shellshocked") == 0) FadeRange(255,0,0,0.2,0,0,0,0.0,0.3); LocalAmbientSound("player/heartbeat",127); } GiveInventory("Health",1); if(GetActorProperty(0,APROP_Health) < 100) Delay(35-RegenBonus); else Delay(105-(RegenBonus*2)); //Slower regen for over 100 or All weapons classes } } TakeInventory("ReadyRegen",1); if(GetActorProperty(0,APROP_Health) <= GetActorProperty(0,APROP_SpawnHealth) && GetActorProperty(0,APROP_Health) > 0) ActivatorSound("player/okay",127); } } //Hit Indicator script 607 (int mode) { SetHudSize(800,600,1); str hitsound = "generic/hitindicator"; int y = 308.0; if(mode == 0) {SetFont("HITINDIC"); y = 300.0;} else if(mode == 1) SetFont("JUGGHITI"); else if(mode == 2) SetFont("BLSTHITI"); else if(mode == 3) {SetFont("RIOTHITI"); hitsound = "riot/damage";} HudMessage(s:"a"; HUDMSG_FADEOUT, CR_UNTRANSLATED, 0, 400.0, y, 0.25, 0.25); LocalAmbientSound(hitsound,127); } script 608 RESPAWN { bool LMS = GetCVAR("lastmanstanding") || GetCVAR("teamlms") || GetCVAR("fakelms"); bool TeamGame = GetCvar("Teamplay") || GetCvar("TeamLMS") || GetCvar("CTF") || GetCvar("OneFlagCTF"); //Apply flags int Pin = PlayerPIN[PlayerNumber()]; int Flags = PlayerFlags[Pin]; int Flags2 = PlayerFlags2[Pin]; int Flags3 = PlayerFlags3[Pin]; int i = PlayerNumber(); if(CheckInventory("RandomItem") == 1) { ClearInventory(); Delay(1); GiveInventory("Backpack",1); //Ammo TakeInventory("FragGrenadeAmmo",2); SetAmmoCapacity("MaxWeaponsFilled",2); GiveInventory("MaxWeaponsFilled",2); int randomn; randomn = Random(1,4); //Perk 1 if(randomn == 1) GiveInventory("Perk1_SOH",1); else if(randomn == 2) GiveInventory("Perk1_Scavenger",1); else if(randomn == 3) GiveInventory("Perk1_Hardline",1); else if(randomn == 4) GiveInventory("Perk1_ExtremeConditioning",1); randomn = Random(1,4); //Perk 2 if(randomn == 1) GiveInventory("Perk2_QuickDraw",1); else if(randomn == 2) GiveInventory("Perk2_Assassin",1); else if(randomn == 3) GiveInventory("Perk2_Juggernaut",1); else if(randomn == 4) GiveInventory("Perk2_BlastShield",1); randomn = Random(1,4); //Perk 3 if(randomn == 1) GiveInventory("Perk3_DeadSilence",1); else if(randomn == 2) GiveInventory("Perk3_SitRep",1); else if(randomn == 3) GiveInventory("Perk3_Stalker",1); else if(randomn == 4) GiveInventory("Perk3_SteadyAim",1); randomn = Random(1,6); //Lethal if(randomn == 1) GiveInventory("FragGrenadeAmmo",1); else if(randomn == 2) GiveInventory("ThrowingKnifeInventory",1); else if(randomn == 3) GiveInventory("BettyInventory",1); else if(randomn == 4) GiveInventory("ClaymoreInventory",1); else if(randomn == 5) GiveInventory("SemtexInventory",1); else if(randomn == 6) GiveInventory("C4Inventory",1); randomn = Random(1,3); //Equipment if(randomn == 1) GiveInventory("StunGrenadeInventory",2); else if(randomn == 2) GiveInventory("FlashbangInventory",2); else if(randomn == 3) GiveInventory("TacticalInventory",1); //else if(Random(1,4) == 4) // GiveInventory("SomeOtherThingInventory",1); randomn = Random(1,10); //Secondary if(randomn < 3) GiveInventory("P99",1); else if(randomn < 6) GiveInventory("MP412",1); else if(randomn < 8) GiveInventory("Desert Eagle",1); else if(randomn == 9) GiveInventory("Javelin",1); else if(randomn == 10) GiveInventory("M320 GLM",1); randomn = Random(1,20); //Primary if(randomn == 1) GiveInventory("M4A1",1); else if(randomn == 2) GiveInventory("M16A4",1); else if(randomn == 3) GiveInventory("SCAR-L",1); else if(randomn == 4) GiveInventory("G36C",1); else if(randomn == 5) GiveInventory("M14 EBR",1); else if(randomn == 6) GiveInventory("AK-47",1); else if(randomn == 7) GiveInventory("PP90M1",1); else if(randomn == 8) GiveInventory("P90",1); else if(randomn == 9) GiveInventory("PM9",1); else if(randomn == 10) GiveInventory("MP7",1); else if(randomn == 11) GiveInventory("L86 LSW",1); else if(randomn == 12) GiveInventory("PKP Pecheneg",1); else if(randomn == 13) GiveInventory("MK46",1); else if(randomn == 14) GiveInventory("L118A",1); else if(randomn == 15) GiveInventory("Dragunov",1); else if(randomn == 16) GiveInventory("MSR",1); else if(randomn == 17) GiveInventory("KSG 12",1); else if(randomn == 18) GiveInventory("AA-12",1); else if(randomn == 19) GiveInventory("Model 1887",1); else if(randomn == 20) GiveInventory("Riot Shield",1); } if(TeamGame && PlayerTeam() == 0) GiveInventory("IsBlue",1); else if(TeamGame && PlayerTeam() == 1) GiveInventory("IsRed",1); //Default killstreaks if(KillStreak1[i] == 0) KillStreak1[i] = "UAV"; if(KillStreak2[i] == 0) KillStreak2[i] = "Vest"; if(KillStreak3[i] == 0) KillStreak3[i] = "Recon"; //if(PlayerClass(i) == 0) //stuff //{ //ClearInventory(); GiveInventory("RemoveMines",1); TakeInventory("Fist",1); Delay(1); if(CheckInventory("Perk1_SOH") == 1) {Perk1[i] = "P1SOH"; Perk1Amount[i]++; Perk1Name[i] = "Sleight of Hand";} if(CheckInventory("Perk1_SOH_Pro") == 1) {Perk1[i] = "P1SOHP";} if(CheckInventory("Perk1_Scavenger") == 1) {Perk1[i] = "P1SCAV"; Perk1Amount[i]++; Perk1Name[i] = "Scavenger";} if(CheckInventory("Perk1_Scavenger_Pro") == 1) {Perk1[i] = "P1SCAVP";} if(CheckInventory("Perk1_Hardline") == 1) {Perk1[i] = "P1HARDL"; Perk1Amount[i]++; Perk1Name[i] = "Hardline";} if(CheckInventory("Perk1_Hardline_Pro") == 1) {Perk1[i] = "P1HARDLP";} if(CheckInventory("Perk1_ExtremeConditioning") == 1) {Perk1[i] = "P1EXCON"; Perk1Amount[i]++; Perk1Name[i] = "Extreme Conditioning";} if(CheckInventory("Perk1_ExtremeConditioning_Pro") == 1){Perk1[i] = "P1EXCONP";} if(CheckInventory("Perk2_QuickDraw") == 1) {Perk2[i] = "P2QUICK"; Perk2Amount[i]++; Perk2Name[i] = "Quick Draw";} if(CheckInventory("Perk2_QuickDraw_Pro") == 1) {Perk2[i] = "P2QUICKP";} if(CheckInventory("Perk2_Assassin") == 1) {Perk2[i] = "P2ASSAS"; Perk2Amount[i]++; Perk2Name[i] = "Assassin";} if(CheckInventory("Perk2_Assassin_Pro") == 1) {Perk2[i] = "P2ASSASP";} if(CheckInventory("Perk2_Juggernaut") == 1) {Perk2[i] = "P2JUGG"; GiveInventory("Perk2_JuggernautEffect",1); Perk2Amount[i]++; Perk2Name[i] = "Juggernaut";} if(CheckInventory("Perk2_Juggernaut_Pro") == 1) {Perk2[i] = "P2JUGGP";} if(CheckInventory("Perk2_BlastShield") == 1) {Perk2[i] = "P2BLAST"; GiveInventory("Perk2_BlastShieldEffect",1); Perk2Amount[i]++; Perk2Name[i] = "Blast Shield";} if(CheckInventory("Perk2_BlastShield_Pro") == 1) {Perk2[i] = "P2BLASTP"; GiveInventory("Perk2_BlastShieldProEffect",1);} if(CheckInventory("Perk3_DeadSilence") == 1) {Perk3[i] = "P3DEAD"; Perk3Amount[i]++; Perk3Name[i] = "Dead Silence";} if(CheckInventory("Perk3_DeadSilence_Pro") == 1) {Perk3[i] = "P3DEADP"; GiveInventory("Perk3_DeadSilenceProEffect",1);} if(CheckInventory("Perk3_SitRep") == 1) {Perk3[i] = "P3SITRE"; GiveInventory("Perk3_SitRepEffect",1); Perk3Amount[i]++; Perk3Name[i] = "SitRep";} if(CheckInventory("Perk3_SitRep_Pro") == 1) {Perk3[i] = "P3SITREP"; GiveInventory("Perk3_SitRepProEffect",1);} if(CheckInventory("Perk3_Stalker") == 1) {Perk3[i] = "P3STALK"; Perk3Amount[i]++; Perk3Name[i] = "Stalker";} if(CheckInventory("Perk3_Stalker_Pro") == 1) {Perk3[i] = "P3STALKP";} if(CheckInventory("Perk3_SteadyAim") == 1) {Perk3[i] = "P3STEAD"; Perk3Amount[i]++; Perk3Name[i] = "Steady Aim";} if(CheckInventory("Perk3_SteadyAim_Pro") == 1) {Perk3[i] = "P3STEADP";} if(LMS) GiveInventory("GreenArmor",1); TakeInventory("Weight",5); Delay(1); ACS_ExecuteAlways(602,0,0,0,0); ACS_ExecuteAlways(500,0,0,0,0); //} if(CheckInventory("Riot Shield") == 1) ACS_ExecuteAlways(650,0,0,0,0); if(HardcoreMode) { GiveInventory("HardcoreVulnerability",1); GiveInventory("HardcoreMode",1); } delay(1); if(LMS) { SetActorProperty(0,APROP_Health,200); SetActorProperty(0,APROP_SpawnHealth,200); //Players can regen back to 200 health for LMS } if(StandOffMode) { ClearInventory(); GiveInventory("HardcoreVulnerability",1); GiveInventory("HardcoreMode",1); GiveInventory("MP412",1); GiveInventory("MP412Ammo",48); GiveInventory("MP412Clip",6); TakeInventory("Weight",5); SetWeapon("Webley"); } //Juiced if(DeathStreak[i] >= 4 || (CheckInventory("Perk1_Hardline_Pro") == 1 && DeathStreak[i] >= 3)) { SetFont("BIGFONT"); HudMessage(s:"Juiced!"; HUDMSG_FADEOUT, 340+PlayerNumber(), CR_Yellow, 0.5, 0.65, 2.0, 1.0); LocalAmbientSound("deathstreak/obtain",127); GiveInventory("JuicedSpeedBoost",1); SetHudSize(1680,1050,1); SetFont("XSJUICE2"); HudMessage(s:"a"; HUDMSG_FADEOUT, 0, 0, 840.0, 825.0, 5.0, 1.0); } //Print Perks if(Perk1[i] != "") { SetHudSize(1680,1050,1); if(Perk1Amount[i] == 1) SetFont(Perk1[i]); else SetFont("XSOMA"); HudMessage(s:"a"; HUDMSG_FADEOUT, 0, 0, 1558.0, 520.0, 3.0, 3.0); SetFont("BIGFONT"); HudMessage(s:Perk1Name[i]; HUDMSG_FADEOUT, 0, 13, 1408.5, 582.1, 3.0, 3.0); } if(Perk2[i] != "") { SetHudSize(1680,1050,1); if(Perk2Amount[i] == 1) SetFont(Perk2[i]); else SetFont("XSOMA"); HudMessage(s:"a"; HUDMSG_FADEOUT, 0, 0, 1558.0, 648.0, 2.5, 3.0); SetFont("BIGFONT"); HudMessage(s:Perk2Name[i]; HUDMSG_FADEOUT, 0, CR_RED, 1408.5, 710.1, 3.0, 3.0); } if(Perk3[i] != "") { SetHudSize(1680,1050,1); if(Perk2Amount[i] == 1) SetFont(Perk3[i]); else SetFont("XSOMA"); HudMessage(s:"a"; HUDMSG_FADEOUT, 0, 0, 1558.0, 776.0, 2.0, 3.0); SetFont("BIGFONT"); HudMessage(s:Perk3Name[i]; HUDMSG_FADEOUT, 0, CR_GREEN, 1408.5, 838.1, 3.0, 3.0); } //Give killstreak awards that weren't used before the player died, the delay is to give time between telling the player that they have more than 1 award available if(HadUAV[PlayerNumber()]) {GiveInventory("Killstreak - UAV",1); LocalAmbientSound("uav/waiting",127); delay(35*2);} if(HadVest[PlayerNumber()]) {GiveInventory("Killstreak - Vests",1); LocalAmbientSound("vest/waiting",127); delay(35*2);} if(HadRecon[PlayerNumber()]) {GiveInventory("Killstreak - Remote Helicopter",1); LocalAmbientSound("recon/waiting",127); delay(35*2);} } script 609 (int which) { if(which == 0 && (GetCVAR("lastmanstanding") == 1 || GetCVAR("teamlms") == 1 || GetCVAR("fakelms") == 1)) SetResultValue(1); else if(which == 1 && (GameType() != GAME_NET_COOPERATIVE && GameType() != GAME_SINGLE_PLAYER)) SetResultValue(1); else SetResultValue(0); } script 610 OPEN { if(GetCVAR("teamlms") == 1) { if(BlueScore() == GetCvar("winlimit")-1 && RedScore() == GetCvar("winlimit")-1) { ConsoleCommand("changemus D_SIBBOS"); SetFont("BIGFONT"); HudMessage(s:"\cdSUDDEN DEATH"; HUDMSG_FADEOUT,0,CR_BLUE,0.5,0.4,4.0,2.0); } } } script 611 (int XPAmount, int Mode, int HeadshotBonus) { if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 5) XPAmount += 1; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 10) XPAmount += 2; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 25) XPAmount += 5; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 50) XPAmount += 5; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 100) XPAmount += 10; //Give XP if logged in if(/*GetActorProperty(ActivatorTID(),APROP_Health) > 0 &&*/ PlayerLogged[PlayerPIN[PlayerNumber()]] != 0 && Mode != 2) { if(DoubleXP) XPAmount *= 2; if(KillStreak[PlayerNumber()] >= 5 && Mode == 0) XPAmount += 50; //Killstreak bonus if(KillSession[PlayerNumber()] == 75) ACS_ExecuteAlways(612,0,1,1); HeadshotCount[PlayerNumber()] += HeadshotBonus; PlayerXP[PlayerPIN[PlayerNumber()]] += XPAmount; //Gain some XP SavedXP[PlayerPIN[PlayerNumber()]] = PlayerXP[PlayerPIN[PlayerNumber()]]; //Transfer XP to storage if(HeadshotBonus == 0) ACS_ExecuteAlways(622,0,0,0); //Killstreak stuff SetFont("BIGFONT"); if(Mode == 0) HudMessage(s:"\cd+\cc",d:XPAmount; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); else HudMessage(s:"\cd+\cg",d:XPAmount; HUDMSG_FADEOUT,140+PlayerNumber(),CR_BLUE,0.5,0.46,2.0,2.0); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); } //Tell the player they can log in to gain and keep XP else if(Mode == 0 && GetActorProperty(ActivatorTID(),APROP_Health) > 0) { SetFont("BIGFONT"); HudMessage(s:"\cdNo XP gained - \cfpuke 511 in console \cdfor details"; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); } else if(Mode == 2 && PlayerLogged[PlayerPIN[PlayerNumber()]] != 0) { if(GetCVAR("lastmanstanding") == 1 || GetCVAR("teamlms") == 1) XPAmount = (PlayerFrags() * 10 * PlayerRank[PlayerPIN[PlayerNumber()]]) + (PlayerRank[PlayerPIN[PlayerNumber()]] * 10) + HeadshotCount[PlayerNumber()]; else XPAmount = (PlayerFrags() * 5 * PlayerRank[PlayerPIN[PlayerNumber()]]) + (PlayerRank[PlayerPIN[PlayerNumber()]] * 10) + HeadshotCount[PlayerNumber()]; HeadshotCount[PlayerNumber()] = 0; PlayerXP[PlayerPIN[PlayerNumber()]] += XPAmount; //Gain some XP SavedXP[PlayerPIN[PlayerNumber()]] = PlayerXP[PlayerPIN[PlayerNumber()]]; //Transfer XP to storage SetFont("BIGFONT"); HudMessage(s:"\ccMatch Bonus"; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); HudMessage(s:"\cd+\cg",d:XPAmount; HUDMSG_FADEOUT,140+PlayerNumber(),CR_BLUE,0.5,0.46,2.0,2.0); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); } else if(Mode == 3 && PlayerLogged[PlayerPIN[PlayerNumber()]] != 0) { PlayerXP[PlayerPIN[PlayerNumber()]] += XPAmount; //Gain some XP SavedXP[PlayerPIN[PlayerNumber()]] = PlayerXP[PlayerPIN[PlayerNumber()]]; //Transfer XP to storage SetFont("BIGFONT"); HudMessage(s:"\ccBonus"; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); HudMessage(s:"\cd+\cg",d:XPAmount; HUDMSG_FADEOUT,140+PlayerNumber(),CR_BLUE,0.5,0.46,2.0,2.0); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); delay(35); } else if(Mode == 0) { SetFont("BIGFONT"); HudMessage(s:"\cdNo XP gained"; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); } ACS_ExecuteAlways(612,0,PlayerXP[PlayerPIN[PlayerNumber()]],1,0); } script 699 (int XPAmount, int Mode, int number) { if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 5) XPAmount += 1; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 10) XPAmount += 2; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 25) XPAmount += 5; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 50) XPAmount += 5; else if(CheckInventory("Perk1_Hardline") == 1 && XPAmount == 100) XPAmount += 10; //Give XP if logged in if(PlayerNumber() != number && PlayerLogged[PlayerPIN[PlayerNumber()]] != 0) { if(DoubleXP) XPAmount *= 2; if(KillStreak[PlayerNumber()] >= 5 && Mode == 0) XPAmount += 50; //Killstreak bonus if(KillSession[PlayerNumber()] == 75) ACS_ExecuteAlways(612,0,1,1); PlayerXP[PlayerPIN[PlayerNumber()]] += XPAmount; //Gain some XP SavedXP[PlayerPIN[PlayerNumber()]] = PlayerXP[PlayerPIN[PlayerNumber()]]; //Transfer XP to storage SetFont("BIGFONT"); if(Mode == 0) HudMessage(s:"\cd+\cc",d:XPAmount; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); else HudMessage(s:"\cd+\cg",d:XPAmount; HUDMSG_FADEOUT,140+PlayerNumber(),CR_BLUE,0.5,0.46,2.0,2.0); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); } //Tell the player they can log in to gain and keep XP else if(Mode == 0 && PlayerNumber() != number) { SetFont("BIGFONT"); HudMessage(s:"\cdNo XP gained - \cfpuke 511 in console \cdfor details"; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); } else if(Mode == 0) { SetFont("BIGFONT"); HudMessage(s:"\cdNo XP gained"; HUDMSG_FADEOUT,100+PlayerNumber(),CR_BLUE,0.5,0.42,2.0,2.0); } ACS_ExecuteAlways(612,0,PlayerXP[PlayerPIN[PlayerNumber()]],1,0); } script 612 (int XP, int FromKill, int Session) { int XPStore = PlayerPIN[PlayerNumber()]; XP = PlayerXP[PlayerPIN[PlayerNumber()]]; bool RankUp; int OldRank = PlayerRank[XPStore]; //Not even sure this works. if(Session == 1) { SetFont("BIGFONT"); HudMessage(s:"Challenge complete!"; HUDMSG_FADEOUT, 340+PlayerNumber(), CR_Green, 0.5, 0.50, 3.0, 1.0); HudMessage(s:"\cf75 kills in one session without spectating!"; HUDMSG_FADEOUT, 380+PlayerNumber(), CR_Green, 0.5, 0.55, 3.0, 1.0); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); SetFont("DOOMFONT"); HudMessageBold(n:0,s:" \cdhas completed the 75 kills challenge!";HUDMSG_FADEOUT,300,CR_Blue,0.2,0.3,3.0,2.0); ACS_ExecuteAlways(611,0,5000,3,0); LocalAmbientSound("game/challenge",255); } //Rank to level 1 if(XP >= 50 && PlayerRank[XPStore] == 0) { PlayerRank[PlayerPIN[PlayerNumber()]] = 1; } //Rank to level 2 if(XP >= 500 && PlayerRank[XPStore] == 1) { PlayerRank[PlayerPIN[PlayerNumber()]] = 2; } //Rank to level 3 if(XP >= 1700 && PlayerRank[XPStore] == 2) { PlayerRank[PlayerPIN[PlayerNumber()]] = 3; } //Rank to level 4 if(XP >= 3600 && PlayerRank[XPStore] == 3) { PlayerRank[PlayerPIN[PlayerNumber()]] = 4; } //Rank to level 5 if(XP >= 6200 && PlayerRank[XPStore] == 4) { PlayerRank[PlayerPIN[PlayerNumber()]] = 5; } //Rank to level 6 if(XP >= 9500 && PlayerRank[XPStore] == 5) { PlayerRank[PlayerPIN[PlayerNumber()]] = 6; } //Rank to level 7 if(XP >= 13500 && PlayerRank[XPStore] == 6) { PlayerRank[PlayerPIN[PlayerNumber()]] = 7; } //Rank to level 8 if(XP >= 18200 && PlayerRank[XPStore] == 7) { PlayerRank[PlayerPIN[PlayerNumber()]] = 8; } //Rank to level 9 if(XP >= 23600 && PlayerRank[XPStore] == 8) { PlayerRank[PlayerPIN[PlayerNumber()]] = 9; } //Rank to level 10 if(XP >= 29700 && PlayerRank[XPStore] == 9) { PlayerRank[PlayerPIN[PlayerNumber()]] = 10; } //Rank to level 11 if(XP >= 36500 && PlayerRank[XPStore] == 10) { PlayerRank[PlayerPIN[PlayerNumber()]] = 11; } //Rank to level 12 if(XP >= 44300 && PlayerRank[XPStore] == 11) { PlayerRank[PlayerPIN[PlayerNumber()]] = 12; } //Rank to level 13 if(XP >= 53100 && PlayerRank[XPStore] == 12) { PlayerRank[PlayerPIN[PlayerNumber()]] = 13; } //Rank to level 14 if(XP >= 62900 && PlayerRank[XPStore] == 13) { PlayerRank[PlayerPIN[PlayerNumber()]] = 14; } //Rank to level 15 if(XP >= 73700 && PlayerRank[XPStore] == 14) { PlayerRank[PlayerPIN[PlayerNumber()]] = 15; } //Rank to level 16 if(XP >= 85500 && PlayerRank[XPStore] == 15) { PlayerRank[PlayerPIN[PlayerNumber()]] = 16; } //Rank to level 17 if(XP >= 98300 && PlayerRank[XPStore] == 16) { PlayerRank[PlayerPIN[PlayerNumber()]] = 17; } //Rank to level 18 if(XP >= 112100 && PlayerRank[XPStore] == 17) { PlayerRank[PlayerPIN[PlayerNumber()]] = 18; } //Rank to level 19 if(XP >= 126900 && PlayerRank[XPStore] == 18) { PlayerRank[PlayerPIN[PlayerNumber()]] = 19; } //Rank to level 20 if(XP >= 142700 && PlayerRank[XPStore] == 19) { PlayerRank[PlayerPIN[PlayerNumber()]] = 20; } //Rank to level 21 if(XP >= 159500 && PlayerRank[XPStore] == 20) { PlayerRank[PlayerPIN[PlayerNumber()]] = 21; } //Rank to level 22 if(XP >= 177300 && PlayerRank[XPStore] == 21) { PlayerRank[PlayerPIN[PlayerNumber()]] = 22; } //Rank to level 23 if(XP >= 196100 && PlayerRank[XPStore] == 22) { PlayerRank[PlayerPIN[PlayerNumber()]] = 23; } //Rank to level 24 if(XP >= 215900 && PlayerRank[XPStore] == 23) { PlayerRank[PlayerPIN[PlayerNumber()]] = 24; } //Rank to level 25 if(XP >= 236700 && PlayerRank[XPStore] == 24) { PlayerRank[PlayerPIN[PlayerNumber()]] = 25; } //Rank to level 26 if(XP >= 258500 && PlayerRank[XPStore] == 25) { PlayerRank[PlayerPIN[PlayerNumber()]] = 26; } //Rank to level 27 if(XP >= 281300 && PlayerRank[XPStore] == 26) { PlayerRank[PlayerPIN[PlayerNumber()]] = 27; } //Rank to level 28 if(XP >= 305100 && PlayerRank[XPStore] == 27) { PlayerRank[PlayerPIN[PlayerNumber()]] = 28; } //Rank to level 29 if(XP >= 329900 && PlayerRank[XPStore] == 28) { PlayerRank[PlayerPIN[PlayerNumber()]] = 29; } //Rank to level 30 if(XP >= 355700 && PlayerRank[XPStore] == 29) { PlayerRank[PlayerPIN[PlayerNumber()]] = 30; } if(FromKill == 1 && OldRank != PlayerRank[PlayerPIN[PlayerNumber()]]) { SetFont("BIGFONT"); HudMessage(s:"You have ranked up to level ",d:PlayerRank[XPStore],s:"!"; HUDMSG_TYPEON, 340+PlayerNumber(), CR_Green, 0.5, 0.59, 2.0, 0.1, 1.0); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); SetFont("DOOMFONT"); HudMessageBold(n:0,s:" \cdranked up to level \cf",d:PlayerRank[XPStore],s:"\cd!";HUDMSG_FADEOUT,300,CR_Blue,0.2,0.3,3.0,2.0); LocalAmbientSound("game/rank",255); } } //Check if a headshot should award an indication and XP script 613 (int Team) { if(Team == 0 && PlayerTeam() != TEAM_BLUE) SetResultValue(1); else if(Team == 1 && PlayerTeam() != TEAM_RED) SetResultValue(1); else SetResultValue(0); } script 614 (void) CLIENTSIDE { if(CheckInventory("HardcoreMode") == 1 || CheckInventory("Shellshocked") == 1) Terminate; SetHudSize(1280,800,1); if(CheckInventory("KnifeAttack") == 1 || CheckWeapon("C4")) { SetFont("XHAIR00"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } else if(CheckWeapon("M320 GLM")) { SetFont("TUBEXHAR"); SetHudSize(800,600,1); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 400.0, 314.0, 0.5); } else if(CheckWeapon("Javelin") && CheckInventory("Aiming") == 1) { SetFont("XHAIRJAV"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } else if((CheckWeapon("KSG 12") == 0 || CheckWeapon("M320 GLM") == 0) && (CheckInventory("Aiming") == 1 || CheckWeapon("Frag Grenade") == 1)) { SetFont("XHAIR00"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } else if(CheckInventory("Aiming") == 0 && (CheckWeapon("MP412") == 1 || CheckWeapon("P99") == 1 || CheckWeapon("KSG 12") == 1 || CheckWeapon("Model 1887") == 1 || CheckWeapon("RemoteControl") == 1)) { SetFont("XHAIR01"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } else if(CheckInventory("Aiming") == 0 && (CheckWeapon("Thing"))) { SetFont("XHAIR02"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } else if(CheckInventory("Aiming") == 0 && (CheckWeapon("PM9") == 1 || CheckWeapon("Desert Eagle") == 1 || CheckWeapon("MP7") == 1 || CheckWeapon("P90") == 1 || CheckWeapon("PP90M1") == 1)) { SetFont("XHAIR03"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } else if(CheckInventory("Aiming") == 0 && (CheckWeapon("SCAR-L") == 1 || CheckWeapon("AA-12") == 1 || CheckWeapon("AK-47") == 1 || CheckWeapon("M4A1") == 1 || CheckWeapon("M16A4") == 1 || CheckWeapon("G36C") == 1 || CheckWeapon("M14 EBR") == 1)) { SetFont("XHAIR04"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } else if(CheckWeapon("L118A") == 1 || CheckWeapon("MK46") == 1 || CheckWeapon("L86 LSW") == 1 || CheckWeapon("PKP Pecheneg") == 1 || CheckWeapon("MSR") == 1 || CheckWeapon("Dragunov") == 1) { SetFont("XHAIR05"); HudMessage(s:"a"; HUDMSG_PLAIN, 5610+PlayerNumber(), CR_White, 640.0, 400.0, 0.5); } Delay(5); if(GetActorProperty(0,APROP_Health) > 0) restart; } script 615 (int Mode) { Talking++; if(Mode != 3) Delay(15); if(GetActorProperty(0,APROP_Health) > 0 && CheckInventory("Talking") == 0 && Talking != 3) { /* if(Mode == 0 && KillStreak[PlayerNumber()] < 4) //Got kill GiveInventory("Voice_Kill",1); if(Mode == 0 && KillStreak[PlayerNumber()] >= 4) //Got kill + killstreak GiveInventory("Voice_KillStreak",1); if(Mode == 1) //Reloading GiveInventory("Voice_Reload",1); if(Mode == 2) //Frustration with killing someone GiveInventory("Voice_Jugg",1); if(Mode == 3) //Grenade incoming GiveInventory("Voice_GrenadeInc",1); if(Mode == 4) //Grenade out GiveInventory("Voice_GrenadeOut",1); if(Mode == 5) //Smoke out GiveInventory("Voice_SmokeOut",1); */ Delay(35*2); Talking--; Delay(35*2); TakeInventory("Talking",1); } } //Shellshock script 616 (void) { if(CheckInventory("Shellshocked") == 1) terminate; GiveInventory("Shellshocked",1); LocalAmbientSound("game/shellshock",127); LocalAmbientSound("game/shellshock",127); GiveInventory("ShellshockSpeed",1); GiveInventory("InCombat",20); ACS_ExecuteAlways(606,0,0,0,0); delay(1); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); TakeInventory("Shellshocked",1); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); } //Gas grenade slowdown script 617 (int mode, int strength) { //if(CheckInventory("Shellshocked") == 1) // terminate; //Seems unused right now if(mode == 0) { GiveInventory("Shellshocked",1); GiveInventory("ShellshockSpeed",1); GiveInventory("InCombat",20); ACS_ExecuteAlways(606,0,0,0,0); delay(1); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); TakeInventory("Shellshocked",1); Radius_Quake(random(4,9),random(10,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,1.5); delay(25); } //Flashbang if(mode == 1) { GiveInventory("Shellshocked",1); GiveInventory("FlashbangSpeed",1); GiveInventory("InCombat",20); ACS_ExecuteAlways(606,0,0,0,0); delay(1); if(strength > 3) { if(strength == 5) LocalAmbientSound("flash/hit",127); else LocalAmbientSound("stun/hit",127); while(strength > 0) { GiveInventory("Shellshocked",1); GiveInventory("FlashbangSpeed",1); FadeRange(255,255,255,1.0,255,255,255,1.0,1.0); strength--; delay(25); } FadeRange(255,255,255,0.6,0,0,0,0.0,3.0); TakeInventory("PowerFlashbangSpeed",1); } else { LocalAmbientSound("stun/hit",127); while(strength > 0) { GiveInventory("Shellshocked",1); GiveInventory("FlashbangSpeed",1); FadeRange(255,255,255,1.0,255,255,255,1.0,1.0); strength--; delay(25); } TakeInventory("PowerFlashbangSpeed",1); } TakeInventory("Shellshocked",1); FadeRange(255,255,255,1.0,0,0,0,0.0,3.0); delay(25); } //Flashbang w/ blast shield pro if(mode == 2) { GiveInventory("InCombat",1); LocalAmbientSound("stun/hit",127); FadeRange(255,255,255,0.9,0,0,0,0.0,2.5); } //Stun grenade if(mode == 3) { LocalAmbientSound("stun/hit",127); LocalAmbientSound("stun/hit",127); GiveInventory("StunSpeed",1); GiveInventory("InCombat",20); ACS_ExecuteAlways(606,0,0,0,0); delay(1); Radius_Quake(random(4,9),random(25,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,3.5); delay(25); Radius_Quake(random(4,9),random(25,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,3.5); delay(25); Radius_Quake(random(4,9),random(25,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,3.5); delay(25); Radius_Quake(random(4,9),random(25,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,3.5); delay(25); TakeInventory("Shellshocked",1); Radius_Quake(random(4,9),random(25,30),0,1,0); FadeRange(255,255,255,0.6,0,0,0,0.0,3.5); delay(25); TakeInventory("PowerStunSpeed",1); } } script 618 (int Which) { if((Which == 1) && CheckInventory("MP412") == 0) { SetResultValue(1); GiveInventory("MP412",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 2) && CheckInventory("KSG 12") == 0) { SetResultValue(1); GiveInventory("KSG 12",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 3) && CheckInventory("L118A") == 0) { SetResultValue(1); GiveInventory("L118A",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 4) && CheckInventory("PM9") == 0) { SetResultValue(1); GiveInventory("PM9",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 5) && CheckInventory("SCAR-L") == 0) { SetResultValue(1); GiveInventory("SCAR-L",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 6) && CheckInventory("M320 GLM") == 0) { SetResultValue(1); GiveInventory("M320 GLM",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 7) && CheckInventory("Desert Eagle") == 0) { SetResultValue(1); GiveInventory("Desert Eagle",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 8) && CheckInventory("AA-12") == 0) { SetResultValue(1); GiveInventory("AA-12",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 9) && CheckInventory("MK46") == 0) { SetResultValue(1); GiveInventory("MK46",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 10) && CheckInventory("MP7") == 0) { SetResultValue(1); GiveInventory("MP7",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 11) && CheckInventory("AK-47") == 0) { SetResultValue(1); GiveInventory("AK-47",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 12) && CheckInventory("MSR") == 0) { SetResultValue(1); GiveInventory("MSR",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 13) && CheckInventory("Javelin") == 0) { SetResultValue(1); GiveInventory("Javelin",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 14) && CheckInventory("M4A1") == 0) { SetResultValue(1); GiveInventory("M4A1",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 15) && CheckInventory("M16A4") == 0) { SetResultValue(1); GiveInventory("M16A4",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 16) && CheckInventory("P90") == 0) { SetResultValue(1); GiveInventory("P90",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 17) && CheckInventory("Model 1887") == 0) { SetResultValue(1); GiveInventory("Model 1887",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 18) && CheckInventory("PP90M1") == 0) { SetResultValue(1); GiveInventory("PP90M1",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 19) && CheckInventory("Dragunov") == 0) { SetResultValue(1); GiveInventory("Dragunov",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 20) && CheckInventory("P99") == 0) { SetResultValue(1); GiveInventory("P99",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 21) && CheckInventory("L86 LSW") == 0) { SetResultValue(1); GiveInventory("L86 LSW",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 22) && CheckInventory("G36C") == 0) { SetResultValue(1); GiveInventory("G36C",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 23) && CheckInventory("M14 EBR") == 0) { SetResultValue(1); GiveInventory("M14 EBR",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 24) && CheckInventory("PKP Pecheneg") == 0) { SetResultValue(1); GiveInventory("PKP Pecheneg",1); GiveInventory("MaxWeaponsFilled",1); } else if((Which == 25) && CheckInventory("Riot Shield") == 0) { SetResultValue(1); GiveInventory("Riot Shield",1); GiveInventory("MaxWeaponsFilled",1); } else SetResultValue(0); } script 620 (int Which) { SetFont("CONFONT"); //if(CheckInventory("Perk2_Overkill") == 0) HudMessage(s:"Max \cf2 weapons\cd. Define a button to \cgdrop"; HUDMSG_FADEOUT, 600+PlayerNumber(), CR_Green, 0.5, 0.7, 0.5, 1.0); //else // HudMessage(s:"Max \cf4 weapons\cd. Define a button to \cgdrop"; HUDMSG_FADEOUT, 600+PlayerNumber(), CR_Green, 0.5, 0.7, 0.5, 1.0); HudMessage(s:"\cdthe one in hand. \cc[Using 'drop' in console won't work]"; HUDMSG_FADEOUT, 640+PlayerNumber(), CR_Green, 0.5, 0.725, 0.5, 1.0); } //Drops (not destroys) current weapon. script 621 (void) NET { if(CheckWeapon("MP412") == 1) { TakeInventory("MP412",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("MP412PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("Desert Eagle") == 1) { TakeInventory("Desert Eagle",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("DeaglePickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("L118A") == 1) { TakeInventory("L118A",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("L118APickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("KSG 12") == 1) { TakeInventory("KSG 12",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("KSG12PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("AA-12") == 1) { TakeInventory("AA-12",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("AA12PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("PM9") == 1) { TakeInventory("PM9",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("PM9PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("SCAR-L") == 1) { TakeInventory("SCAR-L",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("SCARLPickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("MK46") == 1) { TakeInventory("MK46",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("MK46PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("M320 GLM") == 1) { TakeInventory("M320 GLM",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("M320PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("MP7") == 1) { TakeInventory("MP7",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("MP7PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("AK-47") == 1) { TakeInventory("AK-47",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("AK47PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("MSR") == 1) { TakeInventory("MSR",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("MSRPickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("Javelin") == 1) { TakeInventory("Javelin",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("JavelinPickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("M4A1") == 1) { TakeInventory("M4A1",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("M4A1PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("M16A4") == 1) { TakeInventory("M16A4",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("M16A4PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("P90") == 1) { TakeInventory("P90",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("P90PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("Model 1887") == 1) { TakeInventory("Model 1887",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("Model1887PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("PP90M1") == 1) { TakeInventory("PP90M1",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("PP90M1PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("Dragunov") == 1) { TakeInventory("Dragunov",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("DragunovPickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("P99") == 1) { TakeInventory("P99",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("P99PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("L86 LSW") == 1) { TakeInventory("L86 LSW",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("L86PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("G36C") == 1) { TakeInventory("G36C",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("G36CPickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("M14 EBR") == 1) { TakeInventory("M14 EBR",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("M14PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("PKP Pecheneg") == 1) { TakeInventory("PKP Pecheneg",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("M14PickupSpawn",PlayerNumber()+500,0); } else if(CheckWeapon("Riot Shield") == 1) { TakeInventory("Riot Shield",1); TakeInventory("MaxWeaponsFilled",1); SpawnSpotFacing("RiotShieldPickupSpawn",PlayerNumber()+500,0); } } script 622 (void) { int i = playernumber(); KillStreak[i]++; KillSession[i]++; if(KillStreak[i] == 3 && CheckInventory("Killstreak - UAV") == 0 && KillStreak1[i] == "UAV") ACS_ExecuteAlways(644,0,"Killstreak - UAV","uav/obtain",3); if(KillStreak[i] == 5 && CheckInventory("Killstreak - Vests") == 0 && KillStreak2[i] == "Vest") ACS_ExecuteAlways(644,0,"Killstreak - Vests","vest/obtain",5); if(KillStreak[i] == 7 && CheckInventory("Killstreak - Remote Helicopter") == 0 && KillStreak3[i] == "Recon") ACS_ExecuteAlways(644,0,"Killstreak - Remote Helicopter","recon/obtain",7); } //gain killstreak script 644 (int type, int sound, int streak) { SetFont("BIGFONT"); HudMessage(d:streak, s:" pointstreak!"; HUDMSG_FADEOUT, 340+PlayerNumber(), CR_Green, 0.5, 0.4, 3.0, 1.0); HudMessage(s:type; HUDMSG_FADEOUT, 380+PlayerNumber(), CR_WHITE, 0.5, 0.45, 3.0, 1.0); LocalAmbientSound(sound,127); GiveInventory(type,1); } //UAV script 635 (void) CLIENTSIDE { int counter; int ttimer = 30; int tticker = 35; if(GetCvar("Teamplay") == 1 || GetCvar("TeamLMS") == 1 || GetCvar("CTF") == 1 || GetCvar("OneFlagCTF") == 1) { bool TeamGame = True; } SetFont("BIGFONT"); HudMessage(s:"\ccStand by"; HUDMSG_FADEOUT,190+PlayerNumber(),CR_BLUE,0.1,0.55,3.0,2.0); delay(70); //LocalAmbientSound("uav/online",127); while(ttimer > 0) { HudMessage(s:"\ccTracking..."; HUDMSG_FADEOUT,190+PlayerNumber(),CR_BLUE,0.1,0.55,3.0,2.0); while(tticker > 0) { for(counter=0; counter < 24; counter++) { if((GetActorProperty(counter+500,APROP_HEALTH) > 0 && CheckActorInventory(counter+500,"Perk2_Assassin") == 0) && ( !TeamGame || (TeamGame && GetPlayerInfo(counter,PLAYERINFO_TEAM) != PlayerTeam()))) ACS_ExecuteAlways(636,0,counter+500,"UAVICON",1000); } delay(2); tticker--; } counter = 0; tticker = 20; ttimer -= 4; SetFont("BIGFONT"); HudMessage(s:"\ccWaiting..."; HUDMSG_FADEOUT,190+PlayerNumber(),CR_BLUE,0.1,0.55,3.0,2.0); delay(35*3); } SetFont("BIGFONT"); HudMessage(s:"\ccUAV recon expired"; HUDMSG_FADEOUT,190+PlayerNumber(),CR_BLUE,0.1,0.55,3.0,2.0); //restart; } #define HUDX 640 #define HUDY 400 script 636 (int target, int image, int range) CLIENTSIDE { int dist, ang, vang, pitch, x, y; sethudsize(HUDX, HUDY, 1); setfont(image); if(GetActorProperty(playernumber()+500,APROP_HEALTH) == 0) terminate; x = getactorx(target) - getactorx(playernumber()+500); y = getactory(target) - getactory(playernumber()+500); vang = vectorangle(x,y); ang = (vang - GetActorAngle(playernumber()+500) + 1.0) % 1.0; if (ang < 0.2 || ang > 0.8) { if(((vang+0.125)%0.5) > 0.25) dist = fixeddiv(y, sin(vang)); else dist = fixeddiv(x, cos(vang)); pitch = vectorangle(dist, getactorz(target) - (getactorz(playernumber()+500) + 41.0)); pitch = (pitch + GetActorPitch(playernumber()+500) + 1.0) % 1.0; x = HUDX/2 - ((HUDX/2) * sin(ang) / cos(ang)); y = HUDY/2 - ((((HUDY/2) * sin(pitch) / cos(pitch)) * 1.6)>>16); hudmessage(s:"a"; HUDMSG_FADEOUT, target*10+playernumber(), -1, (x<<16)+0.1, (y<<16)+0.75, 0.3,0.5); } else hudmessage(s:" "; 0, target*10+playernumber(), -1, 0, 0, 0.1); } script 637 (void) { if(GetCvar("Teamplay") == 1 || GetCvar("TeamLMS") == 1 || GetCvar("CTF") == 1 || GetCvar("OneFlagCTF") == 1) { if(PlayerTeam() == TEAM_RED) SetResultValue(0); else if(PlayerTeam() == TEAM_BLUE) SetResultValue(1); else if(PlayerTeam() == 2) SetResultValue(2); else if(PlayerTeam() == 3) SetResultValue(3); } else SetResultValue(4); } //SitRep Pro tracking script 638 (void) CLIENTSIDE { int counter; if(GetCvar("Teamplay") == 1 || GetCvar("TeamLMS") == 1 || GetCvar("CTF") == 1 || GetCvar("OneFlagCTF") == 1) bool TeamGame = True; while(GetActorProperty(0,APROP_Health) > 0) { for(counter=0; counter < 16; counter++) { //Track blue explosives if(TeamGame && PlayerTeam() == 1) { ACS_ExecuteAlways(639,0,counter+8000,"CLAYTRAK",1000); ACS_ExecuteAlways(639,0,counter+8100,"BETTTRAK",1000); ACS_ExecuteAlways(639,0,counter+8200,"C4TRAK",1000); } else { ACS_ExecuteAlways(639,0,counter+8050,"CLAYTRAK",1000); ACS_ExecuteAlways(639,0,counter+8150,"BETTTRAK",1000); ACS_ExecuteAlways(639,0,counter+8250,"C4TRAK",1000); } } delay(35); } } script 639 (int target, int image, int range) CLIENTSIDE { int dist, ang, vang, pitch, x, y; sethudsize(HUDX, HUDY, 1); setfont(image); if(GetActorProperty(playernumber()+500,APROP_HEALTH) == 0 || GetActorProperty(target,APROP_HEALTH) == 0) terminate; x = getactorx(target) - getactorx(playernumber()+500); y = getactory(target) - getactory(playernumber()+500); vang = vectorangle(x,y); ang = (vang - GetActorAngle(playernumber()+500) + 1.0) % 1.0; if (ang < 0.2 || ang > 0.8) { if(((vang+0.125)%0.5) > 0.25) dist = fixeddiv(y, sin(vang)); else dist = fixeddiv(x, cos(vang)); pitch = vectorangle(dist, getactorz(target) - (getactorz(playernumber()+500) + 41.0)); pitch = (pitch + GetActorPitch(playernumber()+500) + 1.0) % 1.0; x = HUDX/2 - ((HUDX/2) * sin(ang) / cos(ang)); y = HUDY/2 - ((((HUDY/2) * sin(pitch) / cos(pitch)) * 1.6)>>16); hudmessage(s:"a"; HUDMSG_FADEOUT, target+playernumber()+500, -1, (x<<16)+0.1, (y<<16)+0.75, 0.1,0.5); } else hudmessage(s:" "; 0, 0, -1, 0, 0, 0.1); } script 640 (int Team, int Type) { int counter; for(counter=0; counter < 32; counter++) { if(Team == 0 && Type == 0 && ThingCount(T_NONE,8000+counter) == 0) { Thing_ChangeTID(0,8000+counter); terminate; } else if(Team == 1 && Type == 0 && ThingCount(T_NONE,8050+counter) == 0) { Thing_ChangeTID(0,8050+counter); terminate; } else if(Team == 0 && Type == 1 && ThingCount(T_NONE,8100+counter) == 0) { Thing_ChangeTID(0,8100+counter); terminate; } else if(Team == 1 && Type == 1 && ThingCount(T_NONE,8150+counter) == 0) { Thing_ChangeTID(0,8150+counter); terminate; } else if(Team == 0 && Type == 2 && ThingCount(T_NONE,8200+counter) == 0) { Thing_ChangeTID(0,8200+counter); terminate; } else if(Team == 1 && Type == 2 && ThingCount(T_NONE,8250+counter) == 0) { Thing_ChangeTID(0,8250+counter); terminate; } } } //SitRep PRO pinging script 641 (void) CLIENTSIDE { int counter; int ttimer = 0; int tticker = 1; if(GetCvar("Teamplay") == 1 || GetCvar("TeamLMS") == 1 || GetCvar("CTF") == 1 || GetCvar("OneFlagCTF") == 1) { bool TeamGame = True; } SetFont("BIGFONT"); HudMessage(s:"\ccSitRep Pro pinger"; HUDMSG_FADEOUT,270+PlayerNumber(),CR_BLUE,0.1,0.5,3.0,2.0); delay(35); while(GetActorProperty(0,APROP_HEALTH) > 0) { if(ttimer == 12) { SetFont("BIGFONT"); HudMessage(s:"\ccPinging..."; HUDMSG_FADEOUT,270+PlayerNumber(),CR_BLUE,0.1,0.5,1.0,1.0); for(counter=0; counter < 32; counter++) { if((GetActorProperty(counter+500,APROP_HEALTH) > 0 && CheckActorInventory(counter+500,"Perk3_DeadSilence") == 0 && counter != playernumber()) && ( !TeamGame || (TeamGame && GetPlayerInfo(counter,PLAYERINFO_TEAM) != PlayerTeam()))) { ThingSound(counter+500,"sitrep/ping",127); ThingSound(counter+500,"sitrep/ping",48); } } ttimer = 0; } ttimer++; delay(17); } SetFont("BIGFONT"); //restart; } int SemtexThrower; int SemtexVictim; //Stuck by semtex script 642 (int which) { if(which == 1) { delay(2); SemtexThrower = ActivatorTID(); SetFont("BIGFONT"); HudMessage(s:"\cgSTUCK!"; HUDMSG_FADEOUT,240+PlayerNumber(),CR_RED,0.5,0.5,1.0,1.0); SpawnProjectile(SemtexThrower,"SemtexStuckExplosion",0,0,0,0,5310); delay(50); //Thing_Damage2(SemtexVictim,200,"Explosion"); //SpawnSpot("SemtexStuckExplosion",SemtexVictim,5310,0); delay(1); SetActorPosition(5310, GetActorX(SemtexVictim), GetActorY(SemtexVictim), GetActorZ(SemtexVictim), 0); //Thing_Hate(5310,SemtexVictim,6); delay(2); SemtexThrower = 0; SemtexVictim = 0; } else { SemtexVictim = ActivatorTID(); SetFont("BIGFONT"); HudMessage(s:"\cgSTUCK!"; HUDMSG_FADEOUT,240+PlayerNumber(),CR_RED,0.5,0.5,1.0,1.0); ActivatorSound("semtex/beep2",127); LocalAmbientSound("semtex/stuck",127); } } //announce killstreak script 643 (int which) { str friendsound; str enemysound; str item; if(GetCvar("Teamplay") == 1 || GetCvar("TeamLMS") == 1 || GetCvar("CTF") == 1 || GetCvar("OneFlagCTF") == 1) { bool TeamGame = True; } if(which == 0) { friendsound = "uav/online"; enemysound = "uav/enemy"; item = "UAVActivator"; } else if(which == 1) { friendsound = "vest/online"; enemysound = ""; item = "VestActivator"; } else if(which == 2) { friendsound = "recon/online"; enemysound = "recon/enemy"; item = ""; } for(int counter=0; counter < 32; counter++) { if((counter != playernumber()) && ( !TeamGame || (TeamGame && GetPlayerInfo(counter,PLAYERINFO_TEAM) != PlayerTeam()))) ThingSound(counter+500,enemysound,127); else if((TeamGame && GetPlayerInfo(counter,PLAYERINFO_TEAM) == PlayerTeam())) { ThingSound(counter+500,friendsound,127); if(item != "") GiveActorInventory(counter+500,item,1); } else if(counter == Playernumber()) { LocalAmbientSound(friendsound,127); if(item != "") GiveInventory(item,1); } } } //track vests script 645 (void) CLIENTSIDE { int counter; if(GetCvar("Teamplay") == 1 || GetCvar("TeamLMS") == 1 || GetCvar("CTF") == 1 || GetCvar("OneFlagCTF") == 1) bool TeamGame = True; //Track blue vests if(TeamGame && PlayerTeam() == 0) { while(ThingCount(T_NONE,8900) > 0) { ACS_ExecuteAlways(639,0,8900,"VESTICON",1000); delay(3); } } //Track red vests else if(TeamGame && PlayerTeam() == 1) { while(ThingCount(T_NONE,8901) > 0) { ACS_ExecuteAlways(639,0,8901,"VESTICON",1000); delay(3); } } //Track own vests in non-team game else { while(ThingCount(T_NONE,8902) > 0) { ACS_ExecuteAlways(639,0,8902,"VESTICON",1000); delay(3); } } } //give vest and stuff script 646 (void) { SetFont("BIGFONT"); HudMessage(s:"Ballistic Vest"; HUDMSG_FADEOUT, 340+PlayerNumber(), CR_Yellow, 0.5, 0.4, 3.0, 1.0); GiveInventory("Perk2_Juggernaut",1); GiveInventory("Perk2_BlastShield",1); //These 2 perks are just so that enemy players know that their target has some sort of bonus GiveInventory("Perk2_Vest",1); GiveInventory("Perk2_VestEffect",1); } //Remote recon helicopter script 647 (int check) { if(ThingCount(T_NONE,8910) == 0 && Check == 1) { SetResultValue(1); terminate; } else if(ThingCount(T_NONE,8910) == 1 && Check == 1) { SetResultValue(0); terminate; } int ttimer; int i = playernumber(); SetPlayerProperty(0,1,0); GiveInventory("RemoteControl",1); SetWeapon("RemoteControl"); FadeRange(0,0,0,0.0,0,0,0,1.0,0.6); delay(30); //SpawnSpot("RemoteReconHelicopter",i+500,i+8910,0); ChangeCamera(8910,0,0); FadeRange(0,0,0,1.0,0,0,0,0.0,0.6); //Change cam to the copter, does not revert until destroyed while(ThingCount(T_NONE,8910) > 0 && GetActorProperty(0,APROP_Health) > 0) { int buttons = GetPlayerInput(-1, INPUT_BUTTONS); SetWeapon("RemoteControl"); SetActorPitch(8910,GetActorPitch(0)); SetActorAngle(8910,GetActorAngle(0)); if(buttons & BT_FORWARD) ThrustThing(GetActorAngle(0) >> 8, 4, 0, 8910); if(buttons & BT_BACK) ThrustThing((GetActorAngle(0) >> 8)+128, 4, 0, 8910); if(buttons & BT_MOVERIGHT) ThrustThing((GetActorAngle(0) >> 8)-64, 4, 0, 8910); if(buttons & BT_MOVELEFT) ThrustThing((GetActorAngle(0) >> 8)+64, 4, 0, 8910); if(buttons & BT_JUMP) ThrustThingZ(8910, 10, 0, 1); if(buttons & BT_CROUCH) ThrustThingZ(8910, 10, 1, 1); if(buttons & BT_ATTACK) GiveActorInventory(8910,"MP7Counter",1); ChangeCamera(8910,0,0); if(ttimer == 35*60) Thing_Destroy(8910,0); ttimer++; delay(1); } Thing_Destroy(8910,0); FadeRange(0,0,0,0.0,0,0,0,1.0,0.0); delay(30); FadeRange(0,0,0,1.0,0,0,0,0.0,0.6); SetPlayerProperty(0,0,0); TakeInventory("RemoteControl",1); } //Javelin ADS, mostly the same as steadying sniper aim but without the sounds script 648 (int mode) { if(Mode == 0) { while(CheckInventory("Aiming") == 1 || CheckInventory("BreathWait") != 0) { int buttons = GetPlayerInput(-1, INPUT_BUTTONS); int Pin = PlayerPIN[PlayerNumber()]; int Flags2 = PlayerFlags2[Pin]; int Strength = CheckInventory("BreathWait"); int Counter = 0; while(Counter < 2 && CheckInventory("HoldBreath") == 0) { //SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-10,10)*Strength)); //SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-10,10)*Strength)); delay(1); //SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-10,10)*Strength)); //SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-10,10)*Strength)); delay(1); //SetActorAngle(0,GetActorAngle(0)+random(-50,50)+(random(-10,10)*Strength)); //SetActorPitch(0,GetActorPitch(0)-random(-50,50)+(random(-10,10)*Strength)); delay(1); TakeInventory("BreathWait",1); Counter += 1; if(Counter == 2 && CheckInventory("Aiming") == 1 && CheckInventory("BreathWait") == 0) { SetFont("CONFONT"); HudMessage(s:"\ccHold \cf",k:"+speed", s:"[bind key +speed] \ccto lock on"; HUDMSG_FADEINOUT,0,CR_WHITE,0.5,0.55,0.0,0.16,0.16); HudMessage(s:"\cc[\cfbind key +speed \ccif unbound]"; HUDMSG_FADEINOUT,0,CR_WHITE,0.5,0.575,0.0,0.16,0.16); } } if(CheckInventory("JavelinTooClose") == 1 || ACS_ExecuteWithResult(649,0,0,0) == 0) { Delay(5); SetFont("CONFONT"); HudMessage(s:"NOT SAFE FOR LOCK ON"; HUDMSG_FADEINOUT,0,CR_ORANGE,0.5,0.4,0.0,0.16,0.16); } if(CheckInventory("HoldBreath") == 0 && CheckInventory("BreathWait") == 0 && (CheckInventory("JavelinTooClose") == 0 && ACS_ExecuteWithResult(649,0,0,0) == 1)) { if(buttons & BT_SPEED) { ActivatorSound("javelin/lockseek",127); GiveInventory("HoldBreath",35); } } else if(CheckInventory("HoldBreath") != 0 && (CheckInventory("JavelinTooClose") == 0 && ACS_ExecuteWithResult(649,0,0,0) == 1) && buttons & BT_SPEED) { Delay(20); TakeInventory("HoldBreath",1); GiveInventory("BreathWait",1); if(CheckInventory("BreathWait") == 2) ActivatorSound("javelin/lockon",127); } else if(CheckInventory("HoldBreath") != 0 && (CheckInventory("JavelinTooClose") == 0 && ACS_ExecuteWithResult(649,0,0,0) == 1)) { TakeInventory("HoldBreath",35); } delay(1); } } } Script 649 (int which) // Sky Check { if(which == 0) { if(CheckActorCeilingTexture(0, "F_SKY1")) SetResultValue(1); else SetResultValue(0); } if(which == 1) SetResultValue((GetActorCeilingZ (0) - GetActorZ (0))-16); } //Riot shield on back script 650 (void) { while(GetActorProperty(0,APROP_Health) > 0) { if(CheckInventory("Riot Shield") == 1 && CheckWeapon("Riot Shield") == 0) { GiveInventory("RiotShieldOnBack",1); } else delay(4); if(CheckInventory("Weight") != 5) {TakeInventory("Weight",10); delay(1); GiveInventory("Weight",5); delay(1); ACS_ExecuteAlways(602,0,0,0,0);} delay(2); } } //Place TacticalInsertion script 651 (void) { if(TacticalInsertion[PlayerNumber()+1] == False) { SpawnSpotFacing("TacticalInsertionPlaced",PlayerNumber()+500,PlayerNumber()+600); TacticalInsertion[PlayerNumber()+1] = True; SetFont("BIGFONT"); HudMessage(s:"\cfAlt Fire to pick up";HUDMSG_FADEOUT,0,CR_Blue,0.5,0.6,3.0,2.0); } } //Spawn at TacticalInsertion script 652 RESPAWN { if(TacticalInsertion[PlayerNumber()+1] == True) { Delay(1); Teleport(PlayerNumber()+600); Delay(1); Thing_Remove(PlayerNumber()+600); SetFont("BIGFONT"); if(GameType() == GAME_NET_COOPERATIVE || GameType() == GAME_SINGLE_PLAYER) HudMessageBold(n:0,s:" \cdTactical Insertion!";HUDMSG_FADEOUT,0,CR_Blue,0.2,0.3,3.0,2.0); ActivatorSound("vest/pickup",127); TacticalInsertion[PlayerNumber()+1] = False; } } script 653 (void) { SetResultValue(TacticalInsertion[PlayerNumber()+1]); } script 654 (void) { SetFont("BIGFONT"); HudMessage(s:"\cfYou've already placed one!";HUDMSG_FADEOUT,0,CR_Blue,0.5,0.6,3.0,2.0); } //Remove TacticalInsertion script 655 (int Which) { if(Which == 0) { if(TacticalInsertion[PlayerNumber()+1] == True) { Thing_Remove(PlayerNumber()+600); TacticalInsertion[PlayerNumber()+1] = False; SetFont("BIGFONT"); HudMessage(s:"\cfTactical Insertion Removed";HUDMSG_FADEOUT,0,CR_Blue,0.5,0.6,3.0,2.0); } } else { SetActivator(ActivatorTID()-100); TacticalInsertion[PlayerNumber()+1] = False; SetFont("BIGFONT"); HudMessage(s:"\cgTactical Insertion destroyed!";HUDMSG_FADEOUT,0,CR_Blue,0.5,0.6,3.0,2.0); LocalAmbientSound("semtex/stuck",127); if(GameType() != GAME_NET_COOPERATIVE || GameType() != GAME_SINGLE_PLAYER) { TakeInventory("TacticalInsertion",1); TakeInventory("TacticalInventory",1); } } } //=================LOGINS AND SHIT, to do later. //This sets the FLAGS2 and FLAGS3 of the ID script 520 (int ID, int FLAGS2, int FLAGS3) { SavedFlags2[ID] = FLAGS2; SavedFlags3[ID] = FLAGS3; Log(s:"Data successfully entered for ",d:ID,s:" with FLAGS2 of ",d:FLAGS2,s:" and FLAGS3 of ",d:FLAGS3); } script 519 (void) NET { int Pin = PlayerPIN[PlayerNumber()]; if(Pin == 0) Print(s:"You must login to use the buy menu."); else if(CheckInventory("InCombat") > 0) Print(s:"You can't open the buy menu while you're in combat."); else { GiveInventory("Menu",1); SetWeapon("Menu"); } } //This sets the FLAGS and XP available of the ID script 518 (int ID, int FLAGS, int XP) { SavedFlags[ID] = FLAGS; SavedSpentXP[ID] = XP; Log(s:"Data successfully entered for ",d:ID,s:" with FLAGS of ",d:FLAGS); } script 517 OPEN { if(GetCVAR("timelimit") == 0) Terminate; delay(35*(GetCVAR("timelimit")*60)); ACS_Execute(516,0,0,0,0); } //Gives match bonus script 516 (void) { int i; Log(s:"GIVING MATCH BONUS"); delay(70); while(i < 32) { GiveActorInventory(i+500,"GiveXPBonus",1); i++; } } //Logs an ID out, use if needed script 515 (int ID) { PlayerLogged[ID] = 0; Log(s:"LOG OUT: --------- ID ", d:ID); } //Prints all valid registrations - USE WITH CAUTION script 514 OPEN { int i = 1001; //delay(2); Log(s:"PRINTING REGISTRATIONS"); while(i < 10000) { if(SavedXP[i] > 2000 && SavedPassword[i] != 0 && SavedSpentXP[i] == 0) Log(s:"wait 1; puke 513 ",d:i,s:" ",d:SavedPassword[i],s:" ",d:SavedXP[i],s:";"); else if(SavedXP[i] > 2000 && SavedPassword[i] != 0 && (SavedFlags2[i] == 0 && SavedFlags3[i] == 0)) Log(s:"wait 1; puke 513 ",d:i,s:" ",d:SavedPassword[i],s:" ",d:SavedXP[i],s:";",s:"puke 518 ",d:i,s:" ",d:SavedFlags[i],s:" ",d:SavedSpentXP[i],s:";"); else if(SavedXP[i] > 2000 && SavedPassword[i] != 0) Log(s:"wait 1; puke 513 ",d:i,s:" ",d:SavedPassword[i],s:" ",d:SavedXP[i],s:";",s:"puke 518 ",d:i,s:" ",d:SavedFlags[i],s:" ",d:SavedSpentXP[i],s:";",s:"puke 520 ",d:i,s:" ",d:SavedFlags2[i],s:" ",d:SavedFlags3[i],s:";"); i++; } Log(s:"END PRINT"); } //This sets the PIN and XP of the ID script 513 (int ID, int PIN, int XP) { SavedXP[ID] = XP; SavedPassword[ID] = PIN; Log(s:"Data successfully entered for ",d:ID,s:" with XP of ",d:XP); } script 512 (int Gone) DISCONNECT { if(GetActorProperty(Gone+500,APROP_Health) != 100 && PlayerPIN[Gone] != 0) { //Print(s:"You've logged out of this PIN!"); Log(s:"LOG OUT: --------- ID ", d:PlayerPIN[Gone]); Log(s:"LOG OUT: --------- PIN ", d:SavedPassword[PlayerPIN[Gone]]); Log(s:"LOG OUT: --------- XP ", d:PlayerXP[PlayerPIN[Gone]]); Log(s:"LOG OUT: --------- SPENT ", d:PlayerSpentXP[PlayerPIN[Gone]]); Log(s:"LOG OUT: --------- FLAGS ", d:PlayerFLAGS[PlayerPIN[Gone]]); SavedXP[PlayerPIN[Gone]] = PlayerXP[PlayerPIN[Gone]]; //Save this player's XP SavedSpentXP[PlayerPIN[Gone]] = PlayerSpentXP[PlayerPIN[Gone]]; //Save this player's Spent XP SavedFlags[PlayerPIN[Gone]] = PlayerFlags[PlayerPIN[Gone]]; //Save this player's Flags SavedFlags2[PlayerPIN[Gone]] = PlayerFlags2[PlayerPIN[Gone]]; //Save this player's Flags SavedFlags3[PlayerPIN[Gone]] = PlayerFlags3[PlayerPIN[Gone]]; //Save this player's Flags PlayerXP[PlayerPIN[Gone]] = 0; PlayerStatus[PlayerPIN[Gone]] = 0; PlayerLogged[PlayerPIN[Gone]] = 0; PlayerPIN[Gone] = 0; PlayerFlags[Gone] = 0; PlayerSpentXP[Gone] = 0; KillStreak[Gone] = 0; KillStreak1[Gone] = 0; KillStreak2[Gone] = 0; KillStreak3[Gone] = 0; KillSession[Gone] = 0; PlayerRank[PlayerPIN[Gone]] = 0; } } script 511 (int PIN, int Password) NET { if(Password == 0 || PIN == 0) { Print(s:"\cfUsage: 'puke 511 ID PIN' in console - here's a random generated login: '\cdpuke 511 ",d:random(1001,9999),s:" ",d:random(1001,9999),s:"'\n\cfThis will register you or log you in to an existing ID"); terminate; } if(PlayerInGame(PlayerNumber()) == 1) { if(PlayerPIN[PlayerNumber()] == 0 && PlayerLogged[PIN] == 0 && PlayerStatus[PIN] == 0 && PlayerStatus[PIN] == 0 && SavedPassword[PIN] == 0 && Password > 1000 && PIN > 1000 && Password < 10000 && PIN < 10000) { PlayerXP[PIN] = SavedXP[PIN]; //Transfer saved XP to this player PlayerLogged[PIN] = 1; //Player is logged in PlayerStatus[PIN] = 1; //Player has registered PlayerPIN[PlayerNumber()] = PIN; //PlayerNumber PIN SavedPassword[PIN] = Password; Log(s:"REGISTERED: --------- ID ", d:PIN); Log(s:"REGISTERED: --------- PIN ", d:Password); Print(s:"\cfYou've registered this ID: \cd",d:PIN,s:" \cfPIN: \cd",d:Password,s:"\n\cfWrite this down or even bind a key!"); SetFont("BIGFONT"); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); delay(1); ACS_ExecuteAlways(612,0,PlayerXP[PlayerPIN[PlayerNumber()]],0,0); //Update XP/level } else if(PlayerLogged[PIN] == 0 && Password == SavedPassword[PIN] && PIN > 1000) { PlayerXP[PIN] = SavedXP[PIN]; //Transfer saved XP to this player // PlayerSpentXP[PIN] = SavedSpentXP[PIN]; //Transfer spent XP to this player // PlayerFlags[PIN] = SavedFlags[PIN]; //Transfer flags to this player // PlayerFlags2[PIN] = SavedFlags2[PIN]; //Transfer flags to this player // PlayerFlags3[PIN] = SavedFlags3[PIN]; //Transfer flags to this player PlayerLogged[PIN] = 1; //Player is logged in PlayerStatus[PIN] = 1; //Player has registered PlayerPIN[PlayerNumber()] = PIN; //PlayerNumber PIN Log(s:"LOG IN: --------- ID ", d:PIN); Log(s:"LOG IN: --------- PIN ", d:Password); Print(s:"Welcome back! You've logged into this ID: \cd",d:PIN/*,s:"\n\cfYou can \cdspend your XP! \cfType \cdPuke 519 \cfin console"*/); SetFont("BIGFONT"); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]],s:"\n\cdRank: \cc",d:PlayerRank[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); delay(1); ACS_ExecuteAlways(612,0,PlayerXP[PlayerPIN[PlayerNumber()]],0,0); //Update XP/level SetFont("DOOMFONT"); HudMessageBold(n:0,s:" \cdhas logged in with \cf",d:PlayerXP[PIN],s:" \cdXP!";HUDMSG_FADEOUT,380,CR_Blue,0.2,0.3,3.0,2.0); } else if(PlayerLogged[PIN] == 1 && PlayerPIN[PlayerNumber()] == 0) { Log(s:"FAILED LOGIN: --------- ID ", d:PIN); Print(s:"This ID number is already in use! Find another"); } else if(PlayerLogged[PIN] == 1) { Print(s:"You're already logged in! ID: \cd",d:PIN); SetFont("BIGFONT"); HudMessage(s:"\cdXP: \cc",d:PlayerXP[PlayerPIN[PlayerNumber()]]; HUDMSG_FADEOUT,130+PlayerNumber(),CR_BLUE,0.1,0.6,5.0,2.0); } else if(PIN < 1000 || PIN > 10000) { Log(s:"FAILED REGO: --------- ID ", d:PIN); Print(s:"This ID number is invalid, use a number over 1000 or under 10000"); } else if(Password < 1000 || Password > 10000) { Log(s:"FAILED REGO: --------- ID ", d:PIN); Print(s:"This PIN is invalid, use a number over 1000 or under 10000"); } else if(Password != SavedPassword[PIN]) { Log(s:"INVALID PIN: --------- ID ", d:PIN); Print(s:"Invalid PIN!"); } } } script 632 (int Flags) { int Pin = PlayerPIN[PlayerNumber()]; if((PlayerFlags3[Pin] & Flags)) //This checks if flag is already true PlayerFlags3[Pin] &= ~Flags; //Unset flag. else PlayerFlags3[Pin] |= Flags; //Set flag. log(d:PlayerFlags3[Pin], s:" flags3 for ",d:Pin); } script 633 (int Flags) { int Pin = PlayerPIN[PlayerNumber()]; if((PlayerFlags2[Pin] & Flags)) //This checks if flag is already true PlayerFlags2[Pin] &= ~Flags; //Unset flag. else PlayerFlags2[Pin] |= Flags; //Set flag. log(d:PlayerFlags2[Pin], s:" flags2 for ",d:Pin); } script 634 (int Flags) { int Pin = PlayerPIN[PlayerNumber()]; if((PlayerFlags[Pin] & Flags)) //This checks if flag is already true PlayerFlags[Pin] &= ~Flags; //Unset flag. else PlayerFlags[Pin] |= Flags; //Set flag. log(d:PlayerFlags[Pin], s:" flags for ",d:Pin); } //PLAYER FLAGS //Perk unlocks /* #define FLAG1_PERK1_SOH 1 #define FLAG1_PERK1_ExCon 2 #define FLAG1_PERK1_Hardline 4 #define FLAG1_PERK1_Scavenger 8 #define FLAG1_PERK2_Juggernaut 16 #define FLAG1_PERK2_BlastShield 32 #define FLAG1_PERK2_Assassin 64 #define FLAG1_PERK2_QuickDraw 128 #define FLAG1_PERK3_SteadyAim 256 #define FLAG1_PERK3_SitRep 512 #define FLAG1_PERK3_DeadSilence 1024 #define FLAG1_PERK3_Stalker 2048 #define FLAG1_PERK1_Something 4096 #define FLAG1_PERK2_Overkill 8192 #define FLAG1_PERK3_LastStand 16384 //Pro versions #define FLAG1_PERK1_SOHPro 32768 #define FLAG1_PERK1_ExConPro 65536 #define FLAG1_PERK1_HardlinePro 131072 #define FLAG1_PERK1_ScavengerPro 262144 #define FLAG1_PERK2_JuggernautPro 524288 #define FLAG1_PERK2_BlastShieldPro 268435456 #define FLAG1_PERK2_AssassinPro 1048576 #define FLAG1_PERK2_QuickDrawPro 2097152 #define FLAG1_PERK3_SteadyAimPro 4194304 #define FLAG1_PERK3_SitRepPro 8388608 #define FLAG1_PERK3_DeadSilencePro 16777216 #define FLAG1_PERK3_StalkerPro 33554432 #define FLAG1_PERK1_SomethingPro 67108864 #define FLAG1_PERK2_OverkillPro 134217728 //GUN FLAGS //#define FLAG2_AR_M4A1 1 //already unlocked //#define FLAG2_AR_M16A4 2 //already unlocked #define FLAG2_AR_SCARL 1 #define FLAG2_AR_G36C 2 #define FLAG2_AR_MK14 4 #define FLAG2_AR_AK47 8 #define FLAG2_AR_FAD 16 //#define FLAG2_SMG_UMP45 1 //already unlocked //#define FLAG2_SMG_MP5 1 //already unlocked #define FLAG2_SMG_PP90M1 32 #define FLAG2_SMG_P90 64 #define FLAG2_SMG_PM9 128 #define FLAG2_SMG_MP7 256 //#define FLAG2_LMG_L86 1 //already unlocked #define FLAG2_LMG_PKP 512 #define FLAG2_LMG_MK46 1024 //#define FLAG2_SNIP_50C 1 //already unlocked #define FLAG2_SNIP_L118A 2048 #define FLAG2_SNIP_DRAG 4096 #define FLAG2_SNIP_MSR 8192 //#define FLAG2_SG_KSG12 1 //already unlocked #define FLAG2_SG_AA12 16384 #define FLAG2_SG_MODEL 32768 #define FLAG2_RIOTSHIELD 65536 //#define FLAG2_HG_USP45 1 //already unlocked #define FLAG2_HG_P99 131072 #define FLAG2_HG_MP412 262144 #define FLAG2_HG_DEAGLE 524288 //#define FLAG2_LA_SMAW 1 //already unlocked #define FLAG2_LA_JAV 1048576 #define FLAG2_LA_GLM 2097152 //EQUIPMENT FLAGS //#define FLAG3_LE_FRAG 1 //already unlocked //#define FLAG3_LE_SEMTEX 1 //already unlocked #define FLAG3_LE_KNIFE 1 #define FLAG3_LE_BETTY 2 #define FLAG3_LE_CLAY 4 #define FLAG3_LE_C4 8 //#define FLAG3_TA_FLASH 1 //already unlocked //#define FLAG3_TA_STUN 1 //already unlocked #define FLAG3_TA_SMOKE 16 #define FLAG3_TA_TACT 32 #define FLAG3_TA_TROPH 64 #define FLAG3_TA_RADAR 128 */ //Buy stuff menu script 690 (void) { while(CheckWeapon("Menu") == 1) { SetHudSize(1024,768,1); SetFont("BIGFONT"); HudMessage(s:"Press \cffire \ccto select"; HUDMSG_PLAIN, 2050+PlayerNumber(), CR_WHITE, 80.1, 140.0, 1.0); HudMessage(s:"Press \cfalt-fire \ccto scroll"; HUDMSG_PLAIN, 2100+PlayerNumber(), CR_WHITE, 80.1, 155.0, 1.0); //SetActorProperty(0,APROP_Invulnerable,1); //SetPlayerProperty(0,1,PROP_FROZEN); delay(25); } SetPlayerProperty(0,0,PROP_FROZEN); SetActorProperty(0,APROP_Invulnerable,0); } //Show menu script 691 (void) { int Pin = PlayerPIN[PlayerNumber()]; int AvailableXP = PlayerXP[Pin] - PlayerSpentXP[Pin]; //Total XP minus Spent XP is available "cash" int TotalXP = PlayerXP[Pin]; int Flags = PlayerFlags[Pin]; int Flags2 = PlayerFlags2[Pin]; int Flags3 = PlayerFlags3[Pin]; //Choose to create a class or purchase things to unlock if(CheckWeapon("Menu") == 1 && CheckInventory("MenuPlace") == 0) { SetHudSize(1024,768,1); SetFont("BIGFONT"); HudMessage(s:"Spend your XP"; HUDMSG_PLAIN, 300+PlayerNumber(), CR_WHITE, 80.1, 100.0, 1.0); HudMessage(s:"Available: $\cf",d:AvailableXP; HUDMSG_PLAIN, 350+PlayerNumber(), CR_WHITE, 80.1, 185.0, 1.0); //List menu HudMessage(s:"Purchase Perks"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); HudMessage(s:"Purchase Equipment"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); HudMessage(s:"Purchase Weapons"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); HudMessage(s:"Create a Class"; HUDMSG_PLAIN, 900+PlayerNumber(), CR_WHITE, 80.1, 420.0, 1.0); HudMessage(s:"Close Menu"; HUDMSG_PLAIN, 1050+PlayerNumber(), CR_WHITE, 80.1, 480.0, 1.0); if(TotalXP < 3600) //level 4 HudMessage(s:"<- Requires Level 4"; HUDMSG_PLAIN, 0, CR_RED, 400.1, 420.0, 1.0); if(CheckInventory("MenuCursor") == 0) HudMessage(s:"Purchase Perks"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_YELLOW, 80.1, 220.0, 1.0); else if(CheckInventory("MenuCursor") == 1) HudMessage(s:"Purchase Equipment"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_YELLOW, 80.1, 240.0, 1.0); else if(CheckInventory("MenuCursor") == 2) HudMessage(s:"Purchase Weapons"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_YELLOW, 80.1, 260.0, 1.0); else if(CheckInventory("MenuCursor") == 3) HudMessage(s:"Create a Class"; HUDMSG_PLAIN, 900+PlayerNumber(), CR_YELLOW, 80.1, 420.0, 1.0); else if(CheckInventory("MenuCursor") == 4) HudMessage(s:"Close Menu"; HUDMSG_PLAIN, 1050+PlayerNumber(), CR_YELLOW, 80.1, 480.0, 1.0); if(CheckInventory("MenuCursor") >= 5) TakeInventory("MenuCursor",10); delay(5); restart; } //Buy perks if(CheckWeapon("Menu") == 1 && CheckInventory("MenuPlace") == 1) { SetHudSize(1024,768,1); SetFont("BIGFONT"); HudMessage(s:"Buy or upgrade perks"; HUDMSG_PLAIN, 300+PlayerNumber(), CR_WHITE, 80.1, 100.0, 1.0); HudMessage(s:"Available: $\cf",d:AvailableXP; HUDMSG_PLAIN, 350+PlayerNumber(), CR_WHITE, 80.1, 185.0, 1.0); //List menu if((Flags & FLAG1_PERK1_SOH) && (Flags & FLAG1_PERK1_SOHPro)) HudMessage(s:"\cvSleight Of Hand Pro - \ccComplete"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); else if((Flags & FLAG1_PERK1_SOH)) HudMessage(s:"\cvSleight Of Hand Pro - \cc$\cf12000"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); else HudMessage(s:"\cvSleight Of Hand - \cc$\cf3000"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); if((Flags & FLAG1_PERK1_ExCon) && (Flags & FLAG1_PERK1_ExConPro)) HudMessage(s:"\cvExtreme Conditioning Pro - \ccComplete"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); else if((Flags & FLAG1_PERK1_ExCon)) HudMessage(s:"\cvExtreme Conditioning Pro - \cc$\cf14000"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); else HudMessage(s:"\cvExtreme Conditioning - \cc$\cf3000"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); if((Flags & FLAG1_PERK1_Scavenger) && (Flags & FLAG1_PERK1_ScavengerPro)) HudMessage(s:"\cvScavenger Pro - \ccComplete"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); else if((Flags & FLAG1_PERK1_Scavenger)) HudMessage(s:"\cvScavenger Pro - \cc$\cf10000"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); else HudMessage(s:"\cvScavenger - \cc$\cf5000"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); if((Flags & FLAG1_PERK1_Hardline) && (Flags & FLAG1_PERK1_HardlinePro)) HudMessage(s:"\cvHardline Pro - \ccComplete"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); else if((Flags & FLAG1_PERK1_Hardline)) HudMessage(s:"\cvHardline Pro - \cc$\cf10000"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); else HudMessage(s:"\cvHardline - \cc$\cf20000"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); if((Flags & FLAG1_PERK2_QuickDraw) && (Flags & FLAG1_PERK2_QuickDrawPro)) HudMessage(s:"\cgQuick Draw Pro - \ccComplete"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); else if((Flags & FLAG1_PERK2_QuickDraw)) HudMessage(s:"\cgQuick Draw Pro - \cc$\cf10000"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); else HudMessage(s:"\cgQuick Draw - \cc$\cf6000"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); if((Flags & FLAG1_PERK2_Assassin) && (Flags & FLAG1_PERK2_AssassinPro)) HudMessage(s:"\cgAssassin Pro - \ccComplete"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_WHITE, 80.1, 320.0, 1.0); else if((Flags & FLAG1_PERK2_Assassin)) HudMessage(s:"\cgAssassin Pro - \cc$\cf12000"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_WHITE, 80.1, 320.0, 1.0); else HudMessage(s:"\cgAssassin - \cc$\cf4000"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_WHITE, 80.1, 320.0, 1.0); if((Flags & FLAG1_PERK2_BlastShield) && (Flags & FLAG1_PERK2_BlastShieldPro)) HudMessage(s:"\cgBlast Shield Pro - \ccComplete"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 340.0, 1.0); else if((Flags & FLAG1_PERK2_BlastShield)) HudMessage(s:"\cgBlast Shield Pro - \cc$\cf12000"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 340.0, 1.0); else HudMessage(s:"\cgBlast Shield - \cc$\cf3000"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 340.0, 1.0); if((Flags & FLAG1_PERK2_Juggernaut) && (Flags & FLAG1_PERK2_JuggernautPro)) HudMessage(s:"\cgJuggernaut Pro - \ccComplete"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); else if((Flags & FLAG1_PERK2_Juggernaut)) HudMessage(s:"\cgJuggernaut Pro - \cc$\cf10000"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); else HudMessage(s:"\cgJuggernaut - \cc$\cf5000"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); if((Flags & FLAG1_PERK3_Stalker) && (Flags & FLAG1_PERK3_StalkerPro)) HudMessage(s:"\cdStalker Pro - \ccComplete"; HUDMSG_PLAIN, 800+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); else if((Flags & FLAG1_PERK3_Stalker)) HudMessage(s:"\cdStalker Pro - \cc$\cf6000"; HUDMSG_PLAIN, 800+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); else HudMessage(s:"\cdStalker - \cc$\cf10000"; HUDMSG_PLAIN, 800+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); if((Flags & FLAG1_PERK3_DeadSilence) && (Flags & FLAG1_PERK3_DeadSilencePro)) HudMessage(s:"\cdDead Silence Pro - \ccComplete"; HUDMSG_PLAIN, 850+PlayerNumber(), CR_WHITE, 80.1, 400.0, 1.0); else if((Flags & FLAG1_PERK3_DeadSilence)) HudMessage(s:"\cdDead Silence Pro - \cc$\cf8000"; HUDMSG_PLAIN, 850+PlayerNumber(), CR_WHITE, 80.1, 400.0, 1.0); else HudMessage(s:"\cdDead Silence - \cc$\cf12000"; HUDMSG_PLAIN, 850+PlayerNumber(), CR_WHITE, 80.1, 400.0, 1.0); if((Flags & FLAG1_PERK3_SteadyAim) && (Flags & FLAG1_PERK3_SteadyAimPro)) HudMessage(s:"\cdSteady Aim Pro - \ccComplete"; HUDMSG_PLAIN, 900+PlayerNumber(), CR_WHITE, 80.1, 420.0, 1.0); else if((Flags & FLAG1_PERK3_SteadyAim)) HudMessage(s:"\cdSteady Aim Pro - \cc$\cf8000"; HUDMSG_PLAIN, 900+PlayerNumber(), CR_WHITE, 80.1, 420.0, 1.0); else HudMessage(s:"\cdSteady Aim - \cc$\cf10000"; HUDMSG_PLAIN, 900+PlayerNumber(), CR_WHITE, 80.1, 420.0, 1.0); if((Flags & FLAG1_PERK3_SitRep) && (Flags & FLAG1_PERK3_SitRepPro)) HudMessage(s:"\cdSitRep Pro - \ccComplete"; HUDMSG_PLAIN, 950+PlayerNumber(), CR_WHITE, 80.1, 440.0, 1.0); else if((Flags & FLAG1_PERK3_SitRep)) HudMessage(s:"\cdSitRep Pro - \cc$\cf20000"; HUDMSG_PLAIN, 950+PlayerNumber(), CR_WHITE, 80.1, 440.0, 1.0); else HudMessage(s:"\cdSitRep - \cc$\cf7000"; HUDMSG_PLAIN, 950+PlayerNumber(), CR_WHITE, 80.1, 440.0, 1.0); HudMessage(s:"Go Back"; HUDMSG_PLAIN, 1050+PlayerNumber(), CR_WHITE, 80.1, 480.0, 1.0); if(CheckInventory("MenuCursor") == 0) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 220.0, 1.0); HudMessage(s:"Faster Reloading \n\n\cfPro: \ccFaster weapon switching \nfaster pump-action and bolt-action"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK1_SOH)) SetFont("P1SOHP"); else SetFont("P1SOH"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 1) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 240.0, 1.0); HudMessage(s:"Faster Health Regeneration \n\n\cfPro: \ccFaster movement"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK1_ExCon)) SetFont("P1EXCONP"); else SetFont("P1EXCON"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 2) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 260.0, 1.0); HudMessage(s:"Blue packs refill ammo \n\n\cfPro: \ccSpawn with extra mags"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK1_Scavenger)) SetFont("P1SCAVP"); else SetFont("P1SCAV"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 3) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 280.0, 1.0); HudMessage(s:"XP earned increased\n\n\cfPro: \cc1 less death required for deathstreaks"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK1_Hardline)) SetFont("P1HARDLP"); else SetFont("P1HARDL"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 4) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 300.0, 1.0); HudMessage(s:"Faster ADS\n\n\cfPro: \ccFaster knife and grenade recovery"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK2_QuickDraw)) SetFont("P2QUICKP"); else SetFont("P2QUICK"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 5) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 320.0, 1.0); HudMessage(s:"Hidden from UAV and reduced\ndamage from killstreaks\n\n\cfPro: \ccNo killcam for players you kill"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK2_Assassin)) SetFont("P2ASSASP"); else SetFont("P2ASSAS"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 6) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 340.0, 1.0); HudMessage(s:"Explosive damage taken reduced by 35%\n\n\cfPro: \ccImmune to stuns and flashes"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK2_BlastShield)) SetFont("P2BLASTP"); else SetFont("P2BLAST"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 7) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 360.0, 1.0); HudMessage(s:"All damage taken reduced by 20%\n\n\cfPro: \ccImproved health regeneration"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK2_Juggernaut)) SetFont("P2JUGGP"); else SetFont("P2JUGG"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 8) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 380.0, 1.0); HudMessage(s:"Faster movement while in ADS\n\n\cfPro: \ccDelayed claymores and betties"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK3_Stalker)) SetFont("P3STALKP"); else SetFont("P3STALK"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 9) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 400.0, 1.0); HudMessage(s:"Silent footsteps, immune to SitRep Pro\n\n\cfPro: \ccReduced falling damage"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK3_DeadSilence)) SetFont("P3DEADP"); else SetFont("P3DEAD"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 10) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 420.0, 1.0); HudMessage(s:"Reduced recoil\n\n\cfPro: \ccLonger hold breath time"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK3_SteadyAim)) SetFont("P3STEADP"); else SetFont("P3STEAD"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 11) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 440.0, 1.0); HudMessage(s:"Detect enemy explosives\n\n\cfPro: \ccNearby enemies make pinging sound"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 650.4, 350.0, 1.0); if((Flags & FLAG1_PERK3_SitRep)) SetFont("P3SITREP"); else SetFont("P3SITRE"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 650.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 12) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 480.0, 1.0); if(CheckInventory("MenuCursor") >= 13) TakeInventory("MenuCursor",15); delay(5); restart; } //Buy equipment if(CheckWeapon("Menu") == 1 && CheckInventory("MenuPlace") == 2) { SetHudSize(1024,768,1); SetFont("BIGFONT"); HudMessage(s:"Buy lethal and tactical equipment"; HUDMSG_PLAIN, 300+PlayerNumber(), CR_WHITE, 80.1, 100.0, 1.0); HudMessage(s:"Available: $\cf",d:AvailableXP; HUDMSG_PLAIN, 350+PlayerNumber(), CR_WHITE, 80.1, 185.0, 1.0); HudMessage(s:"\ccLethal"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); if((Flags3 & FLAG3_LE_KNIFE)) HudMessage(s:"\cqThrowing Knife - \ccOwned"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); else HudMessage(s:"\cqThrowing Knife - \cc$\cf5000"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); if((Flags3 & FLAG3_LE_BETTY)) HudMessage(s:"\cqBouncing Betty - \ccOwned"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); else HudMessage(s:"\cqBouncing Betty - \cc$\cf6000"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); if((Flags3 & FLAG3_LE_CLAY)) HudMessage(s:"\cqClaymore - \ccOwned"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); else HudMessage(s:"\cqClaymore - \cc$\cf8000"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); if((Flags3 & FLAG3_LE_C4)) HudMessage(s:"\cqC4 - \ccOwned"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); else HudMessage(s:"\cqC4 - \cc$\cf6000"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); HudMessage(s:"\ccTactical"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_WHITE, 80.1, 340.0, 1.0); if((Flags3 & FLAG3_TA_SMOKE)) HudMessage(s:"\cmSmoke Grenade - \ccOwned"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); else HudMessage(s:"\cmSmoke Grenade - \cc$\cf4000"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); if((Flags3 & FLAG3_TA_TACT)) HudMessage(s:"\cdTactical Insertion - \ccOwned"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); else HudMessage(s:"\cdTactical Insertion - \cc$\cf6000"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); if((Flags3 & FLAG3_TA_TROPH)) HudMessage(s:"\cmTrophy System - \ccOwned"; HUDMSG_PLAIN, 800+PlayerNumber(), CR_WHITE, 80.1, 400.0, 1.0); else HudMessage(s:"\cmTrophy System - \cc$\cf6000"; HUDMSG_PLAIN, 800+PlayerNumber(), CR_WHITE, 80.1, 400.0, 1.0); if((Flags3 & FLAG3_TA_RADAR)) HudMessage(s:"\cmPortable Radar - \ccOwned"; HUDMSG_PLAIN, 850+PlayerNumber(), CR_WHITE, 80.1, 420.0, 1.0); else HudMessage(s:"\cmPortable Radar - \cc$\cf10000"; HUDMSG_PLAIN, 850+PlayerNumber(), CR_WHITE, 80.1, 420.0, 1.0); HudMessage(s:"Go Back"; HUDMSG_PLAIN, 1050+PlayerNumber(), CR_WHITE, 80.1, 480.0, 1.0); if(CheckInventory("MenuCursor") == 0) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 240.0, 1.0); HudMessage(s:"Throw a knife at your enemies"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENUKNIF"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 1) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 260.0, 1.0); HudMessage(s:"Land mine that explodes in the air"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENUBETT"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 2) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 280.0, 1.0); HudMessage(s:"Directional land mine"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENUCLAY"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 3) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 300.0, 1.0); HudMessage(s:"Remote C4 explosive"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENUC4"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 4) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 360.0, 1.0); HudMessage(s:"Makes lots of smoke\n\cdNot yet added"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENUSMOK"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 5) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 380.0, 1.0); HudMessage(s:"Choose where to respawn"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENUTACT"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 6) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 400.0, 1.0); HudMessage(s:"Protect yourself and allies from explosives\n\cdNot yet added"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENUTROP"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 7) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 420.0, 1.0); HudMessage(s:"Pings nearby enemy players\nAssassin grants immunity to this\n\cdNot yet added"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("MENURADA"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 8) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 480.0, 1.0); if(CheckInventory("MenuCursor") >= 9) TakeInventory("MenuCursor",10); delay(5); restart; } //Select categories of weapons if(CheckWeapon("Menu") == 1 && CheckInventory("MenuPlace") == 3) { SetHudSize(1024,768,1); SetFont("BIGFONT"); HudMessage(s:"Select Weapon Categories"; HUDMSG_PLAIN, 300+PlayerNumber(), CR_WHITE, 80.1, 100.0, 1.0); HudMessage(s:"Available: $\cf",d:AvailableXP; HUDMSG_PLAIN, 350+PlayerNumber(), CR_WHITE, 80.1, 185.0, 1.0); HudMessage(s:"\ccPrimary"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); //List menu HudMessage(s:"Assault Rifles + LMGs"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_GREEN, 80.1, 240.0, 1.0); HudMessage(s:"SMGs + Shotguns"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_GREEN, 80.1, 260.0, 1.0); HudMessage(s:"Sniper Rifles + Misc"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_GREEN, 80.1, 280.0, 1.0); HudMessage(s:"\ccSecondary"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 320.0, 1.0); //List secondaries HudMessage(s:"Handguns + Launchers"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_GREEN, 80.1, 340.0, 1.0); HudMessage(s:"Go Back"; HUDMSG_PLAIN, 1050+PlayerNumber(), CR_WHITE, 80.1, 480.0, 1.0); if(CheckInventory("MenuCursor") == 0) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 240.0, 1.0); else if(CheckInventory("MenuCursor") == 1) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 260.0, 1.0); else if(CheckInventory("MenuCursor") == 2) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 280.0, 1.0); else if(CheckInventory("MenuCursor") == 3) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 340.0, 1.0); else if(CheckInventory("MenuCursor") == 4) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 480.0, 1.0); if(CheckInventory("MenuCursor") >= 5) TakeInventory("MenuCursor",10); delay(5); restart; } //Buy assault rifles and LMGs if(CheckWeapon("Menu") == 1 && CheckInventory("MenuPlace") == 4) { SetHudSize(1024,768,1); SetFont("BIGFONT"); HudMessage(s:"Buy assault rifles and LMGs"; HUDMSG_PLAIN, 300+PlayerNumber(), CR_WHITE, 80.1, 100.0, 1.0); HudMessage(s:"Available: $\cf",d:AvailableXP; HUDMSG_PLAIN, 350+PlayerNumber(), CR_WHITE, 80.1, 185.0, 1.0); HudMessage(s:"\ccAssault Rifles"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); if((Flags2 & FLAG2_AR_SCARL)) HudMessage(s:"\csSCAR-L - \ccOwned"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); else HudMessage(s:"\csSCAR-L - \cc$\cf7500"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); if((Flags2 & FLAG2_AR_G36C)) HudMessage(s:"\csG36C - \ccOwned"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); else HudMessage(s:"\csG36C - \cc$\cf7500"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); if((Flags2 & FLAG2_AR_MK14)) HudMessage(s:"\csM14 EBR - \ccOwned"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); else HudMessage(s:"\csM14 EBR - \cc$\cf7500"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); if((Flags2 & FLAG2_AR_AK47)) HudMessage(s:"\csAK-47 - \ccOwned"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); else HudMessage(s:"\csAK-47 - \cc$\cf7500"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); if((Flags2 & FLAG2_AR_FAD)) HudMessage(s:"\cmFAD - \ccOwned"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_WHITE, 80.1, 320.0, 1.0); else HudMessage(s:"\cmFAD - \cc$\cf7500"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_WHITE, 80.1, 320.0, 1.0); HudMessage(s:"\ccLMGs"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); if((Flags2 & FLAG2_LMG_PKP)) HudMessage(s:"\cqPKP Pecheneg - \ccOwned"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); else HudMessage(s:"\cqPKP Pecheneg - \cc$\cf7500"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); if((Flags2 & FLAG2_LMG_MK46)) HudMessage(s:"\cqMK46 - \ccOwned"; HUDMSG_PLAIN, 800+PlayerNumber(), CR_WHITE, 80.1, 400.0, 1.0); else HudMessage(s:"\cqMK46 Pecheneg - \cc$\cf7500"; HUDMSG_PLAIN, 800+PlayerNumber(), CR_WHITE, 80.1, 400.0, 1.0); HudMessage(s:"Go Back"; HUDMSG_PLAIN, 1050+PlayerNumber(), CR_WHITE, 80.1, 480.0, 1.0); if(CheckInventory("MenuCursor") == 0) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 240.0, 1.0); HudMessage(s:"All purpose assault rifle"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPI0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 1) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 260.0, 1.0); HudMessage(s:"All purpose assault rifle"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPV0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 2) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 280.0, 1.0); HudMessage(s:"Semi-automatic"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPW0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 3) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 300.0, 1.0); HudMessage(s:"All purpose assault rifle"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPK0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 4) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 320.0, 1.0); HudMessage(s:"All purpose assault rifle\n\cdNot yet added"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPK0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 5) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 380.0, 1.0); HudMessage(s:"Fully Automatic, large magazines"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPG0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 6) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 400.0, 1.0); HudMessage(s:"Fully Automatic, large magazines"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPX0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 7) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 480.0, 1.0); if(CheckInventory("MenuCursor") >= 8) TakeInventory("MenuCursor",10); delay(5); restart; } //Buy SMGs and Shotguns if(CheckWeapon("Menu") == 1 && CheckInventory("MenuPlace") == 5) { SetHudSize(1024,768,1); SetFont("BIGFONT"); HudMessage(s:"Buy SMGs and Shotguns"; HUDMSG_PLAIN, 300+PlayerNumber(), CR_WHITE, 80.1, 100.0, 1.0); HudMessage(s:"Available: $\cf",d:AvailableXP; HUDMSG_PLAIN, 350+PlayerNumber(), CR_WHITE, 80.1, 185.0, 1.0); HudMessage(s:"\ccSMGs"; HUDMSG_PLAIN, 400+PlayerNumber(), CR_WHITE, 80.1, 220.0, 1.0); if((Flags2 & FLAG2_SMG_PP90M1)) HudMessage(s:"\cdPP90M1 - \ccOwned"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); else HudMessage(s:"\cdPP90M1 - \cc$\cf7500"; HUDMSG_PLAIN, 450+PlayerNumber(), CR_WHITE, 80.1, 240.0, 1.0); if((Flags2 & FLAG2_SMG_P90)) HudMessage(s:"\cdP90 - \ccOwned"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); else HudMessage(s:"\cdP90 - \cc$\cf7500"; HUDMSG_PLAIN, 500+PlayerNumber(), CR_WHITE, 80.1, 260.0, 1.0); if((Flags2 & FLAG2_SMG_PM9)) HudMessage(s:"\cdPM-9 - \ccOwned"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); else HudMessage(s:"\cdPM-9 - \cc$\cf7500"; HUDMSG_PLAIN, 550+PlayerNumber(), CR_WHITE, 80.1, 280.0, 1.0); if((Flags2 & FLAG2_SMG_MP7)) HudMessage(s:"\cdMP7 - \ccOwned"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); else HudMessage(s:"\cdMP7 - \cc$\cf7500"; HUDMSG_PLAIN, 600+PlayerNumber(), CR_WHITE, 80.1, 300.0, 1.0); HudMessage(s:"\ccShotguns"; HUDMSG_PLAIN, 650+PlayerNumber(), CR_WHITE, 80.1, 340.0, 1.0); if((Flags2 & FLAG2_SG_AA12)) HudMessage(s:"\caAA-12 - \ccOwned"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); else HudMessage(s:"\caAA-12 - \cc$\cf7500"; HUDMSG_PLAIN, 700+PlayerNumber(), CR_WHITE, 80.1, 360.0, 1.0); if((Flags2 & FLAG2_SG_MODEL)) HudMessage(s:"\caModel 1887 - \ccOwned"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); else HudMessage(s:"\caModel 1887 - \cc$\cf7500"; HUDMSG_PLAIN, 750+PlayerNumber(), CR_WHITE, 80.1, 380.0, 1.0); HudMessage(s:"Go Back"; HUDMSG_PLAIN, 1050+PlayerNumber(), CR_WHITE, 80.1, 480.0, 1.0); if(CheckInventory("MenuCursor") == 0) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 240.0, 1.0); HudMessage(s:"High mobility and rate of fire"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPR0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 1) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 260.0, 1.0); HudMessage(s:"Large magazines"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPP0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 2) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 280.0, 1.0); HudMessage(s:"High mobility and rate of fire"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPE0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 3) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 300.0, 1.0); HudMessage(s:"High mobility and rate of fire"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPJ0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 4) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 360.0, 1.0); HudMessage(s:"Fully automatic, low ammo"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPA0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 5) { HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 380.0, 1.0); HudMessage(s:"Pump-action"; HUDMSG_PLAIN, 1350+PlayerNumber(), CR_WHITE, 700.4, 400.0, 1.0); SetFont("GUNPQ0H"); HudMessage(s:"a"; HUDMSG_PLAIN, 1400+PlayerNumber(), CR_YELLOW, 700.0, 250.0, 1.0); } else if(CheckInventory("MenuCursor") == 6) HudMessage(s:"->"; HUDMSG_PLAIN, 1300+PlayerNumber(), CR_YELLOW, 60.1, 480.0, 1.0); if(CheckInventory("MenuCursor") >= 7) TakeInventory("MenuCursor",10); delay(5); restart; } } str NOBUY = "You can't buy this"; str NOUSE = "Gain more XP"; //Make selection script 692 (void) { int Pin = PlayerPIN[PlayerNumber()]; int TotalXP = PlayerXP[Pin]; int AvailableXP = PlayerXP[Pin] - PlayerSpentXP[Pin]; //Total XP minus Spent XP is available "cash" int Flags = PlayerFlags[Pin]; int Flags2 = PlayerFlags2[Pin]; int Flags3 = PlayerFlags3[Pin]; //MenuPlace 0: We're in the where to go menu. if(CheckInventory("MenuPlace") == 0) { if(CheckInventory("MenuCursor") == 0) //Go to buy perks menu GiveInventory("MenuPlace",1); else if(CheckInventory("MenuCursor") == 1) //Go to buy equipment menu GiveInventory("MenuPlace",2); else if(CheckInventory("MenuCursor") == 2) //Go to buy weapons menu GiveInventory("MenuPlace",3); else if(CheckInventory("MenuCursor") == 3) //Go to Create a Class { if(TotalXP < 3600) Print(s:NOUSE); else GiveInventory("MenuPlace",10); } else if(CheckInventory("MenuCursor") == 4) //Close menu. TakeInventory("Menu",1); TakeInventory("MenuCursor",15); } //MenuPlace 1: We're in the buy perks menu else if(CheckInventory("MenuPlace") == 1) { if(CheckInventory("MenuCursor") == 0) //Select Sleight of Hand { if(!(Flags & FLAG1_PERK1_SOH) && AvailableXP >= 3000) { Print(s:"You bought Sleight of Hand!"); PlayerSpentXP[Pin] += 3000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_SOH,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK1_SOH) && !(Flags & FLAG1_PERK1_SOHPro) && AvailableXP >= 12000) { Print(s:"You bought Sleight of Hand Pro!"); PlayerSpentXP[Pin] += 12000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_SOHPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 1) //Select Extreme Conditioning { if(!(Flags & FLAG1_PERK1_ExCon) && AvailableXP >= 3000) { Print(s:"You bought Extreme Conditioning!"); PlayerSpentXP[Pin] += 3000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_ExCon,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK1_ExCon) && !(Flags & FLAG1_PERK1_ExConPro) && AvailableXP >= 14000) { Print(s:"You bought Extreme Conditioning Pro!"); PlayerSpentXP[Pin] += 14000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_ExConPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 2) //Select Scavenger { if(!(Flags & FLAG1_PERK1_Scavenger) && AvailableXP >= 5000) { Print(s:"You bought Scavenger!"); PlayerSpentXP[Pin] += 5000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_Scavenger,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK1_Scavenger) && !(Flags & FLAG1_PERK1_ScavengerPro) && AvailableXP >= 10000) { Print(s:"You bought Scavenger Pro!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_ScavengerPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 3) //Select Hardline { if(!(Flags & FLAG1_PERK1_Hardline) && AvailableXP >= 20000) { Print(s:"You bought Hardline!"); PlayerSpentXP[Pin] += 20000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_Hardline,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK1_Hardline) && !(Flags & FLAG1_PERK1_HardlinePro) && AvailableXP >= 10000) { Print(s:"You bought Hardline Pro!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(634,0,FLAG1_PERK1_HardlinePro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 4) //Select Quickdraw { if(!(Flags & FLAG1_PERK2_Quickdraw) && AvailableXP >= 6000) { Print(s:"You bought Quick Draw!"); PlayerSpentXP[Pin] += 6000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_Quickdraw,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK2_Quickdraw) && !(Flags & FLAG1_PERK2_QuickdrawPro) && AvailableXP >= 10000) { Print(s:"You bought Quick Draw Pro!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_QuickdrawPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 5) //Select Assassin { if(!(Flags & FLAG1_PERK2_Assassin) && AvailableXP >= 8000) { Print(s:"You bought Assassin!"); PlayerSpentXP[Pin] += 8000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_Assassin,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK2_Assassin) && !(Flags & FLAG1_PERK2_AssassinPro) && AvailableXP >= 12000) { Print(s:"You bought Assassin Pro!"); PlayerSpentXP[Pin] += 12000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_AssassinPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 6) //Select Blast Shield { if(!(Flags & FLAG1_PERK2_BlastShield) && AvailableXP >= 3000) { Print(s:"You bought Blast Shield!"); PlayerSpentXP[Pin] += 3000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_BlastShield,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK2_BlastShield) && !(Flags & FLAG1_PERK2_BlastShieldPro) && AvailableXP >= 12000) { Print(s:"You bought Blast Shield Pro!"); PlayerSpentXP[Pin] += 12000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_BlastShieldPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 7) //Select Juggernaut { if(!(Flags & FLAG1_PERK2_Juggernaut) && AvailableXP >= 5000) { Print(s:"You bought Juggernaut!"); PlayerSpentXP[Pin] += 5000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_Juggernaut,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK2_Juggernaut) && !(Flags & FLAG1_PERK2_JuggernautPro) && AvailableXP >= 10000) { Print(s:"You bought Juggernaut Pro!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(634,0,FLAG1_PERK2_JuggernautPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 8) //Select Stalker { if(!(Flags & FLAG1_PERK3_Stalker) && AvailableXP >= 10000) { Print(s:"You bought Stalker!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_Stalker,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK3_Stalker) && !(Flags & FLAG1_PERK3_StalkerPro) && AvailableXP >= 6000) { Print(s:"You bought Stalker Pro!"); PlayerSpentXP[Pin] += 6000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_StalkerPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 9) //Select Dead Silence { if(!(Flags & FLAG1_PERK3_DeadSilence) && AvailableXP >= 12000) { Print(s:"You bought Dead Silence!"); PlayerSpentXP[Pin] += 12000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_DeadSilence,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK3_DeadSilence) && !(Flags & FLAG1_PERK3_DeadSilencePro) && AvailableXP >= 10000) { Print(s:"You bought Dead Silence Pro!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_DeadSilencePro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 10) //Select Steady Aim { if(!(Flags & FLAG1_PERK3_SteadyAim) && AvailableXP >= 10000) { Print(s:"You bought Steady Aim!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_SteadyAim,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK3_SteadyAim) && !(Flags & FLAG1_PERK3_SteadyAimPro) && AvailableXP >= 8000) { Print(s:"You bought Steady Aim Pro!"); PlayerSpentXP[Pin] += 8000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_SteadyAimPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 11) //Select SitRep { if(!(Flags & FLAG1_PERK3_SitRep) && AvailableXP >= 7000) { Print(s:"You bought SitRep!"); PlayerSpentXP[Pin] += 7000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_SitRep,0,0); LocalAmbientSound("menu/buyperk",127); } else if((Flags & FLAG1_PERK3_SitRep) && !(Flags & FLAG1_PERK3_SitRepPro) && AvailableXP >= 20000) { Print(s:"You bought SitRep Pro!"); PlayerSpentXP[Pin] += 20000; ACS_ExecuteAlways(634,0,FLAG1_PERK3_SitRepPro,0,0); LocalAmbientSound("menu/buyperk",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 12) //Go back { TakeInventory("MenuPlace",1); TakeInventory("MenuCursor",15); } } //MenuPlace 2: We're in the equipment menu else if(CheckInventory("MenuPlace") == 2) { if(CheckInventory("MenuCursor") == 0) //Select Tactical Knife { if(!(Flags3 & FLAG3_LE_KNIFE) && AvailableXP >= 5000) { Print(s:"You bought Throwing Knives!"); PlayerSpentXP[Pin] += 5000; ACS_ExecuteAlways(632,0,FLAG3_LE_KNIFE,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 1) //Select Bouncing Betties { if(!(Flags3 & FLAG3_LE_BETTY) && AvailableXP >= 6000) { Print(s:"You bought Bouncing Betties!"); PlayerSpentXP[Pin] += 6000; ACS_ExecuteAlways(632,0,FLAG3_LE_BETTY,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 2) //Select Bouncing Betties { if(!(Flags3 & FLAG3_LE_CLAY) && AvailableXP >= 8000) { Print(s:"You bought Claymores!"); PlayerSpentXP[Pin] += 8000; ACS_ExecuteAlways(632,0,FLAG3_LE_CLAY,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 3) //Select C4 { if(!(Flags3 & FLAG3_LE_C4) && AvailableXP >= 6000) { Print(s:"You bought C4!"); PlayerSpentXP[Pin] += 6000; ACS_ExecuteAlways(632,0,FLAG3_LE_C4,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 4) //Select Smoke Grenades { if(!(Flags3 & FLAG3_TA_SMOKE) && AvailableXP >= 4000) { Print(s:"You bought Smoke Grenades!"); PlayerSpentXP[Pin] += 4000; ACS_ExecuteAlways(632,0,FLAG3_TA_SMOKE,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 5) //Select Tactical Insertion { if(!(Flags3 & FLAG3_TA_TACT) && AvailableXP >= 6000) { Print(s:"You bought Tactical Insertions!"); PlayerSpentXP[Pin] += 6000; ACS_ExecuteAlways(632,0,FLAG3_TA_TACT,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 6) //Select Trophy System { if(!(Flags3 & FLAG3_TA_TROPH) && AvailableXP >= 6000) { Print(s:"You bought Trophy Systems!"); PlayerSpentXP[Pin] += 6000; ACS_ExecuteAlways(632,0,FLAG3_TA_TROPH,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 7) //Select Radar { if(!(Flags3 & FLAG3_TA_RADAR) && AvailableXP >= 10000) { Print(s:"You bought Portable Radars!"); PlayerSpentXP[Pin] += 10000; ACS_ExecuteAlways(632,0,FLAG3_TA_RADAR,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 8) //Go back { TakeInventory("MenuPlace",2); TakeInventory("MenuCursor",15); } } //MenuPlace 3: We're in the weapon categories menu else if(CheckInventory("MenuPlace") == 3) { if(CheckInventory("MenuCursor") == 0) //Go to buy Assault Rifles & LMGs GiveInventory("MenuPlace",1); //4 else if(CheckInventory("MenuCursor") == 1) //Go to buy SMGs & Shotguns GiveInventory("MenuPlace",2); //5 else if(CheckInventory("MenuCursor") == 2) //Go to buy Snipers & Misc GiveInventory("MenuPlace",3); //6 else if(CheckInventory("MenuCursor") == 3) //Go to buy Handguns & Launchers GiveInventory("MenuPlace",5); //7 else if(CheckInventory("MenuCursor") == 4) //Go back TakeInventory("MenuPlace",3); TakeInventory("MenuCursor",15); } //MenuPlace 4: We're in the assault rifles and LMGs menu else if(CheckInventory("MenuPlace") == 4) { if(CheckInventory("MenuCursor") == 0) //Select SCAR-L { if(!(Flags2 & FLAG2_AR_SCARL) && AvailableXP >= 7500) { Print(s:"You bought the SCAR-L!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_AR_SCARL,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 1) //Select G36C { if(!(Flags2 & FLAG2_AR_G36C) && AvailableXP >= 7500) { Print(s:"You bought the G36C!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_AR_G36C,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 2) //Select M14 EBR { if(!(Flags2 & FLAG2_AR_MK14) && AvailableXP >= 7500) { Print(s:"You bought the M14 EBR!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_AR_MK14,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 3) //Select AK-47 { if(!(Flags2 & FLAG2_AR_AK47) && AvailableXP >= 7500) { Print(s:"You bought the AK-47!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_AR_AK47,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 4) //Select FAD { if(!(Flags2 & FLAG2_AR_FAD) && AvailableXP >= 7500) { Print(s:"You bought the FAD!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_AR_FAD,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 5) //Select PKP Pecheneg { if(!(Flags2 & FLAG2_LMG_PKP) && AvailableXP >= 7500) { Print(s:"You bought the PKP Pecheneg!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_LMG_PKP,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 6) //Select MK46 { if(!(Flags2 & FLAG2_LMG_MK46) && AvailableXP >= 7500) { Print(s:"You bought the MK46!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_LMG_MK46,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 7) //Go back { TakeInventory("MenuPlace",1); TakeInventory("MenuCursor",15); } } //MenuPlace 5: We're in the SMGs and shotguns menu else if(CheckInventory("MenuPlace") == 5) { if(CheckInventory("MenuCursor") == 0) //Select PP90M1 { if(!(Flags2 & FLAG2_SMG_PP90M1) && AvailableXP >= 7500) { Print(s:"You bought the PP90M1!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_SMG_PP90M1,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 1) //Select P90 { if(!(Flags2 & FLAG2_SMG_P90) && AvailableXP >= 7500) { Print(s:"You bought the P90!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_SMG_P90,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 2) //Select PM9 { if(!(Flags2 & FLAG2_SMG_PM9) && AvailableXP >= 7500) { Print(s:"You bought the PM-9!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_SMG_PM9,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 3) //Select MP7 { if(!(Flags2 & FLAG2_SMG_MP7) && AvailableXP >= 7500) { Print(s:"You bought the MP7!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_SMG_MP7,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 4) //Select AA12 { if(!(Flags2 & FLAG2_SG_AA12) && AvailableXP >= 7500) { Print(s:"You bought the AA-12!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_SG_AA12,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 5) //Select Model 1887 { if(!(Flags2 & FLAG2_SG_MODEL) && AvailableXP >= 7500) { Print(s:"You bought the Model 1887!"); PlayerSpentXP[Pin] += 7500; ACS_ExecuteAlways(633,0,FLAG2_SG_MODEL,0,0); LocalAmbientSound("menu/buyweapon",127); } else Print(s:NOBUY); } else if(CheckInventory("MenuCursor") == 6) //Go back { TakeInventory("MenuPlace",2); TakeInventory("MenuCursor",15); } } } // -2 = VERYPOOR // -1 = POOR // 0 = LOW // 1 = MEDIUM // 2 = HIGH // 3 = EXCELLENT // 4 = SUPREME // 5 = GODLIKE // 6 = PERFECT { name = "\ctSoap" accuracy = 6 intellect = 6 evade = 6 anticipation = 6 reactiontime = 6 perception = 6 favoriteweapon = "railgun" color = "C0 8F 60" gender = "male" skin = "base" railcolor = black chatfrequency = 25 revealed = true script = "dfultbot" class = 1 } { name = "\csHit\cqler" accuracy = 6 intellect = 6 evade = 6 anticipation = 6 reactiontime = 6 perception = 6 favoriteweapon = "railgun" color = "C0 8F 60" gender = "male" skin = "base" railcolor = black chatfrequency = 25 revealed = true script = "dfultbot" class = 0 } { name = "\cgMaka\crrov" accuracy = 6 intellect = 6 evade = 6 anticipation = 6 reactiontime = 6 perception = 6 favoriteweapon = "railgun" color = "C0 8F 60" gender = "male" skin = "base" railcolor = black chatfrequency = 25 revealed = true script = "dfultbot" class = 2 } { name = "\crDimi\cgtri" accuracy = 5 intellect = 5 evade = 5 anticipation = 5 reactiontime = 5 perception = 5 favoriteweapon = "railgun" color = "C0 8F 60" gender = "male" skin = "base" railcolor = black chatfrequency = 25 revealed = true script = "dfultbot" class = 3 } { name = "\ckP\cfrice" accuracy = 6 intellect = 6 evade = 6 anticipation = 6 reactiontime = 6 perception = 6 favoriteweapon = "railgun" color = "C0 8F 60" gender = "male" skin = "base" railcolor = black chatfrequency = 25 revealed = true script = "dfultbot" class = 4 } KEYCONFADECORATEEKSNDINFOYaID_DEFAULD_INFOmiD_PERKS+D_HEAD2{D_PICKUP.8D_MENU>[KS_UAV.BKS_VEST U KS_RECONaNW_GRENAD;W_CLAYMOs<'W_BETTY%W_C49O W_TACTICB;W_MP412~Y?W_DEAGLE=W_P99?W_KSG12;f<W_AA12w?W_M1887yDW_L118A,>W_DRAGUN#;=AW_MSR`|3:W_PM9=W_MP70b=W_P901e>W_PP90M1o9W_M4A1>W_M16A4<W_SCARL7%:W_AK47_B=W_G36C<W_M14EBRs=W_L86gHW_MK46_&JW_PKPPEC Y=W_M320GLemW_JAVELI U&W_RIOTSH{SBARINFO1 SBARINF2>+HIRESTEXi LOADACSsA_STARTs,RGA3SCRPn ASCRIPTS A_END BOTINFO