Carlossg Posted May 28, 2012 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)
Edikosh998 Posted May 28, 2012 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.
Carlossg Posted May 28, 2012 Author 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?
Edikosh998 Posted May 28, 2012 Posted May 28, 2012 Al reves, del client a server. Hazlo, usando el evento onClientGUIClick.
Carlossg Posted May 28, 2012 Author 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.
Edikosh998 Posted May 28, 2012 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
Carlossg Posted May 28, 2012 Author 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 .
Edikosh998 Posted May 28, 2012 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)
Carlossg Posted May 29, 2012 Author 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.
Carlossg Posted May 30, 2012 Author 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..."
Edikosh998 Posted May 30, 2012 Posted May 30, 2012 Si devuelve eso, es porque no se pudo encontrar un account. Vos te registraste no?
Carlossg Posted May 30, 2012 Author 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
Edikosh998 Posted May 30, 2012 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
Carlossg Posted May 30, 2012 Author 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.
Carlossg Posted May 31, 2012 Author 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
Edikosh998 Posted May 31, 2012 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
Carlossg Posted May 31, 2012 Author 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?
Edikosh998 Posted May 31, 2012 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?
Carlossg Posted June 1, 2012 Author 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...
Edikosh998 Posted June 1, 2012 Posted June 1, 2012 Los recibe al reves? No sera porque estan al reves los edits?
Carlossg Posted June 1, 2012 Author 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.
Carlossg Posted June 1, 2012 Author Posted June 1, 2012 El debug no te dice nada? Si eso de string, creo que dice que es un string.
Edikosh998 Posted June 1, 2012 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
Recommended Posts