EFFECT.Mat = Material( "cable/redlaser" ) /*--------------------------------------------------------- Init( data table ) ---------------------------------------------------------*/ function EFFECT:Init( data ) self.EndPos = data:GetOrigin() self.StartPos = self.EndPos - data:GetStart() self.Enti = data:GetEntity() self.TracerTime = 3 self.Alpha = 200 // Die when it reaches its target self.DieTime = CurTime() + self.TracerTime end /*--------------------------------------------------------- THINK ---------------------------------------------------------*/ function EFFECT:Think( ) if !self.Enti:IsValid() then return false end if ( CurTime() > self.DieTime ) then return false end self.Alpha = self.Alpha - 15 return true end /*--------------------------------------------------------- Draw the effect ---------------------------------------------------------*/ function EFFECT:Render( ) if !self.Enti:IsValid() then return false end local randUp = math.random(-8, 8) local randRight = math.random(-8, 8) local RandOffset = self.Enti:GetRight() * randRight + self.Enti:GetForward() * randUp render.SetMaterial( self.Mat ) self.StartPos = self.StartPos + RandOffset self.EndPos = self.EndPos + RandOffset render.DrawBeam( self.StartPos, self.EndPos, 2, 1, 0, Color(0,0,255,self.Alpha)) end