Jump to content

irinelbro69

Membru
  • Posts

    113
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by irinelbro69

  1. Salut, deoarece in aceasta perioada am mai mult timp liber sa scriptez si, din lipsa de ocupatie, m-am gandit sa ofer servicii zic eu, calitative.

    Cateva chestii pe care le-am facut in ultima perioada (unele probabil o sa urmeze a fi puse pe bugged / unele sunt deja):

     

    mp3 player (in viitor tm)

     

    roata norocului (WIP)

     

    sistem de pus brazi in fata casei / hq / biz

     

    job lumberjack (WIP)

     

    quest 1 decembrie

     

    event ziua bugged

     

    ceva demo la update-u' cu tickete cu vreo 3 saptamani inainte sa fie pus

    Puteti sa ma contactati pe Discord: irinelbro69
    Metode de plata acceptate: PayPal / transfer bancar

    • Like 1
    • Upvote 2
  2. 28 minutes ago, Sancky said:

    is de ani de zile surse pe net..., exista si un include pt fizici in samp cu care poti face

    eram ironic dar, totusi inca e o idee pentru el avand in vedere ca exista surse pe net, de asta i-am si dat ex.

  3. 1 hour ago, Sancky said:

    @viji  te duci in baza de date, creezi un column in care trebuie stocat unix timestampul in tabelul cu playerii sau cum ai tu structurat questul, de preferat INT ca data type, in momentul cand playerul finalizeaza questul, executi un query catre db care va fi asa: `UPDATE `users` SET `QuestTime` = UNIX_TIMESTAMP() WHERE ID = %d` 

    inlocuiesti tu denumirile la tabel si column, si la ID pui id-ul unic al playerului respectiv, adica valoarea primary keyului care are auto increment

    iar in momentul cand se apeleaza functia care se executa atunci cand jucatorul se logheaza si este apelata de queryul care selecteaza datele userului respectiv (asta daca ai columnul respectiv in tabelul userilor), faci verificarea urmatoare: 

    if(gettime() - cache_get_field_content_int(0, "QuestTime") > (24 * 3600)) 

    {

        // resetare quest

       // updatezi valoarea la QuestTime in db la -1 pentru a prevenii resetarea multipla inutila

    }

     

    p.s: cache_get_field_content_int e o functie mai veche a versiunilor mai vechi de mysql, daca folosesti o versiune mai noua, foloseste functia conforma a versiunii pe care o ai

    si cam atat.

    nu stiu daca merita atata efort, dar cel mai simplu ar fi un query in care updatezi la toti questdone (de ex) = 0 si un loop pt toti jucatorii online sa le setezi progres 0

  4. Salut, incearca asa:

    forward LoadCustomSkins();
    public LoadCustomSkins()
    {
    	if(cache_num_rows())
    	{
    		static count;
    		for (new idx; idx < cache_num_rows(); idx ++)
    		{
    			SkinInfo[idx][skinID] = cache_get_field_content_int(idx, "ID");
    		    SkinInfo[idx][skinBaseID] = cache_get_field_content_int(idx, "BaseID");
    		    SkinInfo[idx][skinSkinID] = cache_get_field_content_int(idx, "SkinID");
    			cache_get_field_content(idx, "DFF", SkinInfo[idx][skinDFF]); 
    			cache_get_field_content(idx, "TXD", SkinInfo[idx][skinTXD]);
    
    			AddCharModel(SkinInfo[idx][skinBaseID], SkinInfo[idx][skinSkinID], SkinInfo[idx][skinDFF], SkinInfo[idx][skinTXD]);
    			count++;
    		}
    		printf("%d custom skins loaded from database.", count);
    	}
        return 1;
    }

     

    • Like 1
  5. new clicked_textdraws[MAX_PLAYERS][2];
    
    // la click
    clicked_textdraws[playerid][0]++;
    defer reset_clicks(playerid);
    if(clicked_textdraws[playerid][0] == 2) 
    {
    	// ce se intampla
    
    	clicked_textdraws[playerid][0] = 0;
    }

    poti face printr-un timer chestia cu click-urile rapide:

     

    timer reset_clicks[4000](playerid)
    {
    	for(new i; i < 2; i++) clicked_textdraws[playerid][i] = 0;
    }

     

    • Like 1
  6. recomand sa te folosesti de pluginu' pawn.raknet, ai aici un mic exemplu
     

    #define ID_PLAYER_SYNC		(207)
    
    hook OnGameModeInit() {
    	PR_RegHandler(ID_PLAYER_SYNC, "OP_FootSync", PR_INCOMING_PACKET);
    }
    
    CB:OP_FootSync(playerid, BitStream:bs) {
    	new onFootData[PR_OnFootSync];
    	BS_IgnoreBits(bs, 8);
    	BS_ReadOnFootSync(bs, onFootData);
    
    	if(onFootData[PR_animationId] == 958 && onFootData[PR_weaponId] != WEAPON_PARACHUTE || onFootData[PR_animationId] == 959 && onFootData[PR_weaponId] != WEAPON_PARACHUTE) {
    		submitToAdmins(COLOR_ADMWARNING, "%s (%d) may be using surfly.", N(playerid), playerid);
    		return 0;
    	}
    	return 1;
    }

     

    • Upvote 1
  7. new Iterator:in_vehicle<MAX_PLAYERS>;
    
    hook OnPlayerDisconnect(playerid, reason) {
    	Iter_Remove(in_vehicle, playerid);
    }
    
    hook OnPlayerStateChange(playerid, newstate, oldstate) {
    	if(newstate == PLAYER_STATE_DRIVE || newstate == PLAYER_STATE_PASSENGER) Iter_Add(in_vehicle, playerid);
    	else if(newstate == PLAYER_STATE_ONFOOT) Iter_Remove(in_vehicle, playerid);
    }
    
    task UpdateSpeedometer[500]() {
    	foreach(new playerid : in_vehicle) {
    		Checkvehinfo2(playerid);
    	}
    }

     

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