Русское сообщество по скриптингу

Блокировка рекламы в чате (Stop Chat Ad)

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только работоспособных плагинов для AMX Mod X. Новые плагины нужно выкладывать в разделе "Новые плагины".

Блокировка рекламы в чате (Stop Chat Ad)

Сообщение MastaMan » 09 апр 2010, 02:18

tmp_logo_stop_chat_ad2.png


Название: Stop Chat AD
Версия: 2.0.0 (Официальный релиз)
Автор плагина: MastaMan
----------------------
Доступные языки: RU, UA, EN
Источник: Вы должны зарегистрироваться, чтобы видеть ссылки.

#########################################

ВНИМАНИЕ! Запрещается удаление копирайтов и распространение без указания автора плагина.
Обязательно оставляйте кликабельную ссылку на официальный сайт автора!

Автор не несет никакой ответственности за возможные повреждения ваших компьютеров, Вы качаете и используете всё на свой
страх и риск
!


#########################################

Вы должны зарегистрироваться, чтобы видеть ссылки.


Описание:

Stop Chat Ad - многофункциональный, гибкий и простой в использовании плагин, который позволяет бороться с рекламой и не желательными словами в чате.

Плагин не нуждается в использовании дополнительных модулей, но это никак не влияет на его эффективность, поскольку в нем реализован совершенно новый подход и улучшенный алгоритмы работы.

Stop Chat Ad можно использовать сразу же после установки, текущие настройки позволяют блокировать 95% всей чат-рекламы, блокируя IP адреса и доменные имена.
Благодаря новой системе настроек, вы можете добиться максимальной эффективности в зависимости от ваших потребностей.

Главные особенности:

  1. Гибкая система настроек
  2. Словарь рекламных сообщений
  3. Система определения спамеров
  4. Система обнаружения IP адресов
  5. Система наказаний
  6. Система уведомлений игроков и администраторов
  7. Система ведения статистики и логгирования
  8. Мультиязычность

И многое другое...

Установка:

1) Разархивируйте архив.
2) Файл plugins\stop_chat_ad.amxx скопируйте в папку cstrike\addons\amxmodx\plugins\ на вашем сервере.
3) Пропишите stop_chat_ad.amxx в cstrike\addons\amxmodx\configs\plugins.ini на вашем сервере.
4) Директорию configs\stop_chat_ad скопируйте в cstrike\addons\amxmodx\configs на вашем сервере.
5) Файл локализации data\lang\stop_chat_ad.txt скопируйте в cstrike\addons\amxmodx\data\lang\ на вашем сервере.
6) Перезагрузите сервер.

ВНИМАНИЕ! Другие установленные плагины на вашем сервере, работающие с чатом могут повлиять на работу Stop Chat AD.
Для избежания конфликтов плагинов прочитайте "Рекомендации по использованию плагина" в Stop Chat AD.chm

Системные требования:

Системные требования:

1) Counter-Strike 1.6
2) AMX Mod X 1.8.x
3) Права на запись в директорию cstrike/addons/amxmodx/data/

Команды:

Чат-команды:
/spam - показ MOTD статистики заблокированных сообщений.
(или spam в консоли)

Команды администратора:
sca_reload - переазагрузить всю кофигурацию плагина.

Настройка:

Подробную информацию о настройке основного конфигурационного файла и словаря рекламных сообщений читайте в Stop Chat AD.chm , укомплектованного в архив!

Список изменений:
1.0.0
Первый релиз

1.0.1
* Заменены рекламные слова :27015, :27016 на :27
+ Добавлен иммунитет для администратора

2.0.0
* Полностью изменен алгоритм работы
+ Добавлена мультиязычность
+ Добавлена система настроек
+ Добавлена система наказаний
+ Добавлена система уведомления
+ Добавлена система логгирования
+ Добавлена система сбора статистики
+ Добавлено 13 MOTD шаблонов

2.0.0 [BETA2]
* Оптимизирован код
* Обновлен словарь рекламных сообщений
+ Добавлена функция блокирования чат-команд

2.0.0 [BETA3]
* Заменено общее название маркеров с SCA_PUNISH на MARKER_TYPE
* Обновлен словарь рекламных сообщений
+ Добавлена функция маскирования слов символами "****"

2.0.0 [BETA4]
+ Добавлена функция замены слов

2.0.0 [BETA5]
* Оптимизирован код
* Обновлен словарь рекламных сообщений
* Заменено общее название маркеров на более понятные
* Улучшена система ведения логов
+ Добавлен маркер бана - [BAN]
+ Добавлен маркер слов исключений - [GOOD WORD]
+ Добавлен настраиваемый маркер для собственного наказания -[CUSTOM]
+ Добавлено несколько языковых ключей
+ Добавлены настройки для некоторых наказаний
+ Улучшена обработка команд для маркера [SPAM]
- Исправлена ошибка "Run time error 25"

2.0.0 [Официальный релиз]
* Создан логотип
* Создан раздел справки


Благодарности:

- ViP.Predator
- vnycha
- Shalun

Утверждено. //Leonidddd
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось MastaMan 01 май 2010, 23:31, всего редактировалось 4 раз(а).
Аватара пользователя
MastaMan
 
Сообщения: 24
Зарегистрирован: 02 ноя 2009, 00:36
Благодарил (а): 5 раз.
Поблагодарили: 19 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение ViP.Predator » 09 апр 2010, 11:14

Когда пишите движки таких вещей обращайте внимание на производительность "ядра" плагина, в данном случае это функция проверяющая say-команды: FUNC_STOP_AD(id)
1. Здесь лишние циклы
[pawn]for(new i; i < MAX_BAD_WORDS; i++) [/pawn]
Количество считанных из конфига слов для блокировки вовсе не MAX_BAD_WORDS, зачем каждый раз каждое сообщение проверять по 256 циклов только на обычном сравнении?

