xxZeus

Temp Ban System y_ini

Aug 2nd, 2017
1,065
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 19.67 KB | None | 0 0
  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. {
  94.     INI_Int("Banexp",PlayerInfo[playerid][pBanexp]);
  95.     INI_Int("BanPerm",PlayerInfo[playerid][pBanPerm]);
  96.     INI_String("BanPlayer", PlayerInfo[playerid][pBanIPP], 20);
  97.     INI_String("BanAdmin", PlayerInfo[playerid][pBanAdmin], 20);
  98.     INI_String("Reason",PlayerInfo[playerid][pBanres],100);
  99.     return 1;
  100. }
  101.  
  102. forward LoadIP_data(playerid,name[],value[]);
  103. public LoadIP_data(playerid,name[],value[])
  104. {
  105.     INI_String("IP",pp,50);
  106.     return 1;
  107. }
  108.  
  109. stock UserBanPath(playerid)
  110. {
  111.     new string[128],playername[MAX_PLAYER_NAME];
  112.     GetPlayerName(playerid,playername,sizeof(playername));
  113.     format(string,sizeof(string),BANPATH,playername);
  114.     return string;
  115. }
  116. stock UserIPPath(playerid)
  117. {
  118.     new string[128],ip[50];
  119.     GetPlayerIp(playerid,ip,sizeof(ip));
  120.     format(string,sizeof(string),IPPATH,ip);
  121.     return string;
  122. }
  123.  
  124. stock Showinfo(playerid,targetname[])
  125. {
  126.     new path[150],ss[500];
  127.     format(path,sizeof(path),"Bans/%s.ini",targetname);
  128.     INI_ParseFile(path, "LoadBanUser_%s", .bExtra = true, .extra = playerid);
  129.     if(PlayerInfo[playerid][pBanPerm]==1)
  130.     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]);
  131.     else
  132.     {
  133.         new d,m,y,h,mi,s;
  134.         TimestampToDate(PlayerInfo[playerid][pBanexp],y,m,d,h,mi,s,GMT_H,GMT_M);
  135.         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);
  136.     }
  137.     format(revseen[playerid],MAX_PLAYER_NAME,"%s",targetname);
  138.     ShowPlayerDialog(playerid, 113,  DIALOG_STYLE_MSGBOX,targetname,ss, "Remove Ban", "Cancel");
  139.     return 1;
  140. }
  141.  
  142. stock fdeleteline(filename[], line[])
  143. {
  144.     if(fexist(filename)){
  145.         new temp[256];
  146.         new File:fhandle = fopen(filename,io_read);
  147.         fread(fhandle,temp,sizeof(temp),false);
  148.         if(strfind(temp,line,true)==-1){return 0;}
  149.         else{
  150.             fclose(fhandle);
  151.             fremove(filename);
  152.             for(new i=0;i<strlen(temp);i++){
  153.                 new templine[256];
  154.                 strmid(templine,temp,i,i+strlen(line));
  155.                 if(strcmp(templine,line,true)){
  156.                     strdel(temp,i,i+strlen(line));
  157.                     fcreate(filename);
  158.                     fhandle = fopen(filename,io_write);
  159.                     fwrite(fhandle,temp);
  160.                     fclose(fhandle);
  161.                     return 1;
  162.                 }
  163.             }
  164.         }
  165.     }
  166.     return 0;
  167. }
  168.  
  169.  
  170. public OnPlayerConnect(playerid)
  171. {
  172.    
  173.     if(fexist(UserBanPath(playerid)))
  174.     {
  175.         INI_ParseFile(UserBanPath(playerid), "LoadBanUser_%s", .bExtra = true, .extra = playerid);
  176.        
  177.         if(PlayerInfo[playerid][pBanPerm]==1)
  178.         {new reso[256];
  179.             SendClientMessage(playerid,-1,"{85BB65}You are permanently Banned from this server by Administration");
  180.             format(reso,sizeof(reso),"{85BB65}Reason: {f0f000}%s",PlayerInfo[playerid][pBanres]);
  181.             SendClientMessage(playerid,-1,reso);
  182.             format(reso,sizeof(reso),"{85BB65}Banning Admin: {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  183.             SendClientMessage(playerid,-1,reso);
  184.             SetTimerEx("KickPlayer",100,false,"i",playerid);
  185.         }
  186.         else
  187.         {
  188.             if(gettime() > PlayerInfo[playerid][pBanexp])
  189.             {   fremove(UserBanPath(playerid));
  190.                 fremove(UserIPPath(playerid));
  191.                 SendClientMessage(playerid,-1,"{00cc00}You have been unbanned!!!!");
  192.             }
  193.             else
  194.             {
  195.                 new d,m,y,h,mi,s;
  196.                 TimestampToDate(PlayerInfo[playerid][pBanexp],y,m,d,h,mi,s,GMT_H,GMT_M);
  197.                 new str[540];
  198.                 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);
  199.                 SendClientMessage(playerid,-1,str);
  200.                 format(str,sizeof(str),"{85BB65}Expires on[TIME] -- {f0f000}%i-%i[Time Format: 24 Hour Clock]",h,mi);
  201.                 SendClientMessage(playerid, -1, str);
  202.                 format(str,sizeof(str),"{85BB65}Reason -- {f0f000}%s",PlayerInfo[playerid][pBanres]);
  203.                 SendClientMessage(playerid, -1, str);
  204.                 format(str,sizeof(str),"{85BB65}Banning Admin -- {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  205.                 SendClientMessage(playerid, -1, str);
  206.                 SetTimerEx("KickPlayer",100,false,"i",playerid);
  207.             }
  208.         }
  209.     }
  210.    
  211.     else if(fexist(UserIPPath(playerid)))
  212.     {
  213.         INI_ParseFile(UserIPPath(playerid), "LoadIPUser_%s", .bExtra = true, .extra = playerid);
  214.         if(PlayerInfo[playerid][pBanPerm]==1)
  215.         {  new reso[256];
  216.             SendClientMessage(playerid,-1,"{85BB65}This IP is permanently Banned from this server by Administration");
  217.             format(reso,sizeof(reso),"{85BB65}Originally Banned Player: {f0f000}%s",PlayerInfo[playerid][pBanIPP]);
  218.             SendClientMessage(playerid,-1,reso);
  219.             format(reso,sizeof(reso),"{85BB65}Reason: {f0f000}%s",PlayerInfo[playerid][pBanres]);
  220.             SendClientMessage(playerid,-1,reso);
  221.             format(reso,sizeof(reso),"{85BB65}Banning Admin: {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  222.             SendClientMessage(playerid,-1,reso);
  223.             SetTimerEx("KickPlayer",100,false,"i",playerid);
  224.         }
  225.         else {
  226.             if(gettime() > PlayerInfo[playerid][pBanexp])
  227.             {   new pat[100];
  228.                 fremove(UserIPPath(playerid));
  229.                 format(pat,sizeof(pat),"Bans/%s.ini",PlayerInfo[playerid][pBanIPP]);
  230.                 fremove(pat);
  231.                 SendClientMessage(playerid,-1,"{00cc00}This IP was banned but as now the expire time has passed this IP has been unbanned.");
  232.             }
  233.             else
  234.             {
  235.                 new d,m,y,h,mi,s;
  236.                 TimestampToDate(PlayerInfo[playerid][pBanexp],y,m,d,h,mi,s,GMT_H,GMT_M);
  237.                 new str[540];
  238.                 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);
  239.                 SendClientMessage(playerid,-1,str);
  240.                 format(str,sizeof(str),"{85BB65}Expires on[TIME] -- {f0f000}%i-%i[Time Format: 24 Hour Clock]",h,mi);
  241.                 SendClientMessage(playerid, -1, str);
  242.                 format(str,sizeof(str),"{85BB65}Originally Banned Player -- {f0f000}%s",PlayerInfo[playerid][pBanIPP]);
  243.                 SendClientMessage(playerid, -1, str);
  244.                 format(str,sizeof(str),"{85BB65}Reason -- {f0f000}%s",PlayerInfo[playerid][pBanres]);
  245.                 SendClientMessage(playerid, -1, str);
  246.                 format(str,sizeof(str),"{85BB65}Banning Admin -- {f0f000}%s",PlayerInfo[playerid][pBanAdmin]);
  247.                 SendClientMessage(playerid, -1, str);
  248.                 SetTimerEx("KickPlayer",100,false,"i",playerid);
  249.             }
  250.         }
  251.     }
  252.    
  253.     return 1;
  254. }
  255.  
  256. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  257. {
  258.     if(dialogid==110 && response)
  259.     {
  260.        
  261.         Showinfo(playerid,inputtext);
  262.         ln[playerid]=0;
  263.     }
  264.     if(dialogid==111)
  265.     {
  266.         if(response)Showinfo(playerid,inputtext);
  267.         else
  268.         {
  269.             new read[200],ss[1008],op[1000];
  270.             format(op,sizeof(op),"");
  271.             new File:log=fopen("BannedPlayers.txt",io_read);
  272.             fseek(log,ln[playerid],seek_start);
  273.             while(fread(log,read))
  274.             {
  275.                 strcat(read,"\n",200);
  276.                 strcat(op,read,1000);
  277.             }
  278.             fclose(log);
  279.             format(ss,sizeof(ss),"{9ACD32}%s",op);
  280.             ShowPlayerDialog(playerid, 112,  DIALOG_STYLE_LIST, "{00FFFF}Showing Currently Banned Players[Page 2]",ss, "Select", "Cancel");
  281.             ln[playerid]=0;
  282.         }
  283.     }
  284.     if(dialogid==112 && response)Showinfo(playerid,inputtext);
  285.     if(dialogid==113 && response)
  286.     {
  287.         new pat[MAX_PLAYER_NAME+10],pati[MAX_PLAYER_NAME+10],ppf[100],adname[MAX_PLAYER_NAME];
  288.        
  289.         format(pat,sizeof(pat),"Bans/%s.ini",revseen[playerid]);
  290.        
  291.         INI_ParseFile(pat, "LoadIP_%s", .bExtra = true, .extra = playerid);
  292.         format(pati,sizeof(pat),"IP/%s.ini",pp);
  293.         fremove(pati);
  294.         format(pat,sizeof(pat),"Bans/%s.ini",revseen[playerid]);
  295.         fremove(pat);
  296.         format(ppf,sizeof(ppf),"The player %s has been un-banned.",revseen[playerid]);
  297.         SendClientMessage(playerid,0x00FF00FF,ppf);
  298.         GetPlayerName(playerid,adname,sizeof(adname));
  299.         format(pat,sizeof(pat),"%s has been unbanned by %s",revseen[playerid],adname);
  300.         new File:log=fopen("unban_log.txt",io_append);
  301.         fwrite(log, pat);
  302.         fwrite(log,"\r\n");
  303.         fclose(log);
  304.         fdeleteline("BannedPlayers.txt", revseen[playerid]);
  305.     }
  306.    
  307.    
  308.     return 0;
  309. }
  310.  
  311.  
  312.  
  313.  
  314.  
  315. forward KickPlayer(playerid);
  316. public KickPlayer(playerid)
  317. {
  318.     Kick(playerid);
  319.     return 1;
  320. }
  321.  
  322. /*=====================================COMMANDS======================================*/
  323. CMD:ban(playerid,parmas[])
  324. {
  325.     if(IsPlayerAdmin(playerid)){
  326.         new tid,du,res[150],ppp[50];
  327.         if(sscanf(parmas,"uis",tid,du,res) || isnull(parmas))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage || Correct Usage : /ban id duration(In Days) Reason");
  328.         if(!IsPlayerConnected(tid))return SendClientMessage(playerid,-1,"{ff6666}The Player you requested is not connected.");
  329.         new banmt[300],banma[300],adminname[MAX_PLAYER_NAME],targetn[MAX_PLAYER_NAME];
  330.         GetPlayerName(playerid,adminname,sizeof(adminname));
  331.         new exp=gettime()+(60*60*24*du);
  332.         GetPlayerIp(tid,ppp,sizeof(ppp));
  333.         new INI:File = INI_Open(UserBanPath(tid));
  334.         INI_SetTag(File,"data");
  335.         INI_WriteInt(File,"Banexp",exp);
  336.         INI_WriteInt(File,"BanPerm",0);
  337.         INI_WriteString(File,"BanAdmin",adminname);
  338.         INI_WriteString(File,"Reason",res);
  339.         INI_WriteString(File,"IP",ppp);
  340.         INI_Close(File);
  341.         GetPlayerName(tid,targetn,sizeof(targetn));
  342.         new INI:iFile = INI_Open(UserIPPath(tid));
  343.         INI_SetTag(iFile,"data");
  344.         INI_WriteInt(iFile,"Banexp",exp);
  345.         INI_WriteInt(iFile,"BanPerm",0);
  346.         INI_WriteString(iFile,"BanPlayer",targetn);
  347.         INI_WriteString(iFile,"BanAdmin",adminname);
  348.         INI_WriteString(iFile,"Reason",res);
  349.         INI_Close(iFile);
  350.         new File:logg=fopen("BannedPlayers.txt",io_append);
  351.         fwrite(logg, targetn);
  352.         fwrite(logg,"\n");
  353.         fclose(logg);
  354.         format(banmt,sizeof(banmt),"{ff0000}Admin %s has banned you for %i days due to %s",adminname,du,res);
  355.         format(banma,sizeof(banma),"{ff0000}Admin %s has banned %s for %i days due to %s",adminname,targetn,du,res);
  356.         SendClientMessage(tid,-1,banmt);
  357.         SendClientMessageToAll(-1,banma);
  358.         SetTimerEx("KickPlayer",100,false,"i",tid);
  359.     }
  360.     else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  361.     return 1;
  362. }
  363. /*===================================================================================================*/
  364. CMD:removeban(playerid,parmas[]){
  365.     if(IsPlayerAdmin(playerid)){
  366.         new rename[MAX_PLAYER_NAME],pat[MAX_PLAYER_NAME+10],pati[MAX_PLAYER_NAME+10],ppf[100],adname[MAX_PLAYER_NAME];
  367.         if(sscanf(parmas,"s",rename) || isnull(parmas))return SendClientMessage(playerid, -1, "{FF0000}Wrong Usage || Usage : /removeban PlayerName");
  368.         format(pat,sizeof(pat),"Bans/%s.ini",rename);
  369.         if(!fexist(pat))
  370.         {
  371.             format(ppf,sizeof(ppf),"The user cannot be unbanned because there is user named as %s banned.",rename);
  372.             SendClientMessage(playerid,-1,ppf);
  373.             return 1;
  374.         }
  375.         INI_ParseFile(pat, "LoadIP_%s", .bExtra = true, .extra = playerid);
  376.         format(pati,sizeof(pat),"IP/%s.ini",pp);
  377.         fremove(pati);
  378.         format(pat,sizeof(pat),"Bans/%s.ini",rename);
  379.         fremove(pat);
  380.         format(ppf,sizeof(ppf),"The player %s has been un-banned.",rename);
  381.         SendClientMessage(playerid,0x00FF00FF,ppf);
  382.         GetPlayerName(playerid,adname,sizeof(adname));
  383.         format(pat,sizeof(pat),"%s has been unbanned by %s",rename,adname);
  384.         new File:log=fopen("unban_log.txt",io_append);
  385.         fwrite(log, pat);
  386.         fwrite(log,"\r\n");
  387.         fclose(log);
  388.         fdeleteline("BannedPlayers.txt", rename);
  389.     }
  390.     else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command");
  391.     return 1;
  392. }
  393. /*====================================================================================================*/
  394. CMD:banperm(playerid,parmas[])
  395. {
  396.     if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  397.     new tid,res[90],ppp[50];
  398.     if(sscanf(parmas,"us",tid,res) || isnull(parmas))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage || Correct Usage : /banperm PlayerID Reason");
  399.     if(!IsPlayerConnected(tid))return SendClientMessage(playerid,-1,"{ff6666}The Player you requested is not connected.");
  400.     new adminname[MAX_PLAYER_NAME];
  401.     GetPlayerName(playerid,adminname,sizeof(adminname));
  402.     GetPlayerIp(tid,ppp,sizeof(ppp));
  403.     new INI:File = INI_Open(UserBanPath(tid));
  404.     INI_SetTag(File,"data");
  405.     INI_WriteInt(File,"Banexp",0);
  406.     INI_WriteInt(File,"BanPerm",1);
  407.     INI_WriteString(File,"BanAdmin",adminname);
  408.     INI_WriteString(File,"Reason",res);
  409.     INI_WriteString(File,"IP",ppp);
  410.     INI_Close(File);
  411.     new banmt[300],banma[300],targetn[MAX_PLAYER_NAME];
  412.     GetPlayerName(tid,targetn,sizeof(targetn));
  413.     new INI:iFile = INI_Open(UserIPPath(tid));
  414.     INI_SetTag(iFile,"data");
  415.     INI_WriteInt(iFile,"Banexp",0);
  416.     INI_WriteInt(iFile,"BanPerm",1);
  417.     INI_WriteString(iFile,"BanPlayer",targetn);
  418.     INI_WriteString(iFile,"BanAdmin",adminname);
  419.     INI_WriteString(iFile,"Reason",res);
  420.     INI_Close(iFile);
  421.     new File:logg=fopen("BannedPlayers.txt",io_append);
  422.     fwrite(logg, targetn);
  423.     fwrite(logg,"\n");
  424.     fclose(logg);
  425.     format(banmt,sizeof(banmt),"{ff0000}Admin %s has banned you for permanently due to %s",adminname,res);
  426.     format(banma,sizeof(banma),"{ff0000}Admin %s has banned %s permanenetly due to %s",adminname,targetn,res);
  427.     SendClientMessage(tid,-1,banmt);
  428.     SendClientMessageToAll(-1,banma);
  429.     SetTimerEx("KickPlayer",100,false,"i",tid);
  430.     return 1;
  431. }
  432. /*=======================================================================================================*/
  433. CMD:banm(playerid,parmas[])
  434. {
  435.     if(IsPlayerAdmin(playerid)){
  436.         new tid,h,m,res[150],ppp[50];
  437.         if(sscanf(parmas,"uiis",tid,h,m,res) || isnull(parmas))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage || Correct Usage : /banm ID Hours Minutes Reason");
  438.         if(!IsPlayerConnected(tid))return SendClientMessage(playerid,-1,"{ff6666}The Player you requested is not connected.");
  439.         new banmt[300],banma[300],adminname[MAX_PLAYER_NAME],targetn[MAX_PLAYER_NAME];
  440.         GetPlayerName(playerid,adminname,sizeof(adminname));
  441.         new exp=gettime()+(60*m)+(60*60*h);
  442.         GetPlayerIp(tid,ppp,sizeof(ppp));
  443.         new INI:File = INI_Open(UserBanPath(tid));
  444.         INI_SetTag(File,"data");
  445.         INI_WriteInt(File,"Banexp",exp);
  446.         INI_WriteInt(File,"BanPerm",0);
  447.         INI_WriteString(File,"BanAdmin",adminname);
  448.         INI_WriteString(File,"Reason",res);
  449.         INI_WriteString(File,"IP",ppp);
  450.         INI_Close(File);
  451.         GetPlayerName(tid,targetn,sizeof(targetn));
  452.         new INI:iFile = INI_Open(UserIPPath(tid));
  453.         INI_SetTag(iFile,"data");
  454.         INI_WriteInt(iFile,"Banexp",exp);
  455.         INI_WriteInt(iFile,"BanPerm",0);
  456.         INI_WriteString(iFile,"BanPlayer",targetn);
  457.         INI_WriteString(iFile,"BanAdmin",adminname);
  458.         INI_WriteString(iFile,"Reason",res);
  459.         INI_Close(iFile);
  460.         new File:logg=fopen("BannedPlayers.txt",io_append);
  461.         fwrite(logg, targetn);
  462.         fwrite(logg,"\n");
  463.         fclose(logg);
  464.         format(banmt,sizeof(banmt),"{ff0000}Admin %s has banned you for %i hours %i minutes due to %s",adminname,h,m,res);
  465.         format(banma,sizeof(banma),"{ff0000}Admin %s has banned %s for %i hours %i minutes due to %s",adminname,targetn,h,m,res);
  466.         SendClientMessage(tid,-1,banmt);
  467.         SendClientMessageToAll(-1,banma);
  468.         SetTimerEx("KickPlayer",100,false,"i",tid);
  469.     }
  470.     else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  471.     return 1;
  472. }
  473. /*=======================================================================================================*/
  474. CMD:log(playerid,parmas[])
  475. {
  476.     if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  477.     new read[500],ss[1008],op[1000];
  478.     format(op,sizeof(op),"");
  479.     new File:log=fopen("unban_log.txt",io_read);
  480.     while(fread(log,read))
  481.     {
  482.         strcat(read,"\n",500);
  483.         strcat(op,read,1000);
  484.     }
  485.     fclose(log);
  486.     format(ss,sizeof(ss),"{9ACD32}%s",op);
  487.     ShowPlayerDialog(playerid, 110, DIALOG_STYLE_MSGBOX, "{00BFFF}Showing Un-Ban Log",ss, "Cool", "");
  488.     return 1;
  489. }
  490. /*=========================================================================================================*/
  491. CMD:showbans(playerid,parmas[])
  492. {
  493.     if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  494.     new read[200],ss[1008],op[1000],bool:NextDialog=false;
  495.     format(op,sizeof(op),"");
  496.     new File:log=fopen("BannedPlayers.txt",io_read);
  497.     while(fread(log,read))
  498.     {
  499.         strcat(read,"\n",200);
  500.         strcat(op,read,1000);
  501.         ln[playerid]++;
  502.         if(ln[playerid]==110)//this specifies the maximum no. of bans that are to be shown in 1 dialog box
  503.         {
  504.             NextDialog=true;
  505.             break;
  506.         }
  507.     }
  508.     fclose(log);
  509.     if(strlen(op)<=3)return SendClientMessage(playerid,-1,"{ff0000}No players currently banned.");
  510.     format(ss,sizeof(ss),"{9ACD32}%s",op);
  511.     if(NextDialog==false)ShowPlayerDialog(playerid, 110,  DIALOG_STYLE_LIST, "{00FFFF}Showing Currently Banned Players",ss, "Select", "Cancel");
  512.     else ShowPlayerDialog(playerid, 111,  DIALOG_STYLE_LIST, "{00FFFF}Showing Currently Banned Players",ss, "Select", "Next Page");
  513.     return 1;
  514. }
  515. /*================================================================================================================*/
  516. CMD:showbaninfo(playerid,parmas[])
  517. {
  518.     if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
  519.     new tid[MAX_PLAYER_NAME];
  520.     if(sscanf(parmas,"s",tid))return SendClientMessage(playerid,-1,"{ff0000}Correct Usage: /showbaninfo PLAYERNAME\nNOTE:The PLAYERNAME should be exact name of player.");
  521.     new path[150];
  522.     format(path,sizeof(path),"Bans/%s.ini",tid);
  523.     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.");
  524.     Showinfo(playerid,tid);
  525.     return 1;
  526. }
Add Comment
Please, Sign In to add comment