AMX MOD X
Суббота, 09.08.2025, 20:33:10



Приветствую Вас Гость | RSS
[ Главная ] [ Бан коннект-флудерам :) - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Бан коннект-флудерам :)
ArgusДата: Вторник, 09.09.2008, 17:05:14 | Сообщение # 1
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
ban people who keep retrying when server full

Ситуация:
На сервере нету свободных слотов - он забит полностью, остались только резервные, но некоторые пользователи постоянно делают попытки коннекта к серверу с целью попасть на него (пробиться во время реконнекта другого игрока, или просто успеть первым на новое освободившееся место). Каждый способен делать до 2х попыток в секунду. В результате, если на сервер пытается одновременно пробиться человека 4, то имеем почти 8 записей в секунду в консоли сервера следующего содержания:

Quote
16:29:28 "argus<143><>" connected, address "10.253.154.100:666"
16:29:28 "argus<143><>" triggered "address" (address "10.253.154.100:666")
16:29:28 Kick: "argus<143><>" was kicked by "Console" (message ""Dropped due to slot reservation!"")

по факту имеем дополнительную нагрузку на сервер и дикий флуд в online логах сервера (logaddress_add)

Решение:
Отучить пользователей от данной методики и приучить их пользоваться стандартными средства коннекта к серверу без коннект-флуда, путем наказания(ban) за подобные действия, методом внесения изменений в плагин adminslots входящий в стандартный набор AMXX. Почему модификация adminslots, а не создание отдельного плагина? Потому что все события client_authorized (коннект игрока) перехватываются плагином adminslots и уже он решает, пускать на сервер или нет(кикнуть коннект). Другой плагин при обработке этого события пролетает (опаздывает), ибо клиент уже вошел или выгнан.

Реализация:
При первой неудачной попытке пользователя приконнектиться к серверу с резервным слотом (на который у него нету прав) его IP заносится в "серый" список, и при каждой последующей неудачной попытке увеличивается счётчик его попыток до тех пор, пока он не достигнет максимально разрешенного значения, далее - оповещение пользователя, непродолжительный бан и удаление записи из "серого" списка.

Переменные:
amx_cf <0|1> - выкл|вкл функциональность плагина. (по-умолчанию=0)
amx_cfattempts <число> - число допустимых неудачных попыток до получения бана. (по-умолчанию=3)
amx_cfbanlength <число> - продолжительность бана в минутах (дробные значения допускаются). (по-умолчанию=3)

Код:

Code
#include <amxmodx>
#include <amxmisc>

//+argus
#define MAX_PLAYERS 5

new pIP[MAX_PLAYERS][16]
new pChnc[MAX_PLAYERS]
new p_cvar_connectflood, p_cvar_attempts, p_cvar_connectfloodban
new const BAN_MESSAGE[]  = "STOP FLOODING THE SERVER!! SERVER IS FULL!! NO FREE SLOT! %d sec BAN"
//-argus

new g_cmdLoopback[16]
new g_ResPtr
new g_HidePtr

