Salut, am creat o functie prin care sa updatez in baza de date mysql profilul unui jucator dupa ce acesta sufera modificari (ex: bani, level, etc.).
Problema sta in felul urmator: daca imi dau mie bani,level, sau orice alt ceva si apeleaza functia de updatare, totul bine si frumos, dar daca eu ca admin fac acelasi lucru altui jucator, acestuia nu i se updateaza.
Codul pentru functia respectiva:
stock Database_Update(playerid,adminnume[])
{
new query[255],Float:pos[4],nume[128];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
GetPlayerFacingAngle(playerid, pos[3]);
GetPlayerName(playerid,nume,sizeof(nume));
if(mysql_errno() == 0)
{
new rows,fields,string[255];
mysql_format(mysql, string, sizeof(string), "SELECT * FROM `accounts` WHERE `Name` = '%s'", nume);
mysql_query(mysql, string);
cache_get_data(rows,fields);
Player[playerid][ID] = cache_get_field_content_int(0, "ID");
new testare[255];
format(testare,sizeof(testare),"Jucatorul %s[%d] cu ID = %d a primit de la Adminul %s",nume,playerid,Player[playerid][ID],adminnume);
SendClientMessage(playerid, -1, testare);
mysql_format(mysql, query, sizeof(query), "UPDATE `accounts` SET `Admin`= %d, `VIP`= %d, `Level`= %d, `RP`= %d, `Money` = %d, `PosX` = %f, `PosY` = %f, `PosZ` = %f, `PosA` = %f WHERE `ID` = '%d' ",
Player[playerid][Admin],
Player[playerid][VIP],
Player[playerid][Level],
Player[playerid][RP],
Player[playerid][Money],
pos[0], pos[1], pos[2], pos[3],
Player[playerid][ID]);
mysql_tquery(mysql,query);
SendClientMessage(playerid, -1, "A fost updatata baza de date");
}
else
{
SendClientMessage(playerid,-1 ,"Conectarea la baza de date nu a reusit");
return 1;
}
// new mesaj[255];
/*format(mesaj, sizeof(mesaj), "%s : Admin = %i , VIP = %i, Level = %i, RP = %i, Money = %i, PosX = %f, PosY = %f, PosZ = %f, PosA = %f", nume, Player[playerid][Admin], Player[playerid][VIP], Player[playerid][Level], Player[playerid][RP], Player[playerid][Money], pos[0], pos[1], pos[2], pos[3]);
SendClientMessage(playerid, -1, mesaj);*/
return 1;
}
cand apelez functia arata asa:
Database_Update(numeid, numeadmin);
numeid si numeadmin sunt corecte, deoarece am pus o afisare in acea functie si afiseaza ce trebuie (numeid e id-ul din joc de pe TAB al jucatorului caruia i se atribuie modificari, iar numeadmin e un string cu numele adminului ce a facut modificarea - asta e doar de forma)
Folosesc MYSQL-R39-4 pentru windows.
Acelei variabile mysql de apare la mysql_tquery si mysql_format i-am dat valoare in OnGameModeInit.
mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);