[POMOC]Netačan password


Započeo V_More, Jul 20, 2013, 16:25:29 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Moj mod od 0
Detaljan opis problema: Pa ako neko pogreÅ¡i password da ga kickuje sa servera ali pre toga ispiÅ¡e poruku. Sada trenutno ako nema poklapanja sa unesenim imenom i passwordom onda ne uradi server niÅ¡ta nego samo skloni dialog i to je to, a kada izaÄ'em svi statsi se restartuju jer čuva podatke 0 jer nisu ubačeni iz baze podaci pravi jer nije unio tačan password i to mi stvara problem.
Dio skripte:
case DIALOG_LOGIN:
        {
            if (!response)
			{
			Kick (playerid);
			}
            if( response )
            {       
					mysql_format(connectionHandle, Query, "SELECT * FROM `users` WHERE `Ime i prezime` = '%e' AND Password = '%e'", GetName(playerid), inputtext);
					mysql_function_query(connectionHandle, Query, false, "LoginPlayer", "ds", playerid, inputtext);
					//kako ovde da stavim da provjeri ako nema podudaranja na liniji gde formiram query, ne ova iznad, već dve iznad ove, else nece.
                    {
                    SendClientMessage(playerid, -1, "{039EFF}MG:RP || {FFFFFF}Password koji ste unijeli nije tacan, kickovani ste!");
                    Kick(playerid);
					}
				}
			 	}
             

Neke slike/video za lakse dobivanje pomoci(neobavezno): //

Ako može samo što prije, hitno je.
Poslednja Izmena: Jul 20, 2013, 16:30:49 POSLE PODNE od V_More
Last nick: Vectro64

Izvinjavam se za double post:

Stavio sam sada ovako, ali sada i kada ukucam i tačan i netačan igrač može da uÄ'e na server, statistika se očita i sve:

        case DIALOG_LOGIN:
        {
            if (!response)
			{
			Kick (playerid);
			}
            if( response )
            {       
					mysql_format(connectionHandle, Query, "SELECT * FROM `users` WHERE `Ime i prezime` = '%e' AND Password = '%e'", GetName(playerid), inputtext);
					new result = mysql_function_query(connectionHandle, Query, false, "LoginPlayer", "ds", playerid, inputtext);
					
					if(result == 0)
                    {
                    SendClientMessage(playerid, -1, "{039EFF}MG:RP || {FFFFFF}Password koji ste unijeli nije tacan, kickovani ste!");
                    Kick(playerid);
					}
				}
			 	}
Last nick: Vectro64

Koju verziju mySQL plugina koristiš?

Last nick: Paradox

Hmm, gde da proverim, davno sam ga skinuo pa se ne sjećam ?
Last nick: Vectro64


mySQL R7 od BlueG, al' to sam skinuo kad je 0.3d bio jedino ako treba opet možda neki koji je za SAMP 0.3e prilagoÄ'en ?

edit: skinuo sam sad trenutni nije do toga.
Poslednja Izmena: Jul 22, 2013, 22:03:49 POSLE PODNE od V_More
Last nick: Vectro64

Već neko vrijeme nisam radio u mySQL, al' ako se ne varam da bi ovo trebalo radit.

case DIALOG_LOGIN:
{
	if (!response)
	{
		Kick (playerid);
	}
	if( response )
	{       
		mysql_format(connectionHandle, Query, "SELECT * FROM `users` WHERE `Ime i prezime` = '%e' AND Password = '%e'", GetName(playerid), inputtext);
		mysql_function_query(connectionHandle, Query, false, "LoginPlayer", "ds", playerid, inputtext);
	}
}
				
forward LoginPlayer(playerID, password[]);
public LoginPlayer(playerID, password[])
{
	mysql_store_result();
	
	if (mysql_num_rows() == 0)
	{
		SendClientMessage(playerid, -1, "{039EFF}MG:RP || {FFFFFF}Password koji ste unijeli nije tacan, kickovani ste!");
        Kick(playerid);
	}
	
	mysql_free_result();
	return 1;
}

