carloxhunter Posted July 24, 2014 Share Posted July 24, 2014 Hi im noob on scrpting, so probably will be a noob question for you, but anyway, i need help, and, im learning so here is: Im modyfing a PUBLIC script, its a Basic login pannel and, as it hadnt Guest botton, i thought would be good idea if i add it by myself,so i tried addeding to client.lua file the next: guestb["guests"] = guiCreateButton(140, 178, 70, 30, "Guest", false, loginWindow["mainWindow"]) addEventHandler("onClientGUIClick", guestb["guests"], guest32, false) function guest32(button,state) if button == "left" and state == "up" then guiSetInputEnabled( false ) guiSetVisible(loginWindow["mainWindow"], false) showCursor(false) end end pd: loginWindow["mainWindow"] is the window to hide. i really dont know what to do, atleast i tried, maybe i have to do something on server,lua??, any help? Link to comment
12p Posted July 24, 2014 Share Posted July 24, 2014 This might be the problem: you must declare handler functions before the event handlers they will be used for. guestb["guests"] = guiCreateButton(140, 178, 70, 30, "Guest", false, loginWindow["mainWindow"]) function guest32(button,state) if button == "left" and state == "up" then --Maybe you should use state == "down" instead guiSetInputEnabled( false ) guiSetVisible(loginWindow["mainWindow"], false) showCursor(false) end end addEventHandler("onClientGUIClick", guestb["guests"], guest32, false) As a note, when you test your scripts, bother using the command /debugscript 3, to check where do said errors come from. This might be an exception though, since addEventHandler's sources are never shown. If it still doesn't work, then post your results with that command I just said, plus your full codes. Link to comment
carloxhunter Posted July 24, 2014 Author Share Posted July 24, 2014 i repeat all code isnt mine just part im getting errors Well i tried what you told me and still doesnt work, debugscript Results: "ERROR":loginedited\client.lua:113:attempt to index global 'guestb' (a nil value)" (i tried also use Hidewindow function defined before and same result, nothing) full code: local serverInfo = "blahblah" function centerWindow(center_window) local screenW,screenH=guiGetScreenSize() local windowW,windowH=guiGetSize(center_window,false) local x,y = (screenW-windowW)/2,(screenH-windowH)/2 guiSetPosition(center_window,x,y,false) end local loginWindow = {} local loginLabel = {} local loginEdit = {} local loginButton = {} local mainButton = {} local mainLabel = {} local mainMemo = {} local registerWindow = {} local registerLabel = {} local registerEdit = {} local registerButton = {} -- Login loginWindow["mainWindow"] = guiCreateWindow (0,0,505, 235,"Welcome to CrF!", false) centerWindow( loginWindow["mainWindow"] ) guiWindowSetMovable( loginWindow["mainWindow"], false ) guiWindowSetSizable( loginWindow["mainWindow"], false ) guiSetInputEnabled( true ) showCursor(true) loginLabel["Username"] = guiCreateLabel( 20, 40, 70, 20, "Username:", false, loginWindow["mainWindow"]) loginEdit["Username"] = guiCreateEdit( 82, 38, 90, 20, "", false, loginWindow["mainWindow"] ) loginLabel["Password"] = guiCreateLabel( 20, 70, 70, 20, "Password:", false, loginWindow["mainWindow"]) loginEdit["Password"] = guiCreateEdit( 82, 68, 90, 20, "", false, loginWindow["mainWindow"] ) loginButton["Main"] = guiCreateButton( 82, 98, 90, 30, "Login", false, loginWindow["mainWindow"] ) -- Main mainLabel["New"] = guiCreateLabel( 20, 135, 160, 30, "Are you new CrF?", false, loginWindow["mainWindow"] ) mainButton["ClickHere"] = guiCreateButton( 20, 178, 90, 30, "Register", false, loginWindow["mainWindow"] ) mainMemo["ServerInfo"] = guiCreateMemo( 230, 38, 265, 165, serverInfo, false, loginWindow["mainWindow"] ) -- register registerWindow["mainWindow"] = guiCreateWindow (0,0,300, 165,"Register", false) centerWindow( registerWindow["mainWindow"] ) guiSetVisible( registerWindow["mainWindow"], false ) registerLabel["Username"] = guiCreateLabel( 90, 40, 70, 20, "Username:", false, registerWindow["mainWindow"]) registerEdit["Username"] = guiCreateEdit( 150, 38, 90, 20, "", false, registerWindow["mainWindow"] ) registerLabel["Password"] = guiCreateLabel( 90, 70, 70, 20, "Password:", false, registerWindow["mainWindow"]) registerEdit["Password"] = guiCreateEdit( 150, 68, 90, 20, "", false, registerWindow["mainWindow"] ) registerButton["Main"] = guiCreateButton( 107, 95, 90, 30, "Register", false, registerWindow["mainWindow"] ) registerButton["Close"] = guiCreateButton( 120, 135, 60, 20, "Back", false, registerWindow["mainWindow"]) guiEditSetMasked(registerEdit["Password"], true) guiEditSetMasked(loginEdit["Password"], true) function clientSubmitLogin(button, state) if button == "left" and state == "up" then local username = guiGetText(loginEdit["Username"]) local password = guiGetText(loginEdit["Password"]) if username and password then triggerServerEvent("submitLogin",localPlayer, username, password) end end end addEventHandler("onClientGUIClick", loginButton["Main"], clientSubmitLogin, false) function clientSubmitRegister(button, state) if button == "left" and state == "up" then local username = guiGetText(registerEdit["Username"]) local password = guiGetText(registerEdit["Password"]) if username and password then triggerServerEvent("submitRegister",localPlayer, username, password) end end end addEventHandler("onClientGUIClick", registerButton["Main"], clientSubmitRegister, false) function hideLoginWindow() guiSetInputEnabled(false) guiSetVisible(loginWindow["mainWindow"], false) showCursor(false) end function showRegisterWindow() guiSetInputEnabled( true ) guiSetVisible(registerWindow["mainWindow"], true) showCursor(true) guiSetVisible(loginWindow["mainWindow"], false) end addEventHandler("onClientGUIClick", mainButton["ClickHere"], showRegisterWindow, false) function hideRegisterWindow1() guiSetInputEnabled( true ) guiSetVisible(registerWindow["mainWindow"], false) showCursor(true) guiSetVisible(loginWindow["mainWindow"], true) end addEventHandler("onClientGUIClick",registerButton["Close"], hideRegisterWindow1, false) function hideRegisterWindow() guiSetInputEnabled( false ) guiSetVisible(registerWindow["mainWindow"], false) showCursor(false) end addEvent("hideRegisterWindow", true) addEvent("hideLoginWindow", true) addEventHandler("hideRegisterWindow", getRootElement(), hideRegisterWindow) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) guestb["guests"] = guiCreateButton(140, 178, 70, 30, "Guest", false, loginWindow["mainWindow"]) function guest32(button,state) if button == "left" and state == "up" then --Maybe you should use state == "down" instead guiSetInputEnabled( false ) guiSetVisible(loginWindow["mainWindow"], false) showCursor(false) end end addEventHandler("onClientGUIClick", guestb["guests"], guest32, false) Link to comment
12p Posted July 24, 2014 Share Posted July 24, 2014 "ERROR":loginedited\client.lua:113:attempt to index global 'guestb' (a nil value)" That error occurs when you try to insert values into non-declared tables. To fix it, either change the name of your button to something without the brackets [ ], or add this line before it: guestb = { } This is declaring a table. You can read more about tables and related at the Lua wiki. If you're familiar with arrays, it's similar but easier to use. Link to comment
carloxhunter Posted July 24, 2014 Author Share Posted July 24, 2014 Just one thing left idk how solutionate, believe me, i fixed some probs, well the thing is i added a picture in my gGUI scrpt and then i click on blank space to writte user or pass the image goes background, how fix this? EDIT: Fixed, thank you for help me @Seben, scrpt modified as i wanted, thx Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now