prijavim s nickname manjim od 12 slova, onda je ok. cim s vise od 12 slova onda nije. kako mogu to napraviti da mogu imati nickname veci od 12 slova?! recimo 20. hvala.
pokusao sam kod "public onplayerregister" staviti "new loginname;" umjesto broja 64 na broj 128 i tako isto kod "public onplayerlogin" pa pa opet neuspjesno.
pomoc boljih skriptera
1,283
pregleda
10
postova
26. Jun 2010.
Kod funkcije za registraciju (ili gdje već provjeravaš) će morati potražiti funkciju strlen koja provjerava dužinu imena/lozinke/stringa/bla bla.
26. Jun 2010.
uspio sam srediti to s duzinom nicka. jos mi sad samo recite kako bi mogao napravit da kad se ides regat na server, i upises lozinku ispod 8 znakova, da ti server ne prihvati registraciju, i da ispise sastrane u chat da lozinka mora biti duza od 8 znakova. kotistim dialog register i login. hvala
27. Jun 2010.
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string3;
new playername3;
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo, password, 0, strlen(password), 255);
new var;
format(var, 64, "Key=%s\n", PlayerInfo);fwrite(hFile, var);
PlayerInfo = GetPlayerMoney(playerid);
format(var, 64, "Level=%d\n",PlayerInfo);fwrite(hFile, var);
format(var, 64, "AdminLevel=%d\n",PlayerInfo);fwrite(hFile, var);
format(var, 64, "DonateRank=%d\n",PlayerInfo);fwrite(hFile, var);
.....
a evo i dialogresponse
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new sendername;
new string;
if(response)
{
if(dialogid == 12346 || dialogid == 12347)
{
if(strlen(inputtext))
{
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
else
{
new loginstring;
new loginname;
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"POGRESNA LOZINKA\nMolimo unesite tocnu lozinku:",loginname);
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Prijava",loginstring,"Prijava","Izlaz");
gPlayerLogTries += 1;
if(gPlayerLogTries == 5) { Ban(playerid); }
}
}
if(dialogid == 12345)
{
if(strlen(inputtext))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "To korisnicko ime je vec zauzeto, molimo odaberite neko drugo.");
fclose(hFile);
return 1;
}
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
else
{
new regstring;
new regname;
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"Dobrodosli, %s\nNemate account.\nMolimo registrirajte se:",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registracija",regstring,"Registracija","Izlaz");
}
}
}
else
{
Kick(playerid);
}
return 1;
}
i sad gdje da to ubacim?!
hvala
{
if(IsPlayerConnected(playerid))
{
new string3;
new playername3;
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo, password, 0, strlen(password), 255);
new var;
format(var, 64, "Key=%s\n", PlayerInfo);fwrite(hFile, var);
PlayerInfo = GetPlayerMoney(playerid);
format(var, 64, "Level=%d\n",PlayerInfo);fwrite(hFile, var);
format(var, 64, "AdminLevel=%d\n",PlayerInfo);fwrite(hFile, var);
format(var, 64, "DonateRank=%d\n",PlayerInfo);fwrite(hFile, var);
.....
a evo i dialogresponse
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new sendername;
new string;
if(response)
{
if(dialogid == 12346 || dialogid == 12347)
{
if(strlen(inputtext))
{
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
else
{
new loginstring;
new loginname;
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"POGRESNA LOZINKA\nMolimo unesite tocnu lozinku:",loginname);
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Prijava",loginstring,"Prijava","Izlaz");
gPlayerLogTries += 1;
if(gPlayerLogTries == 5) { Ban(playerid); }
}
}
if(dialogid == 12345)
{
if(strlen(inputtext))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "To korisnicko ime je vec zauzeto, molimo odaberite neko drugo.");
fclose(hFile);
return 1;
}
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
else
{
new regstring;
new regname;
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"Dobrodosli, %s\nNemate account.\nMolimo registrirajte se:",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registracija",regstring,"Registracija","Izlaz");
}
}
}
else
{
Kick(playerid);
}
return 1;
}
i sad gdje da to ubacim?!
hvala
27. Jun 2010.
strlen = Broj upisanih znakova
srtval = Provjera upisanih znakova
npr. ako koristis strlen na deposit dialog komandu i upises 2000 u PAWNCC ce provesti broj 4 jer je samo zbrojio znakove, a ako koristis strval onda ce ti pisati 2000 znaci to ti je ta razlika eto tek toliko da znas
srtval = Provjera upisanih znakova
npr. ako koristis strlen na deposit dialog komandu i upises 2000 u PAWNCC ce provesti broj 4 jer je samo zbrojio znakove, a ako koristis strval onda ce ti pisati 2000 znaci to ti je ta razlika eto tek toliko da znas
27. Jun 2010.
Luka P. wrote on June 27, 2010, 11:11 am:
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
if(strlen(password) < 3) return SendClientMessage(playerid, neka_boja, "lozinka mora bit minimalno 3 znaka");
new string3;
new playername3;
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "users/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo, password, 0, strlen(password), 255);
new var;
format(var, 64, "Key=%s\n", PlayerInfo);fwrite(hFile, var);
PlayerInfo = GetPlayerMoney(playerid);
format(var, 64, "Level=%d\n",PlayerInfo);fwrite(hFile, var);
format(var, 64, "AdminLevel=%d\n",PlayerInfo);fwrite(hFile, var);
format(var, 64, "DonateRank=%d\n",PlayerInfo);fwrite(hFile, var);
.....ok to sad radi. al kako sad kad napisem pass ispod 3 znaka, i on bi ispise da mora biti minimalno 3 znaka, kad sad napravit da mi ponovno izbaci dialog za registraciju?! hvala
27. Jun 2010.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new sendername;
new string;
if(response)
{
if(dialogid == 12346 || dialogid == 12347)
{
if(strlen(inputtext))
{
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
else
{
new loginstring;
new loginname;
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"POGRESNA LOZINKA\nMolimo unesite tocnu lozinku:",loginname);
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Prijava",loginstring,"Prijava","Izlaz");
gPlayerLogTries += 1;
if(gPlayerLogTries == 5) { Ban(playerid); }
}
}
if(dialogid == 12345)
{
if(strlen(inputtext))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "To korisnicko ime je vec zauzeto, molimo odaberite neko drugo.");
fclose(hFile);
return 1;
}
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
else
{
new regstring;
new regname;
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"Dobrodosli, %s\nNemate account.\nMolimo registrirajte se:",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registracija",regstring,"Registracija","Izlaz");
}
}
}
else
{
Kick(playerid);
}
return 1;
}
gdje se tu nalazi taj callback??
za ovo
if ( strlen ( inputtext ) < 8 ) return ShowPlayerDialog( ... );
{
new sendername;
new string;
if(response)
{
if(dialogid == 12346 || dialogid == 12347)
{
if(strlen(inputtext))
{
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
else
{
new loginstring;
new loginname;
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"POGRESNA LOZINKA\nMolimo unesite tocnu lozinku:",loginname);
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Prijava",loginstring,"Prijava","Izlaz");
gPlayerLogTries += 1;
if(gPlayerLogTries == 5) { Ban(playerid); }
}
}
if(dialogid == 12345)
{
if(strlen(inputtext))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "To korisnicko ime je vec zauzeto, molimo odaberite neko drugo.");
fclose(hFile);
return 1;
}
new tmppass;
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
else
{
new regstring;
new regname;
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"Dobrodosli, %s\nNemate account.\nMolimo registrirajte se:",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Registracija",regstring,"Registracija","Izlaz");
}
}
}
else
{
Kick(playerid);
}
return 1;
}
gdje se tu nalazi taj callback??
za ovo
if ( strlen ( inputtext ) < 8 ) return ShowPlayerDialog( ... );
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava