View difference between Paste ID: d7qnJCP4 and S03MRExg
SHOW: | | - or go back to the newest paste.
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
}