Help | Temp Ban .
#1

Hello , i have try to make a temp ban command but I do not know how to do this .
this is my temp ban command :
Код 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;
	}
can any one help me to do this ??
Reply
#2

You can use one of the many pre-existing filterscripts as a temp ban command. (https://sampforum.blast.hk/showthread.php?pid=1205522#pid1205522)

You should avoid from just copying code in to your gamemode and expecting it to work.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)