Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Отредактировать плагин Антимат

Статус пользователя Karpen
сообщение 28.4.2011, 13:52
Сообщение #1


Стаж: 15 лет

Сообщений: 368
Благодарностей: 27
Полезность: < 0

Всем здрасте...
Я хочу сделать так, чтоб плагин Swear Replacement не блокировал всю строку которую написал игрок, а именно то слово, каторое я хочу (тоесть укажу в файле)

Например:

Я написал: ty LOL!
Слово LOL запрещено, и будет показано: [mat]
а я хочу чтоб было показано: ty [mat]!

Swear Replacement
Код
#include <amxmodx>
#include <amxmisc>

#define MAX_WORDS 150
#define MAX_REPLACE 50

new g_swearWords[MAX_WORDS][20]
new g_replaceLines[MAX_REPLACE][192]
new g_swearNum
new g_replaceNum

public plugin_init()
{
    register_plugin ( "Swear Replacement", "1.5", "Sutar")
    register_clcmd ( "say", "swearcheck" )
    register_clcmd ( "say_team", "swearcheck" )
    register_concmd ( "amx_addswear", "add_swear", ADMIN_LEVEL_A , "< swear word to add >" )
    register_concmd ( "amx_addreplacement", "add_replacement", ADMIN_LEVEL_A , "< replacement line to add >" )
    readList()
}

readList()
{
    new Configsdir[64]
    new swear_file[64], replace_file[64]
    get_configsdir( Configsdir, 63 )
    format(swear_file, 63, "%s/swearwords.ini", Configsdir )
    format(replace_file, 63, "%s/replacements.ini", Configsdir )

    if ( !file_exists(swear_file) )
    {
        server_print ( "==========================================================" )
        server_print ( "[Swear Replacement] %s file not found", swear_file )
        server_print ( "==========================================================" )
        return
    }
    
    if ( !file_exists(replace_file) )
    {
        server_print ( "==========================================================" )
        server_print ( "[Swear Replacement] %s file not found", replace_file )
        server_print ( "==========================================================" )
        return
    }
    
    new len, i=0
    while( i < MAX_WORDS && read_file( swear_file, i , g_swearWords[g_swearNum], 19, len ) )
    {
        i++
        if( g_swearWords[g_swearNum][0] == ';' || len == 0 )
            continue
        g_swearNum++
    }

    i=0
    while( i < MAX_REPLACE && read_file( replace_file, i , g_replaceLines[g_replaceNum], 191, len ) )
    {
        i++
        if( g_replaceLines[g_replaceNum][0] == ';' || len == 0 )
            continue
        g_replaceNum++
    }

    server_print ( "======================================================" )
    server_print ( "[Swear Replacement] loaded %d Swear words", g_swearNum )
    server_print ( "[Swear Replacement] loaded %d Replacement Lines", g_replaceNum )
    server_print ( "======================================================" )

}

public client_connect(id)
{
    new new_name[32]
    get_user_name ( id, new_name, 31 )

    string_cleaner ( new_name )

    new i = 0
    while ( i < g_swearNum )
    {
        if ( containi ( new_name, g_swearWords[i++] ) != -1 )
        {
            client_cmd ( id, "name ^"No Swear^"" )

            return PLUGIN_CONTINUE
        }
    }
    return PLUGIN_CONTINUE
}
    

