• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
[patch] Антимат
DeimosLand
Сержант
Выкладываю для Вас патч - Антимат.

Что может делать скрипт:

  • фильтровать чат
  • определять мат в чате
  • попытки обменять персонажей
  • оскорбление администрации

Code
bool CheckMessage( Player* player, std::string& msg)
      {
          if( IgnoreGMFilterCheck && player->GetSession()->GetSecurity() >= SEC_MODERATOR )
              return true;
          int val = Filter->check(msg);
          if( val )
          {
              switch (val)
              {
              case 1:
                  if( bFinePlayer )
                  {
                      if( FinePlayer(player,mat_gold_amount) )
                          player->GetSession()->SendNotification("You lost %d gold. Swearing is not allowed",mat_gold_amount);
                      else
                      {
                          PunishPlayer(player);
                          player->GetSession()->SendNotification("Swearing is not allowed. You got punished because you have no money to pay the fine");
                      }
                  }
                  else
                  {
                      msg = "";
                  }
                  sLog->outAntimat("[MAT] Player %s sends: %s",player->GetName(), msg.c_str());
                  break;
              case 2:
                  if( bFinePlayer )
                  {
                      if( FinePlayer(player,obmen_gold_amount) )
                          player->GetSession()->SendNotification("Character exchange is forbidden on this server. You lost %d gold",obmen_gold_amount);
                      else
                      {
                          PunishPlayer(player);
                          player->GetSession()->SendNotification("Character exchange is forbidden on this server. You got punished because you have no money to pay the fine");
                      }
                  }
                  player->GetSession()->m_muteTime = time(0) + 60;
                  sLog->outAntimat("[OBMEN] Player %s sends: %s",player->GetName(), msg.c_str());
                  msg = "";
                  break;
              case 3:
                  if( bFinePlayer )
                  {
                      if( FinePlayer(player,jokes_gold_amount) )
                          player->GetSession()->SendNotification("Stupid jokes are forbidden on this server. You lost %d gold",jokes_gold_amount);
                      else
                      {
                          PunishPlayer(player);
                          player->GetSession()->SendNotification("Stupid jokes are forbidden on this server. You got punished becauseyou have no money to pay the fine");
                      }
                  }
                  player->GetSession()->m_muteTime = time(0) + 60;
                  sLog->outAntimat("[TRASH] Player %s sends: %s",player->GetName(), msg.c_str());
                  msg = "";
                  break;
              case 4:
                  if( bFinePlayer )
                  {
                      if( FinePlayer(player,offence_gold_amount) )
                          player->GetSession()->SendNotification("Offence is not allowed on this server. You lost %d gold",offence_gold_amount);
                      else
                      {
                          PunishPlayer(player);
                          player->GetSession()->SendNotification("You got punished because you have no money to pay the fine");
                      }
                  }
                  player->GetSession()->m_muteTime = time(0) + 60;
                  sLog->outAntimat("[OFFENCE] Player %s sends: %s",player->GetName(), msg.c_str());
                  msg = "";
                  break;
              }
              return false;
          }
          return true;
      }

Настройка производится в worldserver.conf

Вывод в antimat.log:

Code
2011-08-27 15:35:34 [OBMEN] Player Test sends: обменяю паладина 6700 гс в пм
2011-08-27 15:36:35 [OFFENCE] Player Test sends: админ мудак
2011-08-27 15:37:46 [MAT] Player Test sends: mUdаК
2011-08-27 15:38:51 [OBMEN] Player Test sends: Obmenjau pа1adina в пм
2011-08-27 15:40:28 [MAT] Player Test sends: P1ZdеЦ


Скачать патч в ядро можно тут

Источник
Сообщение # 1 отредактировано Dimitro - Суббота, 28.04.2012, 22:17
ProNarkozic
Скаут
мм вещь полезная но полезней было бы если бы оно само давало муты за мат, а не писало кто материться
Сообщение # 2 написано 04.05.2012 в 15:18
huyok
Рыцарь
DeimosLand, как его правильно накатить на ядро?? напиши пожайлуста а то я в этом полный 0.

Добавлено (06.05.2012, 01:08)
---------------------------------------------
только в самых мельчайших подробностях а то я ещё и не пойму)
Сообщение # 3 отредактировано huyok - Воскресенье, 06.05.2012, 02:01
_dm666
<3 Death Metal
Если бы вы еще понимали, о чём тут идет речь.
Сообщение # 4 написано 06.05.2012 в 15:13
Naxios
Скаут
Quote (ProNarkozic)
мм вещь полезная но полезней было бы если бы оно само давало муты за мат, а не писало кто материться


а Можно ли запрогить Бота с 1 лвл доступа на мут и чтобы как подобное появлялось наказывал?
Сообщение # 5 написано 11.05.2012 в 17:42
Repack
▅ ▇ █ ♪♫] ♫♪ █ ▇ ▅
Naxios, а не проще написать, чтобы этот антимат сразу мутил? это оооочень и очень легко..во всяком случае легче, чем писать
Quote (Naxios)
Бота с 1 лвл доступа на мут
Сообщение # 6 написано 12.05.2012 в 05:58
Naxios
Скаут
DeimosLand
Сможешь сделать автовыдачу мута?? если да, то сделай за Мат = 10 мин, оскорбление Администрации 1440м, обмен - 600м (запили в спойлер)
Сообщение # 7 написано 13.05.2012 в 03:35
WorldCroFF
Капрал
Quote (DeimosLand)
 player->GetSession()->m_muteTime = time(0) + 60;

Это вам не о чём не говорит ? не ?
Сообщение # 8 написано 13.05.2012 в 05:40
DeimosLand
Сержант
Naxios, я не гуру C++. За это надо платить) За бесплатно тебе тут никто ничего не сделает.
WorldCroFF, тут фактически каждый почему то этого не видит =|
Сообщение # 9 отредактировано DeimosLand - Воскресенье, 13.05.2012, 10:19
LASCIVIOUS_BEAR
Скаут
Патчк старый и насколько помню переписаный с мангоса,нужно кучу проверок дописывать иначе он будет выдавать мут даже не за матное слово,нужно создавать отдельную таблицу лексикона
Сообщение # 10 написано 13.05.2012 в 16:06
ThisNoName
Suum Cuique
DeimosLand, весьма бесполезная публикация бесполезной фигни. sad
Сообщение # 11 написано 19.07.2012 в 13:38
exersist
-[Marsascala]-
Думаю каму нужно будет полезно. Хотя легче чем в смотреть в лог, легче смотреть в чат) Но +++ заслужил)
---||| Продаю акк в CrossFire тык |||---
---||| 3 капсульные оружия, 4 скина! Всего 1000руб.!!! |||---

Сообщение # 12 написано 19.07.2012 в 23:18
  • Страница 1 из 1
  • 1
Поиск: