CMD:rban(playerid, params[]) { LoginCheck(playerid); LevelCheck(playerid, 4); new str[130], id ; if(sscanf(params, "uS(No Reason)[128]", id, params)) return SendUsage(playerid, "/rban <PlayerID> <Reason(Optional)>", "Range bans the specified player's IP."); if(id == INVALID_PLAYER_ID) return SendError(playerid, "Player is not connected."); if(id == playerid) return SendError(playerid, "You cannot ban yourself."); if(pInfo[playerid][Admin] < pInfo[id][Admin]) return SendError(playerid, "You cannot use this command on a higher level administrator."); ClearChatB(id, 100); format(str, sizeof(str), "{AFAFAF}%s{FF6347} has been ranged banned by [ADMIN] {AFAFAF}%s{FF6347} (Reason: {AFAFAF}%s{FF6347})", GetName(id), GetName(playerid), params); SendClientMessageToAll(COLOR_CHAT, str); format(str, sizeof(str), "You have range banned {AFAFAF}%s{FF6347} (Reason: {AFAFAF}%s{FF6347})", GetName(id), params); SendClientMessage(playerid, COLOR_CHAT, str); format(str, sizeof(str), "You have been banned by [ADMIN] {AFAFAF}%s{FF6347}", GetName(playerid)); SendClientMessage(id, COLOR_CHAT, str); PlaySoundForAll(1140); new ip[50]; GetPlayerIp(id, ip, 16); strdel(ip, strlen(ip)-4, strlen(ip)); format(ip, sizeof(ip), "%s**.**", ip); format(ip, sizeof(ip), "banip %s", ip); SendRconCommand(ip); SendRconCommand("reloadbans"); //KickDelay(id); SendAdm(playerid, "RBAN"); return 1; }
new ip[16], ipaddress[50], banningip[16];
GetPlayerIP(id, ip, 16);
strdel(ipaddress, strlen(ip)-4, strlen(ip));
format(ipaddress, sizeof(ipaddress), "%s**.**", ip);
format(banningip, sizeof(banningip), "banip %s", ipaddress);
SendRconCommand(banningip);
SendRconCommand("reloadbans");
SendAdm(playerid, "RBAN");
return 1;
Mhm. I knew I could do that, I was trying to simplify it into a command. :P Thanks though.
|
CMD:rban(playerid, params[])
{
LoginCheck(playerid);
LevelCheck(playerid, 4);
new
str[130],
id, range[4][4];
if(sscanf(params, "uS(No Reason)[128]", id, params)) return SendUsage(playerid, "/rban <PlayerID> <Reason(Optional)>", "Range bans the specified player's IP.");
if(id == INVALID_PLAYER_ID) return SendError(playerid, "Player is not connected.");
if(id == playerid) return SendError(playerid, "You cannot ban yourself.");
if(pInfo[playerid][Admin] < pInfo[id][Admin]) return SendError(playerid, "You cannot use this command on a higher level administrator.");
ClearChatB(id, 100);
format(str, sizeof(str), "{AFAFAF}%s{FF6347} has been ranged banned by [ADMIN] {AFAFAF}%s{FF6347} (Reason: {AFAFAF}%s{FF6347})", GetName(id), GetName(playerid), params);
SendClientMessageToAll(COLOR_CHAT, str);
format(str, sizeof(str), "You have range banned {AFAFAF}%s{FF6347} (Reason: {AFAFAF}%s{FF6347})", GetName(id), params);
SendClientMessage(playerid, COLOR_CHAT, str);
format(str, sizeof(str), "You have been banned by [ADMIN] {AFAFAF}%s{FF6347}", GetName(playerid));
SendClientMessage(id, COLOR_CHAT, str);
PlaySoundForAll(1140);
new ip[50];
split(GetPlayerIp(id, ip, sizeof(ip), range, '.');
format(str, sizeof(str), "%s.%s.*.*", range[0], range[1]);
AddRangeBan(str);
//KickDelay(id);
SendAdm(playerid, "RBAN");
return 1;
}
CMD:rban(playerid, params[])
{
LoginCheck(playerid);
LevelCheck(playerid, 4);
new id, reason[20];
if(sscanf(params, "uS(No Reason)[20]", id, reason)) return SendUsage(playerid, "/rban <PlayerID> <Reason(Optional)>", "Range bans the specified player's IP.");
if(id == INVALID_PLAYER_ID || !IsPlayerConnected(id)) return SendError(playerid, "Player is not connected.");
if(id == playerid) return SendError(playerid, "You cannot ban yourself.");
if(pInfo[playerid][Admin] < pInfo[id][Admin]) return SendError(playerid, "You cannot use this command on a higher level administrator.");
new str[128], ip[16];
ClearChatB(id, 100);
format(str, sizeof(str), "{AFAFAF}%s{FF6347} has been ranged banned by [ADMIN] {AFAFAF}%s{FF6347} (Reason: {AFAFAF}%s{FF6347})", GetName(id), GetName(playerid), reason);
SendClientMessageToAll(COLOR_CHAT, str);
format(str, sizeof(str), "You have range banned {AFAFAF}%s{FF6347} (Reason: {AFAFAF}%s{FF6347})", GetName(id), reason);
SendClientMessage(playerid, COLOR_CHAT, str);
format(str, sizeof(str), "You have been banned by [ADMIN] {AFAFAF}%s{FF6347}", GetName(playerid));
SendClientMessage(id, COLOR_CHAT, str);
PlaySoundForAll(1140);
GetPlayerIp(id, ip, sizeof(ip));
split(ip, range, '.');
format(reason, sizeof(reason), "banip %s.%s.*.*", range[0], range[1]);
SendRconCommand(reason);
SendAdm(playerid, "RBAN");
return 1;
}
stock AddRangeBan(IP[])
{
new string[24];
new File:ban = fopen("ban.cfg", io_append);
format(string, sizeof(string), "%s\r\n", IP);
fwrite(ban, string);
fclose(ban);
}