Jump to content

Lua problem.


Purple

Recommended Posts

hello i'm having a small lua problem that i'm pretty sure i'm over looking could someone here take a look? 

function et_ClientConnect( cno, firstTime, isBot )
 
    if isBot ~= 1 and firstTime == 1 then
        local userinfo = et.trap_GetUserinfo(cno)
        local protocol = tostring(et.Info_ValueForKey(userinfo, "protocol"))
		
	--[[
	
	 Checking the protcol of each client that connects.
	
	--]]
        if protocol == nil then
            clientversion = "*unknown*"
        elseif protocol == "" then
            clientversion = "missing protocol"
        elseif protocol == "82" then
            clientversion = "2.55"
        elseif protocol == "83" then
            clientversion = "2.56"
        elseif protocol == "84" then
            clientversion = "2.60b"
        end
       -- ..playerName(cno).. / <country> / ..clientversion..  / ..client..
	    local message = "^1C^0onnect^1I^0nfo^1:^7 "..playerName(cno).."^7 connected from ^3<country> ^7using client (^3"..client.."^7)(^3"..clientversion.."^7)"
        local msg = string.gsub(message, ""..playerName(cno).."", et.Info_ValueForKey( et.trap_GetUserinfo( cno ), "name" ))
        local countryCode = et.gentity_get( cno, "sess.uci" )
        local countryName = countries[countryCode]
 
 	--[[
	
	 Grabbing the country name
	
	--]]
        if countryName then
            msg = string.gsub(msg, "<country>", countryName)
        else
            msg = string.gsub(msg, "<country>", countryCode)
        end
		
	--[[
	
	 Checking to see if TBS connects and removing it. Then printing out the actual connect message.
	
	--]]
		
		if playerName(cno) ~= "^nTBS" then
			et.trap_SendConsoleCommand(et.EXEC_APPEND,"qsay " .. msg)
		end
    end
 
end

and 

function et_ClientBinary( clientNum, checksum)
	local binary = checksum
	
	--[[
	
	 Checking users binaries so we can print them out in the connect line.
	
	--]]
	if binary == nil then
		client = "Unknown"
	elseif binary == "EB19F81EEFD8F300148BD73D2133304D" then
		client = "ET Legacy 2.71rc3"
	elseif binary == "C786FB8512A79E7910A111A0EE7CCF18" then
		client = "ET Gold 2.71"
	elseif binary == "1B9345CB23469C547E7E0BFA080C1B5B" then
		client = "ET Gold 2.72"
	elseif binary == "2FCE329CE3F5552C148E4BCE5803A60D" then
		client = "ET Gold 2.73"
	elseif binary == "5F12F1718A84B8FC45AAEE609CFC9C43" then
		client = "ET Offcial"
	elseif binary == "1364CA4CF09FE15BC9FE3DCD75C899F8" then
		client = "ET Offcial"
	end
	return 0
end 

So my problem is i'm wanting to check users client binaries and print them out when they connect to the server, but i am getting a small error when users connect. The error is "attempt to concatenate global 'client' (a nil value) I'm pretty sure its something small i'm doing wrong does anyone have any suggestions or a way to fix it Thanks in advanced.

Link to comment
Share on other sites

Probably et_ClientConnect is called first thats why 'client' is empty.

That's not good idea to use one global variable for all clients, you should consider to use a table.

Try to use et_ClientBegin instead of et_ClientConnect it's called after et_ClientConnect for sure.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...