PDA

Просмотр полной версии : [Прочее] Антимат



Geebrox
03.07.2016, 23:11
Описание:


Мощные антимат с исключением, ловит любой мат, который был добавлен в список матов и исключает слова из списка исключений


Код:



Слова (можно дополнять):

new const bad_words[][] =
{
"бля", "сук", "пид", "нах", "бич", "оху"
};

new const ex_words[][] =
{
"корбля", "ребля"
};
Антимат:

stock RemoveBadWords(text[])
{
new bad_pos, ex_pos, stop;
for(new i = 0, j = sizeof(bad_words); i < j; i++)
{
bad_pos = ex_pos = 0;
while(bad_pos != -1)
{
bad_pos = strfind(text, bad_words[i], true,
(bad_pos == 0) ? (0) : (bad_pos+1));
if(bad_pos != -1)
{
for(new k = 0, l = sizeof(ex_words); k < l; k++, ex_pos = 0)
{
while(ex_pos != -1)
{
ex_pos = strfind(text, ex_words[k], true,
(ex_pos == 0) ? (0) : (ex_pos+1));
if(ex_pos != -1)
{
if(ex_pos != bad_pos - (strlen(ex_words[k]) - strlen(bad_words[i])))
{
for(new m = bad_pos, n = m + strlen(bad_words[i]); m < n; m++)
text[m] = '*';
}
stop = 1;
break;
}
}
if(stop == 1)
{
stop = 0;
break;
}
}
}
}
}
return 1;
}


Скрин (в изображение присутствуют неприличные слова!):


http://i.imgur.com/DXDMR7d.jpg


Автор: Я

[ForD]
04.07.2016, 00:39
"сука" литературное)

Nexius_Tailer
04.07.2016, 00:57
А что насчёт учитывания таких исключений, где корень мата в начале этого самого слова исключения? Пример: мандаринка.
Если и такое работает - молодец (проверять на сонную голову лень).
Кстати, когда делал свой антимат, накопил неплохой список матов (http://pastebin.com/RrGfFSxT) и исключений (http://pastebin.com/DY45pcsC).

TheMallard
04.07.2016, 09:35
А что насчёт учитывания таких исключений, где корень мата в начале этого самого слова исключения? Пример: мандаринка.
Если и такое работает - молодец (проверять на сонную голову лень).
Кстати, когда делал свой антимат, накопил неплохой список матов (http://pastebin.com/RrGfFSxT) и исключений (http://pastebin.com/DY45pcsC).

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

vovandolg
04.07.2016, 11:37
Где то видел подобную работу ziggi, а так сто раз задаюсь себе вопросом зачем он)
надо так люди найдут обходные тропы и будут по другому их писать,
а создавать массив с овер9000 слов это лишняя нагрузка будет на чат,
как говорится "вон админы есть, пусть разбираются":big_boss:

Nash_Brigers
04.07.2016, 11:39
Если учесть, что некоторые буквы можно заменять английскими типа "a", "k", "c", "p", "m", то всё это утопия бесполезная.. Кому надо - тот проматерится в любом случае, а цикл только напрягать будет лишний раз..

DeimoS
04.07.2016, 14:06
Чего вы так мата боитесь? Это обычные слова и не более. Хотят материться - пусть матерятся. Главное на оскорбления не давать переходить, а мат - такая же часть языка, как и другие слова.
P.S. Только про детей тут говорить не надо. Если ребёнок играет в игру, суть которой является убийство других людей, мат - это наименьшее зло для его психики.

По поводу кода: далеко не идеален, но и не лютый говнокод. Пойдёт

Seregamil
04.07.2016, 14:51
Автор: Я
Серьезно?
http://ziggi.org/pawn-otlichniy-antimat-dlya-samp-servera/
Настолько похоже, что паливо.

Geebrox
04.07.2016, 15:05
Серьезно?
http://ziggi.org/pawn-otlichniy-antimat-dlya-samp-servera/
Настолько похоже, что паливо.

И че ты этим хочешь сказать? Да может быть и похоже, все антиматы работают почти одинаково, просто у кого то может быть дополнительные функции и все. А код, которого ты кинул, первый раз вижу

ziggi
04.07.2016, 15:05
Серьезно?
http://ziggi.org/pawn-otlichniy-antimat-dlya-samp-servera/
Настолько похоже, что паливо.

Тоже так сначала подумал, но не уверен. Но мой код чище, да и циклов меньше. Хотя я бы сейчас ещё добавил вычисление длины каждого слова из словаря при загрузке, да и ещё пару моментов можно поправить.

Geebrox
04.07.2016, 15:14
Тоже так сначала подумал, но не уверен. Но мой код чище, да и циклов меньше. Хотя я бы сейчас ещё добавил вычисление длины каждого слова из словаря при загрузке, да и ещё пару моментов можно поправить.

Не знаю как можно сравнить твой код и мой, у тебя вообще по другому циклы составлены, да и циклы меньше, сейчас посмотрел.

Seregamil, перед тем как обвинять кого-то в чем-то, пожалуйста будь на 100% уверен. Перепроверь мой код и код ziggi

ARTES
02.08.2016, 20:40
Полностью согласен.