Seyer Posted November 30, 2016 Share Posted November 30, 2016 Hola, tengo un problema y no sé si es cosa mía o de como configuré este log-in (lo hice a partir de un video que decía como configurarlo y crearlo) el tema es que en el video (llegado el momento) dice que ejecutemos el comando anteriormente puesto y se le abre la ventana del login pero a mí me sucede todo lo contrario aunque yo haya establecido el mismo comando, haya puesto los mismos nombres en las funciones, etc. no pasa nada. Y ahora, no sé por qué, no me abre el "editor_gui" aunque ponga "/guied" o apriete "shift+c" (este dejo de funcionar a la segunda vez que use el "editor_gui") y como no lo puedo abrir, no puedo agregar un botón de regresar que me faltó en el registro para que vuelva al log-in panel. La verdad, no tengo ni idea de lo que sucede ni como arreglarlo ya que soy nuevo en Scripting y lo relacionado. (Mi primer resource es este login y al ver que no pasa nada es medio frustrante, jaja) Este es el client.lua: local screenM, screenH = guiGetScreenSize() function reg() winRegister = guiCreateWindow(387, 256, 414, 313, "Register panel by Seyer", false) guiWindowSetSizable(winRegister, false) usuario = guiCreateEdit(236, 24, 167, 43, "", false, winRegister) GUIEditor.label[1] = guiCreateLabel(17, 23, 159, 44, "Usuario:", false, winRegister) guiSetFont(GUIEditor.label[1], "sa-header") guiLabelSetColor(GUIEditor.label[1], 15, 239, 253) GUIEditor.label[2] = guiCreateLabel(19, 92, 217, 44, "Contraseña:", false, winRegister) guiSetFont(GUIEditor.label[2], "sa-header") guiLabelSetColor(GUIEditor.label[2], 15, 239, 253) GUIEditor.label[3] = guiCreateLabel(19, 160, 217, 44, "Contraseña:", false, winRegister) guiSetFont(GUIEditor.label[3], "sa-header") guiLabelSetColor(GUIEditor.label[3], 15, 239, 253) contraseña1 = guiCreateEdit(236, 94, 167, 42, "", false, winRegister) guiEditSetMasked(contraseña1,true) contraseña2 = guiCreateEdit(236, 160, 167, 44, "", false, winRegister) guiEditSetMasked(contraseña2,true) brtRegistrar = guiCreateButton(9, 234, 394, 69, "Register", false, winRegister) guiSetFont(GUIEditor.button[1], "sa-header") guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FF0FEFFD") GUIEditor.label[4] = guiCreateLabel(27, 205, 56, 19, "(máx. 25)", false, winRegister) guiSetFont(GUIEditor.label[4], "default-bold-small") guiLabelSetColor(GUIEditor.label[4], 254, 254, 254) GUIEditor.label[5] = guiCreateLabel(27, 136, 56, 19, "(máx. 25)", false, winRegister) guiSetFont(GUIEditor.label[5], "default-bold-small") guiLabelSetColor(GUIEditor.label[5], 254, 254, 254) GUIEditor.label[6] = guiCreateLabel(27, 67, 56, 19, "(máx. 25)", false, winRegister) guiSetFont(GUIEditor.label[6], "default-bold-small") guiLabelSetColor(GUIEditor.label[6], 254, 254, 254) addEvent("onClientGUIClick",brtRegistrar,function() user=guiGetText(usuario) c=guiGetText(contraseña1) c1=guiGetText(contraseña2) if(c==c1)then triggerServerEvent("rg",getLocalPlayer(),user,c) outputChatBox("Las contraseñas coinciden.") else outputChatBox("Las contraseñas no coinciden.") end addEvent("cerrar",true") addEventHandler("cerrar,getLocalPlayer(),function() guiSetVisible(winRegister,false) showCursor(false) addEvent("cerrar2",true") addEventHandler("cerrar,getLocalPlayer(),function() guiSetVisible(winLogin,false) showCursor(false) function login() winLogin = guiCreateWindow(387, 256, 414, 316, "Log-in panel by Seyer", false) guiWindowSetSizable(winLogin, false) usuario = guiCreateEdit(236, 24, 167, 43, "", false, winLogin) GUIEditor.label[1] = guiCreateLabel(17, 23, 159, 44, "Usuario:", false, winLogin) guiSetFont(GUIEditor.label[1], "sa-header") guiLabelSetColor(GUIEditor.label[1], 15, 239, 253) GUIEditor.label[2] = guiCreateLabel(19, 92, 217, 44, "Contraseña:", false, winLogin) guiSetFont(GUIEditor.label[2], "sa-header") guiLabelSetColor(GUIEditor.label[2], 15, 239, 253) contraseña1 = guiCreateEdit(236, 94, 167, 42, "", false, winLogin) btrLoggearse = guiCreateButton(10, 165, 394, 68, "Login", false, winLogin) guiSetFont(GUIEditor.button[1], "sa-header") guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FF0FEFFD") GUIEditor.label[3] = guiCreateLabel(27, 136, 56, 19, "(máx. 25)", false, winLogin) guiSetFont(GUIEditor.label[3], "default-bold-small") guiLabelSetColor(GUIEditor.label[3], 254, 254, 254) GUIEditor.label[4] = guiCreateLabel(27, 67, 56, 19, "(máx. 25)", false, winLogin) guiSetFont(GUIEditor.label[4], "default-bold-small") guiLabelSetColor(GUIEditor.label[4], 254, 254, 254) registro = guiCreateButton(11, 240, 393, 66, "Register", false, winLogin) guiSetFont(GUIEditor.button[2], "sa-header") guiSetProperty(GUIEditor.button[2], "NormalTextColour", "FF0FEFFD") showCursor(true) addEvent("onClientGUIClick",registro,function() guiSetVisible(winLogin, false) reg() end) addEvent("onClientGUIClick",btrLoggearse,function() user = guiGetText(usuario) clave = guiGetText(pass) triggerServerEvent("lg",getLocalPlayer(),user,clave) end addCommandHandler("log",login) addEvent("abrirlogin",true) addEventHandler("abrirlogin",getLocalPlayer(),login) y este es el server.lua: function rg(user,clave) if(addAccount(user,clave))then outputChatBox("Regristado correctamente.") triggerClientEvent(source,"cerrar",source) logIn(source,getAccount(user,clave),clave) else outputChatBox("La cuenta ya existe.") end addEvent("rg",true) addEventHandler("rg", getRootElement(),rg) function lg(user,clave) cuenta = getAccount(user,clave) if(cuenta)then logIn(source,getAccount(user,clave),clave) triggerClientEvent(source,"cerrar2",source) else outputChatBox("La cuenta no existe o usuario y/o contraseña incorrectos.") end addEvent("lg",true) addEventHandler("lg", getRootElement(),lg) addEventHandler("onPlayerJoin",getRootElement(),function() triggerClientEvent(source,"abrirlogin",source) end) Saludos y gracias de antemano. Link to comment
Rose Posted November 30, 2016 Share Posted November 30, 2016 El problema es que tu script tiene muchos errores... Usas addEvent para detectar el click en vez de addEventHandler, funciones sin cerrar, entre otros... Edite tu script para que se pudiera abrir el panel, sin embargo creo que ese login no funcionará en la parte para logearte y registrarte. Si necesitas ayuda para eso me dices y te ayudo. Client local screenM, screenH = guiGetScreenSize() function reg() winRegister = guiCreateWindow(387, 256, 414, 313, "Register panel by Seyer", false) guiWindowSetSizable(winRegister, false) usuario = guiCreateEdit(236, 24, 167, 43, "", false, winRegister) labelUsuario = guiCreateLabel(17, 23, 159, 44, "Usuario:", false, winRegister) guiSetFont( labelUsuario, "sa-header") guiLabelSetColor( labelUsuario, 15, 239, 253) labelPassword = guiCreateLabel(19, 92, 217, 44, "Contraseña:", false, winRegister) guiSetFont(labelPassword, "sa-header") guiLabelSetColor(labelPassword, 15, 239, 253) labelPassword2 = guiCreateLabel(19, 160, 217, 44, "Contraseña:", false, winRegister) guiSetFont(labelPassword2, "sa-header") guiLabelSetColor( labelPassword2, 15, 239, 253) contrasena1 = guiCreateEdit(236, 94, 167, 42, "", false, winRegister) guiEditSetMasked(contrasena1,true) contrasena2 = guiCreateEdit(236, 160, 167, 44, "", false, winRegister) guiEditSetMasked(contrasena2,true) brtRegistrar = guiCreateButton(9, 234, 394, 69, "Register", false, winRegister) guiSetFont(brtRegistrar, "sa-header") guiSetProperty(brtRegistrar, "NormalTextColour", "FF0FEFFD") max5 = guiCreateLabel(27, 205, 56, 19, "(máx. 25)", false, winRegister) guiSetFont(max5, "default-bold-small") guiLabelSetColor(max5, 254, 254, 254) max25 = guiCreateLabel(27, 136, 56, 19, "(máx. 25)", false, winRegister) guiSetFont(max25, "default-bold-small") guiLabelSetColor(max25, 254, 254, 254) max26 = guiCreateLabel(27, 67, 56, 19, "(máx. 25)", false, winRegister) guiSetFont(max26, "default-bold-small") guiLabelSetColor(max26, 254, 254, 254) addEventHandler("onClientGUIClick",brtRegistrar,function() user=guiGetText(usuario) c=guiGetText(contrasena1) c1=guiGetText(contrasena2) end) if(c==c1)then triggerServerEvent("rg",getLocalPlayer(),user,c) outputChatBox("Las contraseñas coinciden.") else outputChatBox("Las contraseñas no coinciden.") end end addEvent("cerrar",true) addEventHandler("cerrar",getLocalPlayer(),function() guiSetVisible(winRegister,false) showCursor(false) end) addEvent("cerrar2",true) addEventHandler("cerrar",getLocalPlayer(),function() guiSetVisible(winLogin,false) showCursor(false) end) function login() winLogin = guiCreateWindow(387, 256, 414, 316, "Log-in panel by Seyer", false) guiWindowSetSizable(winLogin, false) usuario = guiCreateEdit(236, 24, 167, 43, "", false, winLogin) label1 = guiCreateLabel(17, 23, 159, 44, "Usuario:", false, winLogin) guiSetFont(label1, "sa-header") guiLabelSetColor(label1, 15, 239, 253) label2 = guiCreateLabel(19, 92, 217, 44, "Contraseña:", false, winLogin) guiSetFont(label2, "sa-header") guiLabelSetColor(label2, 15, 239, 253) contrasena1 = guiCreateEdit(236, 94, 167, 42, "", false, winLogin) btrLoggearse = guiCreateButton(10, 165, 394, 68, "Login", false, winLogin) guiSetFont(btrLoggearse, "sa-header") guiSetProperty(btrLoggearse, "NormalTextColour", "FF0FEFFD") label3 = guiCreateLabel(27, 136, 56, 19, "(máx. 25)", false, winLogin) guiSetFont(label3, "default-bold-small") guiLabelSetColor(label3, 254, 254, 254) label4 = guiCreateLabel(27, 67, 56, 19, "(máx. 25)", false, winLogin) guiSetFont(label4, "default-bold-small") guiLabelSetColor(label4, 254, 254, 254) registro = guiCreateButton(11, 240, 393, 66, "Register", false, winLogin) guiSetFont(registro, "sa-header") guiSetProperty(registro, "NormalTextColour", "FF0FEFFD") showCursor(true) addEventHandler("onClientGUIClick",registro,function() guiSetVisible(winLogin, false) reg() end) addEventHandler("onClientGUIClick",btrLoggearse,function() user = guiGetText(usuario) clave = guiGetText(contrasena1) end) triggerServerEvent("lg",getLocalPlayer(),user,clave) end addCommandHandler("log",login) addEvent("abrirlogin",true) addEventHandler("abrirlogin",getLocalPlayer(),login) Server function rg(user,clave) if(addAccount(user,clave))then outputChatBox("Regristado correctamente.") triggerClientEvent(source,"cerrar",source) logIn(source,getAccount(user,clave),clave) else outputChatBox("La cuenta ya existe.") end end addEvent("rg",true) addEventHandler("rg", getRootElement(),rg) function lg(user,clave) cuenta = getAccount(user,clave) if(cuenta)then logIn(source,getAccount(user,clave),clave) triggerClientEvent(source,"cerrar2",source) else outputChatBox("La cuenta no existe o usuario y/o contraseña incorrectos.") end end addEvent("lg",true) addEventHandler("lg", getRootElement(),lg) addEventHandler("onPlayerJoin",getRootElement(),function() triggerClientEvent(source,"abrirlogin",source) end) Si quieres saber tus errores, éstos son: Usabas 'addEvent' para usar onClientGUIClick como evento, tenías que usar addEventHandler. Habían unas dos funciones sin cerrar, es decir, te faltaba ponerles un 'end'. Usabas la letra 'ñ' para las variables. Sólo puedes usar la ñ y tildes en cadenas de texto (strings) o sino dará error Mezclabas variables del GUIEDITOR no existentes en tu script, ese es otro error más. Te recomiendo que cada gui-element que crees con el guieditor le pongas una variable enseguida, o puedes hacerlo al final, como gustes. Había una variable inexistente (pass) que realmente era contraseña1, la cambie por contrasena1. Link to comment
Seyer Posted November 30, 2016 Author Share Posted November 30, 2016 (edited) Muchas gracias por la ayuda, pero: ¿Cuál es la diferencia entre addevent y addEventHandler? ¿Cuáles eran las variables inexistentes en mi script? ¿Podrías ayudarme con lo del login? Ya que al abrirlo me dice directamente (sin poner nada) " La cuenta no existe o usuario y/o contraseña incorrectos. ", al tratar de loggearme no sucede nada y al registrarme me dice "La cuenta ya existe." (aunque ponga cualquier cosa) ¿Hay alguna diferencia al poner espacios en las lineas? Ej: addEventHandler("cerrar",getLocalPlayer(),function() y addEventHandler ("cerrar", getLocalPlayer(), function() Saludos y gracias nuevamente por ayudarme. Edited November 30, 2016 by Seyer Link to comment
Rose Posted December 1, 2016 Share Posted December 1, 2016 (edited) 1. Según sé la diferencia entre esos dos es que, addEvent es para crear un evento personalizado por ti, o sea, no puedes usar addEvent("onClientGUIClick", true) porque por obvias razones dará error, primero porque onClientGUIClick es un evento de "fábrica" por lo que no te recomiendo usarlo si algún día haces un evento personalizado. A personalizado solo me refiero a que puedes crear tus propios eventos como: "onPlayerJump", pero claro, para ejecutar éste evento tienes que hacer una función a parte. Aunque el addEvent lo usaras más que todo para triggers de client a server o viceversa. Y pues con eso ya te debes dar una idea de lo que sería addEventHandler... Si aún tienes dudas, puedes leer la wiki o mandarme un mp para explicarte mejor (si quieres). 2.Veré si más tarde lo reviso 3. No, no hay diferencias. Pero ni se te ocurra poner un espacio en el nombre asignado a la variable o en alguna función, en un string si puedes (creo que ya lo sabes) . Y sobre las variables no existentes(más bien no definidas) me refiero a que vi em ciertas partes variables como: GUIEDITOR.label[1] pero GUIEDITOR jamás le diste un valor, o, en este caso, jamás creaste la tabla. El otro caso es que usabas: guiGetText(pass) pero pass tampoco la habías definido, no estaba en tu script. Por eso inexistente. Edited December 1, 2016 by Hit+ Link to comment
Seyer Posted December 1, 2016 Author Share Posted December 1, 2016 (edited) Bueno, muchas gracias por la ayuda nuevamente. ¿Me podrías dar algunos "tips" para aprender a programar y mejorar? Saludos y gracias de antemano. Edited December 1, 2016 by Seyer Link to comment
Rose Posted December 1, 2016 Share Posted December 1, 2016 (edited) Si lo que quieres es crear scripts para MTA (por ahora) te recomiendo que primero aprendas cómo funciona Lua y su sintaxis, la wiki o tutoriales sobre cómo crear scripts para MTA no te ayudarán en nada si eres nuevo, solo te confundirán. Te recomiendo que busques por internet qué son los operadores lógicos, aritméticos, qué son variables, qué son las tablas en Lua, bucles y entre otras cosas. Algo que si te digo es que para mi no hay manera de aprender a programar (o mejorar) mejor, porque para hacer grandes cosas primero tienes que tener errores, porque de los errores salen los profesionales, de los errores, nada más. Sin embargo ten siempre en cuenta el orden de tu código para que se te haga más fácil a ti y a los que lean tu código entenderlo. Otra cosa... Eres nuevo, ¿cierto?, ¿cómo piensas tirarte a hacer un panel de login de una vez ? tampoco es que sea tan complicado pero estoy seguro que no entiendes nada de lo que está en ese código. Primero empieza por cosas más básicas... Yo cometí el mismo error que tu (cuando comencé), solo que yo quería hacer un panel en DirectX (algo imposible para mi en ese tiempo). Edited December 1, 2016 by Hit+ Link to comment
Seyer Posted December 1, 2016 Author Share Posted December 1, 2016 (edited) Es que siempre descargué de los resources de la comunidad y quería empezar a hacerlos por mi mismo por eso busqué un video para hacer dicho login. Me fui dando cuenta más o menos de qué cosa era cada una, cómo funcionaba y cómo arregarlo (no del todo claramente porque empecé ayer, pero por ahora "la voy piloteando"). Ahora, por ejemplo, empecé otro panel desde 0 (es el mismo pero con el código que vos me diste) y le agregué un botón para cambiar entre registro o log-in, le puse un showCursor(true) al registro creo que era ya que no me aparecía el cursor (no por fallo tuyo sino por fallo mío) y creo que nada más (pero me costó, jeje). Lo que sí, me tira error en la consola sobre un "Bad argument" y al fijarme en la wiki la sintaxis y cambiarlo a mis archivos también me dice "Bad argument". O no sé cómo hacer para arreglarlo o no entiendo la wiki, . Edited December 1, 2016 by Seyer Link to comment
Rose Posted December 1, 2016 Share Posted December 1, 2016 ¿Te da error el showCursor o el panel? Link to comment
Seyer Posted December 1, 2016 Author Share Posted December 1, 2016 (edited) Me da error en la consola el panel en el server.lua. Edited December 1, 2016 by Seyer Link to comment
Seyer Posted December 2, 2016 Author Share Posted December 2, 2016 Ahora que me doy cuenta, formulé mal la oración. Lo que quise decir fue: "en la consola me da error sobre el server.lua el cual, claramente, es del panel." Ese error, es el "Bad argument" y me dice que lo tiene tiene el getAccount y el addAccount. Perdón por el doble comentario pero no me deja modificar el comentario anterior. Link to comment
Seyer Posted December 31, 2016 Author Share Posted December 31, 2016 Había dejado de costado esto ya que me frustró que no funcionara pero estoy tratando nuevamente, jeje. Si alguien sabe de como arreglar lo anteriormente dicho, dígamelo por favor. UP. Link to comment
Recommended Posts