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.