Иконка ресурса

BossKotoriiNeSmok

Участник
Сообщения
976
Реакции
189
  • Автор ресурса
  • #1
Пользователь BossKotoriiNeSmok разместил новый ресурс:

NullWaveFix - Новый плагин, который блокирует експлоиты просадки FPS в клиенте игры и краша игрового сервера.

Как вы знаете,создатели чита АимВарэ,создали какой то чит,якобы ддосер самого игрока(просаживает ему жестко фпс и т.п.)
Так вот этот плагин, который блокирует експлоиты просадки FPS в клиенте игры и краша игрового сервера.

Узнать больше об этом ресурсе...
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #2
Это от версии SB так-то зависит...
upload_2018-4-19_22-15-18.png
 

MaZa

Участник
Сообщения
1,732
Реакции
980
Вот еще есть версия с киком,может кому-то пригодиться..
 

Вложения

  • fixgovnocsgo.sp
    1.5 КБ · Просмотры: 36

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57
Чеи отличается от этого?

PHP:
int g_iConnectNetMsgCount[MAXPLAYERS + 1] =  { 0, ... };
char g_szLog[PLATFORM_MAX_PATH];
bool ban[MAXPLAYERS + 1];

public Plugin myinfo =
{
    name = "NullWave Crash Fix",
    author = "backwards, IT-KiLLER, SM9();",
    description = "Exploit Fix",
    version = "0.2"
}

public void OnPluginStart()
{
    HookEvent("player_connect_full", Event_PlayerConnectFull, EventHookMode_Pre);
    BuildPath(Path_SM, g_szLog, sizeof(g_szLog), "logs/NullWaveCrashFix.log");
}

public void OnMapStart()
{
    for (int i = 1; i <= MaxClients; i++) {
        g_iConnectNetMsgCount[i] = 0;
        ban[i] = false;
    }
}

public void OnClientDisconnect(int client)
{
    ban[client] = false;
    g_iConnectNetMsgCount[client] = 0;
}

public Action Event_PlayerConnectFull(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    
    if (!IsValidClient(client) && client > 0 && client <= MaxClients && IsClientConnected(client) && !IsFakeClient(client) && !IsClientSourceTV(client) && !IsClientReplay(client)) {
        if (!IsClientInKickQueue(client)) {
            KickClient(client, "Something went wrong, please retry connecting");
            LogToFileEx(g_szLog, "Kicked %L for sending an early player_connect_full event (Possible crash attempt)", client);
        }
        
        event.BroadcastDisabled = true;
        return Plugin_Changed;
    }
    
    if (++g_iConnectNetMsgCount[client] == 1) {
        return Plugin_Continue;
    }
    
    if (!IsClientInKickQueue(client) && !ban[client])
    {
        ban[client] = true;
        ServerCommand("sm_ban #%d 0 Crash_Exploit",event.GetInt("userid"));
        LogToFileEx(g_szLog, "Banned %L for sending more than one player_connect_full event (Confirmed crash attempt)", client);
    }
    
    event.BroadcastDisabled = true;
    return Plugin_Changed;
}

bool IsValidClient(int client)
{
    if (!(1 <= client <= MaxClients) || !IsClientInGame(client)) {
        return false;
    }
    
    return true;
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@0-BuTaJIuK-0, OMG, что за нубы пейсали?
функция OnClientDisconnect() не имеет смысла, т.к. при коннекте игрока итак всё обнуляется
int g_iConnectNetMsgCount[MAXPLAYERS + 1] = { 0, ... }; при создании переменной она и так получает значение равной нулю (всё что между размером массива и точкой с запятой не нужно в коде)
PHP:
    int client = GetClientOfUserId(event.GetInt("userid"));
   
    if (!IsValidClient(client) && client > 0 && client <= MaxClients && IsClientConnected(client) && !IsFakeClient(client) && !IsClientSourceTV(client) && !IsClientReplay(client)) {
...
bool IsValidClient(int client)
{
    if (!(1 <= client <= MaxClients) || !IsClientInGame(client)) {
        return false;
    }
   
    return true;
}
Это прямо за гранью добра и зла: int client = GetClientOfUserId(event.GetInt("userid")); не равняется нулю если игрок в игре, а тут ещё 2 раза это перепроверяют (второй раз функцией IsValidClient())
 

MaZa

Участник
Сообщения
1,732
Реакции
980
@0-BuTaJIuK-0, OMG, что за нубы пейсали?
функция OnClientDisconnect() не имеет смысла, т.к. при коннекте игрока итак всё обнуляется
int g_iConnectNetMsgCount[MAXPLAYERS + 1] = { 0, ... }; при создании переменной она и так получает значение равной нулю (всё что между размером массива и точкой с запятой не нужно в коде)
PHP:
    int client = GetClientOfUserId(event.GetInt("userid"));
 
    if (!IsValidClient(client) && client > 0 && client <= MaxClients && IsClientConnected(client) && !IsFakeClient(client) && !IsClientSourceTV(client) && !IsClientReplay(client)) {
...
bool IsValidClient(int client)
{
    if (!(1 <= client <= MaxClients) || !IsClientInGame(client)) {
        return false;
    }
 
    return true;
}
Это прямо за гранью добра и зла: int client = GetClientOfUserId(event.GetInt("userid")); не равняется нулю если игрок в игре, а тут ещё 2 раза это перепроверяют (второй раз функцией IsValidClient())
тоже самое можно сказать и этому пользователю
[Спасем csgo] Помогите фиксануть звук null.wav
=)
 

Boeing 767

заскамили мамонта ни за что, ни про что
Сообщения
524
Реакции
913
тоже самое можно сказать и этому пользователю
[Спасем csgo] Помогите фиксануть звук null.wav
=)
Код изначально с AM , я лишь убрал совсем уж ненужный код,который никак не вызывается добавив при этом поддержку MA и SB , детально не вглядывался что и как там.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@MaZa_Mladwii, вот поправил
Инклюда materialadmin у меня нет, поэтому сами компильте
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Вот ещё версия с поддержкой MA и SB (версию SB проверять не приучен).
При наличии MA банит через него, если MA нет, но есть SB, то банит через SB, а если же нет обоих, то банит дефолтным способом SM.
И да, не проверяет при каждом подключении игроков значение консольной переменой sm_nwfix_ban, а хранит это значение в переменной g_bBanClient, которая изменяется при изменении консольной переменной.
В общем снижает нагрузку на сервер, в сравнении с оригинальным плагином.

Вроде должно пофикситься сообщение при подключении
 

MaZa

Участник
Сообщения
1,732
Реакции
980
Вот ещё версия с поддержкой MA и SB (версию SB проверять не приучен).
При наличии MA банит через него, если MA нет, но есть SB, то банит через SB, а если же нет обоих, то банит дефолтным способом SM.
И да, не проверяет при каждом подключении игроков значение консольной переменой sm_nwfix_ban, а хранит это значение в переменной g_bBanClient, которая изменяется при изменении консольной переменной.
В общем снижает нагрузку на сервер, в сравнении с оригинальным плагином.
// nullwavefix SB&MA 0.2.1.sp(94) : error 017: undefined symbol "SourceBans_BanPlayer"
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #15
функция OnClientDisconnect() не имеет смысла, т.к. при коннекте игрока итак всё обнуляется
Так там не обрабатывается событие коннекта игрока, а сам СМ ничего не обнуляет из глобальных переменных плагинов.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Kr1kuzya, прозевал, что это событие не обрабатывается

@MaZa_Mladwii, попробуй вот так.
При отсутствии инклюдов должно нормально компилиться
--- Добавлено позже ---
При наличии инклюда MA компилится с использованием команд MA
Если MA нет, но имеется инклюд SB, то компилится с использованием команд SB
 
Последнее редактирование:

MaZa

Участник
Сообщения
1,732
Реакции
980
@Kr1kuzya, прозевал, что это событие не обрабатывается

@MaZa_Mladwii, попробуй вот так.
При отсутствии инклюдов должно нормально компилиться
--- Добавлено позже ---
При наличии инклюда MA компилится с использованием команд MA
Если MA нет, но имеется инклюд SB, то компилится с использованием команд SB
Все ровно не дает зайти на сервер "Something went wrong, please retry connecting."
 

Deviceggqq

Участник
Сообщения
74
Реакции
4
L 04/20/2018 - 12:13:33: [SM] Unable to load plugin "nullwavefix.smx": Native "SourceBans_BanPlayer" was not found

SourceBans++ 1.1.5.4 (517)
 
Сверху Снизу