Cmd help! -
xHarshx - 09.01.2014
Hello I am making a range cmd. It kinda works. Today when I was testing it, I had 2 probs. Problem 1 was that I made a dialog box which will appear to the player being banned. and instead when I range banned someone that dialog box comes to me. Second Problem, When I rangeban someone, The player gets kicked and it says Server closed the connection to that player as usual. But he doesn't get banned he gets kicked. he can easily re join.; So I need help fixing the issue.
Here is my CMD:
pawn Код:
CMD:rangeban(playerid, params[])
{
if(PlayerInfo[playerid][pAdminDuty] == 0) return SendClientMessage(playerid, -1, "You must be on Admin Duty to use this Command!");
if (PlayerInfo[playerid][pAdmin] >= 1338)
{
new Target;
new Reason[100];
if(!sscanf(params, "us[100]", Target,Reason))
{
if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"ERROR: Wrong player ID");
if(Target == playerid) return SendClientMessage(playerid,-1,"ERROR: You cant ban yourself!");
new tname[MAX_PLAYER_NAME];
GetPlayerName(Target,tname,sizeof(tname));
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
new MyString[256];
new TargetString[256];
new rbandate[3];
getdate(rbandate[0], rbandate[1], rbandate[2]);
format(MyString,sizeof(MyString),"You have range banned %s(%d)! (Reason: %s)",tname, Target, Reason);
format(TargetString,sizeof(TargetString),"{FF002B}Range banned by: {FFFFFF}%s\n\n{FF002B}Reason: {FFFFFF}%s\n\n{FF002B}Date: {FFFFFF}%02d/%02d/%04d\n\n{FFFFFF}Press F8 to take a screenshot and use this in unban appeal!", pname, playerid,Reason, rbandate[2], rbandate[1], rbandate[0]);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{FF002B}RANGE BANNED!", TargetString, "OK", "");
SendClientMessage(playerid,-1,MyString);
new AllString[256];
format(AllString,sizeof(AllString),"Administrator %s range banned player %s(%d)! (Reason: %s)",pname,tname,Target,Reason);
SendClientMessageToAll(-1,AllString);
new ip[50];
GetPlayerIp(Target,ip,sizeof(ip));
strdel(ip,strlen(ip)-4,strlen(ip));
format(ip,sizeof(ip),"%s.***",ip);
format(ip,sizeof(ip),"banip %s",ip);
SendRconCommand(ip);
new LogString[256];
format(LogString,sizeof(LogString),"Administrator %s range banned player %s(%d)! (Reason: %s)",pname,tname,ip,Reason);
AddBan(PlayerInfo[MAX_PLAYERS][pIP]);
Log("logs/ban.log", LogString);
Kick(Target);
}
else SendClientMessage(playerid, -1, "USAGE: /rangeban [playerid] [reason]");
}
return 1;
}
Re: Cmd help! -
Konstantinos - 09.01.2014
First problem:
pawn Код:
ShowPlayerDialog(Target, 0, DIALOG_STYLE_MSGBOX, "{FF002B}RANGE BANNED!", TargetString, "OK", "");
Second problem: You send the rcon command to range ban that player but I'm not really sure if it will ban the player at that time. As for the kick, you used: Kick(Target);
Re: Cmd help! -
xHarshx - 10.01.2014
Okay the first problem was fixed. but the second one still remains. help me.
Re: Cmd help! -
xZdadyZx - 10.01.2014
PHP код:
AddBan(PlayerInfo[MAX_PLAYERS][pIP]);
Log("logs/ban.log", LogString);
Kick(Target);
}
else SendClientMessage(playerid, -1, "USAGE: /rangeban [playerid] [reason]");
}
return 1;
}
Compare your script with part of this one,
PHP код:
GetPlayerName(id, banned, sizeof(banned));
format(string, sizeof(string), "AdmCmd: %s has been banned by %s. reason: %s", banned, GetName(playerid), reason);
SendClientMessageToAll(red, string);
BanEx(id, reason);
return 1;
}
So instead of Kick(target) you should use BanEx.
Re: Cmd help! -
Pottus - 10.01.2014
Range bans are a bad idea they're mostly effective at only keeping out people who are not banned players often have a lot of ranges so this is a really poor way to ban people.