2. Второе место это функция пытающаяся определить IP внутри сообщения и сейчас речь не об эффективности этой функции, а о скорости обработки: FUNC_IS_IP(szArg)
Два полных цикла проходящих по одной и той же строке это шикарно, даже с учетом того, что 2 раз проходится только при наличии в строке 3 точек.


[pawn]FUNC_IS_IP(szText[])
{
    new iDotCount, iNumCount, i, len = strlen(szText)

    for( i = 0; i < len; i++ )
        switch( szText[i] )
        {
            case '.':            iDotCount++;
            case '0' .. '9':    iNumCount++;
        }

    if( iDotCount > 2 && iNumCount > 6) return 1

    return 0
} [/pawn]
И это еще не самый оптимальный вариант, если смотреть только на код не учитывая самого метода определения IP. Например смысла проверять сообщение <10 знаков в данной ситуации нету и т.д.
Таких вот оптимизайций можно сделать множество.
Оптимизируюя вот такие "узкие" места можно уже, на самом деле, на остальное внимание не обращать.



ЗЫ
Жаль, что это всего лишь еще одна версия метода перебора...
Человеку свойственно ошибаться, и он пользуется этим свойством часто и с удовольствием!
Аватара пользователя
ViP.Predator
 
Сообщения: 115
Зарегистрирован: 14 окт 2009, 15:59
Откуда: Тверь
Благодарил (а): 1 раз.
Поблагодарили: 99 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение MastaMan » 10 апр 2010, 00:01

ViP.Predator, да толково, спасибо за дельный совет с определением IP, действительно немного накрутил))

Жаль, что это всего лишь еще одна версия метода перебора...

Есть другие идеи? :dntknw:
Аватара пользователя
MastaMan
 
Сообщения: 24
Зарегистрирован: 02 ноя 2009, 00:36
Благодарил (а): 5 раз.
Поблагодарили: 19 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение ViP.Predator » 10 апр 2010, 00:50

MastaMan писал(а):Есть другие идеи? :dntknw:

Ну идеи это самое ценное, когда будут свежие - появится что-то типа UFPS Anti Advertised, только уже для работы с запрещенными выражениями. Самое главное "движок", а "обвесить" его уже дело техники.
Человеку свойственно ошибаться, и он пользуется этим свойством часто и с удовольствием!
Аватара пользователя
ViP.Predator
 
Сообщения: 115
Зарегистрирован: 14 окт 2009, 15:59
Откуда: Тверь
Благодарил (а): 1 раз.
Поблагодарили: 99 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение MastaMan » 10 апр 2010, 01:56

Плагин обновлен до версии 2.0.0[BETA2]

Код: Выделить всё
2.0.0 [BETA2]
   * Оптимизирован код
   * Обновлен словарь рекламных сообщений
   + Добавлена функция блокирования чат-команд


Благодарности:

- ViP.Predator


Первый пост обновлен!
Аватара пользователя
MastaMan
 
Сообщения: 24
Зарегистрирован: 02 ноя 2009, 00:36
Благодарил (а): 5 раз.
Поблагодарили: 19 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение MastaMan » 12 апр 2010, 23:32

Плагин обновлен до версии 2.0.0[BETA4]

Код: Выделить всё
2.0.0 [BETA3]
   * Заменено общее название маркеров с SCA_PUNISH на MARKER_TYPE
   * Обновлен словарь рекламных сообщений
   + Добавлена функция маскирования слов символами "****"

2.0.0 [BETA4]
   + Добавлена функция замены слов


Благодарности:

- ViP.Predator


Качаем в первом посту!
Последний раз редактировалось MastaMan 13 апр 2010, 19:52, всего редактировалось 1 раз.
Аватара пользователя
MastaMan
 
Сообщения: 24
Зарегистрирован: 02 ноя 2009, 00:36
Благодарил (а): 5 раз.
Поблагодарили: 19 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение a.aqua » 12 апр 2010, 23:52

Плагин обновлен до версии 2.0.0[BETA2]

Поправь

2.0.0 [BETA4]
+ Добавлена функция замены слов
a.aqua
 
Сообщения: 369
Зарегистрирован: 08 сен 2009, 16:43
Благодарил (а): 146 раз.
Поблагодарили: 138 раз.
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение vnycha » 13 апр 2010, 00:02

Аватара пользователя
vnycha
 
Сообщения: 87
Зарегистрирован: 12 дек 2009, 23:29
Откуда: Сыктывкар
Благодарил (а): 21 раз.
Поблагодарили: 23 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение MastaMan » 13 апр 2010, 19:56

Каждый плагин хорош по своему, я не могу сказать что один хуже или лучше, каждый из них обладает разнообразным функционалом и какой более подходящий, удобней и практичней,
думаю решать вам - пользователям.
Аватара пользователя
MastaMan
 
Сообщения: 24
Зарегистрирован: 02 ноя 2009, 00:36
Благодарил (а): 5 раз.
Поблагодарили: 19 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Блокировка рекламы в чате (Stop Chat Ad)

Сообщение ICEberg » 13 апр 2010, 21:39

MastaMan
Как всегда красавчик!!!
Все твои работы классные!!! молодец
Большая просьба к тебе переделать плагин русский Name автор которого DJ WEST
Я знаю у тебя все гараздо кручи чем кто либо его переделает!
Аватара пользователя
ICEberg
 
Сообщения: 13
Зарегистрирован: 13 дек 2009, 20:32
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

След.

Вернуться в Утвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7