במדריך הזה אני יסביר איך עובד הקיק AFK
קודם כל הקוד:
PHP Code:
public IdleKick()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pAdmin] < 1)
{
GetPlayerPos(i, PlayerPos[i][0], PlayerPos[i][1], PlayerPos[i][2]);
if(PlayerPos[i][0] == PlayerPos[i][3] && PlayerPos[i][1] == PlayerPos[i][4] && PlayerPos[i][2] == PlayerPos[i][5])
{
new plname[64];
new string[128];
GetPlayerName(i, plname, sizeof(plname));
format(string, sizeof(string), "AdmCmd: %s was kicked by DUCK, reason: AFK", plname);
SendClientMessageToAll(COLOR_LIGHTRED, string);
printf("AdmCmd: %s was kicked by DUCK, reason: AFK", plname, string);
Kick(i);
}
PlayerPos[i][3] = PlayerPos[i][0];
PlayerPos[i][4] = PlayerPos[i][1];
PlayerPos[i][5] = PlayerPos[i][2];
}
}
}
}
עכשיו אני יסביר קצת..
PHP Code:
if(PlayerInfo[i][pAdmin] < 1)
זה אומר שאם לשחקן אין אדמין אז ...
ואם יש אדמין אז הוא לא יקבל קיק AFK
PHP Code:
GetPlayerPos(i, PlayerPos[i][0], PlayerPos[i][1], PlayerPos[i][2]);
בעצם כאן המערכת בודקת איפה השחקן נמצא(XYZ)
PHP Code:
if(PlayerPos[i][0] == PlayerPos[i][3] && PlayerPos[i][1] == PlayerPos[i][4] && PlayerPos[i][2] == PlayerPos[i][5])
פה רשום שאם השחקן זז מהמקום שהמערכת בדקה קודם (XYZ) אז הוא לא יקבל קיק אבל אם כן אז...
PHP Code:
new plname[64];
new string[128];
GetPlayerName(i, plname, sizeof(plname));
format(string, sizeof(string), "AdmCmd: %s was kicked by DUCK, reason: AFK", plname);
SendClientMessageToAll(COLOR_LIGHTRED, string);
printf("AdmCmd: %s was kicked by DUCK, reason: AFK", plname, string);
Kick(i);
כאן זה שולח לכל השרת את ההודעה שהשחקן הוא AFK כי המערכת לא ראתה שהוא זז מהXYZ ואז השחקן מקבל קיק
והשאר זה כדי לסיים את הקוד בערך..
מקווה שהבנתם תהנו!..