Jump to content

Panel de loguin


Recommended Posts

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

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
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),xD.

Upsss.

EDITO:Creo que tengo que hacerlo usando las variables opcionales ¿no?,xD que despistado soy.

addEventHandler("onClientGuiClick",Login,triggerServerEvent("Logacc",getLocalPlayer(),Username,Password)) 

Error, la variable 3 devuelve boolean. :(, osea el trigger.

Link to comment

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
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 xD.

Link to comment

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

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
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 :D, 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

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

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
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

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
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

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

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 by Guest
Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...