Jump to content

YashinTSA

Membru
  • Posts

    4
  • Joined

  • Last visited

Posts posted by YashinTSA

  1. 12 hours ago, shane said:

    Salut @r0hanescu,

    Problema e ca tu nu ai setat o valoare pentru variabila "cash", deci aceasta este default, adică 0. Exemplu:

    
    new cash = 50000; // valoarea e acum 50000
    P_Data[playerid][pCash] += cash; aici adaugi 50000 la suma curenta.

    Sau poti trece direct 50.000 în pCash fara sa mai creezi variabila respectiva. Ex: 

    
    P_Data[playerid][pCash] += 50000;

    Iar ca niste sfaturi, la salvarile de genul in baza, foloseste mysql_tquery in loc decat mysql_query. (Diferența e "t" inaintea lui query. Pentru detalii cauta pe forum sau pe internet informatii despre mysql). El se salvează, dar e mai ok in varianta mea.

    Iar ca un alt sfat, ai grija cum concepi sistemul, sa nu detectezi niciodata suma de bani a unui jucător prin intermediul "GetPlayerMoney", pentru ca poți oricand sa-ti faci de cap la hacku si sa dispui de bani infiniti. Uite un exemplu cum sa-l concepi:

    
    stock GivePlayerCash( playerid, cash ) {
    
    	new Query[ 100 ];
    
    	P_Data[ playerid ][ pCash ] += cash;
    
    	mysql_format( handle, Query, sizeof Query, "UPDATE `conturi` SET `Cash`='%d' WHERE `Nume`='%s';", P_Data[ playerid ][ pCash ], GetName( playerid ) );
    	mysql_tquery( handle, Query, "", "" );
    
    	return true; }
    
    stock GetPlayerCash( playerid ) return P_Data[ playerid ][ pCash ];

    [...] prin exemplu de mai sus, tot ce trebuie sa mai faci e un timer in care sa fie resetata suma de bani din HUD, adica aia din GTA, cu suma de bani pe care o are jucatorul. Ca sa te pun sa mai "faci" si tu ceva, ca practic ti-am oferit pe tava, te las pe tine sa cauti metoda prin care poti face acel timer. Iar ca sa te ajut putin si aici, eu cunosc doar 2 metode, metoda generala a samp-ului, "SetTimer" / "SetTimerEx" sau folosirea unui include din libraria YSI, "y_timers", pe care o si recomand (a 2-a metoda). Daca cauti "YSI by Y_Less" pe google, e primul rezultat.

    Multa bafta.

    +1, ti-a dat tot mura-n gura, ca sa salvezi o variabila in db, trebuie sa ii atribui o valoare mai intai.

  2. new drunk_level[MAX_PLAYERS];
    new fps_var[MAX_PLAYERS];
    
    #define SCM va_SendClientMessage
    
    hook OnPlayerConnect(playerid)
    {
    	drunk_level[playerid] = 0;
    	fps_var[playerid] = 0;
    }
    
    task fps_update[1000]()
    {
    	foreach(new i : Player)
    	{
    		if(GetPlayerDrunkLevel(i) < 100)
    		{
    			SetPlayerDrunkLevel(i, 2000);
    		}
    		else
    		{
    			if(drunk_level[i] != GetPlayerDrunkLevel(i))
    			{
    				new GetPlayerFPS = drunk_level[i] - GetPlayerDrunkLevel(i);
    
    				if((GetPlayerFPS > 0) && (GetPlayerFPS < 200))) fps_var[i] = GetPlayerFPS;
    
    				drunk_level[i] = GetPlayerDrunkLevel(i);
    			}
    		}
    	}
    }
    
    CMD:fps(playerid)
    {
    	SCM(playerid, -1, "Your FPS: %i.", fps_var[playerid]);
    
    	return 1;
    }	

    cu placere 😘

  3. deci chiar va rog frumos sa nu mai faceti tutoriale dinastea asa ampulea..

    iti dau si cateva motive :))

    1. nu inteleg de ce ai folosit la proc de comenzi params, pentru ca nu-l folosesti undeva in comanda ta.
    2. "FPS COMAND TUTORIAL" dar tu iei tickrate-ul de la server intr-un integer.
    3. pt ce plm ai mai folosit inca odata functia "getservertickrate" daca ai afisat deja un mesaj cu treaba asta? :))

    Asculta la mine, ca sa iei fps-urile unui jucator in sa-mp e mai complicat, trebuie sa verifici drunk levelul si sa-l stochezi intr-o variabila care se updateaza intr-un timer de 1 secunda. Deci, inteleg ca e 2018, dar chiar si asa pe vremea aia sa-mpul era destul de avansat :O

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