PDA

View Full Version : Tutorial - Afisarea mesajului inainte de kick.



KinderBueno.
01-02-15, 19:36
Dupa cum stiti, in clientul 0.3x functia Kick incheie conexiunea cu jucatorul,fara trimiterea mesajului cu pachetul de date. Acest lucru a fost facut cu scopul de a proteja serverele.
Mai jos va voi arata cel mai convenabil mod prin care vom efectua trimiterea datelor necesare jucatorului inainte de Kick.


La toate forward:

forward KickTimer(playerid);
La inceputul OnPlayerDisconnect:

if(GetPVarInt(playerid, "Kick") != 0) KillTimer(GetPVarInt(playerid, "Kick"));
La inceputul OnPlayerUpdate:

if(GetPVarInt(playerid, "Kick") != 0) GKick(playerid);
La sfarsitul modului sau in alt loc potrivit:

public KickTimer(playerid) return GKick(playerid);

stock GKick(playerid, time = 5000)
{
if(GetPVarInt(playerid, "Kick") == -1) Kick(playerid);
else if(!GetPVarInt(playerid, "Kick")) SetPVarInt(playerid, "Kick", SetTimerEx("KickTimer", time, 0, "d", playerid));
else
{
KillTimer(GetPVarInt(playerid, "Kick"));
SetPVarInt(playerid, "Kick", -1);
GKick(playerid);
}


return 1;
}
Acum daca veti dori sa acordati kick unui jucator,va trebui sa folositi functia GKick(playerid, time).
playerid - e ID-ul jucatorului,caruia doriti sa ii acordati kick.
time (nu e necesar) - timpul, peste care jucatorul va primi kick,daca acesta va fi AFK (in cazul dat 5 secunde).
Daca jucatorul nu va fi AFK atunci acesta va primi kick deaodata dupa trimiterea tuturor pachetelor cu date necesare (adica a mesajului cu Kick).