Don't like ads? PRO users don't see any ads ;-)
Guest

TBan System by:Sramm

By: a guest on Jun 17th, 2012  |  syntax: PAWN  |  size: 2.58 KB  |  hits: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #if defined _tban_included
  2. #endinput
  3. #endif
  4. #define _tban_included
  5.  
  6. #include <dini>
  7.  
  8.  
  9. // By: GameStar
  10.  
  11. stock second(time)
  12. {
  13.         time = time*1000;
  14.         return time;
  15. }
  16.  
  17. stock minute(time)
  18. {
  19.         time = second(time)*60;
  20.         return time;
  21. }
  22.  
  23. stock hour(time)
  24. {
  25.         time = minute(time)*60;
  26.         return time;
  27. }
  28.  
  29. stock day(time)
  30. {
  31.         time = hour(time)*24;
  32.         return time;
  33. }
  34.  
  35.  
  36. #define MAX_BANN 100
  37.  
  38.  
  39. new BannTime[MAX_BANN];
  40.  
  41. forward b_OnGameModeInit();
  42. forward Banntimers();
  43.  
  44. public b_OnGameModeInit()
  45. {
  46.         new bf[128];
  47.         for(new b; b<=MAX_BANN; b++)
  48.        
  49.         {
  50.                 format(bf,128,"/BannTime/%d.ini",b);
  51.                 if(dini_Exists(bf))
  52.                
  53.                 {
  54.                         BannTime[b] = dini_Int(bf,"time");
  55.                         SetTimer("Banntimers",60000,1);
  56.                        
  57.                 }
  58.                
  59.         }
  60.         return 1;
  61. }
  62.  
  63.  
  64. stock TBan(playerid,type,time)
  65. {
  66.         new ip[128],b[128];
  67.         new nextb = NextBan();
  68.         format(b,128,"/BannTime/%d.ini",nextb);
  69.         dini_Create(b);
  70.         dini_Set(b,"Name",GetName(playerid));
  71.         GetPlayerIp(playerid,ip,sizeof(ip));
  72.         dini_Set(b,"IP",ip);
  73.         if(type == 1)
  74.        
  75.        
  76.         {
  77.                 minute(time);
  78.                
  79.                
  80.         }
  81.         if(type == 2)
  82.        
  83.        
  84.         {
  85.                 hour(time);
  86.                
  87.                
  88.         }
  89.         if(type == 3)
  90.        
  91.        
  92.         {
  93.                 day(time);
  94.                
  95.                
  96.         }
  97.         dini_IntSet(b,"time",time);
  98.         BannTime[nextb] = time;
  99.         SetTimer("Banntimers",60000,1);
  100.         Ban(playerid);
  101.         return 1;
  102. }
  103.  
  104. stock TBanEx(playerid,reason,type,time)
  105. {
  106.         new b[128],ip[128];
  107.         new nextb = NextBan();
  108.         format(b,128,"/BannTime/%d",nextb);
  109.         dini_Create(b);
  110.         dini_Set(b,"Name",GetName(playerid));
  111.         GetPlayerIp(playerid,ip,sizeof(ip));
  112.         dini_Set(b,"IP",ip);
  113.         if(type == 1)
  114.        
  115.        
  116.         {
  117.                 minute(time);
  118.                
  119.                
  120.         }
  121.         if(type == 2)
  122.        
  123.        
  124.         {
  125.                 hour(time);
  126.                
  127.                
  128.         }
  129.         if(type == 3)
  130.        
  131.        
  132.         {
  133.                 day(time);
  134.                
  135.                
  136.         }
  137.         dini_IntSet(b,"time",time);
  138.         BannTime[nextb] = time;
  139.         SetTimer("Banntimers",60000,1);
  140.         BanEx(playerid,reason);
  141.         return 1;
  142. }
  143.  
  144. stock GetName(playerid)
  145.  
  146. {
  147.         new name[MAX_PLAYER_NAME];
  148.         GetPlayerName(playerid,name,sizeof(name));
  149.         return name;
  150.        
  151. }
  152.  
  153. public Banntimers()
  154.  
  155. {
  156.         new b[128];
  157.         for(new bc; bc<=MAX_BANN; bc++)
  158.        
  159.         {
  160.                 format(b,128,"/BannTime/%d.ini",bc);
  161.                 if(dini_Exists(b))
  162.                
  163.                 {
  164.                         BannTime[bc] -= 1;
  165.                         dini_IntSet(b,"time",BannTime[bc]);
  166.                         if(dini_Int(b,"time") == 0) return UnBan(b);
  167.                        
  168.                 }
  169.                
  170.         }
  171.         return 1;
  172.        
  173. }
  174.  
  175. stock UnBan(file[])
  176.  
  177. {
  178.         new ub[128];
  179.         if(dini_Exists(file))
  180.        
  181.         {
  182.                 format(ub,128,"unbanip %s",dini_Get(file,"IP"));
  183.                 SendRconCommand(ub);
  184.                 dini_Remove(file);
  185.                
  186.         }
  187.         return 1;
  188.        
  189. }
  190.  
  191.  
  192. stock NextBan()
  193. {
  194.         new b[128];
  195.         for(new bc; bc<=MAX_BANN; bc++)
  196.        
  197.         {
  198.                 format(b,128,"/BannTime/%d.ini",bc);
  199.                 if(!dini_Exists(b)) return bc;
  200.                
  201.         }
  202.         return 1;
  203.        
  204. }