FIX SendNetMsg (Костыль от лагов читами) [Удалено]

Статус
В этой теме нельзя размещать новые ответы.

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
И в SB он не записывает но вроде банит....
Запись пойдет, если сразу после
C-подобный:
ServerCommand("sm_ban #%d 0 \"DDoS cheat\"", GetClientUserId(client));
Добавить
C-подобный:
ServerCommand("sm_kick #%d \"Попытка DDOS\"", GetClientUserId(client));

Не этично, но как то так:
PHP:
public Action OnPlayerRunCmd(int client) {
    // If player is a fake client, there will be an error in GetClientAvgPackets.
    if (IsFakeClient(client)) return;

    // Get client average packet frequency in packets/sec. Check it.
    Ban(client, GetClientAvgPackets(client, NetFlow_Both));
}

void Ban(int client, float freq) {
    if (freq < 1800.0) return;

    PrintToChatAll("[Anti-DDoS] Игрок %N забанен за DDoS читами", client);
    LogToFileEx("addons/ddos_protect.log", "%L exceeded Packet frequency (%.2f)", client, freq);
    ServerCommand("sm_ban #%d 0 \"DDoS cheat\"", GetClientUserId(client));
    ServerCommand("sm_kick #%d \"Попытка DDOS\"", GetClientUserId(client));
}
 
Последнее редактирование:

Snake

Участник
Сообщения
124
Реакции
30
Кто может сделать это "этично"?
 
Последнее редактирование:

Exle

Участник
Сообщения
190
Реакции
216
Запись пойдет, если сразу после
C-подобный:
ServerCommand("sm_ban #%d 0 \"DDoS cheat\"", GetClientUserId(client));
Добавить
C-подобный:
ServerCommand("sm_kick #%d \"Попытка DDOS\"", GetClientUserId(client));

Не этично, но как то так:
PHP:
public Action OnPlayerRunCmd(int client) {
    // If player is a fake client, there will be an error in GetClientAvgPackets.
    if (IsFakeClient(client)) return;

    // Get client average packet frequency in packets/sec. Check it.
    Ban(client, GetClientAvgPackets(client, NetFlow_Both));
}

void Ban(int client, float freq) {
    if (freq < 1800.0) return;

    PrintToChatAll("[Anti-DDoS] Игрок %N забанен за DDoS читами", client);
    LogToFileEx("addons/ddos_protect.log", "%L exceeded Packet frequency (%.2f)", client, freq);
    ServerCommand("sm_ban #%d 0 \"DDoS cheat\"", GetClientUserId(client));
    ServerCommand("sm_kick #%d \"Попытка DDOS\"", GetClientUserId(client));
}
Его должно кикнуть, если забанит
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,927
  • Команда форума
  • #48
@BreakSharp, и дырок тьма, начиная с возможностью саморазбаниться посредством веба и без участия админа, ага.
 

Exle

Участник
Сообщения
190
Реакции
216
PHP:
int maxpackets;
bool ban[MAXPLAYERS + 1];

public void OnClientPutInServer(int client)
{
    ban[client] = false;
}

public void OnConfigsExecuted()
{
    // sv_maxcmdrate - Max number of packets sent to server per second.
    // sv_maxupdaterate - Number of packets per second of updates you are requesting from the server.
    // (Outgoing + incoming traffic) + inaccuracy 100 packets.
    maxpackets = FindConVar("sv_maxcmdrate").IntValue + FindConVar("sv_maxupdaterate").IntValue + 100;
}

public Action OnPlayerRunCmd(int client)
{
    // If player is a fake client, there wills be an error in GetClientAvgPackets
    if (!IsFakeClient(client) && !ban[client])
    {
        // Get client average packet frequency in packets/sec. Check it
        Ban(client, GetClientAvgPackets(client, NetFlow_Both));
    }
}

void Ban(int client, float frequency)
{
    if (frequency > maxpackets)
    {
        ban[client] = true;
        LogToFileEx("addons/ddos_protect.log", "%L Packet frequency exceeding (%.2f)", client, frequency);
        ServerCommand("sm_ban #%d 0 DDoS cheat", GetClientUserId(client));
        KickClient(client, "You were banned for ddos by cheat");
    }
}
 

Вложения

  • b_ddos_protect.smx
    4.2 КБ · Просмотры: 40
Последнее редактирование:

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
PHP:
int maxpackets;

public void OnConfigsExecuted()
{
    // sv_maxcmdrate - Max number of packets sent to server per second.
    // sv_maxupdaterate - Number of packets per second of updates you are requesting from the server.
    // (Outgoing + incoming traffic) + inaccuracy 100 packets.
    maxpackets = FindConVar("sv_maxcmdrate").IntValue + FindConVar("sv_maxupdaterate").IntValue + 100;
}

public Action OnPlayerRunCmd(int client)
{
    // If player is a fake client, there wills be an error in GetClientAvgPackets
    if (!IsFakeClient(client))
    {
        // Get client average packet frequency in packets/sec. Check it
        Ban(client, GetClientAvgPackets(client, NetFlow_Both));
    }
}

void Ban(int client, float frequency)
{
    if (frequency > maxpackets)
    {
        LogToFileEx("addons/ddos_protect.log", "%L Packet frequency exceeding (%.2f)", client, frequency);
        ServerCommand("sm_ban #%d 0 DDoS cheat", GetClientUserId(client));
        KickClient(client, "You were banned for ddos by cheat");
    }
}

Делал проверку с KickClient, бан не давался вообще, зато летел Kick.
Поэтому решение - использовать "SBBanPlayer" или строчку
PHP:
ServerCommand("sm_kick #%d \"Попытка DDOS\"", GetClientUserId(client));
В прочем, проще на MA перееду)
 

pentaxist

Участник
Сообщения
495
Реакции
91
@Exle,
C-подобный:
L 02/11/2018 - 10:26:53: YOUR.DEATH<290><STEAM_1:1:202457717><> Packet frequency exceeding (251.61)
L 02/11/2018 - 10:48:46: Иоанн Спаситель<297><STEAM_1:0:144747813><> Packet frequency exceeding (229.68)
L 02/11/2018 - 11:12:39: Chip<348><STEAM_1:1:186950496><> Packet frequency exceeding (361.12)
L 02/11/2018 - 11:24:38: bratishkinoff#АНТИХАЙП#<400><STEAM_1:0:196176543><> Packet frequency exceeding (229.82)
это норма?)
 

leshaJEY

Участник
Сообщения
175
Реакции
16
@Exle,
C-подобный:
L 02/11/2018 - 10:26:53: YOUR.DEATH<290><STEAM_1:1:202457717><> Packet frequency exceeding (251.61)
L 02/11/2018 - 10:48:46: Иоанн Спаситель<297><STEAM_1:0:144747813><> Packet frequency exceeding (229.68)
L 02/11/2018 - 11:12:39: Chip<348><STEAM_1:1:186950496><> Packet frequency exceeding (361.12)
L 02/11/2018 - 11:24:38: bratishkinoff#АНТИХАЙП#<400><STEAM_1:0:196176543><> Packet frequency exceeding (229.82)
это норма?)



C-подобный:
L 02/08/2018 - 13:14:05: IzI_WaLHaK<53><STEAM_1:0:526760218><> exceeded Packet frequency (2066.36)
L 02/08/2018 - 13:14:05: IzI_WaLHaK<53><STEAM_1:0:526760218><> exceeded Packet frequency (2066.36)
L 02/08/2018 - 13:14:05: IzI_WaLHaK<53><STEAM_1:0:526760218><> exceeded Packet frequency (2066.36)

Видимо да.
 

BossKotoriiNeSmok

Участник
Сообщения
987
Реакции
192
@Exle,
PHP:
public Action OnPlayerRunCmd(int client) {
    // If player is a fake client, there will be an error in GetClientAvgPackets.
    if (IsFakeClient(client)) return;

    // Get client average packet frequency in packets/sec. Check it.
    Ban(client, GetClientAvgPackets(client, NetFlow_Both));
}

void Ban(int client, float freq) {
    if (freq < 1800.0) return;

    PrintToChatAll("[Anti-DDoS] Игрок %N забанен за DDoS читами", client);
    LogToFileEx("addons/ddos_protect.log", "%L exceeded Packet frequency (%.2f)", client, freq);
    ServerCommand("sm_ban #%d 0 DDoS cheat", GetClientUserId(client));
}
Vrw3YOjCOP7bwr.jpg

Это самое.. эм.. и так 2 страницы банов
Если что старый сб от тебя стоит:D
 
W

warket1337

  • Автор ресурса
  • #59
Пссс.....я тупой,как установить?;)
 

panikajo

Участник
Сообщения
866
Реакции
232
SendNetMsg ип и порт сервера: stream[netchan_t::reliabledata] buffer overflow (maxsize = 4000)!

спамит мне в игровую консоль, че делать?
Все пишут типо из-за этого плагина.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу