Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: 1337 poslato Januar 28, 2018, 22:06:17 POSLE PODNE

Naslov: Login Bug
Poruka od: 1337 poslato Januar 28, 2018, 22:06:17 POSLE PODNE
Detaljan opis problema:Jednostavno kad se neko loguje,ako ukuca pogresnu lozinku otvorit ce mu da je lozinka pogresna.A ako klikne samo enter prodje dalje bez problema,tj. samo se uloguje.
Dio skripte: if(Svasta[playerid][loginpokusaji] == 0)
{
                    Svasta[playerid][loginpokusaji]++;
                    new stringb[512];
    format(stringb, sizeof(stringb), ""COL_AGRP"Dobrodosli nazad "COL_BIJELA"%s, "COL_AGRP"na "COL_BIJELA"Arena Gaming RolePlay "COL_AGRP"server.\nU prazni prostor ispod unesite vasu lozinku:\nImate jos "COL_BIJELA"3 "COL_AGRP"pokusaja", GetName(playerid));
SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""COL_BIJELA"Login", stringb, "Login", "Kick");
}
else if(Svasta[playerid][loginpokusaji] == 1)
{
                    Svasta[playerid][loginpokusaji]++;
                    new stringb[512];
    format(stringb, sizeof(stringb), ""COL_AGRP"Dobrodosli nazad "COL_BIJELA"%s, "COL_AGRP"na "COL_BIJELA"Arena Gaming RolePlay "COL_AGRP"server.\nU prazni prostor ispod unesite vasu lozinku:\nImate jos "COL_BIJELA"2 "COL_AGRP"pokusaja", GetName(playerid));
SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""COL_BIJELA"Login", stringb, "Login", "Kick");
}
else if(Svasta[playerid][loginpokusaji] == 2)
{
                    Svasta[playerid][loginpokusaji]++;
                    new stringb[512];
    format(stringb, sizeof(stringb), ""COL_AGRP"Dobrodosli nazad "COL_BIJELA"%s, "COL_AGRP"na "COL_BIJELA"Arena Gaming RolePlay "COL_AGRP"server.\nU prazni prostor ispod unesite vasu lozinku:\nImate jos "COL_BIJELA"1 "COL_AGRP"pokusaj", GetName(playerid));
SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""COL_BIJELA"Login", stringb, "Login", "Kick");
}
else if(Svasta[playerid][loginpokusaji] == 3)
{
                    Svasta[playerid][loginpokusaji] = 0;
apac_Kick(playerid, "AngelAC: Pogrijesili ste 3 puta lozinku. Kick.");
}
}
}
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):
Naslov: Odg: Login Bug
Poruka od: Paul Castellano poslato Januar 28, 2018, 23:11:04 POSLE PODNE
Nije mi baš najjasnije..
Ako ukuca jednom i bude mu pogrešna moći će dalje? Ili nakon 3 puta?Ako je nakon 3 puta postavi nam funkciju
apac_Kick
Naslov: Odg: Login Bug
Poruka od: 1337 poslato Januar 28, 2018, 23:29:20 POSLE PODNE
Jednostavno,ako ukucas lozinku koja nije tacna npr. trenutna lozinka je 123 ti ukucas 1234,otvorit ce ti da je pogresna lozinka.A kad se ovako ulogujes samo kliknes enter i udjes bez da ti otvori da je lozinka netacna ili sl.
Naslov: Odg: Login Bug
Poruka od: 1337 poslato Januar 28, 2018, 23:31:26 POSLE PODNE
Definiro sam neke funkcije,pa vidi da li valja ili treba jos nesto.
stock apac_Kick(playerid, razlog[])
{
SetTimerEx("KickTimer", 300, false, "d", playerid);
SendClientMessage(playerid, COLOR_APRP, razlog);
return 1;
}

if(dialogid == DIALOG_LOGIN)
{
    if(!response) return apac_Kick(playerid, "AngelAC: "COL_BIJELA"Prekinuli ste login. Kick.");
if(response)
{
    if(!strcmp(inputtext, PlayerInfo[playerid][pLozinka], false))
Naslov: Odg: Login Bug
Poruka od: Paul Castellano poslato Januar 28, 2018, 23:36:02 POSLE PODNE
Još mi ovo daj

KickTimer
Naslov: Odg: Login Bug
Poruka od: 1337 poslato Januar 28, 2018, 23:38:34 POSLE PODNE
stock apac_Kick(playerid, razlog[])
{
SetTimerEx("KickTimer", 300, false, "d", playerid);
SendClientMessage(playerid, COLOR_APRP, razlog);
return 1;
}

forward KickTimer(playerid);
public KickTimer(playerid)
{
if(fexist(UserPath(playerid)))
{
SacuvajIgraca(playerid);
Kick(playerid);
}
else if(!fexist(UserPath(playerid)))
{
Kick(playerid);
}
return 1;
}
Naslov: Odg: Login Bug
Poruka od: lucius poslato Januar 29, 2018, 01:29:08 PRE PODNE
Jasno pise na wikiju http://wiki.sa-mp.com/wiki/Strcmp
This function returns 0 if either string is empty. Check for null strings with isnull(). If you do not, for example, people can login to anyone's account by simply entering a blank password.
[pawn]// Check for null strings with isnull()
if(!strcmp(string1, string2) && !isnull(string1) && !isnull(string2))

// Definition for isnull():
#if !defined isnull
    #define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif[/pawn]
Naslov: Odg: Login Bug
Poruka od: .бутиган poslato Januar 29, 2018, 10:36:54 PRE PODNE
jednostavno koristi strlen za duzinu user input
Naslov: Odg: Login Bug
Poruka od: Terza Lazarevic poslato Januar 29, 2018, 10:55:36 PRE PODNE
Citat: Butigan.MySql poslato Januar 29, 2018, 10:36:54 PRE PODNE
jednostavno koristi strlen za duzinu user input
Zasto ne bi koristio u if-u !isnull(inputtext)?