Запретить забанить самого себя и администраторов

pracc

Быть, а не казаться.
Сообщения
946
Реакции
541
Как заблокировать свой ник в списке бана, чтобы нельзя было себя забанить и нельзя было забанить администраторов с одинаковым иммунитетом?
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Как заблокировать свой ник в списке бана, чтобы нельзя было себя забанить и нельзя было забанить администраторов с одинаковым иммунитетом?

Переписать исходник банов.
Добавить проверку иммунитета
 

pracc

Быть, а не казаться.
Сообщения
946
Реакции
541
Ты же можешь мне помочь, я знаю (sm_immunity_mode 2).
 

DarklSide

Участник
Сообщения
931
Реакции
468
1 половина (один из методов):

Редактируя исходники
например ban.sp -
PHP:
DisplayBanTargetMenu(client)
{
    new Handle:menu = CreateMenu(MenuHandler_BanPlayerList);
    decl String:title[100];
    Format(title, sizeof(title), "%T:", "Ban player", client);
    SetMenuTitle(menu, title);
    SetMenuExitBackButton(menu, true);
    AddTargetsToMenu2(menu, client, COMMAND_FILTER_NO_BOTS|COMMAND_FILTER_CONNECTED);
    DisplayMenu(menu, client, MENU_TIME_FOREVER);
}
на
PHP:
DisplayBanTargetMenu(client)
{
    new Handle:menu = CreateMenu(MenuHandler_BanPlayerList);
    decl String:s_title[100];
    Format(s_title, sizeof(s_title), "%T:", "Ban player", client);
    SetMenuTitle(menu, s_title);
    SetMenuExitBackButton(menu, true);
    decl String:s_ids[15], String:s_nick[32];
    for (new i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i))
        {
            IntToString(GetClientUserId(i), s_ids, 15);
            s_nick[0] = '\0';
            GetClientName(i, s_nick, sizeof(s_nick));
            AddMenuItem(menu, s_ids, s_nick, i != client ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED);
        }
    }
    DisplayMenu(menu, client, MENU_TIME_FOREVER);
}
2 половина:
PHP:
sm_immunity_mode 2
 
Сверху Снизу