 # Shooting an effect from a weapon.

I’m trying to make a smoke like effect come from my weapon, but I’m not sure about a few things.
How would I make it come from the weapon, and not my head?
How would I actually get it to fire forward? Right now it fires behind me at odd angles.
How would I make it look good in both third person and first person?

Currently this is my effect script
[lua]
function EFFECT:Init(data)

``````local pos = data:GetOrigin()
local dir = data:GetAngle()

local emitter = ParticleEmitter(pos)
for i=1, 2 do
local X = math.Rand(-2, 2)
local Y = math.Rand(-2, 2)
local ppos = pos + Vector(X, Y, 0)
if (spray) then

spray:SetVelocity(dir*2)

spray:SetDieTime(math.Rand(0.5,1.5))

local color = math.Rand(220,250)
spray:SetColor(color, color, color)
spray:SetStartAlpha(math.Rand(190,200))
spray:SetEndAlpha(0)

spray:SetStartSize(math.Rand(1,4))
spray:SetEndSize(math.Rand(4,8))

spray:SetRoll(math.Rand(0,360))
spray:SetRollDelta(math.Rand(-4,4))

local grav = math.Rand(-1,1)
spray:SetGravity(Vector(grav, grav, grav))
spray:SetAirResistance(math.Rand(0,10))

spray:SetCollide(true)
spray:SetBounce(0.5)

end
end
emitter:Finish()
``````

end

function EFFECT:Think()

``````return false
``````

end

function EFFECT:Render()

end[/lua]

and this is in SWEP:PrimaryAttack()
[lua]local ply = self:GetOwner()
local ED = EffectData()
ED:SetOrigin(ply:GetShootPos())
ED:SetAngle(ply:GetAimVector())
util.Effect(“effect_bugspray”,ED)[/lua]

``````
local ply = self:GetOwner()

``````

should be

``````
local ply = self.Owner

``````

That doesn’t fix any problem I had, but thank you, I will change it.

I still can’t figure this out, anyone know how I’d do this?

``````
(User was banned for this post ("Bump bumpity bump" - mahalis))

``````