Advertisement
DraKiNs

[FS] Cleaner Chat

Jun 26th, 2011
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.13 KB | None | 0 0
  1. public OnPlayerText(playerid,text[])
  2. {
  3.     if(strlen(text) > 0x40) {
  4.         SendClientMessage(playerid,0xC9170EFF,"Limite de caracters atingido, resuma");
  5.         return false;
  6.     }
  7.     return isValidBadWord(playerid,text);
  8. }
  9.  
  10.  
  11. /*=============================================================================
  12.  
  13.                      Cleanner Chat
  14.             @ author    - DraKiNs (www.ips-team.blogspot.com)
  15.             @ date      - 2 Junho 2010
  16.             @ update    - 2 Junho 2011
  17.  
  18. //=============================================================================*/
  19.  
  20. stock isValidBadWord(iPlayer,sStringText[])
  21. {
  22.  
  23.     new
  24.         iLoop   = 0,
  25.         iCount  = 0,
  26.         iAndress= 0,
  27.         sTemp[0065],
  28.         sText[0065];
  29.  
  30.     new sPalavras[][] = {
  31.         "buceta",
  32.         "cu",
  33.         "porra",
  34.         "cadela",
  35.         "viado"
  36.     };
  37.  
  38. #define isLower(%0)             ((%0 >= 0x61 && %0 <= 0x7A))
  39. #define setLetter(%0)           (%0 = ((%0== 0x34) ? 0x61 : (%0== 0x33) ? 0x65 : (%0== 0x35) ? 0x73 :(%0== 0x38) ? 0x62 : (%0== 0x37) ? 0x74 : (%0== 0x30) ? 0x6F : (%0== 0x31) ? 0x69 : %0))
  40.  
  41.     strcat(sText,sStringText);
  42. // Filtrar Texto
  43.     iLoop = 0;
  44.     for( ; sText[iLoop] ; ++iLoop) {
  45.         setLetter(sText[iLoop]);
  46.         if((sText[iLoop] >= 0x41 && sText[iLoop] <= 0x5A)) {
  47.             sStringText[iLoop] += 0x20;
  48.         }
  49.         if(isLower(sText[iLoop])) {
  50.             sTemp[iCount++] = (!iCount || iCount && sTemp[iCount - 1] != sText[iLoop]) ? (sText[iLoop]) : (sTemp[iCount--]);
  51.         }
  52.         else {
  53.             iAndress++;
  54.         }
  55.     }
  56.  
  57. // Checar Palavreado
  58.     iLoop = 0;
  59.     for ( ; iLoop < sizeof(sPalavras) ; iLoop++) {
  60.         if(strfind(sTemp,sPalavras[iLoop],true) != -1) {
  61.             SendClientMessage(iPlayer,3373731583,"Por favor, cuidado com que fale, suspeita de palavreado ...");
  62.             return false;
  63.         }
  64.     }
  65. // Checar Publicação
  66.     if (iAndress >= 0x8 && iAndress <= 0x20) {
  67.         iLoop = 2;
  68.         SendClientMessage(iPlayer,0xC9170EFF,"Kickado por publicar");
  69.         Kick(iPlayer);
  70.         return false;
  71.     }
  72.     return true;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement