PARTNERI:

* Marketing

-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Pomoć] Dialog nakon responsa ne nestaje  (Pročitano 70 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže 032.Marcus

  • Homeboy
  • *
  • Poruke: 371
Dialog nakon responsa ne nestaje
« poslato: Jul 10, 2019, 23:23:44 posle podne »
Problem(error/warning): Dialog ne nestaje nakon sto unesem korektnu lozinku, vec svaki put se iznova pojavi. Kao da je u nekoj beskonacnoj petlji. U kodu sam izdvojio gde koristim DIALOG_LOGIN, kao i deo samo za njega umesto da saljem ceo DialogResponse. Ukoliko zatreba jos nesto, javite da dostavim. Dugo me nije bilo na SAMPu, pa dok se podsetim stvari, a ovako neke stvari me izbace iz takta pa ne znam sta se desava :D

Deo skripte:
Pawno Code: [Izaberi]
public GetPlayerData(playerid)
{
new query[128], playername[MAX_PLAYER_NAME];

GetPlayerName(playerid, playername, sizeof(playername));
mysql_format(mysql, query, sizeof(query), "SELECT * FROM Players WHERE NAME = `%e` LIMIT 1", playername);
mysql_tquery(mysql, query, "LoadPlayerData", "i", playerid);

return 1;
}

public LoadPlayerData(playerid)
{
// Check if result has atleast one row, that means player has an account, show him dialog for login
if(cache_num_rows() > 0)
{
cache_get_value_name_int(0, "ID", PlayerInfo[playerid][ID]);
cache_get_value_name(0, "Password", PlayerInfo[playerid][Password], 65);
cache_get_value_name(0, "Salt", PlayerInfo[playerid][Salt], 11);
cache_get_value_name_int(0, "Sex", PlayerInfo[playerid][Sex]);
cache_get_value_name_int(0, "Age", PlayerInfo[playerid][Age]);
cache_get_value_name_int(0, "Country", PlayerInfo[playerid][Country]);
cache_get_value_name_int(0, "City", PlayerInfo[playerid][City]);
cache_get_value_name_float(0, "SpawnX", PlayerInfo[playerid][SpawnX]);
cache_get_value_name_float(0, "SpawnY", PlayerInfo[playerid][SpawnY]);
cache_get_value_name_float(0, "SpawnZ", PlayerInfo[playerid][SpawnZ]);

ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Vas nalog je pronadjen. Molimo Vas upisite lozinku da se prijavite", "Dalje", "Izlaz");
}
// Otherwise, player is not registered, show him dialog for registration
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registracija", "Vas nalog nije pronadjen. Molimo Vas upisite lozinku da se registrujete", "Dalje", "Izlaz");
}

return 1;
}

