Jump to content

[Tutorial] Verficari suplimentare de securitate


MeNyX

Recommended Posts

Rolul acestor verificari este de a securiza mai bine conturile persoanelor importante (admini, helperi, lideri, etc) ...

 

Cum functioneaza? 
Simplu, cand persoana va intra pe server, ii va aparea un dialog in care va trebui sa introduca o parola suplimentara

 

I. Inceputul - declararea variabilei

Verificarea o putem facem o singura data sau de mai multe ori (de fiecare data cand primeste respawn, este enervant, si nu recomand).

Mergem la inceput si declaram:

new bool:SecurityAnswer[MAX_PLAYERS];

*bool este o variabila care nu stocheaza decat 2 tipuri de date, adevarate (=true) sau false (=false).

Dupa aceea ne ducem la public OnPlayerConnect(playerid) si adaugam:

SecurityAnswer[playerid]=false;

pentru a seta variabila SecurityAnswer falsa la fiecare jucator nou ce se conecteaza!

II. Introducerea verificarii

Eu am ales sa verific daca a raspuns la intrebare atunci cand se spawneaza, iar prima oara cand se spawneaza, este chiar cand trece de OnPlayerLogin.

public OnPlayerSpawn(playerid)
{
	if(PlayerData[playerid][pAdmin] >= 1)
  	{
		if(!SecurityAnswer[playerid])
		{
  	    	ShowPlayerDialog(playerid, 6969, DIALOG_STYLE_INPUT, "Security Check", "Please type your phone number", "OK", "DEAD");
		}
	}
	return 1;
}

PlayerData[playerid][pAdmin] -poate fi inlocuita cu PlayerData[playerid][pHelper], PlayerData[playerid][pLeader] si asa mai departe ... (!S-ar putea ca voi sa aveti PayerInfo)
!SecurityAnswer[playerid] - Daca variabila declarata la pasul 1 este falsa, atunci se executa codul de mai jos
6969 - reprezinta ID-ul dialogului (poate fi inlocuit)
DIALOG_STYLE_INPUT - reprezinta stilul dialogului (aici gasiti mai multe stiluri)
*DIALOG_STYLE_INPUT poate fi inlocuit cu DIALOG_STYLE_PASSWORD pentru a nu mai fi vizibile caracterele tastate
Security Check - reprezinta titlul de sus
Please type your phone number - un mesaj oarecare pentru a deruta micul hacker
OK - butonul de confirmare a dialogului (echivalent cu apasare tastei ENTER)
DEAD - butonul de anualre a dialogului (echivalent cu apasare tastei ESC)

III. Configurarea dialogului

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{	
	if(dialogid == 6969)
	{
		if(!response)
		{
		    //Puteti sa ii dati kick/ban/injurati tot ce doriti ->> in caz ca inchide dialogul
			return 1;
		}
		else
		{
		    new inputpass[64];
		    format(inputpass, sizeof(inputpass), "parola-cu-valoare-2");
    		if(strcmp(inputtext, inputpass, true) == 0)
			{
			    //Un mesaj de confirmare
			    SecurityAnswer[playerid] = true;
			}
			else
			{
        		//Puteti sa ii dati kick/ban/injurati tot ce doriti ->> in caz ca raspunde gresit - se poate intampla
			}
		}
	}
	return 1;
}

6969 - reprezinta ID-ul dialogului de la pasul II
if(!response) - daca acesta nu raspunde la dialog (apasa ESC sau pe butonul "DEAD")
inputpass[64] - reprezinta o variabila care stocheaza parola noastra.
inputtext[64] - reprezinta o variabila care stocheaza parola introdusa de jucator
parola-cu-valoare-2 - reprezinta parola definita de scripter
if(strcmp(inputtext, inputpass, true) == 0) - verifica daca intre parole nu exista diferente
SecurityAnswer[playerid] = true; - seteaza variabila de la pasul I pe true, pentru a nu mai raspunde de mai multe ori

  • Upvote 1

Y!M: menyx.official

Skype: menyx.official

 

 

Inainte de a critica o persoana indiferent de etnie/varsta/inteligenta ei uita-te la tine si nu uita ca toti suntem Oameni si ca nu are sens sa incerci sa pari diferit!Daca esti mai prost/destept decat cel scos/aflat in discutie incearca sa nu faci pe "MR. Inteligent" TACI si FACI!

Respecta membrii acestei comunitati daca ai pretentia sa fi respectat si tratat(a) ca pe o fiinta umana!

 

Nu fac nimic remarcabil, dar ceea ce fac este esenţial.•

 

Link to comment
Share on other sites

  • 6 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.