LeetRomania
-
Posts
87 -
Joined
-
Last visited
Content Type
Profiles
Forums
News
Documentation
Posts posted by LeetRomania
-
-
Salut, as dori ca la ora 00:00 sa se salveze la fiecare player pe variabila un numar random.
Problema este ca daca folosesc ceva de genul:
new value = random(10);
la toti playerii se va salva numarul la fel pe variabila. Cum as putea face sa fie diferit la fiecare player variabila?
-
Rezolvat. Multumesc mult!
-
7 minutes ago, [RW]Robi said:
Pai ai folosit comanda /dsremove [model vehicul, ex 411?]
Nu are cum sa nu mearga.
Dai /dsremove 411
Si verifica daca se sterge din baza de date.
Da, ai dreptate. Dar cum pot face sa nu se stearga daca modelul nu exista?
-
Just now, [RW]Robi said:
schimba cu.
mysql_format(handle, queryString, sizeof(queryString), "DELETE FROM stock WHERE `Model` = '%d'", id);
Am facut si asa si nu merge..
-
Salut.
Am adaugat comanda:
CMD:dsremove(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(playerVariables[playerid][pAdminLevel] < 6) return S(playerid, -1, AdminOnly); new id, i, queryString[256], string[256]; if(sscanf(params, "i", id)) return S(playerid, COLOR_GREY, "Syntax: {FFFFFF}/dsremove [model]"); mysql_format(handle, queryString, sizeof(queryString), "DELETE FROM stock WHERE ID = '%d' ORDER BY ID = '%d' ASC LIMIT 1", id, id); mysql_tquery(handle, queryString, "", ""); format(string, sizeof(string), "{F0DF52}/dsremove: Owner %s removed car %d (%s) from the DS.", GetName(playerid), id, VehicleNames[id - 400]); submitToAdmins(string, -1); incarcarestock = 3; } return 1; }
si problema este ca nu se sterge masina din baza de date. Aveti idee de ce?
-
Multumesc mult baieti de ajutor!
Multumesc RWRobiBG pentru ajutor, m-a ajutat sa rezolv prin TW.
Topic closed va rog!
-
3 minutes ago, WopsS said:
Poti sa ne arati comanda?
Desigur:
CMD:dsprice(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(playerVariables[playerid][pAdminLevel] < 6) return S(playerid, -1, AdminOnly); new idm; new pret, id, sqlselect[300], eroare = 0, string[256]; if(sscanf(params, "ii", id, pret)) return S(playerid, COLOR_GREY, "Syntax: {FFFFFF}/dsprice [Mode masina (db)] [pret]"); mysql_format(handle, sqlselect, sizeof(sqlselect), "SELECT * FROM `stock` WHERE `Model`='%d'",id); new Cache: verificare = mysql_query(handle, sqlselect); eroare = cache_get_row_count(); if(eroare > 0) { for(new i = 0; i < eroare; i++) { idm = cache_get_field_content_int(i, "ID"); } } cache_delete(verificare); if(eroare < 1) return SendClientMessage(playerid, -1, "Nu exista acel model de vehicul in stock."); mysql_format(handle, sqlselect, sizeof(sqlselect), "UPDATE `stock` SET `Price`= '%d' WHERE `Model`= '%d'", pret, id); mysql_tquery(handle, sqlselect, "",""); format(string, sizeof(string), "{F0DF52}/dsprice: Owner %s changed data for %s | Price: $%s", GetName(playerid), GetVehicleModel(idm) - 400, NumberFormat(pret)); submitToAdmins(string, -1); IniStock(); } return 1; }
-
1 minute ago, WopsS said:
Arata-ne cum ai functia MySQLCheckCar sau vezi cum a facut @RWRobiBG.
Am facut cum a spus robi si a mers. Problema este ca nu se actualieaza si /buycar indiferent ca a pus IniStock();
-
3 minutes ago, DaEdRiC-FoX said:
foloseste mysql_pquery, in loc de mysql_tquery.
mysql_pquery daca pun asta spune ca nu e definit.
-
3 minutes ago, RWRobiBG said:
CMD:dsprice(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(playerVariables[playerid][pAdminLevel] < 6) return S(playerid, -1, AdminOnly); new pret,id,sqlselect[300],eroare = 0; if(sscanf(params, "ii", id,pret)) return S(playerid, COLOR_GREY, "Syntax: {FFFFFF}/dsprice [Mode masina (db)] [pret]"); mysql_format(handle, sqlselect, sizeof(sqlselect), "SELECT * FROM `stock` WHERE `Model`='%d'",id); new Cache: verificare = mysql_query(handle, sqlselect); eroare = cache_get_row_count(); cache_delete(verificare); if(eroare < 1) return SendClientMessage(playerid, -1, "Nu exista acel model de vehicul in stock."); mysql_format(handle, sqlselect, sizeof(sqlselect), "UPDATE `stock` SET `Price`= '%d' WHERE `ID`= '%d'", Stock[id][vPrice], id); mysql_tquery(handle, sqlselect, "",""); format(string, sizeof(string), "{F0DF52}/dsprice: Owner %s changed data for %s | Price: $%s", GetName(playerid), Stock[id][vName], NumberFormat(pret)); submitToAdmins(string, -1); IniStock(); } return 1; }
Ia vezi.
Daca dau /dsprice 560 1 si nu am masina in baza de date e ok primesc mesaj
Dar daca dau /dsprice 411 1 imi da server unknown command. Am masina in baza
-
1 minute ago, RWRobiBG said:
Merge facut si dupa model, vrei sa ti-l fac cu tot cu IniStock si tot?
Raman dator.. Mie unu tot nu imi iese cum ai facut tu comanda. De exemplu daca fac ca pretul sa fie mai mare si sa coboare mai jos nu se intampla decat dupa ce dau rr la server. Probabil e de la inistock.. Ajuta-ma si cu asta te rog.
-
2 minutes ago, RWRobiBG said:
Pai, trebuie sa pui IniStock() asa parca era, sa se incarce din nou.
Ar trebui sa pot sa modific dupa modelul masinii nu dupa ID-ul din baza de date.
Si unde pot IniStock(); ? In comanda?
-
3 minutes ago, RWRobiBG said:
CMD:dsprice(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(playerVariables[playerid][pAdminLevel] < 6) return S(playerid, -1, AdminOnly); new pret,id,sqlselect[300],eroare = 0; if(sscanf(params, "ii", id,pret)) return S(playerid, COLOR_GREY, "Syntax: {FFFFFF}/dsprice [id stock (db)] [pret]"); mysql_format(handle, sqlselect, sizeof(sqlselect), "SELECT * FROM `stock` WHERE `ID`='%d'",id); new Cache: verificare = mysql_query(handle, sqlselect); eroare = cache_get_row_count(); cache_delete(verificare); if(eroare < 1) return SendClientMessage(playerid, -1, "Nu exista acel vehicul in stock."); Stock[id][vPrice] = pret; mysql_format(handle, sqlselect, sizeof(sqlselect), "UPDATE `stock` SET `Price`= '%d' WHERE `ID`= '%d'", Stock[id][vPrice], id); mysql_tquery(handle, sqlselect, "",""); format(string, sizeof(string), "{F0DF52}/dsprice: Owner %s changed data for %s | Price: $%s", GetName(playerid), Stock[id][vName], NumberFormat(pret)); submitToAdmins(string, -1); } return 1; }
Da, este ok, se modifica pretul masinii, dar ordinea din /buycar nu. De ce?
-
2 minutes ago, RWRobiBG said:
Stai ca iti rescriu toata comanda.
Ok dude. Faza e ca nici nu se salveaza in baza de date daca e asa
-
3 minutes ago, RWRobiBG said:
Nu are cum, cred ca nu s-a compilat pentru ca am uitat sa pun idm++
schimba cu asta
CMD:dsprice(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(playerVariables[playerid][pAdminLevel] < 6) return S(playerid, -1, AdminOnly); new tableid, car[10], price, stockk, query[256], string[256]; if(sscanf(params, "s[10]di", car, price, stockk)) return S(playerid, COLOR_GREY, "Syntax: {FFFFFF}/dsprice [vehicleid] [price] [stock]"); tableid = MySQLCheckCar(car); if(tableid == 0) return S(playerid,COLOR_GREY,"Invalid car name."); for(new idm = 0; idm < MAX_DEALERSHIP_CARS; idm++) { if(strcmp(Stock[idm][vName],car,true) == 0) { Stock[idm][vStock] = stockk; Stock[idm][vPrice] = price; } } mysql_format(handle, query, sizeof(query), "UPDATE `stock` SET `Price`= '%d', `Stock`= '%d' WHERE `ID`= '%d'", Stock[tableid][vPrice], Stock[tableid][vStock], tableid); mysql_tquery(handle, query, "",""); format(string, sizeof(string), "{F0DF52}/dsprice: Owner %s changed data for %s | Price: $%s | Stock: %d", GetName(playerid), car, NumberFormat(price), stockk); submitToAdmins(string, -1); } return 1; }
Uite cum apare http://imgur.com/a/PhYwy
-
2 minutes ago, RWRobiBG said:
Cum adica iti da crash?
Nu mai pot face nimic pe server.. Nici o comanda nu poate fi folosita..
-
4 minutes ago, RWRobiBG said:
Nu iti seteaza cumva la a2-a masina?
Ia incearca asta:
CMD:dsprice(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(playerVariables[playerid][pAdminLevel] < 6) return S(playerid, -1, AdminOnly); new tableid, car[10], price, stockk, query[256], string[256]; if(sscanf(params, "s[10]di", car, price, stockk)) return S(playerid, COLOR_GREY, "Syntax: {FFFFFF}/dsprice [vehicleid] [price] [stock]"); tableid = MySQLCheckCar(car); if(tableid == 0) return S(playerid,COLOR_GREY,"Invalid car name."); for(new idm = 0; idm < MAX_DEALERSHIP_CARS; idm) { if(strcmp(Stock[idm][vName],car,true) == 0) { Stock[idm][vStock] = stockk; Stock[idm][vPrice] = price; } } mysql_format(handle, query, sizeof(query), "UPDATE `stock` SET `Price`= '%d', `Stock`= '%d' WHERE `ID`= '%d'", Stock[tableid][vPrice], Stock[tableid][vStock], tableid); mysql_tquery(handle, query, "",""); format(string, sizeof(string), "{F0DF52}/dsprice: Owner %s changed data for %s | Price: $%s | Stock: %d", GetName(playerid), car, NumberFormat(price), stockk); submitToAdmins(string, -1); } return 1; }
Mda, imi da crash..
-
5 minutes ago, RWRobiBG said:
Da-ne repede comanda sa ti-o rezolvam si pe aia, si sa inchidem acest subiect.
CMD:dsprice(playerid, params[]) { if(IsPlayerConnected(playerid)) { if(playerVariables[playerid][pAdminLevel] < 6) return S(playerid, -1, AdminOnly); new tableid, car[10], price, stockk, query[256], string[256]; if(sscanf(params, "s[10]di", car, price, stockk)) return S(playerid, COLOR_GREY, "Syntax: {FFFFFF}/dsprice [vehicleid] [price] [stock]"); tableid = MySQLCheckCar(car); if(tableid == 0) return S(playerid,COLOR_GREY,"Invalid car name."); Stock[tableid][vStock] = stockk; Stock[tableid][vPrice] = price; mysql_format(handle, query, sizeof(query), "UPDATE `stock` SET `Price`= '%d', `Stock`= '%d' WHERE `ID`= '%d'", Stock[tableid][vPrice], Stock[tableid][vStock], tableid); mysql_tquery(handle, query, "",""); format(string, sizeof(string), "{F0DF52}/dsprice: Owner %s changed data for %s | Price: $%s | Stock: %d", GetName(playerid), car, NumberFormat(price), stockk); submitToAdmins(string, -1); } return 1; }
-
56 minutes ago, RWRobiBG said:
P.S: In caz ca in baza de date id-ul nu incepe de la 0 ci de la 1, foloseste asta:
for ( new i = 1, j = cache_get_row_count ( ); i != j; i++) si schimba new x = i cu new x = i - 1;
Multumesc ca m-ai ajutat si tu tot daca ne-am cam certat. Ai si tu +1
O mica problema mai este. De ce cand editez pretul masinii din joc, pretul se updateaza in baza de date dar in /buycar nu?
-
8 minutes ago, WopsS said:
Ai dreptate.
@LeetRomania nu face asa, pentru ca o sa incepi cu a doua daca pui i = 1, fai mai bine cum faceai inainte si cu modificarile pe care ti le-am spus, doar ca atunci cand atribui valoare in Stock[...] pui Stock[i + 1][...] ca sa incepti de pe pozitia 1 in vector, presupun ca de asta zici tu ca o cumpara pe a doua, ca plecai cu index-ul vectorului de la 1 si sareai prima masina.
Am facut cum ai spus tu si apare corect in /buycar si toate astea. De la mine ai +1. Multumesc mult de ajutor.
O mica problema mai este. De ce cand editez pretul masinii din joc, pretul se updateaza in baza de date dar in /buycar nu?
-
2 minutes ago, RWRobiBG said:
Eu ma refeream ca nu e nici o diferenta daca folosesti ++i sau i++ intr-un loop.
Cum adica nu este nici o diferenta?
if(dialogid == DIALOG_CARBUY) { if(response) { if(listitem == 0) { new stringzz[2000], stringy[2000]; for(new xf = 0; xf < MAX_PERSONAL_CARS; xf++) { if(Stock[xf][vPrice] > 0 && Stock[xf][vPrice] <= 7000000) { format(stringy, sizeof(stringy), "%s ($%s)\n", Stock[xf][vName], NumberFormat(Stock[xf][vPrice])); strcat(stringzz,stringy); } } ShowPlayerDialog(playerid, DIALOG_CARBUY2, DIALOG_STYLE_LIST, "Buy a car", stringzz, "Select", "Back"); } } }
-
8 minutes ago, RWRobiBG said:
i++ si ++i e aceiasi chestie.
Ia pune toata comanda buycar aici
si dialogul de la buycar de la ondialogresponse.
http://stackoverflow.com/questions/24853/what-is-the-difference-between-i-and-i Documenteaza-te in legatura cu i++ si ++i.
-
22 minutes ago, WopsS said:
Ah, cred ca am inteles ce vrei sa zici. In loc de ++i pune i++ sa il incrementezi dupa ce il folosesti.
Am pus i++ in loc de ++i si este la fel.
Cand dau /buycar, selectez prima masina, se cumpara urmatoarea.
EDIT:
Am facut asa:
public IniStock()
{
new Cache: result1 = mysql_query (handle, "SELECT * FROM `stock` ORDER BY `Price`");
for ( new i = 1, j = cache_get_row_count ( ); i <= j; i++)
{
cache_get_field_content(i, "Stock", result); Stock[vStock] = strval(result);
cache_get_field_content(i, "Price", result); Stock[vPrice] = strval(result);
cache_get_field_content(i, "Model", result); Stock[vModel] = strval(result);
cache_get_field_content(i, "Speed", result); Stock[vSpeed] = strval(result);
cache_get_field_content(i, "Car", result); format(Stock[vName], 32, result);systemVariables[dsvehicle]++;
}
printf("[script] %d ds loaded.", systemVariables[dsvehicle]);
cache_delete(result1);
return 1;
}Si faza e ca acum merge corect doar ca sare peste a doua masina din baza de date mereu
-
1 hour ago, WopsS said:
In acea iteratie modifica new i in new i = 0 (doar ca sa fi sigur ca o sa fie 0). Dupa asta nu face Stock[x][...] pentru ca daca tu o sa ai un id lipsa in baza de date o sa-ti dea crash, de exemplu sa zicem ca ai urmatoarele id-uri 1, 2, 3, 6, 8, tu o sa incepti sa accesezi pozitiile 6 si 8, dar ele nu exista in vectorul tau, asa ca foloseste pozitia curenta din vector, adica i-ul.
Am modificat si arata cam asa:
public IniStock() { new Cache: result1 = mysql_query(handle, "SELECT * FROM `stock` ORDER BY `Price` ASC"); for ( new i = 0, j = cache_get_row_count ( ); i != j; ++i ) { cache_get_field_content(i, "ID", result); i = strval(result); cache_get_field_content(i, "Stock", result); Stock[i][vStock] = strval(result); cache_get_field_content(i, "Price", result); Stock[i][vPrice] = strval(result); cache_get_field_content(i, "Model", result); Stock[i][vModel] = strval(result); cache_get_field_content(i, "Speed", result); Stock[i][vSpeed] = strval(result); cache_get_field_content(i, "Car", result); format(Stock[i][vName], 32, result); systemVariables[dsvehicle]++; } printf("[script] %d ds loaded.", systemVariables[dsvehicle]); cache_delete(result1); return 1; }
Masinile s-au pus cum trebuie in /buycar doar ca nu le afiseaza pe toate.
De ex cand deschid consola apare: [script] 5 ds loaded cand eu defapt am 4 masini in baza de date.
Edit: am sters cache_get_field_content(i, "ID", result); i = strval(result); si acum apare corect in consola [script] 4 ds loaded doar ca daca dau click pe faggio selecteaza masina de mai jos.
Problema salvare variabila
in Arhivă probleme
Posted
Dar eu vreau sa fac si pentru playerii offline. Cum pot face asta?