public swearcheck(id)
{
    if ( (get_user_flags(id)&ADMIN_LEVEL_A) || !id )
         return PLUGIN_CONTINUE

    new said[192]
    read_args ( said, 191 )

    string_cleaner ( said )

    new i = 0
    while ( i < g_swearNum )
    {
        if ( containi ( said, g_swearWords[i++] ) != -1 )
        {
            new j, playercount, players[32], user_name[32], random_replace = random ( g_replaceNum )
            get_user_name ( id, user_name, 31 )
            get_players ( players, playercount, "c" )

            for ( j = 0; j < playercount; j++)
            {
                if ( get_user_flags(players[j])&ADMIN_LEVEL_A )
                    client_print( players[j], print_chat, "[Swear Replacement] %s : %s",user_name, said )
            }
                    
            copy ( said, 191, g_replaceLines[random_replace] )
            new cmd[10]
            read_argv ( 0, cmd, 9)
            engclient_cmd ( id ,cmd ,said )

            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_CONTINUE
}

public add_swear(id)
{
    if ( ( !(get_user_flags(id)&ADMIN_LEVEL_A) && id ) )
    {
        client_print ( id, print_console, "[Swear Replacement] Access Denied" )
         return PLUGIN_HANDLED
    }

    if ( read_argc() == 1 )
    {
        client_print ( id, print_console, "[Swear Replacement] Arguments not provided" )
         return PLUGIN_HANDLED
    }

    new Configsdir[64]
    new swear_file[64]
    get_configsdir( Configsdir, 63 )
    format ( swear_file, 63, "%s/swearwords.ini", Configsdir )

    read_args ( g_swearWords[g_swearNum], 19 )
    write_file( swear_file, "" )
    write_file( swear_file, g_swearWords[g_swearNum] )
    g_swearNum++

    id ? client_print ( id, print_console, "[Swear Replacement] Swear word added to List" ) : server_print ( "[Swear Replacement] Swear word added to file" )

    return PLUGIN_HANDLED
}

public add_replacement(id)
{
    if ( ( !(get_user_flags(id)&ADMIN_LEVEL_A) && id ) )
    {
        client_print ( id, print_console, "[Swear Replacement] Access Denied" )
         return PLUGIN_HANDLED
    }

    if ( read_argc() == 1 )
    {
        client_print ( id, print_console, "[Swear Replacement] Arguments not provided" )
         return PLUGIN_HANDLED
    }

    new Configsdir[64]
    new replace_file[64]
    get_configsdir( Configsdir, 63 )
    format ( replace_file, 63, "%s/replacements.ini", Configsdir )

    read_args ( g_replaceLines[g_replaceNum], 191 )
    write_file( replace_file, "" )
    write_file( replace_file, g_replaceLines[g_replaceNum] )
    g_replaceNum++

    id ? client_print ( id, print_console, "[Swear Replacement] Replacement Line added to List" ) : server_print ( "[Swear Replacement] Replacement Line added to file" )

    return PLUGIN_HANDLED
}

public string_cleaner( str[] )
{
    new i, len = strlen ( str )
    while ( contain ( str, " " ) != -1 )
        replace ( str, len, " ", "" )

    len = strlen ( str )
    while ( contain ( str, "|<" ) != -1 )
        replace ( str, len, "|<", "k" )

    len = strlen ( str )
    while ( contain ( str, "|>" ) != -1 )
        replace ( str, len, "|>", "p" )

    len = strlen ( str )
    while ( contain ( str, "()" ) != -1 )
        replace ( str, len, "()", "o" )

    len = strlen ( str )
    while ( contain ( str, "[]" ) != -1 )
        replace ( str, len, "[]", "o" )

    len = strlen ( str )
    while ( contain ( str, "{}" ) != -1 )
        replace ( str, len, "{}", "o" )

    len = strlen ( str )
    for ( i = 0; i < len; i++ )
    {
        if ( str[i] == '@' )
            str[i] = 'a'

        if ( str[i] == '$' )
            str[i] = 's'

        if ( str[i] == '0' )
            str[i] = 'o'

        if ( str[i] == '7' )
            str[i] = 't'

        if ( str[i] == '3' )
            str[i] = 'e'

        if ( str[i] == '5' )
            str[i] = 's'

        if ( str[i] == '<' )
            str[i] = 'c'

        if ( str[i] == '3' )
            str[i] = 'e'

    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя *Silence*
сообщение 11.5.2011, 3:12
Сообщение #2


Стаж: 18 лет

Сообщений: 249
Благодарностей: 50
Полезность: 323

Меценат Меценат

Ставь альтернативный плагин антимата, RS Advanced Swear Filter принцип работы такой же если настроить норм, заменяет не всё сообщение, только мат
Вот: https://c-s.net.ua/forum/topic9668.html
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
vip-servera
сообщение 12.5.2011, 13:56
Сообщение #3
Стаж: 15 лет

Сообщений: 211
Благодарностей: 11
Полезность: 0

не ставте эти фигни антимат антиспам через них спокойно можно сервер нагрузить 100% и он выключиться
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sw1ch
сообщение 12.5.2011, 16:18
Сообщение #4
Стаж: 15 лет

Сообщений: 616
Благодарностей: 228
Полезность: < 0

Цитата(vip-servera @ 12.5.2011, 14:56) *
не ставте эти фигни антимат антиспам через них спокойно можно сервер нагрузить 100% и он выключиться

:biggrin:
Ты меня всё удивляешь больше и больше)))))))))

Антимат не советую ставить, если только слова которые оскорбляют человека - "чмо.*** и тд."
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Karpen
сообщение 14.5.2011, 8:49
Сообщение #5


Стаж: 15 лет

Сообщений: 368
Благодарностей: 27
Полезность: < 0

Sw1ch,
Ну так, вот я и хочу так сделать, но в всех плагинов, антимата, там вся строка меняется, и ставиться [mat], и мне так не надо =(
надо чтоб убирало мат...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя delster
сообщение 14.5.2011, 10:26
Сообщение #6


Стаж: 16 лет

Сообщений: 57
Благодарностей: 9
Полезность: 124

Stop Chat Ad из той же серии, блокирует целую строку с рекламой, вставляет * символы в мат, и ставит бан за чит сообщения, за время работа на сервере проблем с ним не замечал. Пробуйте
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
vip-servera
сообщение 14.5.2011, 12:44
Сообщение #7
Стаж: 15 лет

Сообщений: 211
Благодарностей: 11
Полезность: 0

если вам без него ни как то значение антифлуда 2 ставте не менше
Цитата
Sw1ch

Удивляйся далше при флуде 3 людей и при спаме твой сервер тра*нуть
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sw1ch
сообщение 14.5.2011, 18:10
Сообщение #8
Стаж: 15 лет

Сообщений: 616
Благодарностей: 228
Полезность: < 0

vip-servera, Ты тупой?

Цитата
если вам без него ни как то значение антифлуда 2 ставте не менше

И после этих слов ты пишешь, следующее...
Цитата
Удивляйся далше при флуде 3 людей и при спаме твой сервер тра*нуть

Ты думаешь. что на моих серверах нету элементарной защиты?
В первую очередь смотри чтобы твои как то не "трахнуть" а потом уже за чужие сервера беспокойся... tease.gif

Автор, вот попробуй, мб то что ты ищешь.
Прикрепленный файл  antimat.rar ( 20,36 килобайт ) Кол-во скачиваний: 9


Отредактировал: Sw1ch, - 14.5.2011, 18:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Karpen
сообщение 14.5.2011, 20:29
Сообщение #9


Стаж: 15 лет

Сообщений: 368
Благодарностей: 27
Полезность: < 0

Sw1ch,
он блокирует всю строчку.
мне нужно, чтоб он заменял слова мат, ани всю строчку =(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя primm
сообщение 14.5.2011, 21:31
Сообщение #10


Стаж: 16 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

Цитата(*Silence* @ 11.5.2011, 4:12) *
Ставь альтернативный плагин антимата, RS Advanced Swear Filter принцип работы такой же если настроить норм, заменяет не всё сообщение, только мат
Вот: https://c-s.net.ua/forum/topic9668.html

sv_censor_custom "mat" //- The Custom Character used for Censoring System

Отредактировал: primm, - 14.5.2011, 21:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
vip-servera
сообщение 15.5.2011, 7:59
Сообщение #11
Стаж: 15 лет

Сообщений: 211
Благодарностей: 11
Полезность: 0

Цитата
Sw1ch

:biggrin:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя jtiq
сообщение 15.5.2011, 14:13
Сообщение #12


Иконка группы

Стаж: 18 лет

Сообщений: 1717
Благодарностей: 767
Полезность: 979

Меценат Меценат

https://c-s.net.ua/forum/topic16797s0.html?...mp;#entry111886
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
vip-servera
сообщение 20.5.2011, 17:38
Сообщение #13
Стаж: 15 лет

Сообщений: 211
Благодарностей: 11
Полезность: 0

Лучше поставить замену игроку конфига при входе на сервер это будет реще
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: