Advertisement
Guest User

Army Ban System

a guest
Apr 12th, 2012
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.16 KB | None | 0 0
  1. /*------------------------------------------------------------------------------------------------------------------
  2.                                              Army Ban System (MySQL)
  3.  
  4.                                 Author: Army, Armyww, Armyw0w (same person)
  5.                                 Description: An timing ban system based on MySQL.
  6.                                 Version: v1.0
  7.                                 Credits:
  8.                                     Y_Less - Thank you for Ssscanf plugin.
  9.                                     BlueG - Thank you for MySQL plugin.
  10.                
  11. -------------------------------------------------------------------------------------------------------------------*/              
  12.  
  13. #include <a_samp>
  14. #include <a_mysql>
  15. #include <sscanf2>
  16.  
  17. #if !defined BAN_LIST
  18.     #define BAN_LIST "banlist"
  19. #if !defined SQL_HOST
  20.     #define SQL_HOST "localhost"
  21. #if !defined SQL_USER
  22.     #define SQL_USER "root"
  23. #if !defined SQL_PASS
  24.     #define SQL_PASS ""
  25. #if !defined SQL_DB
  26.     #define SQL_DB "samp"
  27. #endif
  28.  
  29. #define STRING_MAX 128
  30. #define IP_MAX 16
  31.  
  32. public OnGameModeInit()
  33. {
  34.     mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  35.     return CallLocalFunction("ABan_OnGameModeInit", "");   
  36. }
  37.  
  38. stock A_DeleteBanIP(playerip[])
  39. {
  40.     new
  41.         string          [ STRING_MAX ];
  42.    
  43.     format ( string , STRING_MAX ,"DELETE FROM `"#BAN_LIST"` WHERE `ip` = '%s'" , playerip );
  44.     mysql_query( string )
  45.     return 1;
  46. }  
  47.  
  48. stock A_DeteleBan(playername[])
  49. {
  50.     new
  51.         string          [ STRING_MAX ];
  52.    
  53.     format ( string , STRING_MAX ,"DELETE FROM `"#BAN_LIST"` WHERE `username` = '%s'" , playername );
  54.     mysql_query ( string );
  55.     return 1;
  56. }  
  57.  
  58. stock A_OfflineBan(playername[], ipn[], year, month, day, hour, min, sec, reason[], author[])
  59. {
  60.     new
  61.         nY,     nM,     nD,
  62.         nH,     nMin,   nS,
  63.         str [ STRING_MAX ];
  64.        
  65.     format ( str , STRING_MAX , "INSERT INTO `"#BAN_LIST"`(`username`, `ip`) VALUES ('%s','%s')" , playername , ipn );
  66.     mysql_query ( str );
  67.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `actyear` = '%d', `actmonth` = '%d', `actday` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , nY , nM , nD , playername , ipn );
  68.     mysql_query ( str ) ;
  69.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `acthour` = '%d', `actmin` = '%d', `actsec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , nH , nMin , nS , playername , ipn );
  70.     mysql_query ( str );
  71.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `year` = '%d', `month` = '%d', `day` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , year , month , day , playername , ipn );
  72.     mysql_query ( str );
  73.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `hour` = '%d', `min` = '%d', `sec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , hour , min , sec , playername , ipn );
  74.     mysql_query ( str );
  75.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `reason` = '%s', `autor` = '%s' WHERE `username` ='%s' AND `ip` ='%s'" , reason , author , playername , ipn );
  76.     mysql_query ( str );
  77.     return 1;
  78. }
  79.  
  80. stock A_Ban(playerid, year, month, day, hour, min, sec, reason[], author[])
  81. {
  82.     new
  83.         nY,     nM,     nD,
  84.         nH,     nMin,   nS,
  85.         str [ STRING_MAX ],
  86.         ip      [ IP_MAX ];
  87.        
  88.     GetPlayerIp ( playerid , ip , IP_MAX ),getdate ( nY , nM , nD ), gettime ( nH , nMin , nS );
  89.     format ( str , STRING_MAX, "INSERT INTO `"#BAN_LIST"`(`username`, `ip`) VALUES ('%s','%s')", GetName(playerid), ip);
  90.     mysql_query ( str );
  91.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `actyear` = '%d', `actmonth` = '%d', `actday` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", nY , nM , nD , GetName(playerid) , ip );
  92.     mysql_query ( str );
  93.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `acthour` = '%d', `actmin` = '%d', `actsec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", nH , nMin , nS , GetName(playerid) , ip );
  94.     mysql_query ( str );
  95.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `year` = '%d', `month` = '%d', `day` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , year , month , day , GetName(playerid) , ip );
  96.     mysql_query ( str );
  97.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `hour` = '%d', `min` = '%d', `sec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", hour , min , sec , GetName(playerid) , ip );
  98.     mysql_query ( str );
  99.     format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `reason` = '%s', `autor` = '%s' WHERE `username` ='%s' AND `ip` ='%s'" , reason , author , GetName(playerid) , ip );
  100.     mysql_query ( str );
  101.     return 1;
  102. }
  103.  
  104. stock A_CheckIPIsBanned(playerip[])
  105. {
  106.     new
  107.         string          [ STRING_MAX ];
  108.    
  109.     format ( string , STRING_MAX , "SELECT * FROM `"#BAN_LIST"` WHERE `ip` = '%s'" , playerip );
  110.     mysql_query ( string );
  111.     mysql_store_result ( );
  112.     if(mysql_num_rows ( ) != 0)
  113.     {
  114.         return 0;
  115.     } else return 1;
  116. }
  117.  
  118. stock A_CheckNameIsBanned(playername[])
  119. {
  120.     new
  121.         string          [ STRING_MAX ];
  122.        
  123.     format ( string , STRING_MAX , "SELECT * FROM `"#BAN_LIST"` WHERE `username` = '%s'" , playername );
  124.     mysql_query ( string );
  125.     mysql_store_result ( );
  126.     if(mysql_num_rows ( ) != 0)
  127.     {
  128.         return 0;
  129.     } else return 1;
  130. }
  131.    
  132. stock A_BanExpired(playerid)
  133. {
  134.     new
  135.         nY,       nM,      nD,
  136.         nH,       nM2,     nS,
  137.         eY,       eM,      eD,
  138.         eH,       eM2,     eS,
  139.         aY,       aM,      aD,
  140.         aH,       aM2,     aS,
  141.         string [ STRING_MAX ],
  142.         un             [ 20 ],
  143.         ip         [ IP_MAX ],
  144.         r              [ 30 ],
  145.         a              [ 20 ];
  146.        
  147.     getdate ( nY , nM , nD ), gettime ( nH , nM2 , nS);
  148.     format ( string , STRING_MAX ,"SELECT * FROM `"#BAN_LIST"` WHERE `username` = '%s'" , GetName( playerid ) );
  149.     mysql_query ( string );
  150.     mysql_store_result ( );
  151.     if(mysql_num_rows ( ) != 0)
  152.     {
  153.         mysql_fetch_row_format ( string , "|" );
  154.         sscanf(string, "p<|>s[20]s[16]iiiiiiiiiiiis[30]s[20]", un, ip, aY, aM, aD, aH, aM2, aS, eY, eM, eD, eH, eM2, eS, r, a);
  155.         if ( (nY > eY || nY == eY) && (nM > eM || nM == eM || (nM < eM && nY > eY)) && (nD > eD || nD == eD || (nD > eD && nM > eM)) && (nH > eH || nH == eH) && (nM2 > eM2 || nM2 == eM2 || (nM2 < eM2 && nH > eH)) && (nS > eS || nS == eS || (nS < eS && nM2 > eM2)) )
  156.         {
  157.             return 0;
  158.         } else return 1;
  159.     } else return 1;
  160. }
  161.  
  162. stock A_BanIPExpired(ipn[])
  163. {
  164.     new
  165.         nY,       nM,      nD,
  166.         nH,       nM2,     nS,
  167.         eY,       eM,      eD,
  168.         eH,       eM2,     eS,
  169.         aY,       aM,      aD,
  170.         aH,       aM2,     aS,
  171.         string [ STRING_MAX ],
  172.         un             [ 20 ],
  173.         ip         [ IP_MAX ],
  174.         r              [ 30 ],
  175.         a              [ 20 ];
  176.        
  177.     getdate ( nY , nM , nD ), gettime ( nH , nM2 , nS );
  178.     format ( string, STRING_MAX , "SELECT * FROM `"#BAN_LIST"` WHERE `ip` = '%s'" , ipn );
  179.     mysql_query ( string );
  180.     mysql_store_result ( );
  181.     if(mysql_num_rows ( ) != 0)
  182.     {
  183.         mysql_fetch_row_format ( string , "|" );
  184.         sscanf(string, "p<|>s[20]s[16]iiiiiiiiiiiis[30]s[20]", un, ip, aY, aM, aD, aH, aM2, aS, eY, eM, eD, eH, eM2, eS, r, a);
  185.         if ( (nY > eY || nY == eY) && (nM > eM || nM == eM) && (nD > eD || nD == eD) && (nH > eH || nH == eH) && (nM2 > eM2 || nM2 == eM2) && (nS > eS || nS == eS) ) {
  186.             return 0;
  187.         }
  188.         else
  189.         {
  190.             return 1;
  191.         }
  192.     }
  193.     return 1;
  194. }
  195.  
  196. GetName(playerid)
  197. {
  198.     new
  199.         name[ 20 ];
  200.        
  201.     GetPlayerName ( playerid , name , 20 );
  202.     return name;
  203. }
  204.  
  205. forward ABan_OnGameModeInit();
  206.  
  207. #if defined _ALS_OnGameModeInit
  208.     #undef OnGameModeInit
  209. #else
  210.     #define _ALS_OnGameModeInit
  211. #endif
  212. #define OnGameModeInit ABan_OnGameModeInit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement