DefearT Posted August 19, 2013 Share Posted August 19, 2013 Hola, bueno aqui les consulto si me pueden ayudar con lo que es GUI, ya que soy muy malo y no entiendo nada al hacer un Login Panel yo estaba haciendo uno y como no se programarlo me copie de un login aver si me funcionaba pero nada, no me funciona :C PD:No me aparece el GUI en pantalla... Aqui el Lua aver si me pueden ayudar y decirme cuales son los errores: Client --Settings blackLoginScreen = true --True/false Black screen, while player login... blackScreenTime = 5 --Time to complete disappearance of the black screen in seconds. GuestEnable = true --Can a Player play as Guest, or no. [true/false] function sx_login() if not(isElement(wLogin_Panel)) then if blackLoginScreen == true then fadeCamera(false,0,0,0,0) end local sWidth,sHeight = guiGetScreenSize() local Width,Height = 473,284 local X = (sWidth/2) - (Width/2) local Y = (sHeight/2) - (Height/2) wLogin_Panel = guiCreateWindow(151, 112, 517, 344, "SX - Login Panel", false) guiWindowSetMovable(wLogin_Panel, false) guiWindowSetSizable(wLogin_Panel, false) tabLogin_Panel = guiCreateTabPanel(231, 101, 276, 233, false, wLogin_Panel) tab_Update = guiCreateTab("Updates", tagLogin_Panel) memo_update = guiCreateMemo(4, 4, 268, 201, "Update - 19/06/13\n *Login Panel SX\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", false, tab_Update) guiMemoSetReadOnly(memo_update, true) lab_visit = guiCreateLabel(387, 90, 120, 16, "Visit the page official:", false, wLogin_Panel) lab_web = guiCreateLabel(328, 106, 179, 16, "http://sxg-commnunity.com.nu/", false, wLogin_Panel) guiLabelSetColor(lab_web, 255, 0, 0) tab_LogPanel = guiCreateTabPanel(10, 82, 211, 252, false, wLogin_Panel) tab_Login = guiCreateTab("Log in", tab_LogPanel) lab_Log = guiCreateLabel(90, 10, 37, 17, "Login:", false, tab_Login) edit_Log = guiCreateEdit(29, 32, 157, 24, "", false, tab_Login) guiEditSetMaxLength(edit_Log, 25) lab_Pass = guiCreateLabel(80, 66, 57, 15, "Password:", false, tab_Login) edit_Pass = guiCreateEdit(30, 87, 157, 24, "", false, tab_Login) guiEditSetMaxLength(edit_Pass, 25) guiEditSetMasked(edit_Pass, true) btn_Login = guiCreateButton(49, 129, 121, 49, "Login", false, tab_Login) checkbox_save = guiCreateCheckBox(5, 203, 16, 18, "Save", false, false, tab_Login) --Guest func if GuestEnable == true then btn_Guest = guiCreateButton(135, 195, 66, 22, "Guest", false, tab_Login) guiSetVisible(btn_Guest,true) else if isElement(btn_Guest) then guiSetVisible(btn_Guest,false) end btn_Guest = nil end tab_Reg = guiCreateTab("Register", tab_RegPanel) lab_Rlog = guiCreateLabel(61, 20, 84, 17, "Account Name:", false, tab_Reg) edit_Rlog = guiCreateEdit(35, 37, 136, 21, "", false, tab_Reg) guiEditSetMaxLength(edit_Rlog, 25) lab_Rpass = guiCreateLabel(77, 64, 53, 17, "Password:", false, tab_Reg) edit_Rpass = guiCreateEdit(35, 81, 136, 21, "", false, tab_Reg) guiEditSetMaxLength(edit_Rpass, 25) guiEditSetMasked(edit_Pass, true) lab_Rrpass = guiCreateLabel(55, 108, 99, 15, "Repeat Password:", false, tab_Reg) edit_Rrpass = guiCreateEdit(35, 123, 136, 21, "", false, tab_Reg) guiEditSetMaxLength(edit_Rrpass, 25) guiEditSetMasked(edit_Pass, true) btn_Register = guiCreateButton(25, 162, 161, 42, "¡Confirm & Register!", false, tab_Reg) guiSetVisible(wLogin_Panel,true) --guiSetInputEnabled(true) showCursor(true) local username, password = loadLoginFromXML() if not( username == "" or password == "") then guiCheckBoxSetSelected ( checkbox_save, true ) guiSetText ( edit_Log, tostring(username)) guiSetText ( edit_Pass, tostring(password)) else guiCheckBoxSetSelected ( checkbox_save, false ) guiSetText ( edit_Log, tostring(username)) guiSetText ( edit_Pass, tostring(password)) end addEventHandler("onClientGUIClick",btn_Login,onClickBtnLogin) addEventHandler("onClientGUIClick",btn_Register,onClickBtnRegister) if GuestEnable == true then addEventHandler("onClientGUIClick",btn_Guest,onClickGuest) end end end function start-resourcer() sx_login() end addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),start-resourcer) function loadLoginFromXML() local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml") if not xml_save_log_File then xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login") end local usernameNode = xmlFindChild (xml_save_log_File, "username", 0) local passwordNode = xmlFindChild (xml_save_log_File, "password", 0) if usernameNode and passwordNode then return xmlNodeGetValue(usernameNode), xmlNodeGetValue(passwordNode) else return "", "" end xmlUnloadFile ( xml_save_log_File ) end function saveLoginToXML(username, password) local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml") if not xml_save_log_File then xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login") end if (username ~= "") then local usernameNode = xmlFindChild (xml_save_log_File, "username", 0) if not usernameNode then usernameNode = xmlCreateChild(xml_save_log_File, "username") end xmlNodeSetValue (usernameNode, tostring(username)) end if (password ~= "") then local passwordNode = xmlFindChild (xml_save_log_File, "password", 0) if not passwordNode then passwordNode = xmlCreateChild(xml_save_log_File, "password") end xmlNodeSetValue (passwordNode, tostring(password)) end xmlSaveFile(xml_save_log_File) xmlUnloadFile (xml_save_log_File) end addEvent("saveLoginToXML", true) addEventHandler("saveLoginToXML", getRootElement(), saveLoginToXML) function resetSaveXML() local xml_save_log_File = xmlLoadFile ("files/xml/userdata.xml") if not xml_save_log_File then xml_save_log_File = xmlCreateFile("files/xml/userdata.xml", "login") end if (username ~= "") then local usernameNode = xmlFindChild (xml_save_log_File, "username", 0) if not usernameNode then usernameNode = xmlCreateChild(xml_save_log_File, "username") end end if (password ~= "") then local passwordNode = xmlFindChild (xml_save_log_File, "password", 0) if not passwordNode then passwordNode = xmlCreateChild(xml_save_log_File, "password") end xmlNodeSetValue (passwordNode, "") end xmlSaveFile(xml_save_log_File) xmlUnloadFile (xml_save_log_File) end addEvent("resetSaveXML", true) addEventHandler("resetSaveXML", getRootElement(), resetSaveXML) function onClickBtnLogin(button,state) if(button == "left" and state == "up") then if (source == btn_Login) then username = guiGetText(edit_Login) password = guiGetText(edit_Pass) if guiCheckBoxGetSelected ( checkbox_save ) == true then checksave = true else checksave = false end triggerServerEvent("onRequestLogin",getLocalPlayer(),username,password,checksave) end end end function onClickBtnRegister(button,state) if(button == "left" and state == "up") then if (source == btn_Register) then username = guiGetText(edit_Rlog) password = guiGetText(edit_Rpass) passwordConfirm = guiGetText(edit_Rrpass) triggerServerEvent("onRequestRegister",getLocalPlayer(),username,password,passwordConfirm) end end end function onClickGuest(button,state) if(button == "left" and state == "up") then if (source == btn_Guest) then guiSetVisible(wLogin_Panel, false) guiSetInputEnabled(false) showCursor(false) if blackLoginScreen == true then fadeCamera(true,blackScreenTime) end end end end function hideLoginWindow() guiSetInputEnabled(false) guiSetVisible(wLogin_Panel, true) destroyElement(wLogin_Panel) wLogin_Panel = nil showCursor(false) removeEventHandler("onClientGUIClick",btn_Login,onClickBtnLogin) if GuestEnable == true then removeEventHandler("onClientGUIClick",btn_Guest,onClickGuest) end if blackLoginScreen == true then fadeCamera(true,blackScreenTime) end end addEvent("hideLoginWindow", true) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) Server: function PlayerLogin(username,password,checksave) if not (username == "") then if not (password == "") then local account = getAccount ( username, password ) if ( account ~= false ) then logIn(source, account, password) triggerClientEvent (source,"hideLoginWindow",getRootElement()) if checksave == true then triggerClientEvent(source,"saveLoginToXML",getRootElement(),username,password) else triggerClientEvent(source,"resetSaveXML",getRootElement(),username,password) end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Login","Wrong username and/or password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Login","Please enter your password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Login","Please enter your username!") end end addEvent("onRequestLogin",true) addEventHandler("onRequestLogin",getRootElement(),PlayerLogin) function registerPlayer(username,password,passwordConfirm) if not (username == "") then if not (password == "") then if not (passwordConfirm == "") then if password == passwordConfirm then local account = getAccount (username,password) if (account == false) then local accountAdded = addAccount(tostring(username),tostring(password)) if (accountAdded) then outputChatBox ("#FF0000* #00FF00You have sucessfuly registered! [username: #FFFFFF" .. username .. " #00FF00| Password: #FFFFFF" .. password .. "#00FF00 ]",source,255,255,255,true ) else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","An unknown error has occured! Please choose a different username/password and try again.") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","An account with this username already exists!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Passwords do not match!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Please confirm your password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Please enter a password!") end else triggerClientEvent(source,"set_warning_text",getRootElement(),"Register","Please enter a username you would like to register with!") end end addEvent("onRequestRegister",true) addEventHandler("onRequestRegister",getRootElement(),registerPlayer) Link to comment
MTA Team 0xCiBeR Posted August 19, 2013 MTA Team Share Posted August 19, 2013 Te recomiendo no "Copiarte" de ninguno..Ya que cada login es distinto..Con GUIEDITOR, puedes generar la gui, luego con un script server-side, lo relacionas usando los eventos de gui..Todo estos eventos los encontraras en la wiki: https://wiki.multitheftauto.com Link to comment
Brad96 Posted August 21, 2013 Share Posted August 21, 2013 como dijo ciber cada uno es diferente , mira descargate guieditor de la comunidad es muy buen recurso Link to comment
Recommended Posts