SA-MP Forums Archive
[Ayuda] Comando - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda] Comando (/showthread.php?tid=286644)



[Ayuda] Comando - [00]Luis - 29.09.2011

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


Re: [Ayuda] Comando - Xyrex - 29.09.2011

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



Respuesta: [Ayuda] Comando - [00]Luis - 30.09.2011

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!");



Respuesta: [Ayuda] Comando - leaNN! - 30.09.2011

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.


Respuesta: [Ayuda] Comando - [00]Luis - 30.09.2011

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


Respuesta: [Ayuda] Comando - leaNN! - 30.09.2011

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.