case DIALOG_LOGIN:
{
if(!response)
{
return Kick(playerid);
}
if(response)
{
new buffer[65], playername[MAX_PLAYER_NAME];

SHA256_PassHash(inputtext, PlayerInfo[playerid][Salt], buffer, 65);

if(strcmp(buffer, PlayerInfo[playerid][Password]) == 0)
{
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerData(playerid);
// If player didnt pick Sex, show him dialog
if(!PlayerInfo[playerid][Sex])
{
ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_LIST, "Registracija - Pol", "Musko\nZensko", "U redu", "Izadji");
}
// If player didnt pick Age, show him dialog
else if(!PlayerInfo[playerid][Age])
{
ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Registracija - Godine", "Unesite koliko imate godina", "U redu", "Izadji");
}
// If player didnt pick Country, show him dialog
else if(!PlayerInfo[playerid][Country])
{
ShowPlayerDialog(playerid, DIALOG_COUNTRY, DIALOG_STYLE_LIST, "Registracija - Drzava", "Srbija\nCrna Gora\nBosna i Hercegovina\nHrvatska\nMakedonija\nOstalo", "U redu", "Izadji");
}
// If player didnt picky City, show him dialog
else if(!PlayerInfo[playerid][City])
{
ShowPlayerDialog(playerid, DIALOG_CITY, DIALOG_STYLE_LIST, "Registracija - Grad", "Los Santos\nLas Venturas\nSan Fierro", "U redu", "Izadji");
}
// Otherwise, player is fully registered, spawn him
else
{
SetSpawnInfo(playerid, 0, 0, PlayerInfo[playerid][SpawnX], PlayerInfo[playerid][SpawnY], PlayerInfo[playerid][SpawnZ], 360.0, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Lozinka koju ste uneli nije ispravna, pokusajte ponovo", "Dalje", "Izlaz");
}
}
}


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

Slika/video ingame problema(obavezno ako je ingame problem): /
 

Van mreže Terza Lazarevic

Odg: Dialog nakon responsa ne nestaje
« Odgovor #1 poslato: Jul 10, 2019, 23:29:41 posle podne »
jel si probao debug da odradis ?
 

Van mreže 032.Marcus

  • Homeboy
  • *
  • Poruke: 371
Odg: Dialog nakon responsa ne nestaje
« Odgovor #2 poslato: Jul 10, 2019, 23:32:10 posle podne »
Probao sam stari nacin debagovanja, sa printfom. I bukvalno ispise sve kako treba. Sad ne znam koji jos nacini debagovanja imaju, a znacilo bi mi da znam jer imam malo vremena, a imam previse posla da skriptu doteram do vrhunca. Idem korak po korak, pa necu da prelazim dalje dok autentikacija iz aplikacije i iz igrice ne proradi kako treba

EDIT: Radilo je, i odjednom sam primetio da se nesto izbagovalo. Kako i sta, pojma nemam, satima ne mogu da provalim
 

Van mreže Terza Lazarevic

Odg: Dialog nakon responsa ne nestaje
« Odgovor #3 poslato: Jul 10, 2019, 23:45:49 posle podne »
printefaj pa posalji
 

Van mreže 032.Marcus

  • Homeboy
  • *
  • Poruke: 371
Odg: Dialog nakon responsa ne nestaje
« Odgovor #4 poslato: Jul 11, 2019, 07:35:22 pre podne »
Evo sad sam na svakom koraku pre poziva odradio, i ono sto je problem je sto se LoadPlayerData poziva non-stop
EDIT: Nasao sam gresku, pozivao sam GetPlayerData nakon sto unese ispravan password. Verovatno je imao razlog za to, a da ja nisam primetio da ce doci do petlje. Hvala svakako za pomoc, sad cu da vidim dalje :)
« Poslednja izmena: Jul 11, 2019, 07:44:07 pre podne 032.Marcus »
 

Van mreže Terza Lazarevic

Odg: Dialog nakon responsa ne nestaje
« Odgovor #5 poslato: Jul 11, 2019, 07:39:02 pre podne »
Koristi za ovo pquery i gde pozivas getplayerdata pogledaj
 

Van mreže 032.Marcus

  • Homeboy
  • *
  • Poruke: 371
Odg: Dialog nakon responsa ne nestaje
« Odgovor #6 poslato: Jul 11, 2019, 07:44:53 pre podne »
Pre nego sto zakljucam temu, to oko querya, koja je konkretno razlika?
 

Van mreže Terza Lazarevic

Odg: Dialog nakon responsa ne nestaje
« Odgovor #7 poslato: Jul 11, 2019, 10:05:44 pre podne »
tquery ide jedan pa drugi single thread tu mozes neki update table, a ovaj pquery ide sve u isto vreme i on se koristi za neke vece select upite kao sto je taj
 

Van mreže 032.Marcus

  • Homeboy
  • *
  • Poruke: 371
Odg: Dialog nakon responsa ne nestaje
« Odgovor #8 poslato: Jul 11, 2019, 20:04:17 posle podne »
Da ne otvaram novu temu za kratko pitanje, nesto se ovde izbagovalo dobro. Svaki put kad se registrujem, dva puta moram da unosim godine, jer prvi put ih ne upise u bazu. Bukvalno ne znam sta se desava, sta baguje ovoliko

https://imgur.com/a/j0gujN8

Znaci procita lepo iz inputa, odradi se upit. Onda kada se ulogujem, pise da je Age 0, pa ponovo moram sve, i tek onda upise

EDIT: Isao sam korak po korak, sve se lepo desi. Jedini problem koji vidim je da kao da skripta zuri tj. query se kasnije izvrsi, kao da mu treba vremena. Kada idem polako, sacekam par sekundi pa nastavim korak po korak, onda se sve izvrsi kako treba
« Poslednja izmena: Jul 11, 2019, 20:09:00 posle podne 032.Marcus »