Particle effects.



  • updated particle as in my latest post.

    
    AddCSLuaFile("shared.lua")
    
    ENT.Type 			= "anim"
    ENT.PrintName		= ""
    ENT.Author			= "Rob"
    ENT.Purpose			= ""
    
    ENT.thinkTimer = 0
    
    local tabletest = {
    	[ 1 ] = { particle = "particle/smokesprites_0001", sizeStart = 0, sizeEnd = 140, airRecis = 4, startAlpha = 180, endAlpha = 0, randXY = 32, randZMin = 16, randZMax = 64, color = Color( 40, 120, 15 ), rotRate = 0.9 },
    	[ 2 ] = { particle = "particle/smokesprites_0002", sizeStart = 0, sizeEnd = 90, airRecis = 42, startAlpha = 140, endAlpha = 0, randXY = 14, randZMin = 16, randZMax = 54, color = Color( 40, 180, 15 ), rotRate = 0.6 },
    	[ 3 ] = { particle = "particle/smokesprites_0003", sizeStart = 0, sizeEnd = 160, airRecis = 22, startAlpha = 60, endAlpha = 0,randXY = 24, randZMin = 16, randZMax = 38, color = Color( 0, 90, 0 ), rotRate = 0.6 },
    	[ 4 ] = { particle = "particle/smokesprites_0004", sizeStart = 0, sizeEnd = 120, airRecis = 14, startAlpha = 80, endAlpha = 0,randXY = 32, randZMin = 16, randZMax = 62, color = Color( 0, 120, 0 ), rotRate = 0.2 },
    	[ 5 ] = { particle = "particle/smokesprites_0007", sizeStart = 0, sizeEnd = 190, airRecis = 32, startAlpha = 255, endAlpha = 0,randXY = 42, randZMin = 16, randZMax = 44, color = Color( 0, 140, 0 ), rotRate = 1.4 },
    	[ 6 ] = { particle = "particle/smokesprites_0012", sizeStart = 0, sizeEnd = 40, airRecis = 0, startAlpha = 110, endAlpha = 0,randXY = 36, randZMin = 16, randZMax = 34, color = Color( 0, 160, 0 ), rotRate = 1 },
    	[ 7 ] = { particle = "particle/particle_glow_03", sizeStart = 0, sizeEnd = 4, airRecis = 0, startAlpha = 255, endAlpha = 0,randXY = 16, randZMin = 16, randZMax = 64, color = Color( 0, 255, 0 ), rotRate = 0 },
    }
    
    function ENT:Initialize()
    	if CLIENT then
    		self.emitter = ParticleEmitter( self.Entity:GetPos() )
    	end
    end	
    
    function ENT:Think()	
    	local pos = self:GetPos()
    
    	if self.emitter then
    		local vecRan = VectorRand():GetNormalized()
    		local chance = math.random( 1, 7 )
    		vecRan = vecRan * math.Rand( 20, 40 )
    		vecRan.z = math.Rand( 10, 60 )
    
    		if( self.thinkTimer < CurTime() ) then
    			for x=1, math.random( 1, 3 ) do
    				local particle = self.emitter:Add( tabletest[ chance ].particle, pos + vecRan )
    				particle:SetVelocity( Vector( math.Rand( -tabletest[ chance ].randXY, tabletest[ chance ].randXY ), math.Rand( -tabletest[ chance ].randXY, tabletest[ chance ].randXY ),  math.Rand( tabletest[ chance ].randZMin, tabletest[ chance ].randZMax ) )  )
    				particle:SetColor( tabletest[ chance ].color.r, tabletest[ chance ].color.g, tabletest[ chance ].color.b )
    				particle:SetAirResistance( tabletest[ chance ].airRecis )
    				particle:SetCollide( true )
    				particle:SetDieTime( math.Rand( 2.2 , 3.1 ) )
    				particle:SetStartAlpha( tabletest[ chance ].startAlpha )
    				particle:SetEndAlpha( tabletest[ chance ].endAlpha )
    				particle:SetStartSize( tabletest[ chance ].sizeStart )
    				particle:SetEndSize( tabletest[ chance ].sizeEnd )
    				particle:SetRollDelta( math.Rand( -tabletest[ chance ].rotRate, tabletest[ chance ].rotRate ) )
    			end
    			self.thinkTimer = CurTime() + math.Rand( 0.05, 0.25 )
    		end
    	end
    
    end
    
    function ENT:Draw()
    end
    
    function ENT:OnRemove()
    
    end
    
    


  • updated particle as in my latest post.

    
    AddCSLuaFile("shared.lua")
    
    ENT.Type 			= "anim"
    ENT.PrintName		= ""
    ENT.Author			= "Rob"
    ENT.Purpose			= ""
    
    ENT.thinkTimer = 0
    
    local tabletest = {
    	[ 1 ] = { particle = "particle/smokesprites_0001", sizeStart = 0, sizeEnd = 140, airRecis = 4, startAlpha = 180, endAlpha = 0, randXY = 32, randZMin = 16, randZMax = 64, color = Color( 40, 120, 15 ), rotRate = 0.9 },
    	[ 2 ] = { particle = "particle/smokesprites_0002", sizeStart = 0, sizeEnd = 90, airRecis = 42, startAlpha = 140, endAlpha = 0, randXY = 14, randZMin = 16, randZMax = 54, color = Color( 40, 180, 15 ), rotRate = 0.6 },
    	[ 3 ] = { particle = "particle/smokesprites_0003", sizeStart = 0, sizeEnd = 160, airRecis = 22, startAlpha = 60, endAlpha = 0,randXY = 24, randZMin = 16, randZMax = 38, color = Color( 0, 90, 0 ), rotRate = 0.6 },
    	[ 4 ] = { particle = "particle/smokesprites_0004", sizeStart = 0, sizeEnd = 120, airRecis = 14, startAlpha = 80, endAlpha = 0,randXY = 32, randZMin = 16, randZMax = 62, color = Color( 0, 120, 0 ), rotRate = 0.2 },
    	[ 5 ] = { particle = "particle/smokesprites_0007", sizeStart = 0, sizeEnd = 190, airRecis = 32, startAlpha = 255, endAlpha = 0,randXY = 42, randZMin = 16, randZMax = 44, color = Color( 0, 140, 0 ), rotRate = 1.4 },
    	[ 6 ] = { particle = "particle/smokesprites_0012", sizeStart = 0, sizeEnd = 40, airRecis = 0, startAlpha = 110, endAlpha = 0,randXY = 36, randZMin = 16, randZMax = 34, color = Color( 0, 160, 0 ), rotRate = 1 },
    	[ 7 ] = { particle = "particle/particle_glow_03", sizeStart = 0, sizeEnd = 4, airRecis = 0, startAlpha = 255, endAlpha = 0,randXY = 16, randZMin = 16, randZMax = 64, color = Color( 0, 255, 0 ), rotRate = 0 },
    }
    
    function ENT:Initialize()
    	if CLIENT then
    		self.emitter = ParticleEmitter( self.Entity:GetPos() )
    	end
    end	
    
    function ENT:Think()	
    	local pos = self:GetPos()
    
    	if self.emitter then
    		local vecRan = VectorRand():GetNormalized()
    		local chance = math.random( 1, 7 )
    		vecRan = vecRan * math.Rand( 20, 40 )
    		vecRan.z = math.Rand( 10, 60 )
    
    		if( self.thinkTimer < CurTime() ) then
    			for x=1, math.random( 1, 3 ) do
    				local particle = self.emitter:Add( tabletest[ chance ].particle, pos + vecRan )
    				particle:SetVelocity( Vector( math.Rand( -tabletest[ chance ].randXY, tabletest[ chance ].randXY ), math.Rand( -tabletest[ chance ].randXY, tabletest[ chance ].randXY ),  math.Rand( tabletest[ chance ].randZMin, tabletest[ chance ].randZMax ) )  )
    				particle:SetColor( tabletest[ chance ].color.r, tabletest[ chance ].color.g, tabletest[ chance ].color.b )
    				particle:SetAirResistance( tabletest[ chance ].airRecis )
    				particle:SetCollide( true )
    				particle:SetDieTime( math.Rand( 2.2 , 3.1 ) )
    				particle:SetStartAlpha( tabletest[ chance ].startAlpha )
    				particle:SetEndAlpha( tabletest[ chance ].endAlpha )
    				particle:SetStartSize( tabletest[ chance ].sizeStart )
    				particle:SetEndSize( tabletest[ chance ].sizeEnd )
    				particle:SetRollDelta( math.Rand( -tabletest[ chance ].rotRate, tabletest[ chance ].rotRate ) )
    			end
    			self.thinkTimer = CurTime() + math.Rand( 0.05, 0.25 )
    		end
    	end
    
    end
    
    function ENT:Draw()
    end
    
    function ENT:OnRemove()
    
    end
    
    


  • This definitely looks superior to the zombie gasses zs has now.



  • The cool thing is, it can be anything you want. I working on some neat explosions and a effect for the medkit when you heal someone.



  • use rope particles to give a better gassy effect in the smaller gas strains



  • i actually did that already. Like i stated, the video is 2 day’s old.



  • Give me the pcf files and the names of the particles. If they look good and don’t cause my FPS to halve then I can include them.



  • Any requests? Are there limitations? (like only hl2 images etc.)

    I’m working on a medkit heal effect right now. A short burst of red crosses from the tf2 medic effect with green trail behind them. I’m also working on some zombie gasses. Are there anny suggestions requests on that? Or do you want to be surprised?



  • As long as it’s not just a sphere of particles spammed and is actually intelligently made. TF2 is a no go unless you rip the texture out and include that. Custom textures are fine.



  • On that note make @Robbert:

    Any requests?

    On that note make the Poison Headcrab and Zombie Flesh effects particles as well, the headcrab spit can be similar to the Spitter’s spit particle, although the format is not directly interchangable between ASW/L4D2 to Orangebox you can see how they did it and reimplement.

    The broken prop green fire effect could be also reiterated



  • I’d like to see some kind of aura or something  that last a few seconds on a human when they redeam



  • @JetBoom:

    As long as it’s not just a sphere of particles spammed and is actually intelligently made. TF2 is a no go unless you rip the texture out and include that. Custom textures are fine.

    I already discovered how to extract the vtf’s/vmt’s from the vpk’s so i guess i can go ahead then? And i rather keep my hands of anything that has something to do with “Custom” textures.
    The less the client has to download, the better.

    @Samuel:

    On that note make
    On that note make the Poison Headcrab and Zombie Flesh effects particles as well, the headcrab spit can be similar to the Spitter’s spit particle, although the format is not directly interchangable between ASW/L4D2 to Orangebox you can see how they did it and reimplement.

    The broken prop green fire effect could be also reiterated

    I’ll Get on it.
    Edit: I was thinking of a Small black,red and a small amount of green smoke slowly drifting from the control point  instead of green water/saliva spewing out of the object.

    @Thor:

    I’d like to see some kind of aura or something  that last a few seconds on a human when they redeam

    What are you implying? If you’re speaking about an outlining around the player then i’d suggest you make a pull request to Jetboom. These things can be created using lua.
    If you’re talking about some sort of glowing effect coming of the player; explain in depth of what you think it should look like.



  • I already discovered how to extract the vtf’s/vmt’s from the vpk’s so i guess i can go ahead then? And i rather keep my hands of anything that has something to do with “Custom” textures.
    The less the client has to download, the better.

    Extracting and packing = making yourown and packing (While downloading)



  • @Robbert:

    The less the client has to download, the better.

    No one is going to cry over a 20kb vtf or two especially after compression and packing in to a workshop addon.



  • I bring you, butt_fart.
    https://www.youtube.com/watch?v=sqFWRD7LHak&feature=youtu.be

    If you have any suggestions post them down below. I’ll upload the particle(s) tomorrow so you can use it. (If you like it)



  • Here we go:
    https://drive.google.com/file/d/0B0YcZla3_fMCd2NhdUFKdy13c1U/edit?usp=sharing

    Particles are:

    • BUTT_FART2

    • BUTT_FART3

    You’ll only need to add BUTT_FART2 to spawn in because BUTT_FART3 is the child of BUTT_FART2.

    What is it?
    New zombie gasses! It took me about and hour to make the main consept and about and about 2 hours to fine tune it and optimize it.
    I took suggestions from box and other people for the color and over look of the thing so thanks guy’s!

    Any suggestions? I’ll be happy to change/add things if you guy’s have any. Any tips? Please share them! I’m eager to learn more about particles since it’s allot of fun to work with in and out the editor.

    PS. No ropes, They actually take about and extra 3-4 fps so i had to remove that. It still looks good in my opinion, though.



  • Can these please be used, the current ones are near invisible and don’t give proper info on how far/close the safe distance is from them.



  • These look really good.

    I think the reason JetBoom doesn’t want TF2 to be used as it would just be another game required to play Zombie Survival, which would deter a few players who do not have TF2 mounted/downloaded.

    A 20kb file is a lot less hassle then downloading a 9 GB or so game just to see one piece of material.



  • I reckon the new weapon killicons would go great with an update such as this.



  • for the sake of necrophilia and the resent changes to zs i made a new particle. in lua this time!

    
    AddCSLuaFile("shared.lua")
    
    ENT.Type 			= "anim"
    ENT.PrintName		= ""
    ENT.Author			= "Rob"
    ENT.Purpose			= ""
    
    ENT.thinkTimer = 0
    
    local tabletest = {
    	[ 1 ] = { particle = "particle/smokesprites_0001", sizeStart = 0, sizeEnd = 140, airRecis = 4, startAlpha = 180, endAlpha = 0, randXY = 32, randZMin = 16, randZMax = 64, color = Color( 40, 120, 15 ), rotRate = 0.9 },
    	[ 2 ] = { particle = "particle/smokesprites_0002", sizeStart = 0, sizeEnd = 90, airRecis = 42, startAlpha = 140, endAlpha = 0, randXY = 14, randZMin = 16, randZMax = 54, color = Color( 40, 180, 15 ), rotRate = 0.6 },
    	[ 3 ] = { particle = "particle/smokesprites_0003", sizeStart = 0, sizeEnd = 160, airRecis = 22, startAlpha = 60, endAlpha = 0,randXY = 24, randZMin = 16, randZMax = 38, color = Color( 0, 90, 0 ), rotRate = 0.6 },
    	[ 4 ] = { particle = "particle/smokesprites_0004", sizeStart = 0, sizeEnd = 120, airRecis = 14, startAlpha = 80, endAlpha = 0,randXY = 32, randZMin = 16, randZMax = 62, color = Color( 0, 120, 0 ), rotRate = 0.2 },
    	[ 5 ] = { particle = "particle/smokesprites_0007", sizeStart = 0, sizeEnd = 190, airRecis = 32, startAlpha = 255, endAlpha = 0,randXY = 42, randZMin = 16, randZMax = 44, color = Color( 0, 140, 0 ), rotRate = 1.4 },
    	[ 6 ] = { particle = "particle/smokesprites_0012", sizeStart = 0, sizeEnd = 40, airRecis = 0, startAlpha = 110, endAlpha = 0,randXY = 36, randZMin = 16, randZMax = 34, color = Color( 0, 160, 0 ), rotRate = 1 },
    	[ 7 ] = { particle = "particle/particle_glow_03", sizeStart = 0, sizeEnd = 4, airRecis = 0, startAlpha = 255, endAlpha = 0,randXY = 16, randZMin = 16, randZMax = 64, color = Color( 0, 255, 0 ), rotRate = 0 },
    }
    
    function ENT:Initialize()
    	if CLIENT then
    		self.emitter = ParticleEmitter( self.Entity:GetPos() )
    	end
    end	
    
    function ENT:Think()	
    	local pos = self:GetPos()
    
    	if self.emitter then
    		local vecRan = VectorRand():GetNormalized()
    		local chance = math.random( 1, 7 )
    		vecRan = vecRan * math.Rand( 20, 40 )
    		vecRan.z = math.Rand( 10, 60 )
    
    		if( self.thinkTimer < CurTime() ) then
    			for x=1, math.random( 1, 3 ) do
    				local particle = self.emitter:Add( tabletest[ chance ].particle, pos + vecRan )
    				particle:SetVelocity( Vector( math.Rand( -tabletest[ chance ].randXY, tabletest[ chance ].randXY ), math.Rand( -tabletest[ chance ].randXY, tabletest[ chance ].randXY ),  math.Rand( tabletest[ chance ].randZMin, tabletest[ chance ].randZMax ) )  )
    				particle:SetColor( tabletest[ chance ].color.r, tabletest[ chance ].color.g, tabletest[ chance ].color.b )
    				particle:SetAirResistance( tabletest[ chance ].airRecis )
    				particle:SetCollide( true )
    				particle:SetDieTime( math.Rand( 2.2 , 3.1 ) )
    				particle:SetStartAlpha( tabletest[ chance ].startAlpha )
    				particle:SetEndAlpha( tabletest[ chance ].endAlpha )
    				particle:SetStartSize( tabletest[ chance ].sizeStart )
    				particle:SetEndSize( tabletest[ chance ].sizeEnd )
    				particle:SetRollDelta( math.Rand( -tabletest[ chance ].rotRate, tabletest[ chance ].rotRate ) )
    			end
    			self.thinkTimer = CurTime() + math.Rand( 0.05, 0.25 )
    		end
    	end
    
    end
    
    function ENT:Draw()
    end
    
    function ENT:OnRemove()
    
    end
    
    

    i personally think it looks allot better then the current one. hope it get’s used!


Log in to reply
 

10
Online

11072
Users

15300
Topics

297994
Posts

Looks like your connection to NoXiousNet was lost, please wait while we try to reconnect.