public plugin_init()
{
       register_plugin("Slots Reservation", AMXX_VERSION_STR, "AMXX Dev Team")
       register_dictionary("adminslots.txt")
       register_dictionary("common.txt")
       g_ResPtr = register_cvar("amx_reservation", "0")
       g_HidePtr = register_cvar("amx_hideslots", "0")
             
       format(g_cmdLoopback, 15, "amxres%c%c%c%c", random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'))
       register_clcmd(g_cmdLoopback, "ackSignal")

       //+argus
       p_cvar_connectflood = register_cvar("amx_cf","1")
       p_cvar_connectfloodban = register_cvar("amx_cfbanlength","3")       
       p_cvar_attempts = register_cvar("amx_cfattempts", "3")
       //-argus
}

public plugin_cfg()
{
       set_task(3.0, "MapLoaded")
}

public MapLoaded()
{
       if (!get_pcvar_num(g_HidePtr))
        return

       new maxplayers = get_maxplayers()
       new players = get_playersnum(1)
       new limit = maxplayers - get_pcvar_num(g_ResPtr)
       setVisibleSlots(players, maxplayers, limit)
}

public ackSignal(id)
{
       new lReason[64]
       format(lReason, 63, "%L", id, "DROPPED_RES")
       server_cmd("kick #%d ^"%s^"", get_user_userid(id), lReason)
             
       return PLUGIN_HANDLED
}

public client_authorized(id)
{
       new maxplayers = get_maxplayers()
       new players = get_playersnum(1)
       new limit = maxplayers - get_pcvar_num(g_ResPtr)

       if (access(id, ADMIN_RESERVATION) || (players <= limit))
       {
        if (get_pcvar_num(g_HidePtr) == 1)
         setVisibleSlots(players, maxplayers, limit)
        return PLUGIN_CONTINUE
       }

       //+argus
       if (!(is_user_bot(id)) && (get_pcvar_num(p_cvar_connectflood)))       
       {
        new ip[16]
        get_user_ip(id,ip,15,1)
        new bool:banflag = false
        new attempts = get_pcvar_num(p_cvar_attempts)

        new n
        for(n = 0; n < MAX_PLAYERS; n++)
        {
         if (equal(ip, pIP[n], 16))       
         {
          if (pChnc[n] >= attempts)
          {
           new uID[1], aID[1]
           uID[0] = id
           aID[0] = n
           set_task( 3.0,"slban",77,uID[0],1)
           set_task( 4.0, "slcleanID", (id + MAX_PLAYERS),aID[0],1)
           banflag = true
          }
          else
          {
           pChnc[n]++
          }
          break
         }
        }

        if (n == MAX_PLAYERS)
        {
        //this user not in list
         new m
         for(m = 0; m < MAX_PLAYERS; m++)
         {
          if (pIP[m][0] == 0)       
          {    // found empty slot
           get_user_ip(id,pIP[m],15,1)
           pChnc[m]++
           break
          }
         }
                
         if (m == MAX_PLAYERS)
          //no empty slots! clear all!
          for(new m = 0; m < MAX_PLAYERS; m++)
           {
            pIP[m][0] = 0
            pChnc[m] = 0
           }         
        }        

        if (!banflag)       
         client_cmd(id, "%s", g_cmdLoopback)
        else
         banflag = false
               
        return PLUGIN_HANDLED
       }
       //-argus

       client_cmd(id, "%s", g_cmdLoopback)

       return PLUGIN_HANDLED
}

//+argus
public slban(id[])       
{
       new ip[16]
       new strr[128]
       new length
             
       get_user_ip(id[0],ip,15,1)
             
       length = floatround(60 * get_pcvar_float(p_cvar_connectfloodban), floatround_round);

       format(strr ,127 ,BAN_MESSAGE , length)
       server_cmd("kick #%d ^"%s^"", get_user_userid(id[0]), strr)
       server_cmd("addip %f %s", get_pcvar_float(p_cvar_connectfloodban), ip)

       return PLUGIN_CONTINUE
}

public slcleanID(i[])       
{
       pIP[i[0]][0] = 0
       pChnc[i[0]] = 0
}
//-argus

public client_disconnect(id)
{
       if (!get_pcvar_num(g_HidePtr))
        return PLUGIN_CONTINUE

       new maxplayers = get_maxplayers()
             
       setVisibleSlots(get_playersnum(1) - 1, maxplayers, maxplayers - get_pcvar_num(g_ResPtr))
       return PLUGIN_CONTINUE
}

setVisibleSlots(players, maxplayers, limit)
{
       new num = players + 1

       if (players == maxplayers)
        num = maxplayers
       else if (players < limit)
        num = limit
             
       set_cvar_num("sv_visiblemaxplayers", num)
}

originally thread http://forums.alliedmods.net/showthread.php?t=69441

Прикрепления: adminslots.sma (5.3 Kb)


Правила форума
Поиск плагинов
Последние сообщения форума
 
JokerДата: Вторник, 09.09.2008, 17:22:10 | Сообщение # 2
Генерал-майор
Группа: Пользователи
Сообщений: 375
Репутация: 5
Статус: Не в сети
Что с кодировкой форума? =\

Ну это никакой нагрузки на сервер не дает. Насчет флуда в консоли тоже можно поспорить, возможно это кому-небудь нужно (врядли)..

За скрипт всеравно спасибо..


One death is a Tragedy
One million is a Statistic...
 
ArgusДата: Вторник, 09.09.2008, 17:24:39 | Сообщение # 3
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
Quote (Joker)
Насчет флуда в консоли тоже можно поспорить

вот вырезка из логов (до модификации плагина), получаемых моим HLSW буквально в течении 30 секунд с одного лишь сервера (для получения HLSW логов с сервера жмем кнопочку Get Log в Rcon Section):

Quote
L 04/08/2008 - 18:48:20: "Mirage<8229><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:20: "Mirage<8229><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:20: Kick: "Mirage<8229><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:20: "S[m][o]L<7976>" say "/me" (dead)
L 04/08/2008 - 18:48:21: "Mirage<8230><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:21: "[DON] R.E.M.<8231><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:21: "Mirage<8230><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:21: "[DON] R.E.M.<8231><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:21: "Delete<<[PogHeu* MyJIJIeH]<8219><>" joined team "CT"
L 04/08/2008 - 18:48:21: Kick: "Mirage<8230><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:21: Kick: "[DON] R.E.M.<8231><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:21: "AHDP[E]u':)<7881>" say_team "a"
L 04/08/2008 - 18:48:21: "Frodo <3 KuH)I(aJIb4er<7606>" say "mega mouse" (dead)
L 04/08/2008 - 18:48:22: "Mirage<8232><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:22: "beyond godlike<7613>" killed "3aP9l)l(eHblu rPu6 xD<7504>" with "usp"
L 04/08/2008 - 18:48:22: "Mirage<8232><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:22: Kick: "Mirage<8232><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:22: "beyond godlike<7613>" killed "-=Sh@de=-<7553>" with "grenade"
L 04/08/2008 - 18:48:22: "[DON] R.E.M.<8233><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:22: "[DON] R.E.M.<8233><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:22: Kick: "[DON] R.E.M.<8233><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:24: "Mirage<8234><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:24: "Mirage<8234><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:24: Kick: "Mirage<8234><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:24: "[DON] R.E.M.<8235><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:25: "[DON] R.E.M.<8235><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:25: "Mirage<8236><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:25: "Mirage<8236><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:25: Kick: "[DON] R.E.M.<8235><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:25: Kick: "Mirage<8236><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:25: "[55]/FENOZIPAM/<7075>" killed "BoRoMiR <3 koJIbLjooooooo<7738>" with "deagle"
L 04/08/2008 - 18:48:25: "Mirage<8237><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:25: "Mirage<8237><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:25: Kick: "Mirage<8237><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:26: "Mirage<8238><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:26: "Mirage<8238><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:26: Kick: "Mirage<8238><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:26: "Mirage<8239><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:26: "[DON] R.E.M.<8240><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:26: "Mirage<8239><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:26: "[DON] R.E.M.<8240><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:26: Kick: "Mirage<8239><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:26: Kick: "[DON] R.E.M.<8240><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:27: "Mirage<8241><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:27: "Mirage<8241><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:27: "^*^<8122>" killed "Kollektop<8087>" with "usp"
L 04/08/2008 - 18:48:27: Kick: "Mirage<8241><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:27: "Mirage<8242><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:27: "Mirage<8242><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:27: Kick: "Mirage<8242><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:28: "[DON] R.E.M.<8243><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:28: "[DON] R.E.M.<8243><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:28: Kick: "[DON] R.E.M.<8243><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:28: "Mirage<8244><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:28: "Mirage<8244><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:28: Kick: "Mirage<8244><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:29: "Mirage<8245><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:29: "Mirage<8245><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:29: "[DON] R.E.M.<8246><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:29: Kick: "Mirage<8245><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:29: "[DON] R.E.M.<8246><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:29: Kick: "[DON] R.E.M.<8246><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:29: "Mirage<8247><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:29: "Mirage<8247><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:29: Kick: "Mirage<8247><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:30: "Mirage<8248><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:30: "Mirage<8248><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:30: Kick: "Mirage<8248><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:30: "beyond godlike<7613>" triggered "Begin_Bomb_Defuse_With_Kit"
L 04/08/2008 - 18:48:30: "Mirage<8249><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:30: "[DON] R.E.M.<8250><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:30: "Mirage<8249><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:30: "[DON] R.E.M.<8250><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:30: Kick: "Mirage<8249><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:31: Kick: "[DON] R.E.M.<8250><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:31: "Mirage<8251><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:31: "Mirage<8251><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:31: Kick: "Mirage<8251><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:31: "Mirage<8252><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:31: "Mirage<8252><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:31: Kick: "Mirage<8252><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:32: "Mirage<8253><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:32: "Mirage<8253><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:32: Kick: "Mirage<8253><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:32: "Mirage<8254><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:32: "Mirage<8254><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:32: Kick: "Mirage<8254><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:32: Rcon: "rcon 1553689785 ":P" status" from "10.253.0.35:2908"
L 04/08/2008 - 18:48:32: "[DON] R.E.M.<8255><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:33: "[DON] R.E.M.<8255><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:33: Kick: "[DON] R.E.M.<8255><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:33: "Mirage<8256><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:33: "Mirage<8256><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:33: Kick: "Mirage<8256><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:33: "Mirage<8257><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:33: "Mirage<8257><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:33: Kick: "Mirage<8257><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:34: "[DON] R.E.M.<8258><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:34: "[DON] R.E.M.<8258><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:34: Kick: "[DON] R.E.M.<8258><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:35: "Mirage<8259><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:35: "Mirage<8259><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:35: Kick: "Mirage<8259><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:35: "Mirage<8260><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:35: "beyond godlike<7613>" triggered "Defused_The_Bomb"
L 04/08/2008 - 18:48:35: Team "CT" triggered "Bomb_Defused" (CT "1") (T "0")
L 04/08/2008 - 18:48:35: World triggered "Round_End"
L 04/08/2008 - 18:48:35: "Mirage<8260><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:35: Kick: "Mirage<8260><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:35: "[DON] R.E.M.<8261><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:36: "[DON] R.E.M.<8261><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:36: Kick: "[DON] R.E.M.<8261><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:36: "Mirage<8262><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:36: "Mirage<8262><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:36: Kick: "Mirage<8262><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:36: "Mirage<8263><>" connected, address "10.253.173.252:27005"
L 04/08/2008 - 18:48:36: "Mirage<8263><>" triggered "address" (address "10.253.173.252:27005")
L 04/08/2008 - 18:48:36: Kick: "Mirage<8263><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:37: "[DON] R.E.M.<8264><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:37: "[DON] R.E.M.<8264><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:37: Kick: "[DON] R.E.M.<8264><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:38: Rcon: "rcon 2395453235 ":P" meta force_unload hlguard " from "10.253.154.163:27082"
L 04/08/2008 - 18:48:38: [META] dll: Unloaded plugin 'HLGuard' for reason 'forced by server command'
L 04/08/2008 - 18:48:39: "[DON] R.E.M.<8265><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:39: "[DON] R.E.M.<8265><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:39: Kick: "[DON] R.E.M.<8265><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:40: "[DON] R.E.M.<8266><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:40: "[DON] R.E.M.<8266><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:40: Kick: "[DON] R.E.M.<8266><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:40: "Delete<<[PogHeu* MyJIJIeH]<8219>" joined team "TERRORIST" (auto)
L 04/08/2008 - 18:48:40: "gAndaLf <3 Kn1Fe<8069>" triggered "Spawned_With_The_Bomb"
L 04/08/2008 - 18:48:41: "[DON] R.E.M.<8267><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:41: "[DON] R.E.M.<8267><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:42: Kick: "[DON] R.E.M.<8267><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:42: "gAndaLf <3 Kn1Fe<8069>" say_team "B"
L 04/08/2008 - 18:48:43: "[DON] R.E.M.<8268><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:43: "[DON] R.E.M.<8268><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:43: Kick: "[DON] R.E.M.<8268><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:44: "gAndaLf <3 Kn1Fe<8069>" say_team "RUSH"
L 04/08/2008 - 18:48:44: "BoRoMiR <3 koJIbLjooooooo<7738>" changed name to "OPKU > BoRoMiR <3 koJIbL|o"
L 04/08/2008 - 18:48:44: "[DON] R.E.M.<8269><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:44: "[DON] R.E.M.<8269><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:45: Kick: "[DON] R.E.M.<8269><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:46: "[DON] R.E.M.<8270><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:46: "[DON] R.E.M.<8270><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:46: Kick: "[DON] R.E.M.<8270><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:46: World triggered "Round_Start"
L 04/08/2008 - 18:48:47: Rcon: "rcon 1553689785 ":P" status" from "10.253.0.35:2912"
L 04/08/2008 - 18:48:47: "[DON] R.E.M.<8271><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:48: "[DON] R.E.M.<8271><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:48: Kick: "[DON] R.E.M.<8271><>" was kicked by "Console" (message ""Dropped due to slot reservation"")
L 04/08/2008 - 18:48:49: "[DON] R.E.M.<8272><>" connected, address "10.253.131.119:27005"
L 04/08/2008 - 18:48:49: "[DON] R.E.M.<8272><>" triggered "address" (address "10.253.131.119:27005")
L 04/08/2008 - 18:48:49: Kick: "[DON] R.E.M.<8272><>" was kicked by "Console" (message ""Dropped due to slot reservation"")

44 неудачной попытки и минимум полезной информации в тексте.


Правила форума
Поиск плагинов
Последние сообщения форума
 
max_ripДата: Среда, 10.09.2008, 16:36:01 | Сообщение # 4
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
Argus, проще просто noreconnect поставить. Да и вообще вынести в отдельный плагин.
 
ArgusДата: Среда, 10.09.2008, 23:26:10 | Сообщение # 5
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
Quote (max_rip)
проще просто noreconnect поставить

причем тут noreconnect? пользователи пишут connect ip в консоли и пытаются зайти на сервер, на котором 20/20 - сервер их не пускает - они retry,и так n раз.я не знаю такого механизма noreconnect,который эту проблему решал б.
вынести в отдельный плагин - нереализуемо, по крайней мере, для меня. я не вижу это возможным чтоб при этом не была нарушена работа adminslots.


Правила форума
Поиск плагинов
Последние сообщения форума
 
max_ripДата: Четверг, 11.09.2008, 14:04:49 | Сообщение # 6
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
Argus, ну почемуже. Нореконект как раз таки и должен работать ибо, совершается ретри или что либо ему пофик, он фиксирует попытку подключения к северу в определенный промежуток времени, если это произошло банан на 5 минут. При этом в нем приспокойо реализована система защиты по флагу a, так что заменить его на резерв слот не составит труда. плагин можно найти чуть ниже).
Code
/***************************************************************************************************
*                    *
*                    ORIGINAL by SYZo                    *
*                    *
***************************************************************************************************/
/*
*
* No Reconnect Types:
* 0 - Message Only
* 1 - Kick
* 2 - Ban
*
*/

