Advertisement
Guest User

Untitled

a guest
Feb 1st, 2015
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. SWEP.Author = "Pimpdaddy"
  2. SWEP.Category = "Smoke"
  3. SWEP.Purpose = "Beach&CLear"
  4. SWEP.Instructions = "Left-Click: Throw big grenade Right-Click: Throw small grenade"
  5. SWEP.Spawnable = true
  6. SWEP.AdminSpawnable = true
  7. SWEP.Primary.Automatic = false
  8. SWEP.Primary.ClipSize = 1
  9. SWEP.Primary.DefaultClip = 0
  10. SWEP.Primary.Ammo = "grenade"
  11. SWEP.DrawCrosshair = true
  12. SWEP.base = "weapon_Grenade"
  13. SWEP.Primary.Delay = 100
  14. SWEP.HoldType = "grenade"
  15. SWEP.ViewModelFOV = 49.849246231156
  16. SWEP.ViewModelFlip = false
  17. SWEP.ViewModel = "models/weapons/v_grenade.mdl"
  18. SWEP.WorldModel = "models/weapons/w_grenade.mdl"
  19. SWEP.ShowViewModel = true
  20. SWEP.ShowWorldModel = true
  21. SWEP.Primary.NumberofShots = 1
  22. function SWEP:Initialize()
  23.  
  24. self:SetWeaponHoldType( self.HoldType )
  25.  
  26. end
  27.  
  28. //Precache stuff
  29. function SWEP:Precache()
  30.  
  31. //Grenade model
  32. util.PrecacheModel("models/weapons/v_grenade.mdl")
  33.  
  34. //Throwing sounds
  35. util.PrecacheSound("weapons/ar2/ar2_reload_rotate.wav")
  36.  
  37. //Grenade sounds
  38. util.PrecacheSound("weapons/grenade/tick1.wav")
  39. util.PrecacheSound("weapons/ar2/npc_ar2_altfire.wav")
  40. util.PrecacheSound("weapons/ar2/ar2_altfire.wav")
  41.  
  42. end
  43.  
  44.  
  45. //PRIMARY FIRE
  46. function SWEP:PrimaryAttack()
  47. if ( not self:CanPrimaryAttack() ) then
  48. return
  49. end
  50. self.Weapon:SetNextPrimaryFire(CurTime() + 1.21)
  51. self.Weapon:SetNextSecondaryFire(CurTime() + 1.21)
  52. self.Weapon:SendWeaponAnim(ACT_VM_SECONDARYATTACK)
  53. //self.Owner:SetAnimation(PLAYER_ATTACK2)
  54.  
  55. if (SERVER) then
  56. timer.Simple(0.157, function() if self:IsValid() then self:ThrowBigGrenade() end end)
  57. end
  58. if not self.InfiniteAmmo then
  59. if self:Clip1() <= 0 then return end
  60. self:TakePrimaryAmmo(1)
  61. end
  62. end
  63.  
  64.  
  65. //SECONDARY FIRE
  66. function SWEP:SecondaryAttack()
  67.  
  68. self.Weapon:SetNextPrimaryFire(CurTime() + 1.02)
  69. self.Weapon:SetNextSecondaryFire(CurTime() + 1.02)
  70. self.Weapon:SendWeaponAnim(ACT_VM_SECONDARYATTACK)
  71. //self.Owner:SetAnimation(PLAYER_ATTACK2)
  72.  
  73. if (SERVER) then
  74. timer.Simple(0.157, function() if self:IsValid() then self:ThrowSmallGrenade() end end)
  75. end
  76.  
  77. end
  78.  
  79.  
  80. //Play a nice sound on deploying
  81. function SWEP:Deploy()
  82. self.Weapon:SendWeaponAnim(ACT_VM_SECONDARYATTACK)
  83. return true
  84. end
  85.  
  86.  
  87. //Grenade throw function (Big)
  88. function SWEP:ThrowBigGrenade()
  89.  
  90. //Safeguard
  91. if !self || !self.Owner then return end
  92. if ( not self:CanPrimaryAttack() ) then
  93. return
  94. end
  95. //Create grenade
  96. local grenadeobj = ents.Create("sent_smokenade")
  97. grenadeobj:SetPos( self.Owner:GetShootPos() + Vector(0,0,-9.2) )
  98. grenadeobj:SetAngles( self.Owner:GetAimVector():Angle() )
  99. grenadeobj:SetPhysicsAttacker(self.Owner)
  100. grenadeobj:SetOwner(self.Owner)
  101. grenadeobj:Spawn()
  102.  
  103. //Throw it
  104. grenadeobj:GetPhysicsObject():ApplyForceCenter( self.Owner:GetAimVector() * math.random(1000,2000) + Vector(0, 0, math.random(100,120)) )
  105.  
  106. //Play throwing sound
  107. self.Owner:EmitSound( "weapons/ar2/ar2_reload_rotate.wav", 40, 100 )
  108.  
  109. end
  110.  
  111.  
  112. //Grenade throw function (Small)
  113. function SWEP:ThrowSmallGrenade()
  114.  
  115. //Safeguard
  116. if !self || !self.Owner then return end
  117.  
  118. //Create grenade
  119. local grenadeobj = ents.Create("sent_smokenade_small")
  120. grenadeobj:SetPos( self.Owner:GetShootPos() + Vector(0,0,-9.2) )
  121. grenadeobj:SetAngles( self.Owner:GetAimVector():Angle() )
  122. grenadeobj:SetPhysicsAttacker(self.Owner)
  123. grenadeobj:SetOwner(self.Owner)
  124. grenadeobj:Spawn()
  125.  
  126. //Throw it
  127. grenadeobj:GetPhysicsObject():ApplyForceCenter( self.Owner:GetAimVector() * math.random(500,1000) + Vector(0, 0, math.random(100,120)) )
  128.  
  129. //Play throwing sound
  130. self.Owner:EmitSound( "weapons/ar2/ar2_reload_rotate.wav", 40, 100 )
  131.  
  132. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement