All pastes #900149 Raw Edit

Mine

public text v1 · immutable
·published 2008-02-11 18:29 UTC
rendered paste body
function EFFECT:Init( data ) 
	self.EndPos = data:GetOrigin()
	self.StartPos = self.EndPos - data:GetStart()
	self.Enti = data:GetEntity()
	self.Alph = 1
	
	self.Beam = Material( "sprites/laserbeam" )
	
	local randUp = math.random(-20, 20)
	local randRight = math.random(-20, 20)
	local RandOffset = self.Enti:GetRight() * randRight + self.Enti:GetForward() * randUp
	self.StartPos = self.StartPos + RandOffset
	self.EndPos = self.EndPos + RandOffset
end

function EFFECT:Think( )
 	if self.Alph==0 then
		return false
	end
	self.Alph=math.Clamp(self.Alph-0.01,0,1)
	return true
end

function EFFECT:Render()
	if not self.Enti or not self.Enti:IsValid() then return false end
	local r=255
	local g=255
	local b=255

	self.Entity:SetRenderBoundsWS( self.StartPos, self.EndPos )

	self.Beam:SetMaterialVector("$color", Vector(r,g,b) )
	self.Beam:SetMaterialFloat("$alpha",self.Alph)
		render.SetMaterial(self.Beam)
		render.DrawBeam(self.StartPos, self.EndPos, 2, 1, 1, Color(255,255,255,self.Alph))
	self.Beam:SetMaterialVector("$color", Vector(255,255,255) )
	self.Beam:SetMaterialFloat("$alpha",1)
end