Автобан по нику

QwizzY

Участник
Сообщения
12
Реакции
1
Приветствую. Может кто подсказать как реализовать автобан по нику или может быть есть какой-то плагин? В какой-то теме видел,что у чела на скрине меню состоящее из бана по IP, STEAM и автобана по нику.
 
Решение
попробуй так.
C++:
public bool OnClientConnect(int client, char[] rejectmsg, int maxlen)
{
    char buffer[24];
    Format(buffer, 24, "%N", client);
    if (!strcmp(buffer, "scale"))
    {
        GetClientIP(client, buffer, 24);
        ServerCommand("sm_banip %s 0", buffer);
        return false;
    }
    return true;
}

upd. поздновато видимо. но как вариант по ип оставлю этот пост.

StateByte

Fullstack Software Engineer.
Сообщения
431
Реакции
622
Зачем банить игрока за ник, если можно его убрать?

 

DeathScore13

пирожок. пирожочек.
Сообщения
742
Реакции
411
Зачем банить игрока за ник, если можно его убрать?

игру смотри. в ксс появилась читерская сборка, где дефолт ник - scale
 

DeathScore13

пирожок. пирожочек.
Сообщения
742
Реакции
411
Приветствую. Может кто подсказать как реализовать автобан по нику или может быть есть какой-то плагин? В какой-то теме видел,что у чела на скрине меню состоящее из бана по IP, STEAM и автобана по нику.
C-подобный:
public bool OnClientConnect(int iClient, char[] sMsg, int iMaxLen)
{
  char sBuffer[7];
  GetClientInfo(iClient, "name", sBuffer, sizeof(sBuffer));
  if (!strcmp(sBuffer, "scale")) InsertServerCommand("sm_ban scale 7200 Cheats");
  return true;
}
Сообщения автоматически склеены:

@DeathScore13, а что делает этот scale ник?
читерская сборка, где дефолт ник - scale
 
Последнее редактирование:

QwizzY

Участник
Сообщения
12
Реакции
1
Зачем банить игрока за ник, если можно его убрать?

На этот случай у меня стоит плагин автоматической смены ника. Там чуть иная причина
игру смотри. в ксс появилась читерская сборка, где дефолт ник - scale
Совершенно верно. Одалели уже. На дню раз по 20 уходит данный ник в бан
@DeathScore13, а что делает этот scale ник?
Там сборка игры с вшитым в игру ультрахаком. Просто открываешь игру, заходишь на сервер, жмешь активацию чита и попер разносить сервер. Если правильно настроить, то античит долго будет срабатывать и тем самым много людей тупо выйдет с сервера
C-подобный:
public bool OnClientConnect(int iClient, char[] sMsg, int iMaxLen)
{
    char sBuffer[7];
    GetClientInfo(iClient, "name", sBuffer, sizeof(sBuffer));
    if (!strcmp(sBuffer, "scale")) InsertServerCommand("sm_ban scale 7200 Cheats");
}
Сообщения автоматически склеены:
Это просто скомпилить и в папку плагинов залить получается?
 

QwizzY

Участник
Сообщения
12
Реакции
1
public bool OnClientConnect(int iClient, char[] sMsg, int iMaxLen) { char sBuffer[7]; GetClientInfo(iClient, "name", sBuffer, sizeof(sBuffer)); if (!strcmp(sBuffer, "scale")) InsertServerCommand("sm_ban scale 7200 Cheats"); return true; }
Скомпилил все под свою версию соурсмода, но чет он скайлов даже и не трогает. Как заходили так и играют
 

Madness aka null138

Участник
Сообщения
721
Реакции
779
Не думаю что получится забанить кого то по стиму на стадии проверки OnClientConnect. Ладно бы бан по ип, там ип имеется.
Да и не советую по стиму банить. Будут ставить разные стимы и получать на них баны, а там и стим реального игрока попадется.
 

DeathScore13

пирожок. пирожочек.
Сообщения
742
Реакции
411

QwizzY

Участник
Сообщения
12
Реакции
1
в нике кроме scale есть ещё что-нибудь?
Ник в точности как указан в плагине, без префиксов и прочих символов. Я тестировал вход с той самой сборки, где стоит автоматическая настройка кфг на этот ник. Даже с настроек этих ник копировал с делал отдельный файл с баном. 0 эффекта
 

DeathScore13

пирожок. пирожочек.
Сообщения
742
Реакции
411
Ник в точности как указан в плагине, без префиксов и прочих символов. Я тестировал вход с той самой сборки, где стоит автоматическая настройка кфг на этот ник. Даже с настроек этих ник копировал с делал отдельный файл с баном. 0 эффекта
получается что @Madness aka null138 был прав.
C-подобный:
public void OnClientAuthorized(int iClient, const char[] sAuth)
{
    char sBuffer[7];
    GetClientInfo(iClient, "name", sBuffer, sizeof(sBuffer));
    if (!strcmp(sBuffer, "scale")) InsertServerCommand("sm_ban \"%s\" 7200 Cheats", sAuth);
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,606
Реакции
5,096
@DeathScore13, размер строковой переменной будет округлено компилятором для ближайшего большего числа кратного 4.
Так что смело можно писать char sBuffer[8];
 

Madness aka null138

Участник
Сообщения
721
Реакции
779
попробуй так.
C++:
public bool OnClientConnect(int client, char[] rejectmsg, int maxlen)
{
    char buffer[24];
    Format(buffer, 24, "%N", client);
    if (!strcmp(buffer, "scale"))
    {
        GetClientIP(client, buffer, 24);
        ServerCommand("sm_banip %s 0", buffer);
        return false;
    }
    return true;
}

upd. поздновато видимо. но как вариант по ип оставлю этот пост.
 
Решение

QwizzY

Участник
Сообщения
12
Реакции
1
попробуй так.
C++:
public bool OnClientConnect(int client, char[] rejectmsg, int maxlen)
{
    char buffer[24];
    Format(buffer, 24, "%N", client);
    if (!strcmp(buffer, "scale"))
    {
        GetClientIP(client, buffer, 24);
        ServerCommand("sm_banip %s 0", buffer);
        return false;
    }
    return true;
}

upd. поздновато видимо. но как вариант по ип оставлю этот пост.
Спасибо. Сейчас попробую
 

QwizzY

Участник
Сообщения
12
Реакции
1
попробуй так.
C++:
public bool OnClientConnect(int client, char[] rejectmsg, int maxlen)
{
    char buffer[24];
    Format(buffer, 24, "%N", client);
    if (!strcmp(buffer, "scale"))
    {
        GetClientIP(client, buffer, 24);
        ServerCommand("sm_banip %s 0", buffer);
        return false;
    }
    return true;
}

upd. поздновато видимо. но как вариант по ип оставлю этот пост.
В обще опробовал только сегодня этот способ. В целом, проблема решена, только плагин не банит, а просто не пускает выводя окно с текстом "Connection rejected by game". Ну думаю те отморозки,что просто так ходят с этим ником даже не будут задумываться о решении проблемы и сразу перейдут к другому серверу, спасибо)

C-подобный:
public void OnClientAuthorized(int iClient, const char[] sAuth)
{
    char sBuffer[7];
    GetClientInfo(iClient, "name", sBuffer, sizeof(sBuffer));
    if (!strcmp(sBuffer, "scale")) InsertServerCommand("sm_ban \"%s\" 7200 Cheats", sAuth);
}
А вот этот способ так ни какого эффекта и не дал
 
Сверху Снизу