View difference between Paste ID: QStS2f26 and HfRsfPad
SHOW: | | - or go back to the newest paste.
1
//This script is purely made by Zeus
2
//All its Credits to Zeus for scripting
3
4
#include <a_samp>
5
#include <zcmd>
6
#include <sscanf2>
7
#include <YSI\y_ini>
8
9
#define BANPATH "/Bans/%s.ini"
10
11
enum pInfo
12
{
13
    pBanexp,
14
    pBanm,
15
    pBany,
16
    pBanh,
17
    pBanmi,
18
    pBanres
19
}
20
new PlayerInfo[MAX_PLAYERS][pInfo];
21
22
forward LoadBanUser_data(playerid,name[],value[]);
23
public LoadBanUser_data(playerid,name[],value[])
24
{INI_Int("Banexp",PlayerInfo[playerid][pBanexp]);
25
 INI_Int("Banm",PlayerInfo[playerid][pBanm]);
26
 INI_Int("Bany",PlayerInfo[playerid][pBany]);
27
 INI_Int("Banhour",PlayerInfo[playerid][pBanh]);
28
 INI_Int("Banmin",PlayerInfo[playerid][pBanmi]);
29
 INI_Int("Reason",PlayerInfo[playerid][pBanres]);
30
 return 1;
31
}
32
33
stock UserBanPath(playerid)
34
{
35
    new string[128],playername[MAX_PLAYER_NAME];
36
    GetPlayerName(playerid,playername,sizeof(playername));
37
    format(string,sizeof(string),BANPATH,playername);
38
    return string;
39
}
40
public OnPlayerConnect(playerid)
41
{
42
if(fexist(UserBanPath(playerid)))
43
   {  INI_ParseFile(UserBanPath(playerid), "LoadBanUser_%s", .bExtra = true, .extra = playerid);
44
      new d,m,y,h,mi,s;
45
      getdate(y,m,d);
46
      gettime(h,mi,s);
47
      if((d>PlayerInfo[playerid][pBanexp] && m>=PlayerInfo[playerid][pBanm] && y>=PlayerInfo[playerid][pBany]) || (d>PlayerInfo[playerid][pBanexp] && m==PlayerInfo[playerid][pBanm]) || (m>PlayerInfo[playerid][pBanm] || y>PlayerInfo[playerid][pBany]) || (d==PlayerInfo[playerid][pBanexp] && m==PlayerInfo[playerid][pBanm] && y==PlayerInfo[playerid][pBany] && h>=PlayerInfo[playerid][pBanh] && mi>=PlayerInfo[playerid][pBanmi]))
48
      {fremove(UserBanPath(playerid));}
49
      else
50
      {new clt[200],cltim[100];
51
	   SendClientMessage(playerid,-1,"{ff0000}You are currently Ban from the server");
52
	   format(clt,sizeof(clt),"{F0FFFF}Your Ban will expire on - {FFE5B4}%i/%i/%i {F0FFFF}[Date Format: dd/mm/yyyy]",PlayerInfo[playerid][pBanexp],PlayerInfo[playerid][pBanm],PlayerInfo[playerid][pBany]);
53
	   format(cltim,sizeof(cltim),"{F0FFFF}At Time : {FFE5B4}%i:%i {F0FFFF}[Time Format: 24 Hour Clock]",PlayerInfo[playerid][pBanh],PlayerInfo[playerid][pBanmi]);
54
	   SendClientMessage(playerid,-1,clt);
55
	   SendClientMessage(playerid,-1,cltim);
56
	   SetTimerEx("KickPlayer",70,false,"i",playerid);
57
       }}}
58
forward KickPlayer(playerid);
59
public KickPlayer(playerid)
60
{
61
    Kick(playerid);
62
    return 1;
63
}
64
/*=================================COMMANDS FROM HERE=========================================*/
65
CMD:kick(nadmin,parmas[])
66
{new  tok[300], toall[300], playerid, reason[128], adminname[MAX_PLAYER_NAME], kname[MAX_PLAYER_NAME];
67
 if(PlayerInfo[nadmin][pAdmin]>=1)// <---------PUT Your admin variables here and the levels who can use this cammand
68
{if(sscanf(parmas, "us", playerid, reason) || isnull(parmas))return SendClientMessage(nadmin,-1,"{FF0000}Wrong Usage || Usage: /kick id reason");
69
 if(!IsPlayerConnected(playerid))return SendClientMessage(nadmin,-1,"{FF0000}The player you want to kick is not connected");
70
 GetPlayerName(nadmin, adminname, sizeof(adminname));
71
 GetPlayerName(playerid, kname, sizeof(kname));
72
 format(toall, sizeof(toall), "{FF0000}Admin %s(%i) has kicked %s(%i) due to %s" , adminname, nadmin, kname, playerid, reason);
73
 format(tok, sizeof(tok), "{FF0000}Admin %s(%i) has kicked you due to %s" ,adminname, nadmin, reason);
74
 SendClientMessageToAll(-1,toall);
75
 SendClientMessage(playerid,-1,tok);
76
 SetTimerEx("KickPlayer",100,false,"i",playerid);
77
}
78
else
79
{SendClientMessage(nadmin, -1, "{FF0000}You need to be admin to use this commnad.");}
80
 return 1;}
81
/*======================================================================================================*/
82
83
CMD:ban(playerid,parmas[])
84
{
85
if(PlayerInfo[playerid][pAdmin]>=1)// <---------PUT Your admin variables here and the levels who can use this cammand
86
{
87
new tid,du,d,m,y,h,mi,s,bx,ca,res[150];
88
if(sscanf(parmas,"uis",tid,du,res) || isnull(parmas))return SendClientMessage(playerid,-1,"{ff0000}Wrong Usage || Correct Usage : /ban id duration(In Days) Reason");
89
if(!IsPlayerConnected(tid))return SendClientMessage(playerid,-1,"{ff6666}The Player you requested is not connected.");
90
if(du>20)return SendClientMessage(playerid,-1,"You cannot ban a person for more than 20 days.");
91
new banmt[300],banma[300],adminname[MAX_PLAYER_NAME],targetn[MAX_PLAYER_NAME];
92
getdate(y,m,d);
93
gettime(h,mi,s);
94
bx=d+du;
95
if(m==12 && bx>31)
96
{y++;}
97
if(bx>30 && m==4 || m==6 || m==9 || m==11)
98
{ca=bx-30;m++; }
99
else if(bx>31 && m==1 || m==3 || m==5 || m==7 ||m==8 || m==10 || m==12)
100
{ca=bx-31;m++;}
101
else if(m==2 && bx>29 && y%4==0)
102
{ca=bx-29;m++;}
103
else if(m==2 && bx>28 && y%4!=0)
104
{ca=bx-28;m++;}
105
else ca=bx;
106
107
 new INI:File = INI_Open(UserBanPath(tid));
108
 INI_WriteInt(File,"Banexp",ca);
109
 INI_WriteInt(File,"Banm",m);
110
 INI_WriteInt(File,"Bany",y);
111
 INI_WriteInt(File,"Banhour",h);
112
 INI_WriteInt(File,"Banmin",mi);
113
 INI_WriteString(File,"Reason",res);
114
 INI_Close(File);
115
 GetPlayerName(playerid,adminname,sizeof(adminname));
116
 GetPlayerName(tid,targetn,sizeof(targetn));
117
 format(banmt,sizeof(banmt),"{ff0000}Admin %s has banned you for %i days due to %s",adminname,du,res);
118
 format(banma,sizeof(banma),"{ff0000}Admin %s has banned %s for %i days due to %s",adminname,targetn,du,res);
119
 SendClientMessage(tid,-1,banmt);
120
 SendClientMessageToAll(-1,banma);
121
 SetTimerEx("KickPlayer",100,false,"i",tid);
122
}else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command.");
123
return 1;}
124
125
/*======================================================================================================*/
126
127
CMD:removeban(playerid,parmas[]){
128
if(PlayerInfo[playerid][pAdmin]>=3)// <---------PUT Your admin variables here and the levels who can use this cammand
129
{
130
new rename[MAX_PLAYER_NAME],pat[MAX_PLAYER_NAME+10],ppf[100],adname[MAX_PLAYER_NAME];
131
if(sscanf(parmas,"s",rename) || isnull(parmas))return SendClientMessage(playerid, -1, "{FF0000}Wrong Usage || Usage : /removeban PlayerName");
132
format(pat,sizeof(pat),"Bans/%s.ini",rename);
133
fremove(pat);
134
format(ppf,sizeof(ppf),"The player %s has been sucessfully un-banned",rename);
135
SendClientMessage(playerid,0x00FF00FF,ppf);
136
GetPlayerName(playerid,adname,sizeof(adname));
137
printf("%s has been unbanned by %s",rename,adname);}
138
else SendClientMessage(playerid,-1,"{ff0000}You are not authorized to use this command");
139
return 1;}