[Ayuda] Comando
#1

Hola, Necesito ayuda con este comando:

pawn Код:
dcmd_login(playerid, params[])
{
   new File[100], Nombre[MAX_PLAYER_NAME], string[128];
   new Contrasena[100];
   new ContrasenaIngresada[100];
   GetPlayerName(playerid, Nombre, sizeof(Nombre));
   format(File, sizeof(File), PlayerFile, Nombre);
   
   if(sscanf(params, "s", ContrasenaIngresada)) SendClientMessage(playerid, COLOR_ROJO, "Usa: /login [Contraseсa]");
   else if(!dini_Exists(File)) SendClientMessage(playerid, COLOR_ROJO, "Error: Cuenta sin registrar");
   else if(IsLogged[playerid]) SendClientMessage(playerid, COLOR_ROJO, "Error: Ya has iniciado sesion");
   
   Contrasena = dini_Int(File, "hashPW");
   else if(udb_hash(Contrasena) != ContrasenaIngresada) SendClientMessage(playerid, COLOR_ROJO, "Error: Contraseсa Incorrecta!");
   else
   {
     IsLogged[playerid] = 1;
     pInfo[playerid][Nivel] = dini_Int(File, "Nivel");
     SetPlayerScore(playerid, pInfo[playerid][Score]);
     GivePlayerMoney(playerid, dini_Int(File, "Dinero")-GetPlayerMoney(playerid));
     format(string, sizeof(string), "|- %s Has iniciado sesion correctamente -|", Nombre);
     SendClientMessage(playerid, COLOR_VERDE, string);
   }
   return 1;
}
Me tira estos errores:

Код:
C:\Users\Gladis\Desktop\Pawn\filterscripts\Pruebas.pwn(150) : error 033: array must be indexed (variable "Contrasena")
C:\Users\Gladis\Desktop\Pawn\filterscripts\Pruebas.pwn(151) : error 029: invalid expression, assumed zero
C:\Users\Gladis\Desktop\Pawn\filterscripts\Pruebas.pwn(151) : warning 215: expression has no effect
C:\Users\Gladis\Desktop\Pawn\filterscripts\Pruebas.pwn(151) : error 001: expected token: ";", but found "if"
C:\Users\Gladis\Desktop\Pawn\filterscripts\Pruebas.pwn(151) : error 033: array must be indexed (variable "ContrasenaIngresada")
C:\Users\Gladis\Desktop\Pawn\filterscripts\Pruebas.pwn(151) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


5 Errors.
Les agradecerнa cualquier ayuda...

Saludos
Reply
#2

No he probado si compila*

pawn Код:
dcmd_login(playerid, params[])
{
   new File[100], Nombre[MAX_PLAYER_NAME], string[128];
   new Contrasena[100];
   new ContrasenaIngresada[100];
   GetPlayerName(playerid, Nombre, sizeof(Nombre));
   format(File, sizeof(File), PlayerFile, Nombre);

   if(sscanf(params, "s", ContrasenaIngresada)) SendClientMessage(playerid, COLOR_ROJO, "Usa: /login [Contraseсa]");
   else if(!dini_Exists(File)) SendClientMessage(playerid, COLOR_ROJO, "Error: Cuenta sin registrar");
   else if(IsLogged[playerid]) SendClientMessage(playerid, COLOR_ROJO, "Error: Ya has iniciado sesion");

   strcat(Contrasena, dini_Get(File, "hashPW"));
   else if(strcmp(udb_hash(Contrasena), ContrasenaIngresada,false)) SendClientMessage(playerid, COLOR_ROJO, "Error: Contraseсa Incorrecta!");
   else
   {
     IsLogged[playerid] = 1;
     pInfo[playerid][Nivel] = dini_Int(File, "Nivel");
     SetPlayerScore(playerid, pInfo[playerid][Score]);
     GivePlayerMoney(playerid, dini_Int(File, "Dinero")-GetPlayerMoney(playerid));
     format(string, sizeof(string), "|- %s Has iniciado sesion correctamente -|", Nombre);
     SendClientMessage(playerid, COLOR_VERDE, string);
   }
   return 1;
}
Reply
#3

Me tira un error:

Код:
C:\Users\Gladis\Desktop\Pawn\filterscripts\Pruebas.pwn(151) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Linea:

pawn Код:
if(strcmp(udb_hash(Contrasena), ContrasenaIngresada,false)) SendClientMessage(playerid, COLOR_ROJO, "Error: Contraseсa Incorrecta!");
Reply
#4

El cуdigo esta muy desordenado.
Te dejo un cуdigo simple y funcional ^^;

pawn Код:
dcmd_login(playerid, params[])
{
    new Nombre[24];
    GetPlayerName(playerid, Nombre, sizeof(Nombre));
    format(File, sizeof(File), PlayerFile, Nombre);

    if(!dini_Exists(File)) SendClientMessage(playerid, COLOR_ROJO, "Error: Cuenta sin registrar");
    if(isnull(params)) return SendClientMessage(playerid, COLOR_ROJO, "Uso: /login <password>");

    if(IsLogged[playerid] == 1) SendClientMessage(playerid, COLOR_ROJO, "Error: Ya has iniciado sesion");
    if(udb_hash(params) != dini_Int(File, "hashPW")) return SendClientMessage(playerid, COLOR_ROJO, "La contraseсa que ingresaste es incorrecta!");
   
    IsLogged[playerid] = 1;
    pInfo[playerid][Nivel] = dini_Int(File, "Nivel");
    SetPlayerScore(playerid, pInfo[playerid][Score]);
    GivePlayerMoney(playerid, dini_Int(File, "Dinero")-GetPlayerMoney(playerid));
    format(string, sizeof(string), "|- %s Has iniciado sesion correctamente -|", Nombre);
    SendClientMessage(playerid, COLOR_VERDE, string);

    return 1;
}
No lo probe, pero va a funcionar :B

PD: yo use el udb_hash de Dudb, tu usa el que quieras xD.
Reply
#5

Te ira un error:

[code]C:\Users\Gladis\Desktop\Pawn\filterscripts\QAdmin. pwn(149) : error 017: undefined symbol "isnull"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


1 Error.[code]

Como defino el isnull?

Gracias LeaNN
Reply
#6

Perdon, lo tengo en el include del zcmd y siempre me olvido de que muchos no usan el zcmd xD.

pawn Код:
#if !defined isnull
    #define isnull(%1) \
                ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif
Ese serнa el define de isnull.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)