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:
Code:
forward KickTimer(playerid);
La inceputul OnPlayerDisconnect:
Code:
if(GetPVarInt(playerid, "Kick") != 0) KillTimer(GetPVarInt(playerid, "Kick"));
La inceputul OnPlayerUpdate:
Code:
if(GetPVarInt(playerid, "Kick") != 0) GKick(playerid);
La sfarsitul modului sau in alt loc potrivit:
Code:
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).
Mai jos va voi arata cel mai convenabil mod prin care vom efectua trimiterea datelor necesare jucatorului inainte de Kick.
La toate forward:
Code:
forward KickTimer(playerid);
La inceputul OnPlayerDisconnect:
Code:
if(GetPVarInt(playerid, "Kick") != 0) KillTimer(GetPVarInt(playerid, "Kick"));
La inceputul OnPlayerUpdate:
Code:
if(GetPVarInt(playerid, "Kick") != 0) GKick(playerid);
La sfarsitul modului sau in alt loc potrivit:
Code:
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).
Fondator cs.jucausii.net
Id mess - andrei_darius97
Id mess - andrei_darius97