Jump to content

I need some Gui help


Recommended Posts

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

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

i repeat all code isnt mine just part im getting errors xD

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
"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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...