Keypad crackers

what is wrong with the keypad cracker keep getting Timer Error: [weapons\keypad_cracker\shared.lua:96] attempt to call method ‘ConCommand’ (a nil v
the guy who can fix this gets free respected on my build RP server!

if (SERVER) then
AddCSLuaFile(“shared.lua”)
end

if (CLIENT) then
SWEP.PrintName = “Keypad Cracker”
SWEP.Slot = 4
SWEP.SlotPos = 1
SWEP.DrawAmmo = false
SWEP.DrawCrosshair = true
end

– Variables that are used on both client and server

SWEP.Author = “Chief Tiger”
SWEP.Instructions = “Left click to crack a keypad”
SWEP.Contact = “”
SWEP.Purpose = “”

SWEP.ViewModelFOV = 62
SWEP.ViewModelFlip = false
SWEP.ViewModel = Model(“models/weapons/v_c4.mdl”)
SWEP.WorldModel = Model(“models/weapons/w_c4.mdl”)

SWEP.Spawnable = false
SWEP.AdminSpawnable = true

SWEP.Sound = Sound(“weapons/deagle/deagle-1.wav”)

SWEP.Primary.ClipSize = -1 – Size of a clip
SWEP.Primary.DefaultClip = 0 – Default number of bullets in a clip
SWEP.Primary.Automatic = false – Automatic/Semi Auto
SWEP.Primary.Ammo = “”

SWEP.Secondary.ClipSize = -1 – Size of a clip
SWEP.Secondary.DefaultClip = -1 – Default number of bullets in a clip
SWEP.Secondary.Automatic = false – Automatic/Semi Auto
SWEP.Secondary.Ammo = “”
SWEP.KeyCrackTime = 15

/---------------------------------------------------------
Name: SWEP:Initialize()
Desc: Called when the weapon is first loaded
---------------------------------------------------------
/
function SWEP:Initialize()
if (SERVER) then
self:SetWeaponHoldType(“normal”)
end
end

/---------------------------------------------------------
Name: SWEP:PrimaryAttack()
Desc: +attack1 has been pressed
---------------------------------------------------------
/

function SWEP:PrimaryAttack()
self.Weapon:SetNextPrimaryFire(CurTime() + .4)
if self.IsCracking then return end

local trace = self.Owner:GetEyeTrace()
local e = trace.Entity
if ValidEntity(e) and trace.HitPos:Distance(self.Owner:GetShootPos()) <= 300 and (e:GetClass() == "sent_keypad") then
	self.IsCracking = true
	self.StartCrack = CurTime()
	self.EndCrack	= CurTime() + self.KeyCrackTime
	if SERVER then
		self:SetWeaponHoldType("pistol")
		timer.Create("KeyCrackSounds", 1, self.KeyCrackTime, function(wep)
			wep:EmitSound("buttons/blip2.wav", 100, 100)
		end, self)
	end
	if CLIENT then
		self.Dots = self.Dots or ""
		timer.Create("KeyCrackDots", 0.5, 0, function(wep) 
			if not wep:IsValid() then timer.Destroy("KeyCrackDots") return end
			local len = string.len(wep.Dots)
			local dots = {[0]=".", [1]="..", [2]="...", [3]=""}
			wep.Dots = dots[len]
		end, self)
	end
end 

end

function SWEP:Holster()
self.IsCracking = false
if SERVER then timer.Destroy(“KeyCrackSounds”) end
if CLIENT then timer.Destroy(“KeyCrackDots”) end
return true
end

function SWEP:Succeed()
self.IsCracking = false
local trace = self.Owner:GetEyeTrace()
if ValidEntity(trace.Entity) and trace.Entity:GetClass() == “sent_keypad” then
local owner = trace.Entity:GetNWEntity(“keypad_owner”)
owner:ConCommand("+gm_special " … trace.Entity:GetNWInt(“keypad_keygroup1”) … "
“)
timer.Simple(trace.Entity:GetNWInt(“keypad_length1”), function() owner:ConCommand(”-gm_special " … trace.Entity:GetNWInt(“keypad_keygroup1”) … "
")end)
trace.Entity:SetNWBool(“keypad_access”, true)
trace.Entity:SetNWBool(“keypad_showaccess”, true)
if (SERVER) then
trace.Entity:EmitSound(“buttons/button11.wav”)
end
timer.Simple(2, function() trace.Entity:SetNWBool(“keypad_showaccess”, false) end)
end
if SERVER then timer.Destroy(“KeyCrackSounds”) end
if CLIENT then timer.Destroy(“KeyCrackDots”) end
end

function SWEP:Fail()
self.IsCracking = false
if SERVER then self:SetWeaponHoldType(“normal”)
timer.Destroy(“KeyCrackSounds”) end
if CLIENT then timer.Destroy(“KeyCrackDots”) end
end

function SWEP:Think()
if self.IsCracking then
local trace = self.Owner:GetEyeTrace()
if not ValidEntity(trace.Entity) then
self:Fail()
end
if trace.HitPos:Distance(self.Owner:GetShootPos()) > 300 or (trace.Entity:GetClass() != “sent_keypad”) then
self:Fail()
end
if self.EndCrack <= CurTime() then
self:Succeed()
end
end
end

function SWEP:DrawHUD()
if self.IsCracking then
self.Dots = self.Dots or “”
local w = ScrW()
local h = ScrH()
local x,y,width,height = w/2-w/10, h/ 2, w/5, h/15
draw.RoundedBox(8, x, y, width, height, Color(10,10,10,120))

	local time = self.EndCrack - self.StartCrack
	local curtime = CurTime() - self.StartCrack
	local status = curtime/time
	local BarWidth = status * (width - 16) + 8
	draw.RoundedBox(8, x+8, y+8, BarWidth, height - 16, Color(255-(status*255), 0+(status*255), 0, 255))
	
	draw.SimpleText("Cracking"..self.Dots, "Trebuchet24", w/2, h/2 + height/2, Color(255,255,255,255), 1, 1)
end

end

function SWEP:SecondaryAttack()
self:PrimaryAttack()
end

Use [lua] tags.

I am very poor at lua if u could tell me where or just do it for me I would be happy :smiley:

I’m not asking you about the code, I’m asking you to add [lua] tags to it.

At SWEP:Succeed change this:

[lua]
local owner = trace.Entity:GetNWEntity(“keypad_owner”)

owner:ConCommand("+gm_special " … trace.Entity:GetNWInt(“keypad_keygroup1”) … "
")

timer.Simple(trace.Entity:GetNWInt("keypad_length1 “), function()
owner:ConCommand(”-gm_special " … trace.Entity:GetNWInt(“keypad_keygroup1”) … "
")end)

trace.Entity:SetNWBool("keypad_access", true)
trace.Entity:SetNWBool("keypad_showaccess", true)
    
if (SERVER) then
    trace.Entity:EmitSound("buttons/button11.wav")
end

timer.Simple(2, function()
    trace.Entity:SetNWBool("keypad_showaccess", false)
end)

end
[/lua]

to this:

[lua]
if ( SERVER ) then
local owner = trace.Entity:GetNWEntity(“keypad_owner”)

owner:ConCommand("+gm_special " .. trace.Entity:GetNWInt("keypad_keygroup1") .. "

")

timer.Simple(trace.Entity:GetNWInt("keypad_length1 "), function() 
    owner:ConCommand("-gm_special " .. trace.Entity:GetNWInt("keypad_keygroup1") .. "

")end)

    trace.Entity:SetNWBool("keypad_access", true)
    trace.Entity:SetNWBool("keypad_showaccess", true)
    
    trace.Entity:EmitSound("buttons/button11.wav")

    timer.Simple(2, function()
        trace.Entity:SetNWBool("keypad_showaccess", false)
    end)
end

end
[/lua]

thanks