GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Robi222 - 2014. április 23. - 19:51:50

Cím: MySQL Pénz,szint lementés hiba
Írta: Robi222 - 2014. április 23. - 19:51:50
Hali!
Már sikerült megoldanom a MySQL jelszót,szóval most egy másik gondom van,felmegyek szerverre regisztrálok lementi a nevet,jelszót és 0 pénzt illetve 0 scoret,viszont ha felmegyek és be jelentkezek akkor már 1 pontom van és 1 dollárom,valamit összekeverhet az ID-vel,de mi lehet a gond ?
Amikor csatlakozik a játékos:
 

public OnPlayerConnect(playerid)
{
//Login/Register
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),\"SELECT id FROM user WHERE username=\'%s\'\",name);
mysql_function_query(dbhandle,query,true,\"OnUserCheck\",\"i\",playerid);
return 1;
}

 
Adat mentés:
 

savePlayer(playerid)
{
if(sInfo[playerid][loggedin]==0) return 1;
//Pénz,szint mentés
new query[1024];
format(query,sizeof(query),\"UPDATE user SET level=\'%i\',money=\'%i\' WHERE id=\'%i\'\",sInfo[playerid][level],sInfo[playerid][penz],sInfo[playerid][id]);
mysql_function_query(dbhandle,query,false,\"\",\"\");
return 1;
}

 
Amikor bejelentkezik a játékos,azaz adatok lekérése:
 

public OnPasswordResponse(playerid) //Bejelentkezés
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
    //Jó jelszó
    sInfo[playerid][loggedin] = 1;
    sInfo[playerid][level] = cache_get_row(4,0,\"level\",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    sInfo[playerid][id] = cache_get_row(1,0,\"id\",dbhandle);
sInfo[playerid][penz] = cache_get_row(5,0,\"money\",dbhandle);
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
    //Rossz jelszó
    SendClientMessage(playerid,COLOR_RED,\"Rossz jelszó!\");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}

 
Elõre is köszi a segítséget!
[mod]Kitettem helyetted a PAWN Code Tageket![/mod]
Cím: MySQL Pénz,szint lementés hiba
Írta: Campe3r - 2014. április 23. - 22:06:43
Én nem találtam benne hibát, talán a SELECT-nél ne csak az id-t válaszd ki, hanem a mindent, azaz *-t
Cím: MySQL Pénz,szint lementés hiba
Írta: Robi222 - 2014. április 24. - 10:41:20
Nem mûködik így sem,közben rájöttem hogy az adat mentés se jó,mert regisztrációnál beállítok a játékosnak 1 Score -t (szintet),0 forint,eddig jó,de ha kilépek akkor a MySQL -be már  0 pénz és 0 level (azaz score) van ,a jelszó,név ,azt valamiért lementi.
Cím: MySQL Pénz,szint lementés hiba
Írta: Dfoglalo - 2014. április 24. - 18:21:26
[mod]Miért kell ezzel a problémával újabb témát nyitni? Nyugodtan írhattál volna ide is. Ezt zártam![/mod]
Cím: MySQL Pénz,szint lementés hiba
Írta: Robi222 - 2014. április 23. - 19:51:50
Hali!
Már sikerült megoldanom a MySQL jelszót,szóval most egy másik gondom van,felmegyek szerverre regisztrálok lementi a nevet,jelszót és 0 pénzt illetve 0 scoret,viszont ha felmegyek és be jelentkezek akkor már 1 pontom van és 1 dollárom,valamit összekeverhet az ID-vel,de mi lehet a gond ?
Amikor csatlakozik a játékos:
 

public OnPlayerConnect(playerid)
{
//Login/Register
new name[MAX_PLAYER_NAME],query[128];
GetPlayerName(playerid,name,sizeof(name));
format(query,sizeof(query),\"SELECT id FROM user WHERE username=\'%s\'\",name);
mysql_function_query(dbhandle,query,true,\"OnUserCheck\",\"i\",playerid);
return 1;
}

 
Adat mentés:
 

savePlayer(playerid)
{
if(sInfo[playerid][loggedin]==0) return 1;
//Pénz,szint mentés
new query[1024];
format(query,sizeof(query),\"UPDATE user SET level=\'%i\',money=\'%i\' WHERE id=\'%i\'\",sInfo[playerid][level],sInfo[playerid][penz],sInfo[playerid][id]);
mysql_function_query(dbhandle,query,false,\"\",\"\");
return 1;
}

 
Amikor bejelentkezik a játékos,azaz adatok lekérése:
 

public OnPasswordResponse(playerid) //Bejelentkezés
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
    //Jó jelszó
    sInfo[playerid][loggedin] = 1;
    sInfo[playerid][level] = cache_get_row(4,0,\"level\",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    sInfo[playerid][id] = cache_get_row(1,0,\"id\",dbhandle);
sInfo[playerid][penz] = cache_get_row(5,0,\"money\",dbhandle);
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
    //Rossz jelszó
    SendClientMessage(playerid,COLOR_RED,\"Rossz jelszó!\");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}

 
Elõre is köszi a segítséget!
[mod]Kitettem helyetted a PAWN Code Tageket![/mod]
Cím: MySQL Pénz,szint lementés hiba
Írta: Campe3r - 2014. április 23. - 22:06:43
Én nem találtam benne hibát, talán a SELECT-nél ne csak az id-t válaszd ki, hanem a mindent, azaz *-t
Cím: MySQL Pénz,szint lementés hiba
Írta: Robi222 - 2014. április 24. - 10:41:20
Nem mûködik így sem,közben rájöttem hogy az adat mentés se jó,mert regisztrációnál beállítok a játékosnak 1 Score -t (szintet),0 forint,eddig jó,de ha kilépek akkor a MySQL -be már  0 pénz és 0 level (azaz score) van ,a jelszó,név ,azt valamiért lementi.
Cím: MySQL Pénz,szint lementés hiba
Írta: Dfoglalo - 2014. április 24. - 18:21:26
[mod]Miért kell ezzel a problémával újabb témát nyitni? Nyugodtan írhattál volna ide is. Ezt zártam![/mod]