All pastes #809079 Raw Edit

Anonymous

public lua v1 · immutable
·published 2007-12-08 06:16 UTC
rendered paste body
/*---------------------------------------------------------   Initializes the effect. The data is a table of data    which was passed from the server.---------------------------------------------------------*/function EFFECT:Init( data )	self.LifeTime = CurTime() + math.Rand( 10, 20 )	self.EffectTime = CurTime() + (math.Rand( 2,4 ))	self.Rand = math.random(1,4)	local count = table.Count( VehicleGibs )	local model = VehicleGibs[ math.random( 1,count ) ]	if (model == nil) then model = "models/props_c17/oildrumchunk01d.mdl" end	self:SetModel( model )	self:PhysicsInit( SOLID_VPHYSICS )	self:SetMoveType( MOVETYPE_VPHYSICS )	self:SetSolid( SOLID_VPHYSICS ) 	self:SetPos(data:GetOrigin() + (VectorRand() * math.random( -16, 16 )))	local phys = self:GetPhysicsObject()		if (!phys:IsValid()) then		self:Remove()		print("Error! "..model.." is not a valid prop model!\n")	end		if ( phys && phys:IsValid() ) then			phys:Wake()		phys:SetAngle( Angle( math.Rand(0,359), math.Rand(0,359), math.Rand(0,359) ) )		phys:SetVelocity((Vector(0,0,5) * math.Rand( 20, 140 )) + (Vector(math.random(-300,300),math.random(-300,300),math.random(-100,100))))		phys:AddAngleVelocity(Angle(math.random(-250,250),math.random(-250,250),math.random(-250,250)))		end		if self.Rand == 4 then		self.Emitter = ParticleEmitter( self:GetPos() )	end	end/*---------------------------------------------------------   THINK   Returning false makes the entity die---------------------------------------------------------*/function EFFECT:Think( )	if self.Rand == 4 then		if self.EffectTime >= CurTime() then			for i=1,math.random(1,3) do						local particle = self.Emitter:Add("particles/smokey", self:GetPos() + (VectorRand()*math.random(-3,3)))				particle:SetVelocity(Vector(0,0,-1))				particle:SetDieTime( math.random(5,15)/10 )				particle:SetStartAlpha( math.Rand( 90, 110 ) )				particle:SetEndAlpha(1)				particle:SetStartSize( math.Rand( 3, 5 ) )				particle:SetEndSize( math.Rand( 1, 2 ) )				particle:SetRoll( math.Rand( -95, 95 ) )				particle:SetRollDelta( math.Rand( -0.12, 0.12 ) )				local randy = math.random(10,50)				particle:SetColor( randy,randy,randy ) //lols							end		end	end	if self.LifeTime >= CurTime() then		return true	else		if self.Rand == 4 then			self.Emitter:Finish()		end		return false	endend/*---------------------------------------------------------   Draw the effect---------------------------------------------------------*/function EFFECT:Render()	self:DrawModel()end