Advertisement
Five_NT

A_BanSys include

Jul 6th, 2015
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.07 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 <sscanf3>
  16.  
  17. // Astea le am puse si in gamemode, este vreo problema?
  18. #if !defined BAN_LIST
  19.     #define BAN_LIST "_banlist"
  20. #if !defined SQL_HOST
  21.     #define SQL_HOST "localhost"
  22. #if !defined SQL_USER
  23.     #define SQL_USER "root"
  24. #if !defined SQL_PASS
  25.     #define SQL_PASS ""
  26. #if !defined SQL_DB
  27.     #define SQL_DB "123baba"
  28. #endif
  29.  
  30. #define STRING_MAX 128
  31. #define IP_MAX 16
  32.  
  33. static mysql;
  34. new query_bs[1250], Cache:resultq_bs;
  35.  
  36. public OnGameModeInit()
  37. {
  38.     mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  39.     return CallLocalFunction("ABan_OnGameModeInit", "");   
  40. }
  41.  
  42. stock A_DeleteBanIP(playerip[])
  43. {
  44.     //new
  45.     //  string          [ STRING_MAX ];
  46.    
  47.     mysql_format(mysql, query_bs, STRING_MAX ,"DELETE FROM `"#BAN_LIST"` WHERE `ip` = '%s'" , playerip );
  48.     resultq_bs = mysql_query(mysql, query_bs); 
  49.     return 1;
  50. }  
  51.  
  52. stock A_DeteleBan(playername[])
  53. {
  54. //  new
  55. //      string          [ STRING_MAX ];
  56.    
  57.     mysql_format(mysql, query_bs, STRING_MAX ,"DELETE FROM `"#BAN_LIST"` WHERE `username` = '%s'" , playername );
  58.     resultq_bs = mysql_query(mysql, query_bs);
  59.     return 1;
  60. }  
  61.  
  62. stock A_OfflineBan(playername[], ipn[], year, month, day, hour, min, sec, reason[], author[])
  63. {
  64.     new
  65.         nY,     nM,     nD,
  66.         nH,     nMin,   nS,
  67.         str [ STRING_MAX ];
  68.        
  69.     mysql_format(mysql, query_bs, sizeof(query_bs), "INSERT INTO `"#BAN_LIST"`(`username`, `ip`) VALUES ('%s','%s')" , playername , ipn );
  70.     resultq_bs = mysql_query(mysql, query_bs);
  71.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `actyear` = '%d', `actmonth` = '%d', `actday` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , nY , nM , nD , playername , ipn );
  72.     resultq_bs = mysql_query(mysql, query_bs);
  73.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `acthour` = '%d', `actmin` = '%d', `actsec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , nH , nMin , nS , playername , ipn );
  74.     resultq_bs = mysql_query(mysql, query_bs);
  75.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `year` = '%d', `month` = '%d', `day` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , year , month , day , playername , ipn );
  76.     resultq_bs = mysql_query(mysql, query_bs);
  77.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `hour` = '%d', `min` = '%d', `sec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , hour , min , sec , playername , ipn );
  78.     resultq_bs = mysql_query(mysql, query_bs);
  79.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `reason` = '%s', `autor` = '%s' WHERE `username` ='%s' AND `ip` ='%s'" , reason , author , playername , ipn );
  80.     resultq_bs = mysql_query(mysql, query_bs);
  81.     return 1;
  82. }
  83.  
  84. stock A_Ban(playerid, year, month, day, hour, min, sec, reason[], author[])
  85. {
  86.     new
  87.         nY,     nM,     nD,
  88.         nH,     nMin,   nS,
  89. //      str [ STRING_MAX ],
  90.         ip      [ IP_MAX ];
  91.        
  92.     GetPlayerIp ( playerid , ip , IP_MAX ),getdate ( nY , nM , nD ), gettime ( nH , nMin , nS );
  93.     mysql_format(mysql, query_bs, STRING_MAX, "INSERT INTO `"#BAN_LIST"`(`username`, `ip`) VALUES ('%s','%s')", GetName(playerid), ip);
  94.     resultq_bs = mysql_query(mysql, query_bs);
  95.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `actyear` = '%d', `actmonth` = '%d', `actday` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", nY , nM , nD , GetName(playerid) , ip );
  96.     resultq_bs = mysql_query(mysql, query_bs);
  97.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `acthour` = '%d', `actmin` = '%d', `actsec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", nH , nMin , nS , GetName(playerid) , ip );
  98.     resultq_bs = mysql_query(mysql, query_bs);
  99.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `year` = '%d', `month` = '%d', `day` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , year , month , day , GetName(playerid) , ip );
  100.     resultq_bs = mysql_query(mysql, query_bs);
  101.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `hour` = '%d', `min` = '%d', `sec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", hour , min , sec , GetName(playerid) , ip );
  102.     resultq_bs = mysql_query(mysql, query_bs);
  103.     mysql_format(mysql, query_bs, sizeof(query_bs), "UPDATE `"#BAN_LIST"` SET `reason` = '%s', `autor` = '%s' WHERE `username` ='%s' AND `ip` ='%s'" , reason , author , GetName(playerid) , ip );
  104.     resultq_bs = mysql_query(mysql, query_bs);
  105.     return 1;
  106. }
  107.  
  108. stock A_CheckIPIsBanned(playerip[])
  109. {
  110. //  new string [ STRING_MAX ];
  111.    
  112.     mysql_format(mysql, query_bs,STRING_MAX , "SELECT * FROM `"#BAN_LIST"` WHERE `ip` = '%s'" , playerip );
  113.     resultq_bs = mysql_query(mysql, query_bs);
  114.     //new rows, fields;
  115.     //cache_get_data(rows, fields, mysql);
  116.     //mysql_store_result ( );
  117.     //if(mysql_num_rows ( ) != 0)
  118.     new rows = cache_get_row_count();
  119.     if(rows != 0)
  120.     {
  121.         return 0;
  122.     }
  123.     else return 1;
  124. }
  125.  
  126. stock A_CheckNameIsBanned(playername[])
  127. {
  128.     //new string [ STRING_MAX ];
  129.        
  130.     mysql_format(mysql, query_bs, STRING_MAX , "SELECT * FROM `"#BAN_LIST"` WHERE `username` = '%s'" , playername );
  131.     resultq_bs = mysql_query(mysql, query_bs);
  132.     //mysql_store_result ( );
  133.     //if(mysql_num_rows ( ) != 0)
  134.     new rows = cache_get_row_count();
  135.     if(rows != 0)
  136.     {
  137.         return 0;
  138.     }
  139.     else return 1;
  140. }
  141.    
  142. stock A_BanExpired(playerid)
  143. {
  144.     new
  145.         nY,       nM,      nD,
  146.         nH,       nM2,     nS,
  147.         eY,       eM,      eD,
  148.         eH,       eM2,     eS,
  149.         aY,       aM,      aD,
  150.         aH,       aM2,     aS,
  151. //      string [ STRING_MAX ],
  152.         un             [ 20 ],
  153.         ip         [ IP_MAX ],
  154.         r              [ 30 ],
  155.         a              [ 20 ];
  156.        
  157.     getdate ( nY , nM , nD ), gettime ( nH , nM2 , nS);
  158.     mysql_format(mysql, query_bs, STRING_MAX , "SELECT * FROM `"#BAN_LIST"` WHERE `username` = '%s'" , GetName( playerid ) );
  159.     resultq_bs = mysql_query(mysql, query_bs);
  160.     //mysql_store_result ( );
  161.     //if(mysql_num_rows ( ) != 0)
  162.     new rows = cache_get_row_count();
  163.     if(rows)
  164.     {  
  165.         for(new nr = 0, ax = 0; nr <= rows; nr++)//; nr != Rows; ++nr, ax = 0)
  166.         {
  167.             /*if ( nr == 2000 )
  168.             {
  169.                 printf( " !ERROR! Numarul de case depaseste numarul maxim !ERROR!" ) ;
  170.                 break ;
  171.             }*/
  172.             cache_get_row(nr, ax++, un, mysql, MAX_PLAYER_NAME);
  173.             cache_get_row(nr, ax++, ip, mysql, 18);
  174.             aY = cache_get_row_int(nr, ax++, mysql);
  175.             aM = cache_get_row_int(nr, ax++, mysql);
  176.             aD = cache_get_row_int(nr, ax++, mysql);
  177.             aH = cache_get_row_int(nr, ax++, mysql);
  178.             aM2 = cache_get_row_int(nr, ax++, mysql);
  179.             aS = cache_get_row_int(nr, ax++, mysql);
  180.             eY = cache_get_row_int(nr, ax++, mysql);
  181.             eM = cache_get_row_int(nr, ax++, mysql);
  182.             eD = cache_get_row_int(nr, ax++, mysql);
  183.             eH = cache_get_row_int(nr, ax++, mysql);
  184.             eM2 = cache_get_row_int(nr, ax++, mysql);
  185.             eS = cache_get_row_int(nr, ax++, mysql);
  186.             cache_get_row(nr, ax++, r, mysql, 100);
  187.             cache_get_row(nr, ax++, a, mysql, MAX_PLAYER_NAME);
  188.            
  189.         }
  190.         //mysql_fetch_row_mysql_format(mysql, query_bs,"|" );
  191.         //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);
  192.         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)) )
  193.         {
  194.             return 0;
  195.         } else return 1;
  196.     } else return 1;
  197. }
  198.  
  199. stock A_BanIPExpired(ipn[])
  200. {
  201.     new
  202.         nY,       nM,      nD,
  203.         nH,       nM2,     nS,
  204.         eY,       eM,      eD,
  205.         eH,       eM2,     eS,
  206.         aY,       aM,      aD,
  207.         aH,       aM2,     aS,
  208.         string [ STRING_MAX ],
  209.         un             [ 20 ],
  210.         ip         [ IP_MAX ],
  211.         r              [ 30 ],
  212.         a              [ 20 ];
  213.        
  214.     getdate ( nY , nM , nD ), gettime ( nH , nM2 , nS );
  215.     format ( string, STRING_MAX , "SELECT * FROM `"#BAN_LIST"` WHERE `ip` = '%s'" , ipn );
  216.     resultq_bs = mysql_query(mysql, query_bs);
  217.     //mysql_store_result ( );
  218.     //if(mysql_num_rows ( ) != 0)
  219.     new rows = cache_get_row_count();
  220.     if(rows != 0)
  221.     {
  222.         for(new nr = 0, ax = 0; nr <= rows; nr++)//; nr != Rows; ++nr, ax = 0)
  223.         {
  224.             /*if ( nr == 2000 )
  225.             {
  226.                 printf( " !ERROR! " ) ;
  227.                 break ;
  228.             }*/
  229.             cache_get_row(nr, ax++, un, mysql, MAX_PLAYER_NAME);
  230.             cache_get_row(nr, ax++, ip, mysql, 18);
  231.             aY = cache_get_row_int(nr, ax++, mysql);
  232.             aM = cache_get_row_int(nr, ax++, mysql);
  233.             aD = cache_get_row_int(nr, ax++, mysql);
  234.             aH = cache_get_row_int(nr, ax++, mysql);
  235.             aM2 = cache_get_row_int(nr, ax++, mysql);
  236.             aS = cache_get_row_int(nr, ax++, mysql);
  237.             eY = cache_get_row_int(nr, ax++, mysql);
  238.             eM = cache_get_row_int(nr, ax++, mysql);
  239.             eD = cache_get_row_int(nr, ax++, mysql);
  240.             eH = cache_get_row_int(nr, ax++, mysql);
  241.             eM2 = cache_get_row_int(nr, ax++, mysql);
  242.             eS = cache_get_row_int(nr, ax++, mysql);
  243.             cache_get_row(nr, ax++, r, mysql, 100);
  244.             cache_get_row(nr, ax++, a, mysql, MAX_PLAYER_NAME);
  245.            
  246.         }
  247.         //mysql_fetch_row_mysql_format(mysql, query_bs,"|" );
  248.         //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);
  249.         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) ) {
  250.             return 0;
  251.         }
  252.         else
  253.         {
  254.             return 1;
  255.         }
  256.     }
  257.     return 1;
  258. }
  259.  
  260. GetName(playerid)
  261. {
  262.     new
  263.         name[ 20 ];
  264.        
  265.     GetPlayerName ( playerid , name , 20 );
  266.     return name;
  267. }
  268.  
  269. forward ABan_OnGameModeInit();
  270.  
  271. #if defined _ALS_OnGameModeInit
  272.     #undef OnGameModeInit
  273. #else
  274.     #define _ALS_OnGameModeInit
  275. #endif
  276. #define OnGameModeInit ABan_OnGameModeInit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement