Требует плагин (бан за определенный символ в нике)

zloy911

zloygames.com
Сообщения
370
Реакции
50
Доброго времени суток, нужно написать плагин, который будет банить игрока по ip на сервере CSS OB и CSGO если у него есть определенный символ в нике, т.е. 2 проверки, 1-я при входе игрока на сервер, 2-я при смене ника игроком уже непосредственно на сервере, желательно чтобы бан отрабатывался МА.
Предложения по цене пожалуйста в ЛС.
 

xek

Рыба клоун
Сообщения
1,652
Реакции
636
Доброго времени суток, нужно написать плагин, который будет банить игрока по ip на сервере CSS OB и CSGO если у него есть определенный символ в нике, т.е. 2 проверки, 1-я при входе игрока на сервер, 2-я при смене ника игроком уже непосредственно на сервере, желательно чтобы бан отрабатывался МА.
Предложения по цене пожалуйста в ЛС.
АнтиСюрикенСистем переделать с кика на бан и будет тебе плагин.
 

Deluks

Верховное DNO|
Сообщения
1,853
Реакции
812
Доброго времени суток, нужно написать плагин, который будет банить игрока по ip на сервере CSS OB и CSGO если у него есть определенный символ в нике, т.е. 2 проверки, 1-я при входе игрока на сервер, 2-я при смене ника игроком уже непосредственно на сервере, желательно чтобы бан отрабатывался МА.
Предложения по цене пожалуйста в ЛС.
@GARAYEV Этот дядька тебе поможет =)
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Доброго времени суток, нужно написать плагин, который будет банить игрока по ip на сервере CSS OB и CSGO если у него есть определенный символ в нике, т.е. 2 проверки, 1-я при входе игрока на сервер, 2-я при смене ника игроком уже непосредственно на сервере, желательно чтобы бан отрабатывался МА.
Предложения по цене пожалуйста в ЛС.
C++:
#include <sourcemod>
#include <materialadmin>

//здесь пишешь нужные совпадения
char czExp[][] = {
    "",
    "",
    ""
}

public void OnPluginStart()
{
    HookEvent("player_changename", Event_ChangeName);
}

public void OnClientPutInServer(client)
{
    char name[32];
    GetClientName(client, name, sizeof(name));
    Check(client, name);
}

public Action Event_ChangeName(Event hEvent, char[] sEvent, bool bDontBroadCast)
{
    char buffer[32];
    int client = GetClientOfUserId(hEvent.GetInt("userid"));
    hEvent.GetString("newname", buffer, sizeof(buffer));
    Check(client, buffer);
}

void Check(int client, char[] name)
{
    int tmpvalue = 0;
    for(int i = 0; i < sizeof(czExp); i++)
    {
        if(StrContains(name,czExp[i]))
        {
            tmpvalue++;
        }
    }
    if(tmpvalue>0)
    {
        MABanPlayer(0, client, MA_BAN_IP, 0, "Bad Nickname");
    }
}
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@Palonez, ну можно чуть проще было сделать (и в цикле <= нужно заменить на <):
C-подобный:
#pragma semicolon 1

#include <materialadmin>

//здесь пишешь нужные совпадения
char FORBIDDEN[][] =
{
    "",
    "",
    ""
};

public void OnPluginStart()
{
    HookEvent("player_changename", Event_ChangeName);
}

public void OnClientPutInServer(int client)
{
    Check(client, null);
}

public void Event_ChangeName(Event event, char[] name, bool bDontBroadCast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    if(client) Check(client, event);
}

stock void Check(int client, Event event)
{
    if(IsFakeClient(client)) return;

    char buffer[MAX_NAME_LENGTH];
    if(!event) GetClientName(client, buffer, sizeof(buffer));
    else event.GetString("newname", buffer, sizeof(buffer));

    for(int i; i < sizeof(FORBIDDEN); i++) if(StrContains(buffer, FORBIDDEN[i]) != -1)
    {
        MABanPlayer(0, client, MA_BAN_IP, 0, "Bad Nickname");
        break;
    }
}
 
Последнее редактирование:

zloy911

zloygames.com
Сообщения
370
Реакции
50
@Palonez, @Grey83, спасибо за помощь, но вот странная штука, вставляю символ ุ и банит при входе даже если в нике нет этого символа. Пробовал менять кодировку исходника в utf-8 и ansi

 

Ganter1234

Участник
Сообщения
1,149
Реакции
667
@Palonez, @Grey83, спасибо за помощь, но вот странная штука, вставляю символ ุ и банит при входе даже если в нике нет этого символа. Пробовал менять кодировку исходника в utf-8 и ansi

Замени проверку:
for(int i; i < sizeof(FORBIDDEN)-1; i++) if(StrContains(buffer, FORBIDDEN[i]))
{
    MABanPlayer(0, client, MA_BAN_IP, 0, "Bad Nickname");
    break;
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@zloy911, ты же пустые строки в массиве не оставлял?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@zloy911, символ в массиве только один?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@zloy911, тогда у тебя код должен выглядеть вот так
Сообщения автоматически склеены:

Кстати, в проверке забыл одну вещь:
должно быть if(StrContains(buffer, "символ") != -1), а не if(StrContains(buffer, "символ"))
 

Вложения

  • ban_bad_symbol.sp
    724 байт · Просмотры: 11

zloy911

zloygames.com
Сообщения
370
Реакции
50
@zloy911, тогда у тебя код должен выглядеть вот так
Сообщения автоматически склеены:

Кстати, в проверке забыл одну вещь:
должно быть if(StrContains(buffer, "символ") != -1), а не if(StrContains(buffer, "символ"))


@Grey83, это уже в исходнике или в предыдущей версии ?
 

zloy911

zloygames.com
Сообщения
370
Реакции
50
@Grey83, поставил на сервер плагин, перед входом на сервер добавил символ перед ником, реакции от плагина нет.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@zloy911, в 29-й строке в кавычках именно тот символ?
М/б у меня неправильно скопировался с форума.
 

zloy911

zloygames.com
Сообщения
370
Реакции
50
@Grey83, я прямо из исходника его и скопировал в ник, я уже думаю может символ ломает код...
 

zloy911

zloygames.com
Сообщения
370
Реакции
50
Тема актуальна, нужна рабочая версия естественно с оплатой за труд.
 

zloy911

zloygames.com
Сообщения
370
Реакции
50
Подниму тему, может найдется исполнитель.
 
Сверху Снизу