Reg/Log System


Započeo Aziz_Jesus, Septembar 06, 2020, 17:34:21 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Login i Register rade, ali ima problem kad se loginuje da ako samo stisnes enter prijavis se na akaunt.
Deo skripte:
(strfind(inputtext, "%", true) != -1)
    {
		SendErrorMessage(playerid, "Ne smete koristiti taj znak u dialogu.");
        return 1;
    }
	if(dialogid == DIALOG_REGISTER)
	{
		if(!response) m_Kick(playerid, "Register dialog zatvoren.");
		else
		{
		    new banfile[40];
			format(banfile, sizeof(banfile), BAN_FILE, GetName(playerid));
			if(fexist(banfile))
			{
			    m_Kick(playerid, "Banovan.");
			}
			else
			{
			    if(strlen(inputtext) < 5 || strlen(inputtext) > 12)
			    {
			        SendErrorMessage(playerid, "Morate upisati izmeðu 5 i 12 karaktera.");
			        SPD(playerid, DIALOG_REGISTER, DSI, D_NASLOV, "{FFFFFF}Upišite lozinku koju želite da koristite na našem serveru:", D_POTVRDI, D_ZATVORI);
			        return 1;
			    }
			    new INI:File = INI_Open(UserFiles(playerid));
	  	        INI_SetTag(File, "data");
		    	strmid(PlayerInfo[playerid][pLozinka], inputtext, 0, strlen(inputtext), 255);
				INI_WriteInt(File, "Admin", 0);
				INI_WriteInt(File, "Lider", 0);
				INI_WriteInt(File, "Clan", 0);
				INI_WriteInt(File, "Skin", 59);
				INI_WriteInt(File, "SatiIgre", 0);
				INI_WriteInt(File, "Warn", 0);
				INI_WriteInt(File, "Mute", 0);
				INI_WriteInt(File, "Kills", 0);
				INI_WriteInt(File, "Deaths", 0);
				INI_WriteInt(File, "Boja", 0);
				INI_WriteInt(File, "DuelKills", 0);
				INI_WriteInt(File, "DuelDeaths", 0);
				INI_WriteInt(File, "Zatvor", 0);
				INI_WriteInt(File, "ZatvorenVreme", 0);
				INI_WriteBool(File, "Registered", true);
				INI_Close(File);
				SacuvajAccount(playerid);
				UlogujIgraca(playerid);
			}
		}
	}
	// -- //
	else if(dialogid == DIALOG_LOGIN)
	{
	    if(!response) m_Kick(playerid, "Login dialog zatvoren.");
	    else
	    {
			new banfile[40];
			format(banfile, sizeof(banfile), BAN_FILE, GetName(playerid));
			if(fexist(banfile))
			{
			    m_Kick(playerid, "Banovan.");
			}
			else
			{
  			if(!strcmp(inputtext, PlayerInfo[playerid][pLozinka], false))
		        {
		            ClearChatBox(playerid, 20);
					UlogujIgraca(playerid);
		        }
		        else
		        {
		            ClearChatBox(playerid, 20);
		            SPD(playerid, DIALOG_LOGIN, DSP, D_NASLOV, "{FFFFFF}Upišite vašu lozinku da se prijavite na server:", D_POTVRDI, D_ZATVORI);
		        }
			}
	    }
	}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerPos(playerid, 1728.7982,-1668.4337,22.6094);
    PlayerPlaySound(playerid, 1069, 0.0, 0.0, 0.0);
 	if(IsPlayerLogged[playerid] == false)
	{
		SetPlayerColor(playerid, 0xCCCCCCCC);
		ClearChatBox(playerid, 10);
	    if(fexist(UserFiles(playerid)))
        {
            INI_ParseFile(UserFiles(playerid), "UcitajAccount_%s", .bExtra = true, .extra = playerid);
        	if(PlayerInfo[playerid][pRegistered] == true) { SPD(playerid, DIALOG_LOGIN, DSP, D_NASLOV, "{FFFFFF}Upišite vašu lozinku da se prijavite na server:", D_POTVRDI, D_ZATVORI); }
        	else { SPD(playerid, DIALOG_REGISTER, DSI, D_NASLOV, "{FFFFFF}Upišite lozinku koju želite da koristite na našem serveru:", D_POTVRDI, D_ZATVORI); }
		}
		else { SPD(playerid, DIALOG_REGISTER, DSI, D_NASLOV, "{FFFFFF}Upišite lozinku koju želite da koristite na našem serveru:", D_POTVRDI, D_ZATVORI); }
	}
	else
	{
		SetSpawnInfo(playerid, 0,0, 1728.1906,-1668.1489,22.6219,43.5554, 0, 0, 0, 0, 0, 0);
		TogglePlayerControllable(playerid, 0);
		SpawnPlayer(playerid);
		SpawnujIgraca(playerid);
	}
	return 1;
}

FUNCTION: UlogujIgraca(playerid)
{
	if(PlayerInfo[playerid][pRegistered] == false) PlayerInfo[playerid][pRegistered] = true;
	IsPlayerLogged[playerid] = true;
    SetSpawnInfo(playerid, 0,0, 1728.7982,-1668.4337,22.6094,43.5554, 0, 0, 0, 0, 0, 0);
    SpawnujIgraca(playerid);
	SetCameraBehindPlayer(playerid);
	SpawnPlayer(playerid);
	return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):

Probaj postaviti uslov za duzinu lozinke

Citat: Darkic poslato Septembar 06, 2020, 18:55:24 POSLE PODNE
Probaj postaviti uslov za duzinu lozinke
Pokusavao sam, ali onda moze uci tako sto ukuca bilo koju sifru...
else if(dialogid == DIALOG_LOGIN)
	{
	    if(!response) m_Kick(playerid, "Login dialog zatvoren.");
	    else
	    {
			new banfile[40];
			format(banfile, sizeof(banfile), BAN_FILE, GetName(playerid));
			if(fexist(banfile))
			{
			    m_Kick(playerid, "Banovan.");
			}
			else
			{
				if(!strcmp(inputtext, PlayerInfo[playerid][pLozinka], false))
   				{
      					ClearChatBox(playerid, 20);
						UlogujIgraca(playerid);
    			}
      			else
   				{
      					ClearChatBox(playerid, 20);
         				SPD(playerid, DIALOG_LOGIN, DSP, D_NASLOV, "{FFFFFF}Upišite vašu lozinku da se prijavite na server:", D_POTVRDI, D_ZATVORI);
				}
			}
	    }
	}


Citat: Sync poslato Septembar 06, 2020, 22:58:38 POSLE PODNE
Sjebo si nesto
Nemoj zajebavati puno si mu pomogao


@tema
Probaj da stavis ovo
printf("pLozinka = %s", PlayerInfo[playerid][pLozinka]);
printf("inputtext = %s", inputtext);

iznad
if(!strcmp...



Mislim da ti ne sacuva dobro ovo pLozinka

stavis proveru ako ima 0 simbola da mu ponovo prikaze dialog i to ti je to...
PAWN DEVELOPER - 2016

KAD JE NAJTEZE BUDI CVRST KAO CELIK
I SJAJI KAO NAJSKUPLJI DIJAMANT

VER MONT COMMUNITY

Kontakti:
FB: https://www.facebook.com/zmajko.youtube
IG: https://www.instagram.com/zmajkobrate

Promenio je isto moze preko entera da se udje

Kad dodam proveru, onda mozes bilo sta ukucati, ali ne mozes enterom uci... probao sam i sa udb hash ali onda ne mozes nikako uci :D
if( !strcmp( inputtext, PlayerInfo[ playerid ][ pLozinka ], false ) && !isnull( inputtext ) )

if(udb_hash(inputtext) == PlayerInfo[playerid][pLozinka])

Citat: Aziz_Jesus poslato Septembar 10, 2020, 22:07:00 POSLE PODNE
Kad dodam proveru, onda mozes bilo sta ukucati, ali ne mozes enterom uci... probao sam i sa udb hash ali onda ne mozes nikako uci :D
if( !strcmp( inputtext, PlayerInfo[ playerid ][ pLozinka ], false ) && !isnull( inputtext ) )

if(udb_hash(inputtext) == PlayerInfo[playerid][pLozinka])


Zato i sluzi provera , tebi ili ne cuva lozinku ili je ne cita iz file  :D




https://forum.sa-mp.com/showthread.php?t=273088

Pogledaj pa se zaigraj , Yini je 8)
Poslednja Izmena: Septembar 10, 2020, 23:14:24 POSLE PODNE od naithanwav
Citat: Galardo poslato Januar 01, 1970, 01:00:00 PRE PODNE
Ako mislis da radis mod od 0 i da uzimas tudje radove i samo krhnuti u mod i ocekivati da radi?
Ako mislis da ne mrdnes kurcem i da pravis "mod" od "0" sa tudjim radovima,molim te,pomozi nama i sebi,radi nesto drugo.
Tebi ovaj forum dodje kao "Ispuni mi zelju" pa da ti za svaki jebeni error/warning neko pomaze i da se jebe oko tebe,a kada ti nesto zatrazi ti mu neces biti u stanju poslati jer ne znas o cemu taj isti prica iako je to nesto osnovno sto bi trebao da znas. Hvala i dovidjenja