Norhy Posted August 26, 2012 Share Posted August 26, 2012 Hi. I want a login / register panel for my server. I used the handler "onPlayerJoin", but for some reason, my GUI doesn't appear when a player joins. The next problem is, that the registration panel appears only when a player joins, and it should only appear when a player clicks on the button "Registracia" at the Login Panel. Client: wdwLogin = guiCreateWindow(0.375, 0.375, 0.70, 0.70, "Vitaj", true) guiCreateLabel(0.0825, 0.1, 0.25, 0.25, "Meno", true, wdwLogin) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Heslo", true, wdwLogin) guiCreateLabel(0.0825, 0.6, 0.25, 0.25, "Info", true, wdwLogin) wdwRegister = guiCreateWindow(0.375, 0.375, 0.30, 0.30, "Registracia", true) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Meno", true, wdwRegister) guiCreateLabel(0.0825, 0.4, 0.25, 0.25, "Heslo", true, wdwRegister) edtUser = guiCreateEdit(0.160, 0.1, 0.3, 0.06, "", true, wdwLogin) edtPass = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwLogin) guiCreateMemo( 118, 200, 850, 280, "", false, wdwLogin ) guiEditSetMaxLength(edtUser, 50) guiEditSetMaxLength(edtPass, 50) edtUserS = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwRegister) edtPassS = guiCreateEdit(0.160, 0.4, 0.3, 0.06, "", true, wdwRegister) guiEditSetMaxLength(edtUserS, 50) guiEditSetMaxLength(edtPassS, 50) btnLogin = guiCreateButton(0.500, 0.1, 0.25, 0.2, "Prihlasit", true, wdwLogin) btnRegister = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registracia", true, wdwLogin) btnRegisterS = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registrovat", true, wdwRegister) guiSetVisible(wdwLogin, false) addEventHandler("onPlayerJoin", resourceRoot, function () guiSetVisible(wdwLogin, true) showCursor(true) guiSetInputEnabled(true) end ) addEventHandler('onClientGUIClick',root, function() if source == btnLogin then local user = guiGetText(edtUser) local pass = guiGetText(edtPass) if user and pass then triggerServerEvent('submitLogin',localPlayer,user,pass) guiSetInputEnabled(false) showCursor(false) guiSetVisible(wdwLogin,false) else outputChatBox("Prosim napis svoje meno a heslo.") guiSetVisible(wdwLogin,true) end end end ) addEventHandler('onClientGUIClick', root, function() if source == btnRegister then guiSetVisible(wdwRegister,true) end end ) Server: addEvent( "submitLogin",true ) function loginHandler( username,password ) local account = getAccount ( username, password ) if account then logIn ( source, account, password ) else outputChatBox("Zle zadane Meno alebo Heslo, skus znova prosim.",source ) end end addEventHandler( "submitLogin",root,loginHandler ) Link to comment
TAPL Posted August 26, 2012 Share Posted August 26, 2012 Try wdwLogin = guiCreateWindow(0.375, 0.375, 0.70, 0.70, "Vitaj", true) guiCreateLabel(0.0825, 0.1, 0.25, 0.25, "Meno", true, wdwLogin) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Heslo", true, wdwLogin) guiCreateLabel(0.0825, 0.6, 0.25, 0.25, "Info", true, wdwLogin) wdwRegister = guiCreateWindow(0.375, 0.375, 0.30, 0.30, "Registracia", true) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Meno", true, wdwRegister) guiCreateLabel(0.0825, 0.4, 0.25, 0.25, "Heslo", true, wdwRegister) edtUser = guiCreateEdit(0.160, 0.1, 0.3, 0.06, "", true, wdwLogin) edtPass = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwLogin) guiCreateMemo( 118, 200, 850, 280, "", false, wdwLogin ) guiEditSetMaxLength(edtUser, 50) guiEditSetMaxLength(edtPass, 50) edtUserS = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwRegister) edtPassS = guiCreateEdit(0.160, 0.4, 0.3, 0.06, "", true, wdwRegister) guiEditSetMaxLength(edtUserS, 50) guiEditSetMaxLength(edtPassS, 50) btnLogin = guiCreateButton(0.500, 0.1, 0.25, 0.2, "Prihlasit", true, wdwLogin) btnRegister = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registracia", true, wdwLogin) btnRegisterS = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registrovat", true, wdwRegister) guiSetVisible(wdwRegister,false) showCursor(true) guiSetInputEnabled(true) addEventHandler('onClientGUIClick',root, function() if source == btnLogin then local user = guiGetText(edtUser) local pass = guiGetText(edtPass) if user ~= "" and pass ~= "" then triggerServerEvent('submitLogin',localPlayer,user,pass) guiSetInputEnabled(false) showCursor(false) guiSetVisible(wdwLogin,false) else outputChatBox("Prosim napis svoje meno a heslo.") guiSetVisible(wdwLogin,true) end end end ) addEventHandler('onClientGUIClick', root, function() if source == btnRegister then guiSetVisible(wdwRegister,true) end end) Link to comment
Norhy Posted August 26, 2012 Author Share Posted August 26, 2012 Thank you very much. Question: If i will have more problems with this GUI, can i post it here? Link to comment
TAPL Posted August 26, 2012 Share Posted August 26, 2012 i am sure you have problem, your login panel will be hidden whenever you click on the button even if the username/password are wrong. you have to trigger from server side to client side when the login successful to hide the gui. Link to comment
Norhy Posted August 26, 2012 Author Share Posted August 26, 2012 And how to fix that? When i type a wrong username / pass to show the GUI again? I tried setGuiVisible, but that didn't worked.. Question: How to make the password hidden? So there won't be alphabetical letter but dots like on Facebook. Another problem: I've tried to finish the register system so it adds a account, i copied from wiki, but it didn't worked. When i click on "Register" nothing happens.. function registerHandler( username,password ) if( password ~= "" and password ~= nil and username ~= "" and username ~= nil ) then local accountAdded = addAccount ( username, password ) if ( accountAdded ) then outputChatBox ( "You are registered now, please login.", source ) else outputChatBox ( "Account couldn't be created.", source ) end else outputChatBox ( "Enter a username and a password.", source) end end addEventHandler( "submitRegister",root,registerHandler ) Link to comment
TAPL Posted August 26, 2012 Share Posted August 26, 2012 And how to fix that? When i type a wrong username / pass to show the GUI again? I tried setGuiVisible, but that didn't worked..Question: How to make the password hidden? So there won't be alphabetical letter but dots like on Facebook. Another problem: I've tried to finish the register system so it adds a account, i copied from wiki, but it didn't worked. When i click on "Register" nothing happens.. function registerHandler( username,password ) if( password ~= "" and password ~= nil and username ~= "" and username ~= nil ) then local accountAdded = addAccount ( username, password ) if ( accountAdded ) then outputChatBox ( "You are registered now, please login.", source ) else outputChatBox ( "Account couldn't be created.", source ) end else outputChatBox ( "Enter a username and a password.", source) end end addEventHandler( "submitRegister",root,registerHandler ) Don't hide the gui when you click on the button, make a trigger to client side from server side if the login has successful and then hide it using setGuiVisible To make the password hidden use https://wiki.multitheftauto.com/wiki/GuiEditSetMasked and to make your script register you need to give him ACL right, this can be done by add the resource to admin group. also in your code you have forgot this addEvent("submitRegister",true) and please next time use lua button not Code. Link to comment
Norhy Posted August 26, 2012 Author Share Posted August 26, 2012 Ok thanks. But i still don't undestand the thing with the Gui hidding. Link to comment
TAPL Posted August 26, 2012 Share Posted August 26, 2012 addEvent( "submitLogin",true ) function loginHandler(username,password) local account = getAccount (username, password) if account then logIn(source, account, password) triggerClientEvent(source,"HideGui",source) else outputChatBox("Zle zadane Meno alebo Heslo, skus znova prosim.",source) end end addEventHandler("submitLogin",root,loginHandler) wdwLogin = guiCreateWindow(0.375, 0.375, 0.70, 0.70, "Vitaj", true) guiCreateLabel(0.0825, 0.1, 0.25, 0.25, "Meno", true, wdwLogin) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Heslo", true, wdwLogin) guiCreateLabel(0.0825, 0.6, 0.25, 0.25, "Info", true, wdwLogin) wdwRegister = guiCreateWindow(0.375, 0.375, 0.30, 0.30, "Registracia", true) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Meno", true, wdwRegister) guiCreateLabel(0.0825, 0.4, 0.25, 0.25, "Heslo", true, wdwRegister) edtUser = guiCreateEdit(0.160, 0.1, 0.3, 0.06, "", true, wdwLogin) edtPass = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwLogin) guiCreateMemo( 118, 200, 850, 280, "", false, wdwLogin ) guiEditSetMaxLength(edtUser, 50) guiEditSetMaxLength(edtPass, 50) edtUserS = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwRegister) edtPassS = guiCreateEdit(0.160, 0.4, 0.3, 0.06, "", true, wdwRegister) guiEditSetMaxLength(edtUserS, 50) guiEditSetMaxLength(edtPassS, 50) btnLogin = guiCreateButton(0.500, 0.1, 0.25, 0.2, "Prihlasit", true, wdwLogin) btnRegister = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registracia", true, wdwLogin) btnRegisterS = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registrovat", true, wdwRegister) guiSetVisible(wdwRegister,false) showCursor(true) guiSetInputEnabled(true) addEventHandler('onClientGUIClick',root, function() if source == btnLogin then local user = guiGetText(edtUser) local pass = guiGetText(edtPass) if user ~= "" and pass ~= "" then triggerServerEvent('submitLogin',localPlayer,user,pass) else outputChatBox("Prosim napis svoje meno a heslo.") end end end ) addEvent("HideGui",true) addEventHandler("HideGui",root, function() guiSetInputEnabled(false) showCursor(false) guiSetVisible(wdwLogin,false) guiSetVisible(wdwRegister,false) end) addEventHandler('onClientGUIClick', root, function() if source == btnRegister then guiSetVisible(wdwRegister,true) end end) Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 Ok. Now, i have the register system, this is the code ( Server ): function registerHandler(username, password) local account = getAccount(username, password) if (account ~= false) then outputChatBox( "", root, 255, 255, 255 ) else account = addAccount(username, password) if (logIn(source, account, password) == true) then triggerClientEvent(source, "hidewdwRegister", getRootElement()) end end end addEventHandler("submitRegister", root, registerHandler) Now i typed in ACL Group "Admin" this: "Admin"> "Moderator"> "SuperModerator"> "Admin"> "RPC"> "resource.admin"> "resource.webadmin"> "user.Norhy"> "resource.rpg"> But it doesn't work when i try to register, what's wrong? Link to comment
MIKI785 Posted August 27, 2012 Share Posted August 27, 2012 Did you edit the ACL.xml manually? If so, use aclReload(). Next time use admin or webadmin, it's much simplier editing and also faster. Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 Where to type aclReload? Link to comment
TAPL Posted August 27, 2012 Share Posted August 27, 2012 Do i have to repeat this again? also in your code you have forgot this addEvent("submitRegister",true) Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 I got that in my code already.. Link to comment
TAPL Posted August 27, 2012 Share Posted August 27, 2012 I got that in my code already.. can you show me where? what line? function registerHandler(username, password) local account = getAccount(username, password) if (account ~= false) then outputChatBox( "", root, 255, 255, 255 ) else account = addAccount(username, password) if (logIn(source, account, password) == true) then triggerClientEvent(source, "hidewdwRegister", getRootElement()) end end end addEventHandler("submitRegister", root, registerHandler) Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 I got that in my code already.. can you show me where? what line? function registerHandler(username, password) local account = getAccount(username, password) if (account ~= false) then outputChatBox( "", root, 255, 255, 255 ) else account = addAccount(username, password) if (logIn(source, account, password) == true) then triggerClientEvent(source, "hidewdwRegister", getRootElement()) end end end addEventHandler("submitRegister", root, registerHandler) This is the full code, i got it on the Top of it: addEvent( "submitLogin", true ) addEvent( "submitRegister", true ) function loginHandler(username,password) local account = getAccount (username, password) if account then logIn(source, account, password) triggerClientEvent(source,"HideGui",source) else outputChatBox("Zle zadane Meno alebo Heslo, skus znova prosim.",source) end end addEventHandler("submitLogin",root,loginHandler) function registerHandler(username, password) local account = getAccount(username, password) if (account ~= false) then outputChatBox( "", root, 255, 255, 255 ) else account = addAccount(username, password) if (logIn(source, account, password) == true) then triggerClientEvent(source, "hidewdwRegister", getRootElement()) end end end addEventHandler("submitRegister", root, registerHandler) Link to comment
TAPL Posted August 27, 2012 Share Posted August 27, 2012 open /debugscript 3 and see if there any errors. Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 Quote: [18:36:10] debugscript: Incorrent client type for this command. Link to comment
TAPL Posted August 27, 2012 Share Posted August 27, 2012 Quote: [18:36:10] debugscript: Incorrent client type for this command. This command is in-game only. You can't write it in the black screen. Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 When i typed the command ingame, this text appeared on my screen in Green color: INFO: votemanager precreateGuiElements Link to comment
TAPL Posted August 27, 2012 Share Posted August 27, 2012 When i typed the command ingame, this text appeared on my screen in Green color: INFO: votemanager precreateGuiElements Try to register and see if any text appears. Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 Tried to register, clicked on "Register" button but nothing happened, no text appeared. Link to comment
Norhy Posted August 27, 2012 Author Share Posted August 27, 2012 wdwLogin = guiCreateWindow(0.375, 0.375, 0.70, 0.70, "Vitaj", true) guiCreateLabel(0.0825, 0.1, 0.25, 0.25, "Meno", true, wdwLogin) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Heslo", true, wdwLogin) guiCreateLabel(0.0825, 0.6, 0.25, 0.25, "Info", true, wdwLogin) wdwRegister = guiCreateWindow(0.375, 0.375, 0.40, 0.40, "Registracia", true) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Meno", true, wdwRegister) guiCreateLabel(0.0825, 0.4, 0.25, 0.25, "Heslo", true, wdwRegister) edtUser = guiCreateEdit(0.160, 0.1, 0.3, 0.06, "", true, wdwLogin) edtPass = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwLogin) guiCreateMemo( 118, 200, 850, 280, "", false, wdwLogin ) guiEditSetMaxLength(edtUser, 50) guiEditSetMaxLength(edtPass, 50) edtUserS = guiCreateEdit(0.160, 0.2, 0.4, 0.06, "", true, wdwRegister) edtPassS = guiCreateEdit(0.160, 0.4, 0.5, 0.06, "", true, wdwRegister) guiEditSetMaxLength(edtUserS, 50) guiEditSetMaxLength(edtPassS, 50) guiEditSetMasked ( edtPassS, true ) guiEditSetMasked ( edtPass, true ) btnLogin = guiCreateButton(0.500, 0.1, 0.25, 0.2, "Prihlasit", true, wdwLogin) btnRegister = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registracia", true, wdwLogin) btnRegisterS = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registrovat", true, wdwRegister) guiSetVisible(wdwRegister,false) showCursor(true) guiSetInputEnabled(true) addEventHandler('onClientGUIClick',root, function() if source == btnLogin then local user = guiGetText(edtUser) local pass = guiGetText(edtPass) if user ~= "" and pass ~= "" then triggerServerEvent('submitLogin',localPlayer,user,pass) else outputChatBox("Prosim napis svoje meno a heslo.") end end end ) addEvent("HideGui",true) addEventHandler("HideGui",root, function() guiSetInputEnabled(false) showCursor(false) guiSetVisible(wdwLogin,false) guiSetVisible(wdwRegister,false) end) addEventHandler('onClientGUIClick', root, function() if source == btnRegister then guiSetVisible(wdwRegister,true) end end) Link to comment
TAPL Posted August 27, 2012 Share Posted August 27, 2012 -- Client Side wdwLogin = guiCreateWindow(0.375, 0.375, 0.70, 0.70, "Vitaj", true) guiCreateLabel(0.0825, 0.1, 0.25, 0.25, "Meno", true, wdwLogin) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Heslo", true, wdwLogin) guiCreateLabel(0.0825, 0.6, 0.25, 0.25, "Info", true, wdwLogin) wdwRegister = guiCreateWindow(0.375, 0.375, 0.40, 0.40, "Registracia", true) guiCreateLabel(0.0825, 0.2, 0.25, 0.25, "Meno", true, wdwRegister) guiCreateLabel(0.0825, 0.4, 0.25, 0.25, "Heslo", true, wdwRegister) guiSetProperty(wdwRegister, "AlwaysOnTop", "true") edtUser = guiCreateEdit(0.160, 0.1, 0.3, 0.06, "", true, wdwLogin) edtPass = guiCreateEdit(0.160, 0.2, 0.3, 0.06, "", true, wdwLogin) guiCreateMemo( 118, 200, 850, 280, "", false, wdwLogin ) guiEditSetMaxLength(edtUser, 50) guiEditSetMaxLength(edtPass, 50) edtUserS = guiCreateEdit(0.160, 0.2, 0.4, 0.06, "", true, wdwRegister) edtPassS = guiCreateEdit(0.160, 0.4, 0.5, 0.06, "", true, wdwRegister) guiEditSetMaxLength(edtUserS, 50) guiEditSetMaxLength(edtPassS, 50) guiEditSetMasked ( edtPassS, true ) guiEditSetMasked ( edtPass, true ) btnLogin = guiCreateButton(0.500, 0.1, 0.25, 0.2, "Prihlasit", true, wdwLogin) btnRegister = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registracia", true, wdwLogin) btnRegisterS = guiCreateButton(0.750, 0.1, 0.25, 0.2, "Registrovat", true, wdwRegister) guiSetVisible(wdwRegister,false) showCursor(true) guiSetInputEnabled(true) addEventHandler('onClientGUIClick',root, function() if source == btnLogin then local user = guiGetText(edtUser) local pass = guiGetText(edtPass) if user ~= "" and pass ~= "" then triggerServerEvent('submitLogin',localPlayer,user,pass) else outputChatBox("Prosim napis svoje meno a heslo.") end elseif source == btnRegisterS then local user = guiGetText(edtUserS) local pass = guiGetText(edtPassS) triggerServerEvent('submitRegister',localPlayer,user,pass) end end ) addEvent("HideGui",true) addEventHandler("HideGui",root, function() guiSetInputEnabled(false) showCursor(false) guiSetVisible(wdwLogin,false) guiSetVisible(wdwRegister,false) end) addEventHandler('onClientGUIClick', root, function() if source == btnRegister then guiSetVisible(wdwRegister,true) end end) -- Server Side -- addEvent( "submitLogin", true) addEvent("submitRegister", true) function loginHandler(username,password) local account = getAccount (username, password) if account then logIn(source, account, password) triggerClientEvent(source,"HideGui",source) else outputChatBox("Zle zadane Meno alebo Heslo, skus znova prosim.",source) end end addEventHandler("submitLogin",root,loginHandler) function registerHandler(username, password) local account = getAccount(username) if (account) then outputChatBox("Account with this name already exists!", source, 255, 255, 255) return end account = addAccount(username, password) if (logIn(source, account, password) == true) then triggerClientEvent(source, "HideGui", source) end end addEventHandler("submitRegister", root, registerHandler) 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