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