Стандартный VOTEBAN, иммунитет для админов

Drumanid

Нестандартное звание
Сообщения
1,855
Реакции
1,686
Здарова всем и вся.
С вами какой то хрен и у него просьба.

Как сделать иммунитет для администраторов для стандартного voteban(a) , который находится в меню игры.

Если кто еще до сех пор не понял что я имею ввиду, объясняю понятнее...

sv_allow_votes "1/0"
Эта команда отключает все стандартные голосования в меню.

Намек понятен ?))

Кто в теме, тот поймет.

Оффтоп
 

AS TRO

Участник
Сообщения
1,158
Реакции
748
Разве ты не про иммунитет для админов, который ставиться в sourcemod.cfg? Там вроде бы сам квар носит название "immuni..."
 

Kruzi

Участник
Сообщения
153
Реакции
20
Здарова всем и вся.
С вами какой то хрен и у него просьба.

Как сделать иммунитет для администраторов для стандартного voteban(a) , который находится в меню игры.

Если кто еще до сех пор не понял что я имею ввиду, объясняю понятнее...

sv_allow_votes "1/0"
Эта команда отключает все стандартные голосования в меню.

Намек понятен ?))

Кто в теме, тот поймет.

Оффтоп
[CS: GO] - Base votes settings
 

Drumanid

Нестандартное звание
Сообщения
1,855
Реакции
1,686
Разве ты не про иммунитет для админов, который ставиться в sourcemod.cfg? Там вроде бы сам квар носит название "immuni..."

Он не защищает от кика через меню.


Этот плагин не работает, по словам автора.

Кстати, он же и помог мне решить мою проблему, за что ему огромное спасибо.
А то и AlmazON(а) просил написать новый voteban, все как всегда оказалось все на много проще.

Может кому пригодится...

PHP:
#pragma semicolon 1

#include <sourcemod>

public Plugin:myinfo =
{
    name = "Basic Kickvote Immunity",
    author = "psychoninc",
    description = "Causes player kick votes to obey SM immunity levels",
    version = "1.2",
    url = "http://nicholashastings.com"
};

stock min(a, b) { return (((a) < (b)) ? (a) : (b)); }

public OnPluginStart()
{
    AddCommandListener(callvote, "callvote");
}

public Action:callvote(client, const String:cmd[], argc)
{
    // kick vote from client, "callvote %s \"%d %s\"\n;"
    if (argc < 2)
        return Plugin_Handled;

    decl String:votereason[16];
    GetCmdArg(1, votereason, sizeof(votereason));

    if (!!strcmp(votereason, "kick", false))
        return Plugin_Handled;

    decl String:therest[256];
    GetCmdArg(2, therest, sizeof(therest));

    new userid = 0;
    new spacepos = FindCharInString(therest, ' ');
    if (spacepos > -1)
    {
        decl String:temp[12];
        strcopy(temp, min(spacepos+1, sizeof(temp)), therest);
        userid = StringToInt(temp);
    }
    else
    {
        userid = StringToInt(therest);
    }

    new target = GetClientOfUserId(userid);
    if (target < 1)
        return Plugin_Continue;

    new AdminId:clientAdmin = GetUserAdmin(client);
    new AdminId:targetAdmin = GetUserAdmin(target);

    if (clientAdmin == INVALID_ADMIN_ID && targetAdmin == INVALID_ADMIN_ID)
        return Plugin_Continue;

    if (CanAdminTarget(clientAdmin, targetAdmin))
        return Plugin_Continue;

    PrintToChat(client, "\x07ERROR\x01: Вы не можете забанить - \x04\"%N\"", target);

    return Plugin_Handled;
}

Оффтоп
 
Последнее редактирование:

Туник

Участник
Сообщения
985
Реакции
201
А проверка на админов по какому флагу идёт?
Он не защищает от кика через меню.



Этот плагин не работает, по словам автора.

Кстати, он же и помог мне решить мою проблему, за что ему огромное спасибо.
А то и AlmazON(а) просил написать новый voteban, все как всегда оказалось все на много проще.

Может кому пригодится...

PHP:
#pragma semicolon 1

#include <sourcemod>

public Plugin:myinfo =
{
    name = "Basic Kickvote Immunity",
    author = "psychoninc",
    description = "Causes player kick votes to obey SM immunity levels",
    version = "1.2",
    url = "http://nicholashastings.com"
};

stock min(a, b) { return (((a) < (b)) ? (a) : (b)); }

public OnPluginStart()
{
    AddCommandListener(callvote, "callvote");
}

public Action:callvote(client, const String:cmd[], argc)
{
    // kick vote from client, "callvote %s \"%d %s\"\n;"
    if (argc < 2)
        return Plugin_Handled;

    decl String:votereason[16];
    GetCmdArg(1, votereason, sizeof(votereason));

    if (!!strcmp(votereason, "kick", false))
        return Plugin_Handled;

    decl String:therest[256];
    GetCmdArg(2, therest, sizeof(therest));

    new userid = 0;
    new spacepos = FindCharInString(therest, ' ');
    if (spacepos > -1)
    {
        decl String:temp[12];
        strcopy(temp, min(spacepos+1, sizeof(temp)), therest);
        userid = StringToInt(temp);
    }
    else
    {
        userid = StringToInt(therest);
    }

    new target = GetClientOfUserId(userid);
    if (target < 1)
        return Plugin_Continue;

    new AdminId:clientAdmin = GetUserAdmin(client);
    new AdminId:targetAdmin = GetUserAdmin(target);

    if (clientAdmin == INVALID_ADMIN_ID && targetAdmin == INVALID_ADMIN_ID)
        return Plugin_Continue;

    if (CanAdminTarget(clientAdmin, targetAdmin))
        return Plugin_Continue;

    PrintToChat(client, "\x07ERROR\x01: Вы не можете забанить - \x04\"%N\"", target);

    return Plugin_Handled;
}

Оффтоп
 
Сверху Снизу