Login tries not functioning
#1

So, I got this problem that is bugging me and I simply cannot solve it, and would love some help from you guys.

Here's the deal, each time a player puts in a wrong password / nothing in the dialog box, it's supposed to save that, and put it in the next dialog. But, it's not working since every time you put in a wrong password it comes out with number 1, instead of the next ex. 2 or 3.

Here's the login part, sorry for these parts in Croatian, but the part that I need help with is gTries, or Pokusaji in Croatian.
PHP Code:
if(dialogid == DIALOG_LOGIN) {
        if(!
response) return Kick(playerid);
        new 
iStr[256], gTries;
        if(
gTries == 0gTries 1;
        if(
gTries == 3) {
            new 
pName[30];
            
GetPlayerName(playerid,pName,sizeof(pName));
            
format(iStr,sizeof(iStr),"WARNING: Igrac %s je kickan sa servera zbog previse puta krivo unesene lozinke.",pName);
            
SendAdminMessage(COLOR_ADMWARN,iStr);
             return 
Kick(playerid);
        }
        if(!
strlen(inputtext)) {
            
format(iStr,sizeof(iStr),"Niste unijeli lozinku - pokusajte ponovno. Preostalo pokusaja: %d / 3\nMolimo vas upisite vasu lozinku ispod.\nUgodnu igru na serveru zeli vam Marko.",gTries);
             
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"MARKO GAMEMODE - LOGIRANJE",iStr,"Login","Izlaz");
             
gTries++;
             return 
1;
        }
        if(
udb_hash(inputtext) == PlayerInfo[playerid][Lozinka]) {
            
pLogged[playerid] = 1;
            for(new 
0100i++) SendClientMessage(playerid, -1" ");
            
SendClientMessage(playerid,lime,"Uspjesno ste se logirali - dobrodosli nazad.");
            
INI_ParseFile(PlayerPath(playerid), "UserDataLoad_%s", .bExtra true, .extra playerid);
            
SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
            
GivePlayerMoney(playerid,PlayerInfo[playerid][Novac]);
            
SetSpawnInfo(playerid01151128.8499,-1488.7222,22.76900000000);
            
SpawnPlayer(playerid);
        } else{
               
format(iStr,sizeof(iStr),"Netocna lozinka - pokusajte ponovno. Preostalo pokusaja: %i / 3"/*\nMolimo vas upisite vasu lozinku ispod.\nUgodnu igru na serveru zeli vam Marko."*/,gTries);
             
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"MARKO GAMEMODE - LOGIRANJE",iStr,"Login","Izlaz");
            
gTries gTries 1;
            
format(iStrsizeof(iStr), "%d"gTries);
            
SCM(playerid, -1iStr);
             
//return 1;
   
}
}
    return 
1;

As you can see, I tried a lot of debugging, but just keep what you want.
And here's the 1st dialog when trying to login:
PHP Code:
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"MARKO GAMEMODE - LOGIRANJE","Molimo vas unesite vasu lozinku ispod.\nUgodnu igru na serveru zeli vam Marko.","Login","Izlaz"); 
Reply
#2

You see that gTries is just a local variable?
You create it everytime again. You have to declare it globally for every player.
So you can put it in your player array/enum if you have one or you can simply do:
new gTries[MAX_PLAYERS];
And when you connect to the server gTries[playerid] will be set to 1.
And if you typed in a wrong password just "gTries[playerid]++;"
Reply
#3

Quote:
Originally Posted by SoLetsGO
View Post
You see that gTries is just a local variable?
You create it everytime again. You have to declare it globally for every player.
So you can put it in your player array/enum if you have one or you can simply do:
new gTries[MAX_PLAYERS];
And when you connect to the server gTries[playerid] will be set to 1.
And if you typed in a wrong password just "gTries[playerid]++;"
Thank you very much, the thing was, that it wasn't saving it, but rather resetting it to 1 every time you put in a wrong password...

Anyways thanks!
Reply
#4

You're welcome.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)