#include <amxmodx>
#include <amxmisc>

#define MAX_PLAYERS     32

new pID[MAX_PLAYERS+1][22], ReconnectTime, Reason[255], gmsgSayText
new Float:leave_time[MAX_PLAYERS]
new Float:bantime
new PlugTag[] = "[AMXX]"
new MinRecTimeMin[] = "^x03%s MinReconnect Time is %.1f min! Status: %s!"
new MinRecTimeSec[] = "^x03%s MinReconnect Time is %.0f sec! Status: %s!"
new Info[] = "You can't join after reconnect/retry command."

public plugin_init() {
         register_plugin("No Reconnect","3.0","Z@C")
         register_cvar("n_r_type","2",FCVAR_SERVER)
         register_cvar("n_r_time","120")
         register_cvar("n_r_bantime","5")
         ReconnectTime = get_cvar_num("n_r_time")
         gmsgSayText = get_user_msgid("SayText")
         bantime = float(get_cvar_num("n_r_bantime"))
}

public client_authorized(id) {
         if ((is_user_bot(id)) || (get_user_flags(id)&ADMIN_IMMUNITY)) {
                 return PLUGIN_HANDLED
                 } else {
                 new ip[21+1], uID[1]
                 for(new i = 1; i <= MAX_PLAYERS; i++) {
                         set_task(15.0,"rule",id)
                         get_user_ip(id,ip,21)
                         uID[0] = get_user_userid(id)
                         if (equal(ip, pID[i], 21)) {
                    if (get_cvar_num("n_r_type") == 2) {
                    reas()
                    server_cmd("kick #%d ^"%s^"", uID[0], Reason)
                    server_cmd("addip ^"%f^" ^"%s^"",bantime, ip)
                    server_cmd("writeip")
                    }
                    if (get_cvar_num("n_r_type") == 1) {
                    reas()
                    server_cmd("kick #%d %s",uID[0],Reason)
                    }
                    msg(id)
                         }
                         return PLUGIN_HANDLED
                 }
                 if (get_cvar_num("n_r_type") == 0) {
                         set_task(10.0,"msg",id)
                 }
         }
         return PLUGIN_HANDLED
}

reas() {
         new Float:gametime = get_gametime()
         for (new i = 1; i < MAX_PLAYERS; i++) {
                 if (gametime >= leave_time[i] + ReconnectTime) {
                         leave_time[i] = gametime
                 }
                 new Float:rectime = leave_time[i] + ReconnectTime - gametime
                 if (get_cvar_num("n_r_type") == 2) {
                         format(Reason, 254, "%s You have been banned on %.2f min.", Info, bantime)
                 }
                 if (get_cvar_num("n_r_type") == 1) {
                         if (rectime >= 60) {
                    format(Reason, 254, "%s Connect after %0.1f min.", Info, rectime / 60.0)
                    } else {
                    format(Reason, 254, "%s Connect after %.0f sec.", Info, rectime)
                         }
                 }
         }
}

public clean(i[]) {
         pID[i[0]][0] = 0
}

public msg(id) {
         new name[32]
         get_user_name(id, name, 31)
         set_hudmessage(255, 0, 255, 0.05, 0.70, 3, 5.0, 10.0, 0.5, 0.15, 1)
         if (get_cvar_num("n_r_type") == 2) {
                 show_hudmessage(0,"Player %s try reconnect,but has been banned on %.2f min.",name,bantime)
         }
         if (get_cvar_num("n_r_type") == 1) {
                 show_hudmessage(0,"Player %s try reconnect,but has been kicked",name)
         }
         if (get_cvar_num("n_r_type") == 0){
                 show_hudmessage(0,"Player %s is reconnected",name)
         }
}

public rule(id) {
         new message[255], Status[5]
         if (get_cvar_num("n_r_type") == 2) {
                 format(Status, 4, "BAN")
         }
         if (get_cvar_num("n_r_type") == 1) {
                 format(Status, 4, "KICK")
         }
         if (ReconnectTime >= 60) {
                 format(message, 254, MinRecTimeMin, PlugTag, ReconnectTime / 60.0, Status)
                 } else {
                 format(message, 254, MinRecTimeSec, PlugTag, ReconnectTime, Status)
         }
         message_begin(MSG_ONE, gmsgSayText, _, id)
         write_byte(id)
         write_string(message)
         message_end()
}

public client_disconnect(id) {
         if ((is_user_bot(id)) || (get_user_flags(id)&ADMIN_IMMUNITY)) {
                 return PLUGIN_HANDLED
                 } else {
                 new ip[21+1], param[1]
                 new found = 0
                 get_user_ip(id, ip, 21)
                 for(new i = 1; i <= MAX_PLAYERS; i++) {
                         if (equal(ip, pID[i], 21)) {
                    found = 1
                    break
                         }
                 }
                 if (found == 0) {
                         for(new i = 1; i <= MAX_PLAYERS; i++) {
                    if(pID[i][0] == 0) {
                    //copy(pID[i], 21, ip)
                    get_user_ip(id, pID[i], 21)
                    param[0] = i
                    set_task(float(ReconnectTime), "clean", (id + MAX_PLAYERS), param, 1)
                    break
                    }
                         }
                 }
         }
         return PLUGIN_HANDLED
}
 
ArgusДата: Суббота, 01.11.2008, 23:29:25 | Сообщение # 7
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
Quote (max_rip)
Argus, ну почемуже. Нореконект как раз таки и должен работать ибо, совершается ретри или что либо ему пофик, он фиксирует попытку подключения к северу в определенный промежуток времени, если это произошло банан на 5 минут. При этом в нем приспокойо реализована система защиты по флагу a, так что заменить его на резерв слот не составит труда. плагин можно найти чуть ниже).

то что ты предлагаешь не работает в связке с adminslots.amxx , а его я отключать не собираюсь, поэтому, толку в том что ты предлагаешь я не вижу.


Правила форума
Поиск плагинов
Последние сообщения форума
 
max_ripДата: Воскресенье, 02.11.2008, 19:35:26 | Сообщение # 8
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
а что именно в этой связке не работает?
 
ArgusДата: Воскресенье, 02.11.2008, 21:36:21 | Сообщение # 9
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
"твой" плагин не работает. по крайней мере, он не делает того, о чем идет речь в первом посте.

Правила форума
Поиск плагинов
Последние сообщения форума
 
max_ripДата: Понедельник, 03.11.2008, 11:22:26 | Сообщение # 10
Подполковник
Группа: Пользователи
Сообщений: 147
Репутация: 0
Статус: Не в сети
ну разве что количества попыток нет ). А так вполне рабочий плагин, работает у меня более 2 лет))
 
Agronom[SLK]Дата: Понедельник, 26.01.2009, 22:03:50 | Сообщение # 11
Полковник
Группа: Пользователи
Сообщений: 222
Репутация: 4
Статус: Не в сети
Argus
Отлично!! спасибо!
Достают флудеры :) Терь не придеться игры отвлекаться, бан им успокоительный прописывать.. :) Но имхо 3 минуты много, уменьшил до 30сек. :)
Еще раз спасибо!!


МНЛТиП - Метод Нубского Логического Тыка и Подстановки
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2025