Skripta koju koristim: Ne znam koja je izvorna
Detaljan opis problema: Kako god obrisem udb_hash da bi se lepo prikazivao pw izbacuje mi error pa trazim pomoc... Eo dole sva mesta u skripti gde imam udb_hash... Sta god uradio nesto ne valja I prijavljuje error, pa ako bi neko bio ljubazan da pomogne. Hvala u napred
Dio skripte:
[pawn]
else if(strlen(inputtext) >= MIN_DUZINA_LOZINKE && strlen(inputtext) <= MAX_DUZINA_LOZINKE)
{
new string[128];
new INI:File = INI_Open(Korisnici(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Password",udb_hash(inputtext));
INI_WriteInt(File,"Drzava",0);
INI_WriteInt(File,"Level",1);
PlayerInfo[playerid][pLevel] = 1;
format(string, sizeof(string), "%s", inputtext);
INI_Close(File);
format(string, sizeof(string),""CRVENA"Password: "BIJELA"%s",inputtext);
SCM(playerid,-1,string);
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_LIST, ""BIJELA"Izaberite spol", ""BIJELA"Musko\n"BIJELA"Zensko", "Dalje", "Odustani");
}
////////////////////////////////////
/////////////////////////////////////
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
{
INI_ParseFile(Korisnici(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
if(PlayerInfo[playerid][pDrzava] == 0)
{
SCM(playerid,-1,""CRVENA"[GRESKA] "BIJELA"Niste zavrsili registraciju, pa ste vraceni na ponovnu registraciju!");
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_LIST, ""BIJELA"Izaberite spol", ""BIJELA"Musko\n"BIJELA"Zensko", "Dalje", "Odustani");
TogglePlayerControllable(playerid, 0);
InterpolateCameraPos(playerid, 1418.5322,-960.6523,132.5073, 1551.0820,-766.9652,132.5073, 30000);
InterpolateCameraLookAt(playerid, 1428.3470,-808.4883,132.5073, 1392.0089,-1002.6099,132.5073, 30000);
return 1;
}
//////////////////////////////////////
/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
stock udb_hash(buf[]) //HASH PASS
{
new length=strlen(buf);
new s1 = 1;
new s2 = 0;
new n;
for (n=0; n<length; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}
///////////////
////////////////////
CMD:promenipassword(playerid, params[],help)
{
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""SIVA"(greska) Moras se ulogovati da bi koristio ovu komandu!");
if(isnull(params)) return SCM(playerid, -1, ""SIVA1" Koristite: "SIVA"/promenipassword [Novi Pass(Min 6 - Max 26 znakova]");
if(strlen(params) < 6) return SCM(playerid, -1, ""SIVA"(greska) Password je prekratak (Min 6 znakova)!");
if(strlen(params) > 26) return SCM(playerid, -1, ""SIVA"(greska) Password je predug (Max 26 znakova)!");
PlayerInfo[playerid][pPass] = udb_hash(params);
new INI:File = INI_Open(Korisnici(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Password",udb_hash(params));
INI_Close(File);
SCM(playerid,-1,""CRVENA"|------------------------------------------------------------------------------------|");
SCMF(playerid,-1,""CRVENA"- "BIJELA"Vas novi password je: "CRVENA"%s", params);
SCM(playerid,-1,""CRVENA"- "BIJELA"Slikajte promenu passworda kako ga ne bi zaboravili");
SCM(playerid,-1,""CRVENA"- "BIJELA"Origen RolePlay team ne odgovara za izgubljene passworde");
SCM(playerid,-1,""CRVENA"|------------------------------------------------------------------------------------|");
return 1;
}
[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Koi ti error izbacuje :)
Ovaj je za red koji je crven
error 035: argument type mismatch (argument 3)
{
new string[128];
new INI:File = INI_Open(Korisnici(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Password",inputtext);
INI_WriteInt(File,"Drzava",0);
INI_WriteInt(File,"Level",1);
PlayerInfo[playerid][pLevel] = 1;
format(string, sizeof(string), "%s", inputtext);
INI_Close(File);
format(string, sizeof(string),""CRVENA"Password: "BIJELA"%s",inputtext);
SCM(playerid,-1,string);
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_LIST, ""BIJELA"Izaberite spol", ""BIJELA"Musko\n"BIJELA"Zensko", "Dalje", "Odustani");
}
Sledeci ovde
error 033: array must be indexed (variable "inputtext")
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(response)
{
if(inputtext == PlayerInfo[playerid][pPass])
{
INI_ParseFile(Korisnici(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
if(PlayerInfo[playerid][pDrzava] == 0)
{
Ovde poslednja 2
error 006: must be assigned to an array
argument type mismatch (argument 3)
CMD:promenipassword(playerid, params[],help)
{
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""SIVA"(greska) Moras se ulogovati da bi koristio ovu komandu!");
if(isnull(params)) return SCM(playerid, -1, ""SIVA1" Koristite: "SIVA"/promenipassword [Novi Pass(Min 6 - Max 26 znakova]");
if(strlen(params) < 6) return SCM(playerid, -1, ""SIVA"(greska) Password je prekratak (Min 6 znakova)!");
if(strlen(params) > 26) return SCM(playerid, -1, ""SIVA"(greska) Password je predug (Max 26 znakova)!");
PlayerInfo[playerid][pPass] = params;
new INI:File = INI_Open(Korisnici(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Password",params);
INI_Close(File);
SCM(playerid,-1,""CRVENA"|------------------------------------------------------------------------------------|");
SCMF(playerid,-1,""CRVENA"- "BIJELA"Vas novi password je: "CRVENA"%s", params);
SCM(playerid,-1,""CRVENA"- "BIJELA"Slikajte promenu passworda kako ga ne bi zaboravili");
SCM(playerid,-1,""CRVENA"- "BIJELA"Origen RolePlay team ne odgovara za izgubljene passworde");
SCM(playerid,-1,""CRVENA"|------------------------------------------------------------------------------------|");
return 1;
}
bump
[pawn] INI_WriteInt(File,"Password",params);[/pawn]
Stavi
[pawn] INI_WriteInt(File,"Password",PlayerInfo[playerid][pPass]);[/pawn]
I izbrisi ovo PlayerInfo[playerid][pPass] = params;
[pawn] if(inputtext == PlayerInfo[playerid][pPass])[/pawn]
Stavi
[pawn]if(PlayerInfo[playerid][pPass])[/pawn]
[pawn]INI_WriteInt(File,"Password",inputtext);[/pawn]
Stavi
[pawn]INI_WriteInt(File,"Password",PlayerInfo[playerid][pPass]);[/pawn]
Ne kontam sta de da stavim...
Citat: нÑÏ...Ñ•Ñ,αиσνιÏ, poslato Januar 30, 2017, 18:56:11 POSLE PODNE
[pawn] INI_WriteInt(File,"Password",params);[/pawn]
Stavi
[pawn] INI_WriteInt(File,"Password",PlayerInfo[playerid][pPass]);[/pawn]
I izbrisi ovo PlayerInfo[playerid][pPass] = params;
[pawn] if(inputtext == PlayerInfo[playerid][pPass])[/pawn]
Stavi
[pawn]if(PlayerInfo[playerid][pPass])[/pawn]
[pawn]INI_WriteInt(File,"Password",inputtext);[/pawn]
Stavi
[pawn]INI_WriteInt(File,"Password",PlayerInfo[playerid][pPass]);[/pawn]
Ti sto objasnjavas je totalno pogresno jer password nije integer vec string i treba se ovako uraditi
pPass[64]//ovo u enumu za PlayerInfo
strmid(PlayerInfo[playerid][pPass], inputtext, 0, strlen(inputtext), 64);//ovo ti je za dialog na registeru kada unosis sifru
INI_WriteString(File,"Password", PlayerInfo[playerid][pPass]);//cuvanje
INI_String("Password", PlayerInfo[playerid][pPass],64);//ucitavanje
Kod UP moda je INI_WriteInt i to vecina koriste
Citat: нÑÏ...Ñ•Ñ,αиσνιÏ, poslato Januar 31, 2017, 13:38:09 POSLE PODNE
Kod UP moda je INI_WriteInt i to vecina koriste
Ne znam da li si znao da je integer cijeli broj i ne moze biti neka rijec sto znaci da po tvom primjeru igrac samo moze kucati sifru u brojevima a sta ako upise npr test123?? Password je string i tu nema razmisljanja dalje!
Sto se tice UP moda jer si rekao da je tako u UP modu a jesi li mozda pogledao zasto je integer?? Pa integer je jer se hashuje i ako ukucas pw test123 on ce ispisati 146364 a ovaj momak trazi da ukine hash sto znaci hoce originalnu sifru da zapisuje tako da kao sto sam prije rekao password je string !!!
Da upravu si koLega :D
Resio sam nekako sam, hvala u svakom slucaju svima!