Last nick: Paradox

Hvala Joey, tako sam bio uradio kad sam ovo vidio meÄ'utim opet se bila restatovala statistika igrača, to jest sve varijable u bazi za toga igrača jer ustvari očitavanje i stavljanje u Enume je bilo kad se igrač uloguje ako je tačan password, a onda sačuva te Enume, a poÅ¡to ih nije mogao učitati jer nije ulogovan sve su ostale nule prilikom sačuvavanja pa sam učitavanje premestio odmah prilikom pojavljivanja dialoga i sada to radi, no pojavila su se dva nova sitna problema ( sva sreća sitna ). To su da neće da ispiÅ¡e onu poruku ako se Å¡ifra pogreÅ¡i kao Kikovani ste jer ste pogreÅ¡li password... nego samo piÅ¡e Server closed to connection ono, a poruku ne ispiÅ¡e.

Dalje, kad se registrujem pojavilo se ono dole <<, >>, Spawn dugmad pa ne znam sad kako to da uklonim ...
Last nick: Vectro64

Za poruku poslije kicka: to je novo uvedeno u 0.3x verziji SA:MP-a i svaka poruka poslana neposredno prije Kick() funkcije neće bit poslana. Zato moraš napraviti jedan timer koji će se izvršiti recimo za 1 sekundu i u njoj kickat igrača, a u liniji prije pokretanja timera staviš da pošalje poruku igraču vezano uz kick.

Što se tiče spawn gumba i ostalog oko toga, moraš koristit TogglePlayerSpectating() u OnPlayerConnect callbacku, a da igrača odmah spawnaš koristi odmah poslije logina SpawnPlayer() funkciju.

Last nick: Paradox

Da radim sa SetTimer ili kako, jer ako radmi sa SetTimer onda će mi tražiti dole u funkciji ono playerid, a ne znam kako u funkciju da ga proslijedim ?

A to TogglePlayerSpectating() to ako pozovem u OnPlayerConnect callbacku i ako imam više dijaloga on će i nakon toga ostati ono bez te dugmadi ili ? A SpawnPlayer anravno to je već namešteno tako da u LoginPlayer() bude spawnan ako upiše tačan passwor što sada radi.
Last nick: Vectro64

Rešio sam ovo za dugmad, a za poruku ne, ovaj timer kako onda treba biti ?

SetTimer("kickujigraca(playerid)" ... ili SetTimer("kickujigraca[MAX_PLAYERS] .. ?
Last nick: Vectro64

Kao sto ti je Joey_ reko odradi da posalje poruku,pa onda timer da pozoves koji ce kick igraca za 1 sec.
Primer:
SetTimerEx("KickIgraca",1000,false,"i",playerid);


forward KickIgraca(playerid);
public KickIgraca(playerid)
{
        Kick(playerid);
	return 1;
}


http://wiki.sa-mp.com/wiki/SetTimerEx
Poslednja Izmena: Jul 24, 2013, 15:59:34 POSLE PODNE od caupton'S

Zahvaljujem, sve sam sredio :)

Možete mi samo reći kako da povećam onu distance da mi ono zgrade i svi objekti budu vidljivi sa veće udaljenosti ? :)
Last nick: Vectro64

Otvori streamer.inc i naÄ'i liniju:
native CreateDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0);


I promijeni ovo 200.0 na kraju na udaljenost koju ti želiš i to je to. Ili kod svake linije gdje koristiš CreateDynamicObject() funkciju, na kraju nje staviš: .streamdistance = 200.0
S time da ovo 200.0 promijeniš na svoju udaljenost.

Last nick: Paradox

Lakše mi je ovako na jednu liniju da promjenim nego na svaku pojedinačno, nego ovo će kočiti server nešto, usporavati ili nema nikakvih posljedica ako povećam ? :)
Last nick: Vectro64