//onplayerconnect
if(PlayerInfo[playerid] [pBanned] >=1)
{
SendClientMessage(playerid,COLOR_WHITE,"This account is currently{FF0000} banned{EEEEEE} from <Censored>");
format(banstring,sizeof(banstring),"{FF0000}Username{EEEEEE}:%s",PlayerInfo[playerid][pBannedName]);
format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} By:%s",PlayerInfo[playerid][pBannedBy]);
format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} For%s",PlayerInfo[playerid][pBannedFor]);
SendClientMessage(playerid,COLOR_WHITE,banstring);
SetTimerEx("KickPlayer", 120, false, "i",playerid);
}
public OnPlayerConnect(playerid)
{
new banstring[300];
if(PlayerInfo[playerid][pBanned] ==1)
{
SendClientMessage(playerid,COLOR_WHITE,"This account is currently{FF0000} banned{EEEEEE} from San Fierro Cops and Robbers");
format(banstring,sizeof(banstring),"{FF0000}Username{EEEEEE}:%s",PlayerInfo[playerid][pBannedName]);
format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} By:%s",PlayerInfo[playerid][pBannedBy]);
format(banstring,sizeof(banstring),"{FF0000}Banned{EEEEEE} For%s",PlayerInfo[playerid][pBannedFor]);
SendClientMessage(playerid,COLOR_WHITE,banstring);
SetTimerEx("KickPlayer", 100 , false, "i",playerid);
}
CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return NOACCESS
new targetid;
new reason[128];
if(sscanf(params, "us[128]", targetid, reason)) return SendClientMessage(playerid, -1, "USAGE: /ban [id] [reason]");
if(!IsPlayerConnected(targetid) || targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, "The player is not connected.");
new pName[MAX_PLAYER_NAME], targetname[MAX_PLAYER_NAME], day, month, year, hour, minute, second, string[150];
new string2[300];
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
GetPlayerName(playerid,targetname,MAX_PLAYER_NAME);
getdate(day, month, year);
gettime(hour, minute, second);
format(string, sizeof(string), "[{FF0000}BAN{EEEEEE}]Administrator %s has banned %s for %s",pName,targetname,reason);
SendClientMessageToAll(COLOR_WHITE,string);
format(string, sizeof(string),"[{FF0000}BAN{EEEEEE}]Administrator %s has banned you for %s",pName,reason);
SendClientMessage(targetid,COLOR_WHITE,string);
SendClientMessage(targetid,COLOR_WHITE,"--------------------------------------");
SendClientMessage(targetid, COLOR_RED, "Ban Information");
format(string, sizeof(string), "Banned by: %s", pName);
SendClientMessage(targetid, COLOR_RED, string);
format(string, sizeof(string), "Banned for: %s", reason);
SendClientMessage(targetid, COLOR_RED, string);
format(string, sizeof(string), "Ban date: %d/%d/%d at %d:%d:%d.", day, month, year, hour, minute, second);
SendClientMessage(targetid, COLOR_RED, string);
SendClientMessage(targetid, COLOR_WHITE,"Please press the F8 button to take a screenshot to use it on your appeal");
SendClientMessage(targetid,COLOR_WHITE,"--------------------------------------");
PlayerInfo[targetid][pBanned] = 1;
strcpy(PlayerInfo[playerid][pBannedName],targetname,MAX_PLAYER_NAME);
strcpy(PlayerInfo[targetid][pBannedBy], pName, MAX_PLAYER_NAME);
strcpy(PlayerInfo[targetid][pBannedFor], reason, sizeof (reason));
format(string2,sizeof(string2), "Administrator %s has banned %s for %s(Date: %d/%d/%d at %d:%d:%d)",pName,targetname,reason,day,month,year,hour,minute,second);
printf(string2);
new File:log;
log = fopen("logs/bans.txt", io_append);
fwrite(log, string2);
fclose(log);
SetTimerEx("KickPlayer", 150, false, "i", targetid);
return 1;
}
You're not checking if the player is actually banned, in order to do so you'll need to look through your bans.txt file for an entry containing that player's name. Do that, find his name and ban/kick him.
|