Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Фикс DDos конфига.
horr0r Дата: Пятница, 25.07.2014, 20:27:22 | Сообщение # 16
Сообщений: 149
Репутация: 40 [ +/- ]
Tokami, а какой тогда смысл?) Если антифлудер блочит абсолютно все консольные команды?)


Сообщение отредактировал horr0r - Пятница, 25.07.2014, 20:27:43
 
Tokami Дата: Пятница, 25.07.2014, 20:55:32 | Сообщение # 17
Сообщений: 238
Репутация: 19 [ +/- ]
horr0r, ксожелению не все есть команда которую не заблочишь лаги проверили они чуть хуже чем от buy но тоже бесят))

Добавлено (25.07.2014, 20:45:37)
---------------------------------------------
И еще вот кто создатель настоящих лагов кто нашел команду buy и тд)) http://www.youtube.com/user/madzal777

Добавлено (25.07.2014, 20:55:32)
---------------------------------------------
Naykon а теперь чисто для тебя вот тебе видио про твой сервер
http://www.youtube.com/watch?v=tz_26RthMD0&index=15&list=UUkC5L8N1fonHGQUnvywKu5Q
Я уже его испытвал работает на 50% серверах))

 
EGOR9514 Дата: Суббота, 26.07.2014, 01:48:27 | Сообщение # 18
Сообщений: 6
Репутация: 0 [ +/- ]
Короче, плагин кикает, если написать в консоль хотя бы раз buy. :DD


Сообщение отредактировал EGOR9514 - Суббота, 26.07.2014, 01:48:46
 
horr0r Дата: Суббота, 26.07.2014, 13:53:42 | Сообщение # 19
Сообщений: 149
Репутация: 40 [ +/- ]
EGOR9514, если ты мертвый или в спектаторах, то да. А так, тебе нужно написать buy более 4 раз за 0.1 секунды.
 
Meow_1337 Дата: Суббота, 26.07.2014, 16:49:28 | Сообщение # 20
Сообщений: 207
Репутация: 11 [ +/- ]
а не легче поставить SMAC? Запрещает клиенту писать exec в консоле, как то так.
 
horr0r Дата: Суббота, 26.07.2014, 18:01:10 | Сообщение # 21
Сообщений: 149
Репутация: 40 [ +/- ]
Meow_1337, какая разница? Если "exec" внутриклиентская команда, ее можно написать еще до захода на сервер.
 
KAYF Дата: Понедельник, 28.07.2014, 13:34:52 | Сообщение # 22
Сообщений: 1
Репутация: 0 [ +/- ]
horr0r, плагин кикает тех у кого автозакуп стоит. Как сделать что бы не кикало у кого автозакуп. Поставил макс число попыток 10, всё равно кикает.
 
Loco Дата: Понедельник, 28.07.2014, 19:53:19 | Сообщение # 23
Сообщений: 42
Репутация: 0 [ +/- ]
Насчет buy, bunny_on помогает forlix floodcheck (блочит)
 
horr0r Дата: Суббота, 02.08.2014, 05:59:23 | Сообщение # 24
Сообщений: 149
Репутация: 40 [ +/- ]
KAYF, завтра пофикшу, если реально найду).
 
ALЬTAIR Дата: Суббота, 02.08.2014, 10:02:54 | Сообщение # 25
Сообщений: 7
Репутация: 0 [ +/- ]
Зачем изобретать велосипед если можно просто поставить smac_commands!

Добавлено (02.08.2014, 10:02:54)
---------------------------------------------
Зачем изобретать велосипед если можно просто поставить smac_commands!

 
sssw Дата: Суббота, 02.08.2014, 12:08:50 | Сообщение # 26
Сообщений: 123
Репутация: 14 [ +/- ]
Вот как я калякал в черновике.

Код
#include <sourcemod>

#define MAX_CONVARS 1024
#define MAX_LEGHT 256

new String:map[MAX_CONVAR][MAX_LEGHT+2];
new cursor=0;

AddToMapStrings( String:address, value )
{
     new leght = strlen(address);
     strcopy( map[cursor++], leght, address );

     map[cursor-1][leght+2] = value;
}

public OnPluginStart()
{
     new String:cmdbuffer[256];
     new bool:IsCommand = false;
     new Handle:cursor = FindFirstConCommand(cmdbuffer, 256, IsCommand);

     if (cursor == INVALID_HANDLE)
      return;

     do
     {
      if (!IsCommand)
       continue;

      new Handle:hConVar = FindConVar(cmdbuffer);

      if (hConVar == INVALID_HANDLE)
       continue;

      AddToMapStrings( cmdbuffer, hConVar );
     }
     while( FindNextConComman (cursor, cmdbuffer, 256, IsCommand) );

}

#define MAX_CMD_RULE 10;
#define MAX_PEDIOD   4.0

new CmdFrame[MAX_CONVARS];
new Float:LastCall[MAX_CONVARS];

public Action:OnClientCommand(client, args);
{
     decl String:cmd[256];

     GetCmdArg(0, cmd, 256);

     new Handle:convar = GetConVarHandleFromMap( cmd );     

     if ( CmdFrame[convar] >= MAX_CMD_RULE )
     {
      KickClient( client, "You're client corupted" );
      return Plugin_Handled;
     }else {
      CmdFrame[convar]++;
      new Float:time = GetGameTime();
      if (LastCall[convar] > time+MAX_PEDIOD)
       CmdFrame[convar] = 0;
      LastCall[convar] = time;
     }
     return Plugin_Continue;
}

GetConVarHandleFromMap( String:cmd[] )
{
     for (new i=0;i<=MAX_CONVAR; i++)
     {
      if (StrEqua( cmd, map[i] ))
      {
       return (map[i][strlen(map[i])]+2);
      }
     }
}


Можно сделать по шустрей, нужно написать контейнер для строк, перебор это плохо.


Сообщение отредактировал sssw - Суббота, 02.08.2014, 12:14:00
 
_wS_ Дата: Воскресенье, 03.08.2014, 04:04:03 | Сообщение # 27
Чет вы сильно усложняете =) Я вот так сделал и норм:

Код
new g_CmdCount[MAXPLAYERS + 1];
new Float:g_fLastCmdTime[MAXPLAYERS + 1];

public OnClientConnected(client)
{
     g_CmdCount[client] = 0;
     g_fLastCmdTime[client] = 0.0;
}

public Action:OnClientCommand(client, args)
{
     if (g_CmdCount[client]++ == 0)
     {
         g_fLastCmdTime[client] = GetGameTime();
     }
     else if (g_CmdCount[client] > 25)
     {
         if ((GetGameTime() - g_fLastCmdTime[client]) < 3.0)
         {
             KickClient(client, "bb");
             return Plugin_Stop;
         }
         g_CmdCount[client] = 0;
         g_fLastCmdTime[client] = 0.0;
     }
     return Plugin_Continue;
}

Себе сейчас поставлю. 25 и 3.0 уже на свой вкус меняется.
 
sssw Дата: Воскресенье, 03.08.2014, 08:53:14 | Сообщение # 28
Сообщений: 123
Репутация: 14 [ +/- ]
20 CmdCount * 5 BadPlayers = 100 BadCmdCount; )
 
_wS_ Дата: Воскресенье, 03.08.2014, 13:15:10 | Сообщение # 29
Ну так оно же считает отдельно для каждого игрока.
Если использовал больше 25 команд, хотя еще не прошло 3 сек, значит парень флудит командами.
 
_wS_ Дата: Понедельник, 04.08.2014, 17:48:05 | Сообщение # 30
Эта версия получше (ловит больше команд).

Код
#pragma semicolon 1
#include <sourcemod>

new g_CmdCount[MAXPLAYERS + 1];
new Float:g_fFirstCmdTime[MAXPLAYERS + 1];

public OnPluginStart()
{
      AddCommandListener(CommandListener_CallBack);
}

public OnClientConnected(client)
{
      g_CmdCount[client] = 0;
      g_fFirstCmdTime[client] = 0.0;
}

public Action:CommandListener_CallBack(client, const String:command[], argc)
{
     if (client < 1)
         return Plugin_Continue;

     if (g_CmdCount[client]++ == 0)
     {
         g_fFirstCmdTime[client] = GetGameTime();
     }
     else if (g_CmdCount[client] > 25)
     {
         if ((GetGameTime() - g_fFirstCmdTime[client]) < 2.1)
         {
             KickClient(client, "=]      ");
             return Plugin_Stop;
         }
         g_CmdCount[client] = 0;
         g_fFirstCmdTime[client] = 0.0;
     }

     return Plugin_Continue;
}

В тп стима еще написал о проблеме, не знаю в курсе они или нет, ибо все равно от таких защиток пользы мало, т.к. есть команды, которые SM ловить просто не может и 'дос' работает. Надеяться остается на Valve, а пока (уже наверно давно) любой школьник может заставить любой сервер лагать (omg). За v34 молчу, там кошмар наверн вобще xaxa

Гости не могут скачивать файлы
 
  • Страница 2 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск: