Поиск Поиск блокировки флуда сменами ника.

Сообщения
3,566
Реакции
1,560
Помог
131 раз(а)
Ищу плагин, блокирующий name spam. ReSrDetector не подходит
 
Сообщения
25
Реакции
41
Помог
1 раз(а)
Код:
#include <amxmodx>
#include <reapi>

new g_BlockNickWarn[32+1];
new block_nick_delay;

public plugin_init()
{
    register_plugin("BlockNick Spam", "1.0 [Re]", "R");

    block_nick_delay = create_cvar("block_nick_delay",        "15.0");

    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName, "refwd_SetClientUserInfoName_Pre");
}

public client_disconnected(id)
    g_BlockNickWarn[id] = 0;

public refwd_SetClientUserInfoName_Pre(id, szInfoBuffer[], szNewName[])
{
    static const name[] = "name";
    static szOldName[32], szNewName[32];
    get_entvar(id, var_netname, szOldName, charsmax(szOldName));
    if( szOldName[0] )
    {
        get_user_info(id, name, szNewName, charsmax(szNewName));
        if( !equal(szOldName, szNewName) )
        {
            static Float:flCurrentTime;
            static Float:flWaitName[MAX_PLAYERS + 1];
            flCurrentTime = get_gametime();
                   
            if(flWaitName[id] > flCurrentTime)
            {
                flWaitName[id] = flCurrentTime + get_pcvar_float(block_nick_delay);
                set_user_info(id, name, szOldName);
                       
                if(++g_BlockNickWarn[id] >= 3)
                {
                    new userid = get_user_userid(id)
                    g_BlockNickWarn[id] = 0;
                    server_cmd("fb_ban 15 #%d NameSpam", userid);
                }
                       
                SetHookChainReturn(ATYPE_INTEGER, false);
                client_print_color(id, 0, "^1[^4WA^1]^3 Нельзя так часто менять ник ^1[^4%d^1/^4%d^1]^3!", g_BlockNickWarn[id], 3);

                return HC_SUPERCEDE;
            }
            if(g_BlockNickWarn[id] > 0)
                g_BlockNickWarn[id] = 0;
                       
            flWaitName[id] = flCurrentTime + get_pcvar_float(block_nick_delay);
        }
    }
    return HC_CONTINUE;
}
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
Rias, от стимбуста вроде бы не спасает, при коннекте всеравно стимбуст бот меняет ник, а вот повторно сменить уже не сможет
 
Сообщения
25
Реакции
41
Помог
1 раз(а)
Rias, от стимбуста вроде бы не спасает, при коннекте всеравно стимбуст бот меняет ник, а вот повторно сменить уже не сможет
Ну он вроде не просил вообще запрещать смену ника)

Код:
        static const name[] = "name";
        static szOldName[32], szNewName[32];
        get_entvar(id, var_netname, szOldName, charsmax(szOldName));
        if( szOldName[0] )
        {
            get_user_info(id, name, szNewName, charsmax(szNewName));
            if( !equal(szOldName, szNewName) )
            {
                set_user_info(id, name, szOldName);
                SetHookChainReturn(ATYPE_INTEGER, false);
                client_print_color(id, 0, "^1[^4WA^1]^3 На сервере ^4запрещена^3 смена ника!");
                return HC_SUPERCEDE;
            }
        }
 
  • Нравится
Реакции: ifx
Сообщения
460
Реакции
68
Помог
7 раз(а)
sbelov020, ещё вариант нашёл тут
PHP:
#include <amxmodx>
#include <reapi>

#pragma semicolon 1

#define MAC_MAXWARNINGS 3 // максимальное кол-во предупреждений перед киком
#define MAC_CHANGEDELAY 120 // время в секундах, по истечению которого ник вновь можно будет сменить

new Float:g_flTimeNextChangeName[MAX_PLAYERS +1], g_iWarnings[MAX_PLAYERS +1];

public plugin_init()
{
    register_plugin("AntiFlood Change Name", "28.11.2018", "sergrib");
    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName, "CBasePlayer_SetClientUserInfoName_Pre", .post = false);
}

public client_putinserver(iPlayer)
{
    g_flTimeNextChangeName[iPlayer] = 0.0;
    g_iWarnings[iPlayer] = 0;
}

public CBasePlayer_SetClientUserInfoName_Pre(const iPlayer, infobuffer[], szNewName[])
{
    new Float:flCurrentTime = get_gametime();
    
    if (g_flTimeNextChangeName[iPlayer] > flCurrentTime)
    {
        if (g_iWarnings[iPlayer] < MAC_MAXWARNINGS)
        {
            client_print_color(iPlayer, print_team_default, "^3Эй! Не так часто! ^1Ник можно будет сменить через ^4%0.f^1 сек. Предупреждение: ^4%i/%i",
                g_flTimeNextChangeName[iPlayer] - flCurrentTime, g_iWarnings[iPlayer]+1, MAC_MAXWARNINGS);
        }
        else if (g_iWarnings[iPlayer] == MAC_MAXWARNINGS)
        {
            server_cmd("kick #%i ^"Name change flooding!^"", get_user_userid(iPlayer));
        }
        
        g_iWarnings[iPlayer]++;
        SetHookChainReturn(ATYPE_INTEGER, false);
        return HC_SUPERCEDE;
    }
    
    g_flTimeNextChangeName[iPlayer] = flCurrentTime + MAC_CHANGEDELAY.0;
    g_iWarnings[iPlayer] = 0;
    
    return HC_CONTINUE;
}
26 Фев 2019
Rias, получается время в секундах для смны ника корректировать тут
PHP:
("block_nick_delay",        "15.0");
в варианте выложенным тобой?
 
  • Нравится
Реакции: Rias

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
Rias, а от стимбуста что-то из этих вариантов поможет? не тестил? я помню перебрал все что было на форумах, в итоге остановился на block_advert от неугомона, но он иногда крашил серв %(
 
Сообщения
58
Реакции
25
Помог
4 раз(а)
ifx,
Скрытое содержимое для пользователей: ifx
 
  • Нравится
Реакции: ifx

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
xramer, при коннекте в чат показывает что бот сменил ник на стимбуст или сразу кикает?
у меня сейчас идет коннект, бот меняет ник на стимбуст - дальше амхбанс его кикает автоматом

я хочу вообще убрать это сообщение в чат о смене ника, этот плагин подойдет?
 
Сообщения
58
Реакции
25
Помог
4 раз(а)
ifx,
бот меняет ник через n-ое время после захода на сервер, до этого еще успевает пофлудить. Собственно на этот флуд плагин и срабатывает еще до проверки на смену ника, при первом же сообщении в чат сразу отправляет по месту назначения. поставить желательно выше чат менеджера и прочих плагинов работающих с ним.
 
Последнее редактирование:
Сообщения
25
Реакции
41
Помог
1 раз(а)
Rias, а от стимбуста что-то из этих вариантов поможет? не тестил? я помню перебрал все что было на форумах, в итоге остановился на block_advert от неугомона, но он иногда крашил серв %(
Второй вариант должен помочь, т.к он вообще лишает возможности на смену ника.
На стимбуст не тестил т.к к нам они не заходят даже при наличии круга в их мс :cray:
 
  • Нравится
Реакции: ifx
Сообщения
3,566
Реакции
1,560
Помог
131 раз(а)
Rias, у себя то же чет ни разу их не видел, хотя от них защиты не стоит
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу