Jump to content

LeetRomania

Membru
  • Posts

    87
  • Joined

  • Last visited

Posts posted by LeetRomania

  1. 11 hours ago, [RW]Robi said:

    De exemplu folosesti la functia PayDay acest cod.

    
    new ora,minute,secunde;
    gettime(ora, minute, secunde);
    if(ora == 0)
    {
    	for(new i = 0; i < MAX_PLAYERS; i++)
    	{
    		if(IsPlayerConnected(i))
    		{
    			new value = random(10);
    			// value va fi diferit de alti jucatori, dar mai vor fi si cazuri in care variabila va fi egala cu a altor playeri, dar daca maresti randomul gen random(10000) nu prea sunt sanse sa fie la fel cu a altor jucatorii.
    		}
    	}
    }

     

    Dar eu vreau sa fac si pentru playerii offline. Cum pot face asta?

  2. 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?

  3. 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?

  4. 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? 

  5. 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;
    }

     

  6. 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 :| 

  7. 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.

  8. 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? 

  9. 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

  10. 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..

  11. 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;
    }

     

  12. 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?

     

     

  13. 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?

  14. 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");
    			}
            }
    } 

     

  15. 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 :| 

  16. 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.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.