Ban

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Закрывает соединение между сервером и клиентом (игроком) и блокирует его IP-адрес.

Параметры:

(playerid)
playerid ID игрока, которого требуется заблокировать.


Возвращаемое значение:

1, если до блокировки игрок был подключен, иначе 0.

Bug.png
Баг SA-MP
Если незадолго до закрытия соединения с игроком были совершены какие-либо действия (например, отправка сообщений с помощью SendClientMessage()), эффект от этих действий не будет виден на стороне игрока. Для обхода этой проблемы можно создать таймер с задержкой в 200-1000 миллисекунд и из него вызывать функцию Ban(), либо использовать уже готовое решение, например, dc_kickfix.inc или u_kickfix.inc.


Пример использования:

const COLOR_RED = 0xFF604000;

CMD:ban(playerid, params[])
{
    new targetid;
    if (sscanf(params, "us", targetid, params))
        return SendClientMessage(playerid, -1, "Использование: /ban [ID игрока/часть ника] [причина]");
    if (targetid == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, "Игрок не найден.");
    SetTimerEx("@_DelayedBan", 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);
}

@_DelayedBan(playerid);
@_DelayedBan(playerid)
    return Ban(playerid);


См. также: