Help | Temp Ban . -
Hello , i have try to make a temp ban command but I do not know how to do this .
Код HTML:
if(strcmp(cmd, "/tempban", true) == 0)
{
new name[MAX_PLAYER_NAME];
if(AccInfo[playerid][Level] >= 4)
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, LIGHTBLUE2, "Usage: /tempban [PlayerID] [Day(s)] [Reason]");
SendClientMessage(playerid, orange, "Function: Temporarily bans a player for specified Days");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
tmp = strtok(cmdtext, idx);
if (!strlen(tmp))
{
SendClientMessage(playerid, LIGHTBLUE2, "Usage: /tempban [PlayerID] [Day(s)] [Reason]");
SendClientMessage(playerid, orange, "Function: Temporarily bans a player for specified Days");
return 1;
}
new days = strval(tmp);
if(!IsNumeric(tmp))
return SendClientMessage(playerid, lightred, "ERROR: Invalid Day! Only Numbers!");
if(strval(tmp) <= 0 || strval(tmp) > 1000)
return SendClientMessage(playerid, lightred, "ERROR: Invalid Day! (1-1000)");
new reason[128];
reason = strtok2(cmdtext,idx);
if (!strlen(reason))
return SendClientMessage(playerid, lightred, "ERROR: Reason not Specified!");
if (strlen(reason) <= 0 || strlen(reason) > 100)
return SendClientMessage(playerid, lightred, "ERROR: Invalid Reason length!");
new ip[15];
GetPlayerIp(giveplayerid,ip,15);
GetPlayerName(playerid, name, sizeof name);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new File:tempban = fopen("LuxAdmin/Config/TempBans.ban", io_append);
if (tempban)
{
new year,month,day;
getdate(year, month, day);
day += days;
if (IsMonth31(month))
{
if (day > 31)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 31) day -= 31;
}
else while(day > 31) day -= 31;
}
}
else if (!IsMonth31(month))
{
if (day > 30)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 30) day -= 30;
}
else while(day > 30) day -= 30;
}
}
else if (!IsMonth31(month) && IsMonth29(year) && month == 2)
{
if (day > 29)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 29) day -= 29;
}
else while(day > 29) day -= 29;
}
}
else if (!IsMonth31(month) && !IsMonth29(year) && month == 2)
{
if (day > 28)
{
month += 1;
if (month > 12)
{
year += 1;
while(day > 28) day -= 28;
}
else while(day > 28) day -= 28;
}
}
new file[64];
new y,m,d,h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
new playersip[64];
GetPlayerIp(playerid,playersip,sizeof(playersip));
format(file, sizeof(file),"LuxAdmin/Bans/%s.tempban",playersip);
dini_Create(file);
format(string, sizeof(string),"%d/%d/%d At %d:%d:%d",d,m,y,h,mi,s);
dini_Set(file,"BanDate",string);
format(string, sizeof(string),"%d",d);
dini_Set(file,"BanDay",string);
format(string, sizeof(string),"%d",m);
dini_Set(file,"BanMonth",string);
format(string, sizeof(string),"%d",d);
dini_Set(file,"BanYear",string);
format(string, sizeof(string),"%d/%d/%d",day,month,year);
dini_Set(file,"Until",string);
dini_Set(file,"BannedBy",plaName(playerid));
dini_Set(file,"BanReason",reason);
dini_Set(file,"BanName",plaName(giveplayerid));
dUserSetINT(PlayerName2(giveplayerid)).("Banned",1);
}
format(string,128,"|- Administrator %s Temporarily Banned %s for %d Day(s) | Reason: %s -|",name,giveplayer,days,reason);
SendClientMessageToAll(lightred,string);
Kick(giveplayerid);
format(string, sizeof string, "Admin %s Temporarily Banned %s for %d Day(s) | Reason: %s",name,giveplayer,days,reason);
SaveIn("TempBansLog",string);
}
else
{
ErrorMessages(playerid, 2);
}
}
else return ErrorMessages(playerid, 1);
return true;
}
Re: Help | Temp Ban . -
You can use one of the many pre-existing filterscripts as a temp ban command. (
You should avoid from just copying code in to your gamemode and expecting it to work.