Szerző Téma: MySQL Pénz,szint lementés hiba  (Megtekintve 727 alkalommal)

MySQL Pénz,szint lementés hiba
« Dátum: 2014. április 23. - 19:51:50 »
0 Show voters
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]
« Utoljára szerkesztve: 2014. április 23. - 19:57:39 írta Dfoglalo »

MySQL Pénz,szint lementés hiba
« Válasz #1 Dátum: 2014. április 23. - 22:06:43 »
0 Show voters
É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

MySQL Pénz,szint lementés hiba
« Válasz #2 Dátum: 2014. április 24. - 10:41:20 »
0 Show voters
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.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
MySQL Pénz,szint lementés hiba
« Válasz #3 Dátum: 2014. április 24. - 18:21:26 »
0 Show voters
[mod]Miért kell ezzel a problémával újabb témát nyitni? Nyugodtan írhattál volna ide is. Ezt zártam![/mod]

MySQL Pénz,szint lementés hiba
« Válasz #4 Dátum: 2014. április 23. - 19:51:50 »
0 Show voters
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]
« Utoljára szerkesztve: 2014. április 23. - 19:57:39 írta Dfoglalo »

MySQL Pénz,szint lementés hiba
« Válasz #5 Dátum: 2014. április 23. - 22:06:43 »
0 Show voters
É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

MySQL Pénz,szint lementés hiba
« Válasz #6 Dátum: 2014. április 24. - 10:41:20 »
0 Show voters
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.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
MySQL Pénz,szint lementés hiba
« Válasz #7 Dátum: 2014. április 24. - 18:21:26 »
0 Show voters
[mod]Miért kell ezzel a problémával újabb témát nyitni? Nyugodtan írhattál volna ide is. Ezt zártam![/mod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal