AddCSLuaFile() ENT.Base = "tacrp_proj_base" ENT.PrintName = "40mm Beanbag" ENT.Spawnable = false ENT.Model = "models/weapons/tacint/grenade_40mm.mdl" ENT.IsRocket = false // projectile has a booster and will not drop. ENT.InstantFuse = false // projectile is armed immediately after firing. ENT.RemoteFuse = false // allow this projectile to be triggered by remote detonator. ENT.ImpactFuse = true // projectile explodes on impact. ENT.ExplodeOnDamage = false // projectile explodes when it takes damage. ENT.ExplodeUnderwater = true ENT.Delay = 0 ENT.SmokeTrail = false ENT.BounceSounds = { "TacRP/weapons/grenade/flashbang_bounce-1.wav", "TacRP/weapons/grenade/flashbang_bounce-2.wav", "TacRP/weapons/grenade/flashbang_bounce-3.wav", } function ENT:Impact(data, collider) self:EmitSound("weapons/rpg/shotdown.wav", 90, 115) if IsValid(data.HitEntity) then local attacker = self.Attacker or self:GetOwner() or self local dmg = DamageInfo() dmg:SetAttacker(attacker) dmg:SetInflictor(self) dmg:SetDamage(Lerp((data.OurOldVelocity:Length() - 1000) / 4000, 0, 100)) dmg:SetDamageType(DMG_CRUSH) dmg:SetDamageForce(data.OurOldVelocity:GetNormalized() * 5000) dmg:SetDamagePosition(data.HitPos) data.HitEntity:TakeDamageInfo(dmg) end local ang = data.OurOldVelocity:Angle() local fx = EffectData() fx:SetOrigin(data.HitPos) fx:SetNormal(-ang:Forward()) fx:SetAngles(-ang) util.Effect("ManhackSparks", fx) SafeRemoveEntityDelayed(self, 3) return true end