pomoc ?

Započeo Salke, Jul 11, 2021, 10:22:37 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): LoginPokusaji kako napraviti to
Pawno Code:  kako to napraviti
Dio skripte: [ pawn ]//[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]nepotrbeno[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): //
Poslednja Izmena: Jul 11, 2021, 20:56:15 POSLE PODNE od M Ө M Σ N Z I

E ovako, za tako nesto ti je potreban brojac :

new loginCount[MAX_PLAYERS];


Pravimo jednu globalnu promenljivu gde cemo da cuvano login pokusaje igraca.

Najbolje da je pri OnPlayerConnect resetujes na 0 :

public OnPlayerConnect(playerid) {

	loginCount[playerid] = 0; //Resetujemo je kada se igrac poveze na server

	return 1;
}


Sada u zavisnosti od toga sta koristis za proveru lozinke, uglavnom u dialog_login nadjes gde se proverava da li je igrac uneo pravu sifru. Ako jeste uneo, onda ga uloguje i spawna na server. Ako nije uneo pravu sifru, treba da povecas vrednost promenljive i opet izbacis dialog, to izgleda otprilike ovako :

new loginCount[MAX_PLAYERS]; //Deklarisemo novu promenljivu

public OnPlayerConnect(playerid) {

	loginCount[playerid] = 0; //Resetujemo je kada se igrac poveze na server

	return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {

	if(dialogid == dialog_LOGIN) { //Response za nas dialog Login

	    if(!response) return Kick( playerid ); //Ako izadje iz dialoga da ga kickuje
		if(response) {

			if(!strcmp(inputtext, PlayerInfo[playerid][xLozinka], false) && !isnull(inputtext)) {
				
				//Uloguje igraca zato sto je uneo pravu sifru
				return 1;
			}
			else { //Ako promasi lozinku
			    
				loginCount[playerid]++; //Povecamo promenljivu za 1
				if(loginCount[playerid] == 3) { // Ako je omasio 3 puta

					Kick(playerid); //Kick igraca
					return 1;
				}
				//Sada ovde samo opet prikazemo dialog za login i ako hoces mozes staviti broj pokusaja koje ima
			}
		}
		return 1;
	}

	return 1;
}


Ovo ti je ceo kod, ako ti nesto nije jasno, ti reci