Advertisement
ZiGGi

Pawn-> Anti bad words

Apr 12th, 2012
409
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 0.74 KB | None | 0 0
  1. stock remove_bad_word(text[])
  2. {
  3.     static words[][32] = {"bla","cyk"};
  4.     static exceptions[][32] = {"vobla", "krabla", "mobla","picyk","mucyk"};
  5.    
  6.     new i, j, k, pos, epos, len, epos_buf;
  7.     for (i = 0; i < sizeof(words); i++)
  8.     {
  9.         while ( (pos = strfind(text, words[i], true, pos+1)) != -1 )
  10.         {
  11.             len = strlen(words[i]);
  12.            
  13.             for (j = 0; j < sizeof(exceptions); j++)
  14.             {
  15.                 epos = strfind(text, exceptions[j], true, epos+1);
  16.                 if ( epos != pos - (strlen(exceptions[j]) - len) )
  17.                 {
  18.                     epos = epos_buf;
  19.                     if (j == sizeof(exceptions)-1)
  20.                     {
  21.                         for (k = pos; k < pos+len; k++)
  22.                         {
  23.                             text[k] = '*';
  24.                         }
  25.                     }
  26.                     continue;
  27.                 }
  28.                 else
  29.                 {
  30.                     break;
  31.                 }
  32.             }
  33.             epos_buf = epos;
  34.         }
  35.     }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement