Need help to fix two similar Addons

Hello,
I have to similar Addons on my Server. Both work but not like I want. For the first I need a range, which the second one include. And for the second I need a timer, which the first one include. I tried to mix them but this didn’t work (I´m very bad in lua, pls be pleasant to me…) .
Do anyone no, how I could fix this?

For the Range




if ( SERVER ) then

	AddCSLuaFile( "shared.lua" )
	
	SWEP.Weight				= 2
SWEP.AutoSwitchTo		= true
SWEP.AutoSwitchFrom		= true
	SWEP.HoldType			= "pistol"
	
end

if ( CLIENT ) then

SWEP.PrintName = "Taser";
SWEP.Slot = 3;
SWEP.SlotPos = 1;
SWEP.DrawAmmo = false;
SWEP.DrawCrosshair = true;


end

SWEP.Author = "Fub4r";
SWEP.Contact = "fub4r2006@hotmail.co.uk";
SWEP.Purpose = "Tasering";
SWEP.Instructions = "Links klick schießen, mit rechts tasern.";

SWEP.Spawnable			= false
SWEP.AdminSpawnable		= true

SWEP.ViewModel			= "models/weapons/v_pistol.mdl"
SWEP.WorldModel			= "models/weapons/w_pistol.mdl"

SWEP.Primary.ClipSize		= 1
SWEP.Primary.DefaultClip	= 40
SWEP.Primary.Automatic		= false
SWEP.Primary.Ammo			= "357"

SWEP.Secondary.ClipSize		= -1
SWEP.Secondary.DefaultClip	= -1
SWEP.Secondary.Automatic	= true
SWEP.Secondary.Ammo			= ""

local taseredrags = {}
local taseruniquetimer1 = 0
local taseruniquetimer2 = 0

 function SWEP:Reload()
self.Weapon:DefaultReload( ACT_VM_RELOAD ) //animation for reloading
end 
 
 function SWEP:PrimaryAttack()
 if ( !self:CanPrimaryAttack() ) then return end
 local eyetrace = self.Owner:GetEyeTrace(); 
 if !eyetrace.Entity:IsPlayer() then 
  if !eyetrace.Entity:IsNPC() then return end  // Check to see if what the player is aiming at is an NPC or Player
	local Dist = (self:GetPos() - eyetrace.Entity:GetPos()):Length()
	if (Dist > 300) then return end  

  
self.Weapon:EmitSound( "Weapon_StunStick.Activate")  
self.BaseClass.ShootEffects( self ) 
self:TakePrimaryAmmo(1) 

 
 if (!SERVER) then return end 
 
 if eyetrace.Entity:IsPlayer() then
 self.Owner:PrintMessage( HUD_PRINTCENTER, "Jetzt klicke rechts um ihn zu quälen "..eyetrace.Entity:GetName( ) )  
 self:tasePlayer(eyetrace.Entity)    // If the it is a player then bring them down tranqPlayer()
 end
 if eyetrace.Entity:IsNPC() then
 self.Owner:PrintMessage( HUD_PRINTCENTER, "NPCs können nicht getasert werden!" )
 self:taseNPC(eyetrace.Entity, self.Owner)    // If the it is a NPC then bring them down with tranqNPC()
 end
  end 


function SWEP:tasePlayer(ply)
	-- create ragdoll
	local rag = ents.Create( "prop_ragdoll" )
    if not rag:IsValid() then return end

	-- build rag
	rag:SetModel( ply:GetModel() )
    rag:SetKeyValue( "origin", ply:GetPos().x .. " " .. ply:GetPos().y .. " " .. ply:GetPos().z )
	rag:SetAngles(ply:GetAngles())
			
	-- player vars
	rag.taseredply = ply
	table.insert(taseredrags, rag)
		
	-- "remove" player
	ply:StripWeapons()
	ply:DrawViewModel(false)
	ply:DrawWorldModel(false)
	ply:Spectate(OBS_MODE_CHASE)
	ply:SpectateEntity(rag)
	
	-- finalize ragdoll
    rag:Spawn()
    rag:Activate()
	
	-- make ragdoll fall
	rag:GetPhysicsObject():SetVelocity(4*ply:GetVelocity())
	
	-- bring the motherfucker back

     self:setrevivedelay(rag)
	
end

function SWEP:taseNPC(npc, npcShooter)
	-- get info about npc
	local skin = npc:GetSkin()
	local wep = ""
	local possibleWep = ents.FindInSphere(npc:GetPos(),0.01) -- find anything in the center basically
	for k, v in pairs(possibleWep) do 
		if string.find(v:GetClass(),"weapon_") == 1 then 
			wep = v:GetClass()
		end
	end

	local citType = "" -- citizen type
	local citMed = 0 -- is it a medic? assume no
	if npc:GetClass() == "npc_citizen" then
		citType = string.sub(npc:GetModel(),21,21) -- get group number (e.g. models/humans/group0#/whatever)
		if string.sub(npc:GetModel(),22,22) == "m" then citMed = 1 end -- medic skins have an "m" after the number
	end

	-- make ragdoll now that all info is gathered	
--	local rag = ents.Create( "prop_ragdoll" )
--    if not rag:IsValid() then return end
	
	-- build rag
--	rag:SetModel( npc:GetModel() )
--    rag:SetKeyValue( "origin", npc:GetPos().x .. " " .. npc:GetPos().y .. " " .. npc:GetPos().z )
--	rag:SetAngles(npc:GetAngles())
	
	-- npc vars
--	rag.tasewasNPC = true
--	rag.tasenpcType = npc:GetClass()
--	rag.tasenpcWep = wep
--	rag.tasenpcCitType = citType
--	rag.tasenpcCitMed = citMed
--	rag.tasenpcSkin = skin
--	rag.tasenpcShooter = npcShooter
--	table.insert(taseredrags, rag)
	
	--finalize
--	rag:Spawn()
--    rag:Activate()
	
	-- make ragdoll fall
--  rag:GetPhysicsObject():SetVelocity(8*npc:GetVelocity())
		
	--remove npc
--	npc:Remove()

 self:setrevivedelay(rag)

	
	end

function SWEP:setrevivedelay(rag)
if taseruniquetimer1 > 30 then
taseruniquetimer1 = 0
end
taseruniquetimer1 = taseruniquetimer1 + 1

timer.Create("revivedelay"..taseruniquetimer1, 10, 1, function() self:taserevive(rag) end)
end

function SWEP:taserevive(ent)
	-- revive player
	if !ent then return end
	
	if ent.taseredply then
   if ( !ent.taseredply:IsValid() ) then return end
   local phy = ent:GetPhysicsObject()
		phy:EnableMotion(false)
		ent:SetSolid(SOLID_NONE)
   	ent.taseredply:DrawViewModel(true)
	ent.taseredply:DrawWorldModel(true)
	ent.taseredply:Spawn()
	ent.taseredply:SetPos(ent:GetPos())
	ent.taseredply:SetVelocity(ent:GetPhysicsObject():GetVelocity())
ent.taseredply:SetMoveType(MOVETYPE_NONE)
if taseruniquetimer2 > 30 then
taseruniquetimer2 = 0
end
taseruniquetimer2 = taseruniquetimer2 + 1
timer.Create("pauseplayer"..taseruniquetimer2, 3, 1, function() self:pauseplayer(ent.taseredply) end)

	-- revive npc
	elseif ent.tasewasNPC then
		local npc = ents.Create(ent.tasenpcType) -- create the entity
		
		util.PrecacheModel(ent:GetModel()) -- precache the model
		npc:SetModel(ent:GetModel()) -- and set it
		local spawnPos = ent:GetPos()+Vector(0,0,0) -- position to spawn it
		
		npc:SetPos(spawnPos) -- position
		npc:SetSkin(ent.tasenpcSkin)
		npc:SetAngles(Angle(0,ent:GetAngles().y,0))
		
		if ent.tasenpcWep != "" then -- if it's an NPC and we found a weapon for it when it was spawned, then
			npc:SetKeyValue("additionalequipment",ent.tasenpcWep) -- give it the weapon
		end
		
		if ent.taseentType == "npc_citizen" then
			npc:SetKeyValue("citizentype",ent.tasenpcCitType) -- set the citizen type - rebel, refugee, etc.
			if ent.tasenpcCitType == "3" && ent.tasenpcCitMed==1 then -- if it's a rebel, then it might be a medic, so check that
				npc:SetKeyValue("spawnflags","131072") -- set medic spawn flag
			end
		end
				
		npc:Spawn()
		npc:Activate()
		
cleanup.Add (uplayer, "NPC", npc);

undo.Create ("Tasered NPC");
undo.AddEntity (npc);
undo.SetPlayer (ent.tasenpcShooter);

undo.Finish();

		
	-- don't deal with other ents
	else 
		return
	end
	
		for k, v in pairs(taseredrags) do 
		if v == ent then 
			 table.remove( taseredrags, k ) 
		end
	end
	ent:Remove()

end


function SWEP:pauseplayer(ply)

ply:SetMoveType(MOVETYPE_WALK )
ply:ConCommand("pp_motionblur 0")

end




 function SWEP:SecondaryAttack()
 if table.Count( taseredrags ) == 0 then return end
 
 self.Owner:EmitSound( "Weapon_Pistol.Empty")
  self.Owner:EmitSound( "Weapon_SMG1.Empty")
  if (!SERVER) then return end 
    
   	for k, v in pairs(taseredrags) do 
   	 local shock1 = math.random(-1200, 1200 )
   local shock2 = math.random(-1200, 1200 )
    local shock3 = math.random(-1200, 1200 )
	v:GetPhysicsObject():ApplyForceCenter( Vector( shock1, shock2, shock3 ) ) 
		end
   
    end

For the Timer


if ( SERVER ) then

AddCSLuaFile( "shared.lua" )
	
SWEP.Weight				= 5
SWEP.AutoSwitchTo		= true
SWEP.AutoSwitchFrom		= true
SWEP.HoldType			= "pistol"
	
end


if ( CLIENT ) then

SWEP.PrintName = "EMP";
SWEP.Slot = 3;
SWEP.SlotPos = 1;
SWEP.DrawAmmo = true;
SWEP.DrawCrosshair = true;


end


SWEP.Author = "Pennerlord";
SWEP.Contact = "";
SWEP.Purpose = "Paralyzing Cars";
SWEP.Instructions = "Left click to paralyze a car!";

SWEP.Spawnable			= false
SWEP.AdminSpawnable		= true

SWEP.ViewModel			= "models/weapons/v_pistol.mdl"
SWEP.WorldModel			= "models/weapons/w_pistol.mdl"

SWEP.Primary.ClipSize		= 1
SWEP.Primary.DefaultClip	= 10
SWEP.Primary.Automatic		= false
SWEP.Primary.Ammo			= "357"

SWEP.Secondary.ClipSize		= -1
SWEP.Secondary.DefaultClip	= -1
SWEP.Secondary.Automatic	= false
SWEP.Secondary.Ammo			= ""


 function SWEP:Reload()
self.Weapon:DefaultReload( ACT_VM_RELOAD )
end


function SWEP:PrimaryAttack()
	if ( !self:CanPrimaryAttack() ) then return end
	local eyetrace = self.Owner:GetEyeTrace();
	if !eyetrace.Entity:IsVehicle() then return end
	local Dist = (self:GetPos() - eyetrace.Entity:GetPos()):Length()
	if (Dist > 300) then return end
	
	self.Weapon:EmitSound("Weapon_StunStick.Activate")
	self.BaseClass.ShootEffects( self )
	self:TakePrimaryAmmo(1)
	
	if (!SERVER) then return end

 	if eyetrace.Entity:IsVehicle() then
 		self.Owner:PrintMessage( HUD_PRINTCENTER, "Das Auto kann nicht mehr fahren!")
 		self:taseVehicle(eyetrace.Entity)
 	end
end


function SWEP:taseVehicle(eyetrace)
 	eyetrace:SetColor(0,0,255,255)
 	eyetrace:Fire("TurnOff", "1", 0)
 	eyetrace:Fire("HandBrakeOn", "1", 0)
	timer.Create("timer1", 10, 1, self.retrieve, self, eyetrace)
end


function SWEP:retrieve(eyetrace)
 	eyetrace:SetColor(255,255,255,255)
 	eyetrace:Fire("TurnOn", "1", 0)
 	eyetrace:Fire("HandBrakeOff", "1", 0)
end

Thank you :3

Use


 tags instead of 
[QUOTE]
 tags.

[quote=“geferon, post:2, topic:221520”]

Use


 tags instead of 
[QUOTE]
 tags.
[/QUOTE]

 
Done