Advertisement
Untonyst

Пример использования ScanMessage()

Dec 17th, 2015
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.01 KB | None | 0 0
  1. /*
  2.    
  3.     Один из множества вариантов использования функции ScanMessage()
  4.    
  5.     Copyright (c) 2015 Untonyst
  6.    
  7. */
  8.  
  9.  
  10. ///////////////////////////
  11.  
  12. forward uCallKick(playerid);
  13. public uCallKick(playerid)
  14. {
  15.     Kick(playerid);
  16. }
  17.  
  18. stock fix_Kick(playerid)
  19. {
  20.     if (0 == IsPlayerConnected(playerid))
  21.         return 0;
  22.  
  23.     SetTimerEx("uCallKick", 200, false, "i", playerid);
  24.     return 1;
  25. }
  26. #if defined _ALS_Kick
  27.     #undef Kick
  28. #else
  29.     #define _ALS_Kick
  30. #endif
  31.  
  32. #define Kick fix_Kick
  33.  
  34. ///////////////////////////
  35.  
  36. static const
  37.     white_list[][] =
  38. {
  39.     "vk.com",
  40.     "sa-mp.com"
  41. };
  42.  
  43. static const
  44.     black_list[][] =
  45. {
  46.     ".ru",
  47.     ".ру",
  48.     ".рy",
  49.     ".com",
  50.     ".ком",
  51.     ".кам",
  52.     ".net",
  53.     ".нет",
  54.     ".нэт",
  55.     ".org",
  56.     ".орг",
  57.     ".орк",
  58.     ".su",
  59.     ".су",
  60.     ".online",
  61.     ".онлайн",
  62.     ".онлаин",
  63.     ".анлайин"
  64. };
  65.  
  66.  
  67. RemoveSpaces_DC(string[])
  68. {
  69.     static pos, pos2, c;
  70.     for (pos = 0, pos2 = 0;; ++pos)
  71.     {
  72.         switch (c = string[pos])
  73.         {
  74.         case ' ': continue;
  75.         case '\0':
  76.             {
  77.                 string[pos2] = '\0';
  78.                 return;
  79.             }
  80.         }
  81.         string[pos2++] = c;
  82.     }
  83. }
  84.  
  85. stock ScanMessage(playerid, text[])
  86. {
  87.     new default_text[144];
  88.     strcat(default_text, text);
  89.     RemoveSpaces_DC(default_text);
  90.  
  91.     new text_size = strlen(default_text);
  92.     for (new j; j < text_size; j ++)
  93.     {
  94.         for (new k; k < sizeof(white_list); k ++)
  95.         {
  96.             if (strfind(default_text[j], white_list[k], true) != -1)
  97.             return 1;
  98.         }
  99.         for (new k; k < sizeof(black_list); k ++)
  100.         if (strfind(default_text[j], black_list[k], true) != -1)
  101.         {
  102.             OnBannedWordDetect(playerid, black_list[k]);
  103.             return 0;
  104.         }
  105.     }
  106.     return 1;
  107. }
  108.  
  109. forward OnBannedWordDetect(playerid, text[]);
  110. public OnBannedWordDetect(playerid, text[])
  111. {
  112.     SendClientMessage(playerid, -1, "На сервере запрещено указывать ссылки сторонних ресурсов!");
  113.     Kick(playerid);
  114. }
  115.  
  116. public OnPlayerText(playerid, text[])
  117. {
  118.     if (ScanMessage(playerid, text) == 0)
  119.         return 0;
  120.     return 1;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement