-
Posts
2.202 -
Joined
-
Last visited
-
Days Won
125
Content Type
Profiles
Forums
News
Documentation
Everything posted by WopsS
-
Inlocuieste verificarea (if) if(mysql_retrieve_row ())cu acest cat timp (while) while(mysql_retrieve_row ())Tu acolo verificai doar daca exista rezultat si il luat doar pe primul aparut in interogare, asa cu acest cat timp (while) le iei pe toate. P.S: Dupa ce iese din acel cat timp executa si http://wiki.sa-mp.com/wiki/MySQL#mysql_free_result sa eliberezi rezultatele.
-
In acest pentru (for) for(new i = 0; i < sizeof(BizzInfo); i++)ai verificarea asta if(PlayerInfo[playerid][pPbiskey] != i)cand ajunge la verificarea asta n-o sa ii ia banii jucatorului daca el este proprietarul! Daca vrei sa ii ia banii si proprietarului, atunci comenteaza-o. (Adica pune // in fata ei)
-
Nu inteleg ce vrei sa zici. Eu ti-am dat verificare care o face atunci cand vrea sa ii ia banii jucatorului, de asta nu ii ia banii si proprietarului. (Este de la tine din gamemode nu am facut-o eu) Daca vrei sa ii ia banii si lui comenteaza acea verificare de ti-am dat-o.
-
Se poate inchide?
-
Vad ca aici tu ii iei banii doar daca nu e proprietarul afacerii. if(PlayerInfo[playerid][pPbiskey] != i) // Aici ai functia ca sa-i iei banii
-
Astea sunt deja alte probleme. Te rog sa faci un subiect nou pentru ele.
-
Am zis sa stergi acel +100 nu totata atribuirea... Asa trebuia sa arate PlayerInfo[playerid][pPbiskey] = b;
-
Uite, de aici for(new b = 0; b < sizeof(BizzInfo); b++)sterge acel +100 PlayerInfo[playerid][pPbiskey] = b+100;Si la comanda /bizzfee, de aici BizzInfo[bouse - 100][bEntranceCost] = strval(tmp);sterge acel - 100
-
Arata-mi comanda /buybiz si cealalalta cu care cumperi sbiz-urile.
-
Vad ca acolo se intra pe prima verificare, pentru ca tu ai ID-ul afacerii mai mare decat 100. sbiz-urile ce ID au in joc? (la /stats ma refer)
-
A, m-am prins. Fii atent. La SBizz tu scazi ID-ul din joc cu 100 (SBizzInfo[bouse-100][sbEntranceCost] = strval(tmp);). Asa ca m-am uitat la eroarea ta care ti-o dade acu ID-ul mai mare si am vazut ID-ul 106 am verificat log-urile pe care le-ai dat si am vazut ca ai afacerea cu ID-ul 6 asa ca, in comanda /bizfee modifica BizzInfo[bouse][bEntranceCost] = strval(tmp);in BizzInfo[bouse - 100][bEntranceCost] = strval(tmp); // Scazi 100 din ID-ul afacerii si ajungi la ID-ul 6.
-
Sterge format(query,sizeof(query),"UPDATE `bizz` SET `ePrice`='%s' WHERE `ID` = '%i'",BizzInfo[bouse][bEntranceCost], bouse); mysql_query(query);de acolo.
-
Fii atent, mai jos ai functia explicata. public OnPropUpdate() { new File: file2; new string[256 * 10]; new idx; new index = 0; new query[256]; format(query, sizeof(query), "SELECT * FROM `sbizz` ORDER BY `ID`"); mysql_query(query); mysql_store_result(); idx = 0; while (mysql_retrieve_row()) { index++; idx = index - 1; format(string, sizeof(string), "UPDATE `sbizz` SET `Owned` = %d, `Owner` = '%s', `Message` = '%s', `Extortion` = '%s', EntX = %f, EntY = %f, EntZ = %f, ExitX = %f, ExitY = %f, ExitZ = %f, Level = %d, Price = %d, EPrice = %d, Till = %d, Locked = %d, Interior = %d, Products = %d, MaxProducts = %d, ProductPrice = %d WHERE ID = %d", SBizzInfo[idx][sbOwned], SBizzInfo[idx][sbOwner], SBizzInfo[idx][sbMessage], SBizzInfo[idx][sbExtortion], SBizzInfo[idx][sbEntranceX], SBizzInfo[idx][sbEntranceY], SBizzInfo[idx][sbEntranceZ], SBizzInfo[idx][sbExitX], SBizzInfo[idx][sbExitY], SBizzInfo[idx][sbExitZ], SBizzInfo[idx][sbLevelNeeded], SBizzInfo[idx][sbBuyPrice], SBizzInfo[idx][sbEntranceCost], SBizzInfo[idx][sbTill], SBizzInfo[idx][sbLocked], SBizzInfo[idx][sbInterior], SBizzInfo[idx][sbProducts], SBizzInfo[idx][sbMaxProducts], SBizzInfo[idx][sbPriceProd], idx); mysql_query(string); } mysql_free_result(); format(query, sizeof(query), "SELECT * FROM `bizz` ORDER BY `ID`"); // Selectezi din tabelul "bizz". Tu inainte nu faceai asta. mysql_query(query); // Executi interogarea de mai sus. mysql_store_result(); // Pastrezi datele despre interogare. idx = 0; index = 0; while (mysql_retrieve_row()) // Incepi si mergi prin toate rezultatele interogarii. { index++; idx = index - 1; format(string, sizeof(string), "UPDATE `bizz` SET `Owned` = %d, `Owner` = '%s', `Message` = '%s', `Extortion` = '%s', EntX = %f, EntY = %f, EntZ = %f,ExitX = %f, ExitY = %f, ExitZ = %f, Level = %d, Price = %d, EPrice = %d, Till = %d, Locked = %d, Interior = %d, Products = %d, MaxProducts = %d, ProductPrice = %d WHERE ID = %d", BizzInfo[idx][bOwned], BizzInfo[idx][bOwner], BizzInfo[idx][bMessage], BizzInfo[idx][bExtortion], BizzInfo[idx][bEntranceX], BizzInfo[idx][bEntranceY], BizzInfo[idx][bEntranceZ], BizzInfo[idx][bExitX], BizzInfo[idx][bExitY], BizzInfo[idx][bExitZ], BizzInfo[idx][bLevelNeeded], BizzInfo[idx][bBuyPrice], BizzInfo[idx][bEntranceCost], BizzInfo[idx][bTill], BizzInfo[idx][bLocked], BizzInfo[idx][bInterior], BizzInfo[idx][bProducts], BizzInfo[idx][bMaxProducts], BizzInfo[idx][bPriceProd], idx); mysql_query(string); } mysql_free_result(); idx = 1; while (idx < sizeof(GangInfo)) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%d,%d\n", GangInfo[idx][gID],// GangInfo[idx][gFaction], GangInfo[idx][gHours]);// if (idx == 1) { file2 = fopen("Configs/gangzones.cfg", io_write); } else { file2 = fopen("Configs/gangzones.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); } idx = 2; while (idx < sizeof(Bank)) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%d\n", Bank[idx][bankID],// Bank[idx][bankHours]);// if (idx == 1) { file2 = fopen("Configs/bank.cfg", io_write); } else { file2 = fopen("Configs/bank.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); } return 1; }
-
Nu, ma refer la indicii de rand ai matricii, cum ii accesezi. De exemplu tu la inceput accesezi bine indicele, dar dupa la OnVehicleSpawn nu mai faci asta. Apropo, pleaca cu masinile de la 1, nu de la 0. Adica atunci cand incarci masinile din baza de date pune CarInfo[h + 1].
-
Pai de asta nu iti seteaza bine dupa ce le respawnezi. El preia alte date cu parametrul Key. Trebuie sa cauti ID-ul masinii respective in baza de date sau sa faci sa corespunda parametrul Key cu elementele vectorului.
-
Da-mi putin OnPropUpdate.
-
Poti sa vezi daca parametrul key de la OnVehicleSpawn are acelasi numar cu variabila h de la incarcarea masinilor? (Testeaza pentru aceeasi masina)
-
Stai doua secunde ca acum am inteles. Tu vrei sa actualizezi pretul pentru afaceri (bizz) nu sbizz, nu?
-
Modifica new BizzInfo[100][bInfo];in new BizzInfo[200][bInfo];Dar daca ai zis ca ai 24 de afaceri in baza de date, nu inteleg de ce tu depasesti limita cu ID-ul 106, nu stiu daca se va schimba sigur. Poti sa-mi arati putin si OnPropUpdate?
-
Tu de ce acolo ai variabila bouse care memoreaza o valoare mai mare decat 99? Sincer, nu stiu ce ai facut acolo ... Nu prea am cum sa te ajut. Doar ca problema este ca tu accesezi o valoare mai mare decat trebuie in vectorul tau.
-
Da acolo ma refer, poti sa-mi spui care este ID-ul ultimei afaceri in baza de date (bizz in cazul tau)?
-
I-ai numele cu GetPlayerName. GetPlayerName(playerid, PlayerInfo[playerid][pNormalName], sizeof(PlayerInfo[playerid][pNormalName]));
-
Nu stiu cum incarci tu afacerile, acolo accesezi un indice care nu exista in vectorul de afaceri.
-
Scoate format(query,sizeof(query),"UPDATE `bizz` SET `ePrice`='%s'",BizzInfo[bouse][bEntranceCost]); mysql_query(query);din acel else si pune-o in afara. Asta format(query,sizeof(query),"UPDATE `bizz` SET `ePrice`='%s'",BizzInfo[bouse][bEntranceCost]);inlocuieste-o cu format(query,sizeof(query),"UPDATE `bizz` SET `ePrice`='%s' WHERE `ID` = '%i'",BizzInfo[bouse][bEntranceCost], bouse);Pentru ca trebuie sa stii ce afacere vrei s-o actualizezi sa nu faci asta la toate.
-
Problema sistem de masini personal (creatie proprie)
WopsS replied to Alexander.'s question in Arhivă probleme
Astea sunt alte probleme, hai sa pastram acest subiect inchis. Te rog deshide un alt subiect pentru fiecare problema.
