66 lines
1.5 KiB
Lua
66 lines
1.5 KiB
Lua
function EFFECT:Init(data)
|
|
local wpn = data:GetEntity()
|
|
|
|
if !IsValid(wpn) then self:Remove() return end
|
|
|
|
if wpn:GetOwner() == LocalPlayer() and wpn:GetValue("ScopeHideWeapon") and wpn:IsInScope() then
|
|
self:Remove()
|
|
return
|
|
end
|
|
|
|
local muzzle = TacRP.MuzzleEffects[data:GetFlags() or 1] or "muzzleflash_pistol"
|
|
if wpn.GetValue then
|
|
muzzle = wpn:GetValue("MuzzleEffect")
|
|
end
|
|
|
|
local att = data:GetAttachment() or 1
|
|
|
|
local wm = false
|
|
|
|
if (LocalPlayer():ShouldDrawLocalPlayer() or wpn.Owner != LocalPlayer()) then
|
|
wm = true
|
|
att = data:GetHitBox()
|
|
end
|
|
|
|
local parent = wpn
|
|
|
|
if !wm then
|
|
parent = LocalPlayer():GetViewModel()
|
|
end
|
|
|
|
if wpn.GetMuzzleDevice then
|
|
parent = wpn:GetMuzzleDevice(wm)
|
|
else
|
|
parent = self
|
|
end
|
|
|
|
-- if !IsValid(parent) then return end
|
|
|
|
if muzzle then
|
|
if !istable(muzzle) then
|
|
muzzle = {muzzle}
|
|
end
|
|
|
|
for _, muzzleeffect in ipairs(muzzle) do
|
|
local pcf = CreateParticleSystem(muz or parent, muzzleeffect, PATTACH_POINT_FOLLOW, att)
|
|
|
|
if IsValid(pcf) then
|
|
pcf:StartEmission()
|
|
|
|
if (muz or parent) != vm and !wm then
|
|
pcf:SetShouldDraw(false)
|
|
table.insert(wpn.MuzzPCFs, pcf)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function EFFECT:Think()
|
|
return false
|
|
end
|
|
|
|
function EFFECT:Render()
|
|
return false
|
|
end
|