Advertisement
Guest User

Temp Ban system by BroZeus

a guest
Feb 18th, 2015
1,656
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*===============================================================
  2.   =============TEMP BAN SYSTEM V 3.0=============================
  3.   ===============MADE BY BROZEUS=================================
  4.   CREDITS------>
  5.     Zeus [ thats me] -- For scripting
  6.     YSI -- For sscanf2 and YSI/ini
  7.     Zeex -- For Zcmd
  8.     Jochemd -- For TimeStampToDate.inc
  9.     Shacky  -- for fcreate and fdelete stocks
  10.  
  11.     Do not remove creits or redistribute*/
  12.     #include <a_samp>
  13.     #include <fixes>
  14.     #include <YSI\y_ini>
  15.     #include <zcmd>
  16.     #include <sscanf2>
  17.     #include <TimeStampToDate>
  18.    
  19.  
  20.     #define BANPATH "/Bans/%s.ini"
  21.     #define IPPATH "/IP/%s.ini"
  22.    
  23.     #define GMT_H 0  // Enter the value of the gmt hour u want otherwise keep it zero
  24.     #define GMT_M 0  // Enter the value of the gmt mintues u want otherwise keep it zero
  25.  
  26. new ln[MAX_PLAYERS]=0,revseen[][MAX_PLAYERS];
  27.  
  28. #if defined FILTERSCRIPT
  29. public OnFilterScriptInit()
  30. {
  31. if(!fexist("unban_log.txt"))
  32. {
  33. fcreate("unban_log.txt");
  34. print("unban_log.txt didnt existed so it was created.");
  35. }
  36. if(!fexist("BannedPlayers.txt"))
  37. {
  38. fcreate("BannedPlayers.txt");
  39. print("BannedPlayers.txt didnt existed so it was created.");
  40. }
  41. return 1;
  42. }
  43. #else
  44. public OnGameModeInit()
  45. {
  46. if(!fexist("unban_log.txt"))
  47. {
  48. fcreate("unban_log.txt");
  49. print("unban_log.txt didnt existed so it was created.");
  50. }
  51. if(!fexist("BannedPlayers.txt"))
  52. {
  53. fcreate("BannedPlayers.txt");
  54. print("BannedPlayers.txt didnt existed so it was created.");
  55. }
  56.  
  57. return 1;
  58. }
  59. #endif
  60.  
  61.     enum pInfo
  62.     {
  63.     pBanexp,
  64.     pBanres[100],
  65.     pBanPerm,
  66.     pBanAdmin[20],
  67.     pBanIPP[20]
  68.     }
  69.     new PlayerInfo[MAX_PLAYERS][pInfo];
  70.     new pp[50];
  71.  
  72.     forward fcreate(filename[]);
  73.     public fcreate(filename[])
  74.     {
  75.     if (fexist(filename)){return false;}
  76.     new File:fhandle = fopen(filename,io_write);
  77.     fclose(fhandle);
  78.     return true;
  79.     }
  80.    
  81.     forward LoadBanUser_data(playerid,name[],value[]);
  82.     public LoadBanUser_data(playerid,name[],value[])
  83.     {
  84.      INI_Int("Banexp",PlayerInfo[playerid][pBanexp]);
  85.      INI_Int("BanPerm",PlayerInfo[playerid][pBanPerm]);
  86.      INI_String("BanAdmin", PlayerInfo[playerid][pBanAdmin], 20);
  87.      INI_String("Reason",PlayerInfo[playerid][pBanres],100);
  88.      return 1;
  89.     }
  90.    
  91.     forward LoadIPUser_data(playerid,name[],value[]);
  92.     public LoadIPUser_data(playerid,name[],value[])
  93.     {INI_Int("Banexp",PlayerInfo[playerid][pBanexp]);
  94.      INI_Int("BanPerm",PlayerInfo[playerid][pBanPerm]);
  95.      INI_String("BanPlayer", PlayerInfo[playerid][pBanIPP], 20);
  96.      INI_String("BanAdmin", PlayerInfo[playerid][pBanAdmin], 20);
  97.      INI_String("Reason",PlayerInfo[playerid][pBanres],100);
  98.      return 1;
  99.     }
  100.    
  101.     forward LoadIP_data(playerid,name[],value[]);
  102.     public LoadIP_data(playerid,name[],value[])
  103.     {INI_String("IP",pp,50);
  104.      return 1;
  105.     }
  106.  
  107.     stock UserBanPath(playerid)
  108.     {
  109.         new string[128],playername[MAX_PLAYER_NAME];
  110.         GetPlayerName(playerid,playername,sizeof(playername));
  111.         format(string,sizeof(string),BANPATH,playername);
  112.         return string;
  113.     }
  114.     stock UserIPPath(playerid)
  115.     {
  116.         new string[128],ip[50];
  117.         GetPlayerIp(playerid,ip,sizeof(ip));
  118.         format(string,sizeof(string),IPPATH,ip);
  119.         return string;
  120.     }
  121.    
  122.     stock Showinfo(playerid,targetname[])
  123.     {
  124.     new path[150],ss[500];
  125.     format(path,sizeof(path),"Bans/%s.ini",targetname);
  126.     INI_ParseFile(path, "LoadBanUser_%s", .bExtra = true, .extra = playerid);
  127.     if(PlayerInfo[playerid][pBanPerm]==1)
  128.     format(ss,sizeof(ss),"{00FFFF}Banning Admin:\t\t{ff0000}%s\n{00FFFF}Ban Reason:\t\t{ff0000}%s\n{00FFFF}Ban Type:\t\t{ff0000}Permanent.\n\n{FFFF00}Click on Remove Ban button to un-ban the player.",PlayerInfo[playerid][pBanAdmin],PlayerInfo[playerid][pBanres]);
  129.     else
  130.     {
  131.     new d,m,y,h,mi,s;
  132.     TimestampToDate(PlayerInfo[playerid][pBanexp],y,m,d,h,mi,s,GMT_H,GMT_M);
  133.     format(ss,sizeof(ss),"{00FFFF}Banning Admin:\t\t{ff0000}%s\n{00FFFF}Ban Reason:\t\t{ff0000}%s\n{00FFFF}Expire Time:\t\t{ff0000}%i-%i\n{00FFFF}Expire Date:\t\t{ff0000}%i-%i-%i\n\n{FFFF00}Time is according to %i GMT\nDate Format: dd-mm-yyyy\nClick on Remove Ban button to un-ban the player.",PlayerInfo[playerid][pBanAdmin],PlayerInfo[playerid][pBanres],h,mi,d,m,y,GMT_H);
  134.     }
  135.     format(revseen[playerid],MAX_PLAYER_NAME,"%s",targetname);
  136.     ShowPlayerDialog(playerid, 113,  DIALOG_STYLE_MSGBOX,targetname,ss, "Remove Ban", "Cancel");
  137.     return 1;
  138.     }
  139.    
  140.     stock fdeleteline(filename[], line[])
  141.     {
  142.     if(fexist(filename)){
  143.         new temp[256];
  144.         new File:fhandle = fopen(filename,io_read);
  145.         fread(fhandle,temp,sizeof(temp),false);
  146.         if(strfind(temp,line,true)==-1){return 0;}
  147.         else{
  148.             fclose(fhandle);
  149.             fremove(filename);
  150.             for(new i=0;i<strlen(temp);i++){
  151.                 new templine[256];
  152.                 strmid(templine,temp,i,i+strlen(line));
  153.                 if(strcmp(templine,line,true)){
  154.                     strdel(temp,i,i+strlen(line));
  155.                     fcreate(filename);
  156.                     fhandle = fopen(filename,io_write);
  157.                     fwrite(fhandle,temp);
  158.                     fclose(fhandle);
  159.                     return 1;
  160.                 }
  161.             }
  162.         }
  163.     }
  164.     return 0;
  165. }
  166.    
  167.  
  168.     public OnPlayerConnect(playerid)
  169.     {
  170.  
  171.      if(fexist(UserBanPath(playerid)))
  172.         {
  173.             INI_ParseFile(UserBanPath(playerid), "LoadBanUser_%s", .bExtra = true, .extra = playerid);
  174.  
  175.             if(PlayerInfo[playerid][pBanPerm]==1)
  176.             {new reso[256];
  177.              SendClientMessage(playerid,-1,"{85BB65}You are permanently Banned from this server by Administration");
  178.              format(reso,sizeof(reso),"{85BB65}Reason: {f0f000}%s",PlayerInfo[playerid][pBanres]);
  179.              SendClientMessage(playerid,-1,reso);
  180.              format(reso,sizeof(reso),"{85BB65}Banning Admin: {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  181.              SendClientMessage(playerid,-1,reso);
  182.              SetTimerEx("KickPlayer",100,false,"i",playerid);
  183.             }
  184.              else
  185.              {
  186.           if(gettime() > PlayerInfo[playerid][pBanexp])
  187.           {   fremove(UserBanPath(playerid));
  188.               fremove(UserIPPath(playerid));
  189.               SendClientMessage(playerid,-1,"{00cc00}You have been unbanned!!!!");
  190.           }
  191.           else
  192.           {
  193.           new d,m,y,h,mi,s;
  194.           TimestampToDate(PlayerInfo[playerid][pBanexp],y,m,d,h,mi,s,GMT_H,GMT_M);
  195.           new str[540];
  196.           format(str,sizeof(str),"{85BB65}This Account Has Been Banned By The Adminstration Until {f0f000}%i-%i-%i[Date format : dd/mm/yyyy]",d,m,y);
  197.           SendClientMessage(playerid,-1,str);
  198.           format(str,sizeof(str),"{85BB65}Expires on[TIME] -- {f0f000}%i-%i[Time Format: 24 Hour Clock]",h,mi);
  199.           SendClientMessage(playerid, -1, str);
  200.           format(str,sizeof(str),"{85BB65}Reason -- {f0f000}%s",PlayerInfo[playerid][pBanres]);
  201.           SendClientMessage(playerid, -1, str);
  202.           format(str,sizeof(str),"{85BB65}Banning Admin -- {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  203.           SendClientMessage(playerid, -1, str);
  204.           SetTimerEx("KickPlayer",100,false,"i",playerid);
  205.               }}}
  206.              
  207.           else if(fexist(UserIPPath(playerid)))
  208.           {
  209.           INI_ParseFile(UserIPPath(playerid), "LoadIPUser_%s", .bExtra = true, .extra = playerid);
  210.           if(PlayerInfo[playerid][pBanPerm]==1)
  211.           {  new reso[256];
  212.              SendClientMessage(playerid,-1,"{85BB65}This IP is permanently Banned from this server by Administration");
  213.              format(reso,sizeof(reso),"{85BB65}Originally Banned Player: {f0f000}%s",PlayerInfo[playerid][pBanIPP]);
  214.              SendClientMessage(playerid,-1,reso);
  215.              format(reso,sizeof(reso),"{85BB65}Reason: {f0f000}%s",PlayerInfo[playerid][pBanres]);
  216.              SendClientMessage(playerid,-1,reso);
  217.              format(reso,sizeof(reso),"{85BB65}Banning Admin: {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  218.              SendClientMessage(playerid,-1,reso);
  219.              SetTimerEx("KickPlayer",100,false,"i",playerid);
  220.           }
  221.           else {
  222.           if(gettime() > PlayerInfo[playerid][pBanexp])
  223.           {   new pat[100];
  224.               fremove(UserIPPath(playerid));
  225.               format(pat,sizeof(pat),"Bans/%s.ini",PlayerInfo[playerid][pBanIPP]);
  226.               fremove(pat);
  227.               SendClientMessage(playerid,-1,"{00cc00}This IP was banned but as now the expire time has passed this IP has been unbanned.");
  228.           }
  229.           else
  230.           {
  231.           new d,m,y,h,mi,s;
  232.           TimestampToDate(PlayerInfo[playerid][pBanexp],y,m,d,h,mi,s,GMT_H,GMT_M);
  233.           new str[540];
  234.           format(str,sizeof(str),"{85BB65}This IP Has Been Banned By The Adminstration Until {f0f000}%i-%i-%i[Date format : dd/mm/yyyy]",d,m,y);
  235.           SendClientMessage(playerid,-1,str);
  236.           format(str,sizeof(str),"{85BB65}Expires on[TIME] -- {f0f000}%i-%i[Time Format: 24 Hour Clock]",h,mi);
  237.           SendClientMessage(playerid, -1, str);
  238.           format(str,sizeof(str),"{85BB65}Originally Banned Player -- {f0f000}%s",PlayerInfo[playerid][pBanIPP]);
  239.           SendClientMessage(playerid, -1, str);
  240.           format(str,sizeof(str),"{85BB65}Reason -- {f0f000}%s",PlayerInfo[playerid][pBanres]);
  241.           SendClientMessage(playerid, -1, str);
  242.           format(str,sizeof(str),"{85BB65}Banning Admin -- {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  243.           SendClientMessage(playerid, -1, str);
  244.           SetTimerEx("KickPlayer",100,false,"i",playerid);
  245.               }}}
  246.          
  247.           return 1;}
  248.          
  249.           public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  250.           {
  251.           if(dialogid==110 && response)
  252.           {
  253.          
  254.           Showinfo(playerid,inputtext);
  255.           ln[playerid]=0;
  256.           }
  257.           if(dialogid==111)
  258.           {
  259.           if(response)Showinfo(playerid,inputtext);
  260.           else
  261.           {
  262.           new read[200],ss[1008],op[1000];
  263.           format(op,sizeof(op),"");
  264.           new File:log=fopen("BannedPlayers.txt",io_read);
  265.           fseek(log,ln[playerid],seek_start);
  266.           while(fread(log,read))
  267.           {
  268.           strcat(read,"\n",200);
  269.           strcat(op,read,1000);
  270.           }
  271.           fclose(log);
  272.           format(ss,sizeof(ss),"{9ACD32}%s",op);
  273.           ShowPlayerDialog(playerid, 112,  DIALOG_STYLE_LIST, "{00FFFF}Showing Currently Banned Players[Page 2]",ss, "Select", "Cancel");
  274.           ln[playerid]=0;
  275.           }}
  276.           if(dialogid==112 && response)Showinfo(playerid,inputtext);
  277.           if(dialogid==113 && response)
  278.           {
  279.           new pat[MAX_PLAYER_NAME+10],pati[MAX_PLAYER_NAME+10],ppf[100],adname[MAX_PLAYER_NAME];
  280.          
  281.           format(pat,sizeof(pat),"Bans/%s.ini",revseen[playerid]);
  282.          
  283.           INI_ParseFile(pat, "LoadIP_%s", .bExtra = true, .extra = playerid);
  284.           format(pati,sizeof(pat),"IP/%s.ini",pp);
  285.           fremove(pati);
  286.           format(pat,sizeof(pat),"Bans/%s.ini",revseen[playerid]);
  287.           fremove(pat);
  288.           format(ppf,sizeof(ppf),"The player %s has been un-banned.",revseen[playerid]);
  289.           SendClientMessage(playerid,0x00FF00FF,ppf);
  290.           GetPlayerName(playerid,adname,sizeof(adname));
  291.           format(pat,sizeof(pat),"%s has been unbanned by %s",revseen[playerid],adname);
  292.           new File:log=fopen("unban_log.txt",io_append);
  293.           fwrite(log, pat);
  294.           fwrite(log,"\r\n");
  295.           fclose(log);
  296.           fdeleteline("BannedPlayers.txt", revseen[playerid]);
  297.           }
  298.  
  299.          
  300.           return 0;
  301.           }
  302.          
  303.  
  304.  
  305.  
  306.  
  307.     forward KickPlayer(playerid);
  308.     public KickPlayer(playerid)
  309.     {
  310.         Kick(playerid);
  311.         return 1;
  312.     }
  313.  
  314.     /*=====================================COMMANDS======================================*/
  315.     CMD:ban(playerid,parmas[])
  316.     {
  317.     if(IsPlayerAdmin(playerid)){
  318.     new tid,du,res[150],ppp[50];
  319.     if(sscanf(parmas,"uis",tid,du,res) || isnull(parmas))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage || Correct Usage : /ban id duration(In Days) Reason");
  320.     if(!IsPlayerConnected(tid))return SendClientMessage(playerid,-1,"{ff6666}The Player you requested is not connected.");
  321.     new banmt[300],banma[300],adminname[MAX_PLAYER_NAME],targetn[MAX_PLAYER_NAME];
  322.      GetPlayerName(playerid,adminname,sizeof(adminname));
  323.      new exp=gettime()+(60*60*24*du);
  324.      GetPlayerIp(tid,ppp,sizeof(ppp));
  325.      new INI:File = INI_Open(UserBanPath(tid));
  326.      INI_SetTag(File,"data");
  327.      INI_WriteInt(File,"Banexp",exp);
  328.      INI_WriteInt(File,"BanPerm",0);
  329.      INI_WriteString(File,"BanAdmin",adminname);
  330.      INI_WriteString(File,"Reason",res);
  331.      INI_WriteString(File,"IP",ppp);
  332.      INI_Close(File);
  333.      GetPlayerName(tid,targetn,sizeof(targetn));
  334.      new INI:iFile = INI_Open(UserIPPath(tid));
  335.      INI_SetTag(iFile,"data");
  336.      INI_WriteInt(iFile,"Banexp",exp);
  337.      INI_WriteInt(iFile,"BanPerm",0);
  338.      INI_WriteString(iFile,"BanPlayer",targetn);
  339.      INI_WriteString(iFile,"BanAdmin",adminname);
  340.      INI_WriteString(iFile,"Reason",res);
  341.      INI_Close(iFile);
  342.      new File:logg=fopen("BannedPlayers.txt",io_append);
  343.      fwrite(logg, targetn);
  344.      fwrite(logg,"\n");
  345.      fclose(logg);
  346.      format(banmt,sizeof(banmt),"{ff0000}Admin %s has banned you for %i days due to %s",adminname,du,res);
  347.      format(banma,sizeof(banma),"{ff0000}Admin %s has banned %s for %i days due to %s",adminname,targetn,du,res);
  348.      SendClientMessage(tid,-1,banmt);
  349.      SendClientMessageToAll(-1,banma);
  350.      SetTimerEx("KickPlayer",100,false,"i",tid);
  351.     }else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  352.     return 1;}
  353. /*===================================================================================================*/
  354.     CMD:removeban(playerid,parmas[]){
  355.     if(IsPlayerAdmin(playerid)){
  356.     new rename[MAX_PLAYER_NAME],pat[MAX_PLAYER_NAME+10],pati[MAX_PLAYER_NAME+10],ppf[100],adname[MAX_PLAYER_NAME];
  357.     if(sscanf(parmas,"s",rename) || isnull(parmas))return SendClientMessage(playerid, -1, "{FF0000}Wrong Usage || Usage : /removeban PlayerName");
  358.     format(pat,sizeof(pat),"Bans/%s.ini",rename);
  359.     if(!fexist(pat))
  360.     {
  361.     format(ppf,sizeof(ppf),"The user cannot be unbanned because there is user named as %s banned.",rename);
  362.     SendClientMessage(playerid,-1,ppf);
  363.     return 1;
  364.     }
  365.     INI_ParseFile(pat, "LoadIP_%s", .bExtra = true, .extra = playerid);
  366.     format(pati,sizeof(pat),"IP/%s.ini",pp);
  367.     fremove(pati);
  368.     format(pat,sizeof(pat),"Bans/%s.ini",rename);
  369.     fremove(pat);
  370.     format(ppf,sizeof(ppf),"The player %s has been un-banned.",rename);
  371.     SendClientMessage(playerid,0x00FF00FF,ppf);
  372.     GetPlayerName(playerid,adname,sizeof(adname));
  373.     format(pat,sizeof(pat),"%s has been unbanned by %s",rename,adname);
  374.     new File:log=fopen("unban_log.txt",io_append);
  375.     fwrite(log, pat);
  376.     fwrite(log,"\r\n");
  377.     fclose(log);
  378.     fdeleteline("BannedPlayers.txt", rename);
  379.     }
  380.     else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command");
  381.     return 1;}
  382. /*====================================================================================================*/
  383.     CMD:banperm(playerid,parmas[])
  384.     {
  385.     if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  386.     new tid,res[90],ppp[50];
  387.     if(sscanf(parmas,"us",tid,res) || isnull(parmas))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage || Correct Usage : /banperm PlayerID Reason");
  388.     if(!IsPlayerConnected(tid))return SendClientMessage(playerid,-1,"{ff6666}The Player you requested is not connected.");
  389.     new adminname[MAX_PLAYER_NAME];
  390.     GetPlayerName(playerid,adminname,sizeof(adminname));
  391.     GetPlayerIp(tid,ppp,sizeof(ppp));
  392.     new INI:File = INI_Open(UserBanPath(tid));
  393.     INI_SetTag(File,"data");
  394.     INI_WriteInt(File,"Banexp",0);
  395.     INI_WriteInt(File,"BanPerm",1);
  396.     INI_WriteString(File,"BanAdmin",adminname);
  397.     INI_WriteString(File,"Reason",res);
  398.     INI_WriteString(File,"IP",ppp);
  399.     INI_Close(File);
  400.     new banmt[300],banma[300],targetn[MAX_PLAYER_NAME];
  401.     GetPlayerName(tid,targetn,sizeof(targetn));
  402.     new INI:iFile = INI_Open(UserIPPath(tid));
  403.      INI_SetTag(iFile,"data");
  404.      INI_WriteInt(iFile,"Banexp",0);
  405.      INI_WriteInt(iFile,"BanPerm",1);
  406.      INI_WriteString(iFile,"BanPlayer",targetn);
  407.      INI_WriteString(iFile,"BanAdmin",adminname);
  408.      INI_WriteString(iFile,"Reason",res);
  409.      INI_Close(iFile);
  410.      new File:logg=fopen("BannedPlayers.txt",io_append);
  411.      fwrite(logg, targetn);
  412.      fwrite(logg,"\n");
  413.      fclose(logg);
  414.     format(banmt,sizeof(banmt),"{ff0000}Admin %s has banned you for permanently due to %s",adminname,res);
  415.     format(banma,sizeof(banma),"{ff0000}Admin %s has banned %s permanenetly due to %s",adminname,targetn,res);
  416.     SendClientMessage(tid,-1,banmt);
  417.     SendClientMessageToAll(-1,banma);
  418.     SetTimerEx("KickPlayer",100,false,"i",tid);
  419.     return 1;}
  420. /*=======================================================================================================*/
  421.    CMD:banm(playerid,parmas[])
  422.     {
  423.     if(IsPlayerAdmin(playerid)){
  424.     new tid,h,m,res[150],ppp[50];
  425.     if(sscanf(parmas,"uiis",tid,h,m,res) || isnull(parmas))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage || Correct Usage : /banm ID Hours Minutes Reason");
  426.     if(!IsPlayerConnected(tid))return SendClientMessage(playerid,-1,"{ff6666}The Player you requested is not connected.");
  427.     new banmt[300],banma[300],adminname[MAX_PLAYER_NAME],targetn[MAX_PLAYER_NAME];
  428.      GetPlayerName(playerid,adminname,sizeof(adminname));
  429.      new exp=gettime()+(60*m)+(60*60*h);
  430.      GetPlayerIp(tid,ppp,sizeof(ppp));
  431.      new INI:File = INI_Open(UserBanPath(tid));
  432.      INI_SetTag(File,"data");
  433.      INI_WriteInt(File,"Banexp",exp);
  434.      INI_WriteInt(File,"BanPerm",0);
  435.      INI_WriteString(File,"BanAdmin",adminname);
  436.      INI_WriteString(File,"Reason",res);
  437.      INI_WriteString(File,"IP",ppp);
  438.      INI_Close(File);
  439.      GetPlayerName(tid,targetn,sizeof(targetn));
  440.      new INI:iFile = INI_Open(UserIPPath(tid));
  441.      INI_SetTag(iFile,"data");
  442.      INI_WriteInt(iFile,"Banexp",exp);
  443.      INI_WriteInt(iFile,"BanPerm",0);
  444.      INI_WriteString(iFile,"BanPlayer",targetn);
  445.      INI_WriteString(iFile,"BanAdmin",adminname);
  446.      INI_WriteString(iFile,"Reason",res);
  447.      INI_Close(iFile);
  448.      new File:logg=fopen("BannedPlayers.txt",io_append);
  449.      fwrite(logg, targetn);
  450.      fwrite(logg,"\n");
  451.      fclose(logg);
  452.      format(banmt,sizeof(banmt),"{ff0000}Admin %s has banned you for %i hours %i minutes due to %s",adminname,h,m,res);
  453.      format(banma,sizeof(banma),"{ff0000}Admin %s has banned %s for %i hours %i minutes due to %s",adminname,targetn,h,m,res);
  454.      SendClientMessage(tid,-1,banmt);
  455.      SendClientMessageToAll(-1,banma);
  456.      SetTimerEx("KickPlayer",100,false,"i",tid);
  457.     }else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  458.     return 1;}
  459. /*=======================================================================================================*/
  460. CMD:log(playerid,parmas[])
  461. {
  462. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  463. new read[500],ss[1008],op[1000];
  464. format(op,sizeof(op),"");
  465. new File:log=fopen("unban_log.txt",io_read);
  466. while(fread(log,read))
  467. {
  468. strcat(read,"\n",500);
  469. strcat(op,read,1000);
  470. }
  471. fclose(log);
  472. format(ss,sizeof(ss),"{9ACD32}%s",op);
  473. ShowPlayerDialog(playerid, 110, DIALOG_STYLE_MSGBOX, "{00BFFF}Showing Un-Ban Log",ss, "Cool", "");
  474. return 1;
  475. }
  476. /*=========================================================================================================*/
  477. CMD:showbans(playerid,parmas[])
  478. {
  479. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  480. new read[200],ss[1008],op[1000],bool:NextDialog=false;
  481. format(op,sizeof(op),"");
  482. new File:log=fopen("BannedPlayers.txt",io_read);
  483. while(fread(log,read))
  484. {
  485. strcat(read,"\n",200);
  486. strcat(op,read,1000);
  487. ln[playerid]++;
  488. if(ln[playerid]==110)//this specifies the maximum no. of bans that are to be shown in 1 dialog box
  489. {
  490. NextDialog=true;
  491. break;
  492. }
  493. }
  494. fclose(log);
  495. if(strlen(op)<=3)return SendClientMessage(playerid,-1,"{ff0000}No players currently banned.");
  496. format(ss,sizeof(ss),"{9ACD32}%s",op);
  497. if(NextDialog==false)ShowPlayerDialog(playerid, 110,  DIALOG_STYLE_LIST, "{00FFFF}Showing Currently Banned Players",ss, "Select", "Cancel");
  498. else ShowPlayerDialog(playerid, 111,  DIALOG_STYLE_LIST, "{00FFFF}Showing Currently Banned Players",ss, "Select", "Next Page");
  499. return 1;
  500. }
  501. /*================================================================================================================*/
  502. CMD:showbaninfo(playerid,parmas[])
  503. {
  504. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  505. new tid[MAX_PLAYER_NAME];
  506. if(sscanf(parmas,"s",tid))return SendClientMessage(playerid,-1,"{ff0000}Correct Usage: /showbaninfo PLAYERNAME\nNOTE:The PLAYERNAME should be exact name of player.");
  507. new path[150];
  508. format(path,sizeof(path),"Bans/%s.ini",tid);
  509. if(!fexist(path))return SendClientMessage(playerid,-1,"{ff0000}The player you requested is not in ban databse please use /showbans to view currently banned players.");
  510. Showinfo(playerid,tid);
  511. return 1;
  512. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement