Problema con dialogs
#1

Bueno, todo empezу cuando yo decidн hacer un registro y login con showplayerdialog. Lo habнa hecho y saliу bien, pero cuando relogeaba o cerraba el juego, volvнa a entrar y tenнa que registrarme nuevamente.
Un amigo me pasу su dialog, aquн se los muestro: (este es el onplayerconnect)
Код:
    new string[256];
	GetPlayerName(playerid, plname, sizeof(plname));
	format(string, sizeof(string), "cuentas/%s.ini", plname);
	if(fexist(string))
  {
    gPlayerAccount[playerid] = 1;
    new s[128];
    new loginname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,loginname,MAX_PLAYER_NAME);
    format(s,sizeof(s),"Bienvenido, %s!\n\nEscribe tu contraseсa y logeate!",loginname);
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Panel de Logeo por Sergio",s,"Entrar","Cancelar");
    return 1;

  }
  else
  {
    gPlayerAccount[playerid] = 0;
    new s[128];
    new loginname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,loginname,MAX_PLAYER_NAME);
    format(s,sizeof(s),"Bienvenido, %s!\n\n Como eres nuevo por aquн, ingresa tu contresaсe abajo y regнstrate.",loginname);
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Panel de Registro por Sergio",s,"Registrarse","Cancelar");
    return 1;// parece que si
  }
Y aquн abajo el ondialogresponse:

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	new sendername[MAX_PLAYER_NAME];
	new string[128];
	if(response)
	{
		if(dialogid == 1)
		{
		  if(strlen(inputtext))
		  {
				new tmppass[64];
				strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
				Encrypt(tmppass);
				OnPlayerLogin(playerid,tmppass);
			}
			else
			{
				new loginstring[128];
				new loginname[64];
				GetPlayerName(playerid,loginname,sizeof(loginname));
				format(loginstring,sizeof(loginstring),"CONTRASENA INCORRECTA\nIngresa la contrasena correcta.\n Si fallas mбs de 4 veces quedarбs baneado:",loginname);
				ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Iniciar Sesion",loginstring,"Conectar","Salir");
				gPlayerLogTries[playerid] += 1;
				if(gPlayerLogTries[playerid] == 4) { Ban(playerid); }
			}
		}
		if(dialogid == 2)
		{
		  if(strlen(inputtext))
		  {
				GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), "cuentas/%s.ini", sendername);
				new File: hFile = fopen(string, io_read);
				if (hFile)
				{
					SendClientMessage(playerid, COLOR_YELLOW, "Este nombre Ya Existe, porfavor elije otro.");
					fclose(hFile);
					return 1;
				}
				new tmppass[64];
				strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
				Encrypt(tmppass);
				OnPlayerRegister(playerid,tmppass);
			}
			else
			{
 				new regstring[128];
				new regname[64];
				GetPlayerName(playerid,regname,sizeof(regname));
				format(regstring,sizeof(regstring),"Bienvenido, %s\nIngresa tu contrasena para Registrar tu cuenta:",regname);
				ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Registrar",regstring,"Registrar","Salir");
			}
		}
		if(!strlen(inputtext))
  		{
  		new loginmsg[] = "CONTRASENA INCORRECTA\nIngresa la contrasena correcta\npara logear:";
  	 	ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Iniciar Sesion", loginmsg, "Conectar", "Salir");
 		 	}
  	 	else if(response == 0)
  	 	{
  	 	  Kick(playerid);
  	 	}
		}
	}
	return 0;
}
Bueno, al compilar me tira esto:
C:\ARCHIV~1\MI4868~1\Script\server\GAMEMO~2\GMZ.pw n(52343) : warning 209: function "OnDialogResponse" should return a value
C:\ARCHIV~1\MI4868~1\Script\server\GAMEMO~2\GMZ.pw n(52344) : error 010: invalid function or declaration

Las lineas que aparecen ahн son respectivamente las anteultimas del ondialogresponse.
Intentй con sacar el return, y hasta darle valor 1, y nada...

Si alguien me puede ayudar gracias, es muy urgente xd.

Saludos
Reply
#2

Estбs cerrando mal las llaves. Revisб el cуdigo dos veces y fijate si podйs encontrar donde. Me parece que cerca del final tenes una llave de mбs pero no estoy seguro, mejor fijate si encontrбs cuales no se cierran correctamente.
Reply
#3

primero lo q dice ZAMAROHT pero despues creasta la carpeta en tu scriptfiles donde se guardaran las cuentas de todos los usuarios?

entra en scriptfiles y crea la carpeta cuentas

despues entras al sv te registras y ya se van a empesar a guardar las cuentas normalЎmente

eso es todo salu2 y suerte
Reply
#4

Quote:
Originally Posted by Zamaroht
Estбs cerrando mal las llaves. Revisб el cуdigo dos veces y fijate si podйs encontrar donde. Me parece que cerca del final tenes una llave de mбs pero no estoy seguro, mejor fijate si encontrбs cuales no se cierran correctamente.
No se... cuando pones algo de pawno en el foro, si no lo modificas bien a veces sale mal.
Pero podrнa ser.
Reply
#5

Quote:
Originally Posted by laborgward
primero lo q dice ZAMAROHT pero despues creasta la carpeta en tu scriptfiles donde se guardaran las cuentas de todos los usuarios?

entra en scriptfiles y crea la carpeta cuentas

despues entras al sv te registras y ya se van a empesar a guardar las cuentas normalЎmente

eso es todo salu2 y suerte
Y sн, estoy de acuerdo contigo en lo de crear la carpeta, puede ser ese el error.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)