Carlossg Posted May 28, 2012 Share Posted May 28, 2012 Tengo este código pero no funciona, le doy a login y no pasa nada, pongo la cuenta bien y todo...aunque la ponga mal no tira el error... panel = guiCreateWindow(224,186,331,204,"Login to your account",false) guiCreateLabel(68,44,67,20,"Username:",false,panel) guiCreateLabel(70,88,56,16,"Password:",false,panel) Login = guiCreateButton(56,144,91,32,"Login",false,panel) Register = guiCreateButton(204,144,91,32,"Register",false,panel) Username = guiCreateEdit(132,40,91,26,"Username",false,panel) Password = guiCreateEdit(132,83,91,26,"",false,panel) guiWindowSetMovable(panel,false) guiWindowSetSizable(panel,false) guiEditSetMasked(Password,true) showCursor(true) --function empezar(Player) --guiSetVisible(panel,true) --showCursor(true) --end function Logacc(Source,Username,Password) account = getAccount (Username,Password) if (account ~= false) then logIn(Source,account,Password) else outputChatBox("Wrong Username/Password",Source,255,0,0) end end addEventHandler("onClientGuiClick",Login,Logacc) Link to comment
Edikosh998 Posted May 28, 2012 Share Posted May 28, 2012 Necesitas hacer un trigger, la funcion "Logacc" , debe ir en el lado del servidor. Usa el evento onClientGUIClick para triggear. Igual miralo bien en la wiki lo del trigger y preguntame alguna duda al respecto. Pero no me pidas hecho la cosa, sino no sirve. Link to comment
Carlossg Posted May 28, 2012 Author Share Posted May 28, 2012 Me he atrancado, ¿conque obtengo la variable Username y Pasword Server-side? ¿Tengo que triggear desde el server a client-side para saberla? Link to comment
Edikosh998 Posted May 28, 2012 Share Posted May 28, 2012 Al reves, del client a server. Hazlo, usando el evento onClientGUIClick. Link to comment
Carlossg Posted May 28, 2012 Author Share Posted May 28, 2012 Al reves, del client a server.Hazlo, usando el evento onClientGUIClick. Claro, eso hago: addEventHandler("onClientGuiClick",Login,triggerServerEvent("Logacc",getRootElement())) function Logacc(Source,Username,Password) account = getAccount (Username,Password) if (account ~= false) then logIn(Source,account,Password) else outputChatBox("Wrong Username/Password",Source,255,0,0) end end addEvent("Logacc",true) addEventHandler("Logacc",getRootElement(),Logacc) Pero me tira error al obtener las variables Username y Password. PD:Tu odias que quieran todo hecho(el código), yo odio que me den todo hecho(el código tmb),. Upsss. EDITO:Creo que tengo que hacerlo usando las variables opcionales ¿no?, que despistado soy. addEventHandler("onClientGuiClick",Login,triggerServerEvent("Logacc",getLocalPlayer(),Username,Password)) Error, la variable 3 devuelve boolean. , osea el trigger. Link to comment
Edikosh998 Posted May 28, 2012 Share Posted May 28, 2012 Igual no entendiste bien la idea de trigger, te digo los errores, para que lo entiendas. El trigger pide el nombre del evento (perfecto), el source (ahi pusiste localPlayer, muy bien) y los argumentos opcionales (AHI TIENE QUE SER USERNAME y password). El username y password los sacas con guiGetText. Luego en el server el source no lo tenes que poner como parametro de la funcion, solo el username y password. Si no entendiste algo, decimelo Link to comment
Carlossg Posted May 28, 2012 Author Share Posted May 28, 2012 Igual no entendiste bien la idea de trigger, te digo los errores, para que lo entiendas. El trigger pide el nombre del evento (perfecto), el source (ahi pusiste localPlayer, muy bien) y los argumentos opcionales (AHI TIENE QUE SER USERNAME y password). El username y password los sacas con guiGetText. Luego en el server el source no lo tenes que poner como parametro de la funcion, solo el username y password.Si no entendiste algo, decimelo Perfectamente explicado, el P Amo Quedaría así ¿no? Para no ensuciar el onGuiClick, las he definido arriba: función del Cliente txtPass = guiGetText(Password) txtUser = guiGetText(Username) addEventHandler("onClientGuiClick",Login,triggerServerEvent("Logacc",getLocalPlayer(),txtUser,txtPass)) funcion del Servidor: function Logacc(txtUser,txtPass) account = getAccount (txtUser,txtPass) if (account ~= false) then logIn(Source,txtUser,txtPass) else outputChatBox("Wrong Username/Password",Source,255,0,0) end end addEvent("Logacc",true) addEventHandler("Logacc",getRootElement(),Logacc) ¿Quedaría así bien? PD:80000 smilies y no encuentro el de alabanza . Link to comment
Edikosh998 Posted May 28, 2012 Share Posted May 28, 2012 Source va con minusculas y lo otro te recomendaria (aunque daria igual, CREO) : addEventHandler("onClientGuiClick",Login,function () triggerServerEvent("Logacc",getLocalPlayer(),txtUser,txtPass) end) Link to comment
Carlossg Posted May 29, 2012 Author Share Posted May 29, 2012 No funciona; Cliente: panel = guiCreateWindow(224,186,331,204,"Login to your account",false) guiCreateLabel(68,44,67,20,"Username:",false,panel) guiCreateLabel(70,88,56,16,"Password:",false,panel) Login = guiCreateButton(56,144,91,32,"Login",false,panel) Register = guiCreateButton(204,144,91,32,"Register",false,panel) Username = guiCreateEdit(132,40,91,26,"Username",false,panel) Password = guiCreateEdit(132,83,91,26,"",false,panel) guiWindowSetMovable(panel,false) guiWindowSetSizable(panel,false) guiEditSetMasked(Password,true) showCursor(true) txtPass = guiGetText(Password) txtUser = guiGetText(Username) addEventHandler("onClientGuiClick",Login,function () triggerServerEvent("Logacc",getLocalPlayer(),txtUser,txtPass) end) Server: function Logacc(txtUser,txtPass) account = getAccount (txtUser,txtPass) if (account ~= false) then logIn(source,txtUser,txtPass) else outputChatBox("Wrong Username/Password",source,255,0,0) end end addEvent("Logacc",true) addEventHandler("Logacc",getRootElement(),Logacc) Simplemente no funciona,ningún error. Link to comment
Carlossg Posted May 30, 2012 Author Share Posted May 30, 2012 Es "onClientGUIClick". Ok, ahora , pongo bien el pass y la contraseña y tira el error que le puse si estaba mal:"Wrong user..." Link to comment
Edikosh998 Posted May 30, 2012 Share Posted May 30, 2012 Si devuelve eso, es porque no se pudo encontrar un account. Vos te registraste no? Link to comment
Carlossg Posted May 30, 2012 Author Share Posted May 30, 2012 Si, de hecho incluso creé una cuenta facil para ver si era error de escritura(user:caca y pass:caca)no funciona Link to comment
Edikosh998 Posted May 30, 2012 Share Posted May 30, 2012 Fijate asi function Logacc(txtUser,txtPass) account = getAccount (txtUser,txtPass) if (account ~= false) then logIn(source,txtUser,txtPass) else outputChatBox("Wrong Username/Password",source,255,0,0) outputChatBox(tostring(txtUser).." y "..tostring(txtPass),source) end end addEvent("Logacc",true) addEventHandler("Logacc",getRootElement(),Logacc) Decime que te dice el output Link to comment
Carlossg Posted May 30, 2012 Author Share Posted May 30, 2012 Fijate asi function Logacc(txtUser,txtPass) account = getAccount (txtUser,txtPass) if (account ~= false) then logIn(source,txtUser,txtPass) else outputChatBox("Wrong Username/Password",source,255,0,0) outputChatBox(tostring(txtUser).." y "..tostring(txtPass),source) end end addEvent("Logacc",true) addEventHandler("Logacc",getRootElement(),Logacc) Decime que te dice el output De hecho es lo que iba a hacer, mirar que datos tiraba , pero me tuve que ir, y ahora estoy agotado. EDITO:Sé el fallo, al obtener el texto lo hace al empezar el script, no cuando pulsas el botón login, voy a corregirlo. Link to comment
Carlossg Posted May 31, 2012 Author Share Posted May 31, 2012 Tengo un gran dilema, no sé como llamar al guiGetText y ponerle nombre para usarlo en el server, he intentado usar una función pero da nil. addEventHandler("onClientGUIClick",Login,function () triggerServerEvent("Logacc",getLocalPlayer(),texto()) end)--aquí en texto he puesto los () porque creo que es así pero también he probado sin ellos y da error igualmente. function texto(txt_Pass,txt_User) txtPass = guiGetText(Password) txtUser = guiGetText(Username) end Link to comment
Edikosh998 Posted May 31, 2012 Share Posted May 31, 2012 Podes hacer : addEventHandler("onClientGUIClick",Login,texto,false) function texto(txt_Pass,txt_User) local txtPass = guiGetText(Password) local txtUser = guiGetText(Username) triggerServerEvent("Logacc",getLocalPlayer(),txtPass,txtUser) end Link to comment
Carlossg Posted May 31, 2012 Author Share Posted May 31, 2012 Podes hacer : addEventHandler("onClientGUIClick",Login,texto,false) function texto(txt_Pass,txt_User) local txtPass = guiGetText(Password) local txtUser = guiGetText(Username) triggerServerEvent("Logacc",getLocalPlayer(),txtPass,txtUser) end El false del addEventHandler, ¿para que es? Link to comment
Edikosh998 Posted May 31, 2012 Share Posted May 31, 2012 Es un argumento que me cuesta explicar pero lo aprendi por experiencia. Tipo , si no pones false puede pasar que al apretar cualquier otro GUI se de el evento ese. Igual, no se en que casos sucedes. De todos modos, eso no afectaba y no era nada con respecto a tu error. Solo lo agrege. Y si sigue el error, la verdad cuesta enterdelo. En el outputChatBox , te aparecia la password y nombre? Link to comment
Carlossg Posted June 1, 2012 Author Share Posted June 1, 2012 Es un argumento que me cuesta explicar pero lo aprendi por experiencia. Tipo , si no pones false puede pasar que al apretar cualquier otro GUI se de el evento ese. Igual, no se en que casos sucedes.De todos modos, eso no afectaba y no era nada con respecto a tu error. Solo lo agrege. Y si sigue el error, la verdad cuesta enterdelo. En el outputChatBox , te aparecia la password y nombre? Ahora pruebo, con este: addEventHandler("onClientGuiClick",Login,function () triggerServerEvent("Logacc",getLocalPlayer(),txtUser,txtPass) end) Devolvía Username y Osea que obtenía el texto al iniciar la resource Y con el que puse antes, ese daba nil y nil. Ahora pruebo con el tuyo Juas, lo que me distes está bien, sólo que me daba error y lo puse antes del eventhandler sino daba el mismo error que el mio,igual le puse un tostring a lo del login en el server sino no iba(Lógico), ahora creo que el server recibe los datos al revés es decir, para el username el password y para el password el username... Link to comment
Edikosh998 Posted June 1, 2012 Share Posted June 1, 2012 Los recibe al reves? No sera porque estan al reves los edits? Link to comment
Carlossg Posted June 1, 2012 Author Share Posted June 1, 2012 No, están bien os cuento por si os pasa, en la funcion priemro estaba el Pass y luego el User con lo cual a cada uno asignaba una distinta, porque el server recibia primero el User y después el pass. Ahora no funciona al login me da error, noseque string(No lo puedo mirar ahora), y ni poniendo tostring se pasa. Link to comment
Carlossg Posted June 1, 2012 Author Share Posted June 1, 2012 El debug no te dice nada? Si eso de string, creo que dice que es un string. Link to comment
Edikosh998 Posted June 1, 2012 Share Posted June 1, 2012 (edited) Ya vi el error : function Logacc(txtUser,txtPass) account = getAccount (txtUser,txtPass) if (account ~= false) then logIn(source,account,txtPass) else outputChatBox("Wrong Username/Password",source,255,0,0) end end addEvent("Logacc",true) addEventHandler("Logacc",getRootElement(),Logacc) Edited June 1, 2012 by Guest Link to comment
Recommended Posts