Advertisement
MisieQ

Ad-Block 1.1.2

May 30th, 2015
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.49 KB | None | 0 0
  1. #include < amxmodx >
  2. #include < amxmisc >
  3. #include < regex >
  4.  
  5. #define MAX 32
  6.  
  7. //#define PATTERN "(?:(?:2\s*5\s*[0-5]|2\s*[0-4]\s*[0-9]|1\s*[0-9]\s*[0-9]|[1-9]?\s*[0-9])\s*\.\s*){3}(?:2\s*5\s*[0-5]|2\s*[0-4]\s*[0-9]|1\s*[0-9]\s*[0-9]|[1-9]?\s*[0-9])"
  8. new const PATTERN[] = "((\d{1,3}[^^\d]+){3}\d{1,3})";
  9.  
  10. // Flaga Admina, zeby mogl reklamowac inne nasze serwery w nicku i say :P [ Standardowo: ADMIN_RESERVATION | czyli flaga "b" ]
  11. #define ADMIN_FLAGA ADMIN_RESERVATION
  12.  
  13. new const Powod[ ][ ] = {
  14.     "Reklamowanie na Czacie",
  15.     "Reklamowanie w Nazwie Gracza",
  16.     "Proba zmiany Nazwy Gracza na Reklame w trakcie gry"
  17. };
  18.  
  19. new gFile[ 128 ], gName[ MAX ], gCvar[ 3 ];
  20.  
  21. public plugin_init( ) {
  22.    
  23.     register_plugin( "Ad-Block", "1.1.2", "Misiaczek" );
  24.    
  25.     /* Czat */
  26.     register_clcmd( "say", "Czat" );
  27.     register_clcmd( "say_team", "Czat" );
  28.    
  29.     /* Logi */
  30.     get_localinfo( "amxx_logs", gFile, 127 );
  31.     formatex( gFile, 127, "%s/ABB.html", gFile );
  32.    
  33.     /* Konfiguracja */
  34.     gCvar[ 0 ] = register_cvar( "adblock_kara", "0" );
  35.     if( get_pcvar_num( gCvar[ 0 ] ) == 0 ) {
  36.         gCvar[ 1 ] = register_cvar( "adblock_ban_komenda", "0" );
  37.         gCvar[ 2 ] = register_cvar( "adblock_ban_czas", "0" );
  38.     }
  39. }
  40.  
  41. /* Czat */
  42. public Czat( id ) Sprawdz_Uprawnienia( id, 0 );
  43.  
  44. /* Nick - Przy podlaczaniu do serwera
  45.     Trzy metody bo nie zawsze jedna wylapie od razu
  46. */ 
  47. public client_connect( id ) Sprawdz_Uprawnienia( id, 1 );
  48. public client_authorized( id ) Sprawdz_Uprawnienia( id, 1 );
  49. public client_putinserver( id ) Sprawdz_Uprawnienia( id, 1 );
  50.  
  51. /* Nick - Zmiana w trakcie Gry */
  52. public client_infochanged( id ) Sprawdz_Uprawnienia( id, 2 );
  53.  
  54. /* Funkcje */
  55. // Sprawdz uprawnienia admina i odpal odpowiednia funkcje
  56. public Sprawdz_Uprawnienia( id, uOpcja ) {
  57.    
  58.     /* Podlaczony */
  59.     if( !is_user_connected( id ) )
  60.         return PLUGIN_CONTINUE;
  61.        
  62.     /* Bot lub HLTV */
  63.     if( is_user_bot( id ) || is_user_hltv( id ) )
  64.         return PLUGIN_CONTINUE;
  65.    
  66.     /* Flaga Admina */
  67.     if( get_user_flags( id ) & ADMIN_FLAGA )
  68.         return PLUGIN_CONTINUE;
  69.        
  70.     /* Odpowiednie Sprawdzanie */  
  71.     switch( uOpcja ) {
  72.         case 0: Sprawdz_Czat( id );
  73.         case 1: Sprawdz_Nick( id );
  74.         case 2: Sprawdz_Nick_Zmiana( id );
  75.     }  
  76.    
  77.     return PLUGIN_CONTINUE;
  78. }
  79.  
  80. // Sprawdzanie czatu
  81. public Sprawdz_Czat( id ) {
  82.    
  83.     new szArgs[ 256 ];
  84.    
  85.     read_args( szArgs, 256 );  
  86.     get_user_name( id, gName, MAX - 1 );   
  87.    
  88.     Sprawdz_Reklama( id, szArgs, 0, gName );   
  89. }
  90.  
  91. // Sprawdzanie Nicku przy wejsciu na serwer
  92. public Sprawdz_Nick( id ) {
  93.  
  94.     get_user_name( id, gName, MAX - 1 );   
  95.    
  96.     Sprawdz_Reklama( id, gName, 1, gName );
  97. }
  98.  
  99. // Sprawdzanie Nicku przy probie zmiany w trakcie gry
  100. public Sprawdz_Nick_Zmiana( id ) {
  101.    
  102.     get_user_name( id, gName, MAX - 1 );   
  103.    
  104.     Sprawdz_Reklama( id, gName, 2, gName );
  105. }
  106.  
  107. public Sprawdz_Reklama( id, iText[ ], iTyp, iNazwa[ ] ) {
  108.        
  109.     new Regex:gResult, gError[ 2 ], gReturn;
  110.     gResult = regex_match( iText, PATTERN, gReturn, gError, 1 );
  111.     switch( gResult ) {
  112.         case REGEX_MATCH_FAIL, REGEX_PATTERN_FAIL, REGEX_NO_MATCH:
  113.             return PLUGIN_CONTINUE;
  114.     }
  115.        
  116.     switch( iTyp ) {
  117.         case 0: {
  118.             Kara( id, 0, get_pcvar_num( gCvar[ 0 ] ) ? 1 : 0 );
  119.             Zapisz( id, iNazwa, 0 );
  120.         }
  121.         case 1: {
  122.             Kara( id, 1, get_pcvar_num( gCvar[ 0 ] ) ? 1 : 0 );
  123.             Zapisz( id, iNazwa, 1 );
  124.         }
  125.         case 2: {
  126.             Kara( id, 2, get_pcvar_num( gCvar[ 0 ] ) ? 1 : 0 );
  127.             Zapisz( id, iNazwa , 2 );
  128.         }
  129.     }
  130.            
  131.     return PLUGIN_HANDLED;
  132. }
  133.  
  134. // Ustawienia Kary za Reklame
  135. public Kara( id, kTyp, kKara ) {
  136.    
  137.     new uID;   
  138.     uID = get_user_userid( id );
  139.    
  140.     switch( kKara ) {
  141.         /* Banowanie */
  142.         case 0: {
  143.             switch( get_pcvar_num( gCvar[ 1 ] ) ) {
  144.                 case 0: server_cmd( "amx_ban %d #%d ^"%s^"", get_pcvar_num( gCvar[ 2 ] ), uID, Powod[ kTyp ] );
  145.                 case 1: server_cmd( "amx_ban #%d %d ^"%s^"", uID, get_pcvar_num( gCvar[ 2 ] ), Powod[ kTyp ] );
  146.             }              
  147.         }
  148.         /* Kick */
  149.         case 1: server_cmd( "kick #%d ^"%s^"", uID, Powod[ kTyp ] );
  150.     }
  151. }
  152.  
  153. // Logowanie banów z pluginu do pliku
  154. public Zapisz( id, zNazwa[ ], zTyp ) { 
  155.    
  156.     new szTxt[ 512 ]
  157.     static szData[ 23 ];
  158.    
  159.     get_time( "%Y.%m.%d - %H:%M:%S", szData , 22 );
  160.    
  161.     if( !file_exists( gFile ) ) {
  162.         write_file( gFile , "<meta http-equiv=^"content-type^" content=^"text/html; charset=utf-8^">");
  163.         write_file( gFile , "<h2 align=center>Ad-Block and Ban by Misiaczek</h2><hr>");
  164.     }
  165.    
  166.     formatex( szTxt, 511, "[ Ad-Block and Ban ] Gracz [ %s ], zostal %s! | Powod: %s | Data %s <br />", zNazwa, get_pcvar_num( gCvar[ 0 ] ) ? "wyrzucony" : "zbanowany", Powod[ zTyp ], szData );
  167.     write_file( gFile, szTxt );
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement