Files
VnUtest/garrysmod/addons/tacrp/lua/entities/tacrp_proj_40mm_impact.lua
2026-03-31 10:27:04 +03:00

53 lines
1.6 KiB
Lua

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