SWEP.ViewModel = "models/weapons/c_grenade.mdl" SWEP.WorldModel = "models/weapons/w_grenade.mdl" SWEP.UseHands = true SWEP.AmmoIfHas = true SWEP.Primary.ClipSize = 1 SWEP.Primary.Automatic = false SWEP.Primary.Ammo = "grenade" SWEP.Primary.Delay = 1.25 SWEP.Primary.DefaultClip = 1 SWEP.Secondary.ClipSize = -1 SWEP.Secondary.DefaultClip = -1 SWEP.Secondary.Automatic = false SWEP.Secondary.Ammo = "none" SWEP.WalkSpeed = SPEED_FAST function SWEP:Initialize() self:SetWeaponHoldType("grenade") self:SetDeploySpeed(1.1) end function SWEP:Precache() util.PrecacheSound("WeaponFrag.Throw") end function SWEP:CanPrimaryAttack() if self.Owner:IsHolding() or self.Owner:GetBarricadeGhosting() then return false end if self:GetPrimaryAmmoCount() <= 0 then self:SetNextPrimaryFire(CurTime() + self.Primary.Delay) return false end return true end function SWEP:PrimaryAttack() if not self:CanPrimaryAttack() then return end self:SetNextPrimaryFire(CurTime() + self.Primary.Delay) local owner = self.Owner self:SendWeaponAnim(ACT_VM_THROW) owner:DoAttackEvent() self:TakePrimaryAmmo(1) self.NextDeploy = CurTime() + 1 if SERVER then local ent = ents.Create("projectile_zsgrenade") if ent:IsValid() then ent:SetPos(owner:GetShootPos()) ent:SetOwner(owner) ent:Spawn() ent.GrenadeDamage = self.GrenadeDamage ent.GrenadeRadius = self.GrenadeRadius ent:EmitSound("WeaponFrag.Throw") local phys = ent:GetPhysicsObject() if phys:IsValid() then phys:Wake() phys:AddAngleVelocity(VectorRand() * 5) phys:SetVelocityInstantaneous(self.Owner:GetAimVector() * 800) end end end end function SWEP:SecondaryAttack() end function SWEP:CanSecondaryAttack() return false end function SWEP:Reload() return false end function SWEP:Deploy() GAMEMODE:WeaponDeployed(self.Owner, self) if self:GetPrimaryAmmoCount() <= 0 then self:SendWeaponAnim(ACT_VM_SECONDARYATTACK) end return true end function SWEP:Holster() self.NextDeploy = nil return true end function SWEP:Think() if self.NextDeploy and self.NextDeploy <= CurTime() then self.NextDeploy = nil if 0 < self:GetPrimaryAmmoCount() then self:SendWeaponAnim(ACT_VM_DRAW) else self:SendWeaponAnim(ACT_VM_SECONDARYATTACK) if SERVER then self:Remove() end end elseif SERVER and self:GetPrimaryAmmoCount() <= 0 then self:Remove() end end