Kick
Материал из Pro-Pawn Wiki
Описание:
Закрывает соединение между сервером и клиентом (игроком).
Параметры:
(playerid) |
playerid | ID игрока, для которого требуется закрыть соединение. |
Возвращаемое значение:
Всегда возвращает
1
.
Баг SA-MP |
Если незадолго до закрытия соединения с игроком были совершены какие-либо действия (например, отправка сообщений с помощью SendClientMessage() ), эффект от этих действий не будет виден на стороне игрока. Для обхода этой проблемы можно создать таймер с задержкой в 200-1000 миллисекунд и из него вызывать функцию Kick() , либо использовать уже готовое решение, например, dc_kickfix.inc или u_kickfix.inc.
|
Пример использования:
const COLOR_RED = 0xFF604000;
CMD:kick(playerid, params[])
{
if (0 == IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Вы не администратор сервера!");
new targetid;
if (sscanf(params, "us", targetid, params))
return SendClientMessage(playerid, -1, "Использование: /kick [ID игрока/часть ника] [причина]");
if (targetid == INVALID_PLAYER_ID)
return SendClientMessage(playerid, -1, "Игрок не найден.");
SetTimerEx("@_DelayedKick", 800, false, "d", playerid);
new string[144], pname[MAX_PLAYER_NAME + 1], tname[MAX_PLAYER_NAME + 1];
GetPlayerName(playerid, pname, sizeof(pname));
GetPlayerName(playerid, tname, sizeof(tname));
format(string, sizeof(string), "Вы были кикнуты администратором %s, причина: %s", pname, params);
SendClientMessage(targetid, COLOR_RED, string);
format(string, sizeof(string), "Администратор %s кикнул игрока %s, причина: %s", pname, tname, params);
return SendClientMessageToAll(COLOR_RED, string);
}
@_DelayedKick(playerid);
@_DelayedKick(playerid)
return Kick(playerid);
CMD:kick(playerid, params[])
{
if (0 == IsPlayerAdmin(playerid))
return SendClientMessage(playerid, -1, "Вы не администратор сервера!");
new targetid;
if (sscanf(params, "us", targetid, params))
return SendClientMessage(playerid, -1, "Использование: /kick [ID игрока/часть ника] [причина]");
if (targetid == INVALID_PLAYER_ID)
return SendClientMessage(playerid, -1, "Игрок не найден.");
SetTimerEx("@_DelayedKick", 800, false, "d", playerid);
new string[144], pname[MAX_PLAYER_NAME + 1], tname[MAX_PLAYER_NAME + 1];
GetPlayerName(playerid, pname, sizeof(pname));
GetPlayerName(playerid, tname, sizeof(tname));
format(string, sizeof(string), "Вы были кикнуты администратором %s, причина: %s", pname, params);
SendClientMessage(targetid, COLOR_RED, string);
format(string, sizeof(string), "Администратор %s кикнул игрока %s, причина: %s", pname, tname, params);
return SendClientMessageToAll(COLOR_RED, string);
}
@_DelayedKick(playerid);
@_DelayedKick(playerid)
return Kick(playerid);
См. также: