How to make all timer.Create into one simplify way


function SWEP:Reload()

	if ( self.Weapon:Clip1() == 30 ) then
	end

	self.Weapon:DefaultReload( ACT_VM_RELOAD );
	
timer.Create( "reload_bump1", 0.5, 1,  		function() self.Owner:ViewPunch( Angle( 2, 1, 1 ) )  					end )		
	
timer.Create( "reload_bump2", 1.8, 1,  		function() self.Owner:ViewPunch( Angle( -3, -1, -1 ) )  				end )
		
timer.Create( "reload_bump3", 2.4, 1,  		function() self.Owner:ViewPunch( Angle( -2, -1, 1 ) )  					end )

timer.Create( "magout_sound", 0.5, 1, function() self.Owner:EmitSound( "weapons/ru556/clipout.wav" ) 			end )

timer.Create( "magin_sound", 1.7, 1, function() self.Owner:EmitSound( "weapons/ru556/clipin.wav" )  			end ) 

timer.Create( "boltrelease_sound", 2.4, 1, function() self.Owner:EmitSound( "weapons/ru556/boltrelease.wav" )  	end )


end

And how would I execute it?

With what you’re doing, you can’t. Also, because it uses non-unique names and it’s not predicted, you will run into a lot of issues. I would use SWEP:Think and set the start of the reload time, then apply the changes based on CurTime.

Why won’t

timer.Simple work?

edit: Right, prediction, do what code_gs said