Jump to content

Spmn

Membru
  • Posts

    177
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by Spmn

  1. 1 hour ago, MrAndy said:

    DA FUCKING ERROARE CA NU EXISTA SAU NU STIU CE FACE -,-

    Invata sa scrii romaneste si dupa invata sa scrii cod.

    Daca te ducea capusorul ala, atunci ai fi postat si eroarea, dar se pare ca procesul de gandire necesita un efort mult prea mare.

  2. Asta se intampla pentru ca tu te bazezi doar pe damageul raportat de jucatorul care il primeste, iar in cazul in care acesta este AFK (cazul de fata), jucatorul nu raporteaza damage primit, deci poti trage in el pana cand se lanseaza GTA 6 ca nu reactioneaza la gloante.

    Tu trebuie sa ai o variabila globala care stocheaza pt fiecare jucator ce viata are (HP+AP), iar in momentul cand OnPlayerGiveDamage e apelat, tu scazi din acea variabila damageul cauzat. In momentul cand valoarea variabilei este <= 0, atunci apelezi manual OnPlayerDeath si creezi o alta variabila (eg: AlreadyDead) pe care o setezi pe 1 pentru jucatorul mort. Cand jucatorul va reveni din AFK, OnPlayerDeath va fi apelat "din oficiu", iar tu te vei folosi de variabila AlreadyDead pentru a face apelul asta inutil (eg: pui la inceputul OnPlayerDeath: " if(AlreadyDead[playerid]) { AlreadyDead[playerid] = 0; return 0; }"  )

     

    Optional, poti seta mortului alt virtualworld ca sa dispara din peisaj pana revine din AFK.

    • Upvote 1
  3. In cazul in care jucatorii sunt AFK, faci tu calculele necesare sa verifici daca jucatorii ar trebui sa fie morti si apelezi direct OnPlayerDeath din OnPlayerGiveDamage/OnPlayerWeaponShot.

    Ar trebui sa ai grija daca faci asta pentru ca OnPlayerDeath va fi apelat automat de server cand jucatorul va reveni din AFK, asa ca trebuie sa anulezi acel apel. (o simpla variabila bool care verifica daca OPD a fost apelat de tine, din script)

  4. 5 minutes ago, WopsS said:

    Aici tin sa fiu de acord cu @[email protected], nu e necesar sa folosesti mereu switch, daca am doua valori de comparat, ce fac fac

    
    new a = 5;
    
    switch (a)
    {
    	case 5:
    	{
    		a = 1;
    	}
    	default:
    	{
    		a = 2;
    	}
    }

    sau

    
    new a = 5;
    
    if (a == 5)
    {
    	a = 1;
    }
    else
    {
    	a = 2;
    }

    Daca ai mai multe chestii de comparat, da merge un switch.

    Lucrez in colaborare cu niste baietasi la un proiect si unul a scris niste verificari EXACT ca asta. Am ramas putin fara cuvinte, avand in vedere ca omul e student in domeniu. Inteleg sa fie preocupat de optimizare, dar in plm, un switch in loc de o verificare if-else arata urat rau.

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