Id 0 always getting kicked/banned/warned instead of correct id. -
hydravink - 27.08.2015
I made some admin commands, some working good, like /jail, /freeze. These apply to the corect player id.
However I got these commands: /ban /kick /warn /mute which don't work good.
I looked for this bug and its common, but I still couldn't find a fix. ID 0 always gets kicked banned etc instead of the id I put. Also, when a player reaches 3/3 warns, for example id 5 reaches 3/3 warns, id 0 is kicked. When id 5 mute time expires, id 0 is being unmuted. I don't get what is wrong. Sscanf is updated.
Here is some code, just a command so you can see what I'm talking about.
Код:
CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] > 4)
{
new bannedid,
reason[128],
adminName[MAX_PLAYER_NAME],
playerName[MAX_PLAYER_NAME],
string[256];
if(sscanf(params, "us[128]", bannedid, reason)) return
SendClientMessage(playerid, COLOR_ORANGE, "** Syntax: /ban <playerid/name> <reason>");
if(!IsPlayerConnected(bannedid)) return
SendClientMessage(playerid, COLOR_ERROR, "** The playerid/name you have typed isn't connected.");
if(PlayerInfo[bannedid][pAdmin] > PlayerInfo[playerid][pAdmin]) return
SendClientMessage(playerid, COLOR_ERROR, "** The playerid/name you have typed has a bigger level than you.");
GetPlayerName(bannedid, playerName, sizeof(playerName));
GetPlayerName(playerid, adminName, sizeof(adminName));
format(string, sizeof(string), "** Admin %s has banned %s for: %s", adminName, playerName, reason);
SendClientMessageToAll(COLOR_ERROR, string);
SetTimerEx("DelayedBan", 500, false, "d", bannedid);
}else{
SendClientMessage(playerid, COLOR_ERROR, "** Only level 5 admins can use this command.");
}
return 1;
}
public DelayedBan(playerid, bannedid, reason[])
{
BanEx(bannedid, reason);
}
What is strange is that some commands work, they are the same format at this... No problems. But kick and ban are a little bit special, with this Delay function... I guess here is the problem...
Please help, thanks
Re: Id 0 always getting kicked/banned/warned instead of correct id. -
Jefff - 27.08.2015
Show DelayedBan public
public DelayedKick(playerid, kickedid) should be public DelayedKick(kickedid) because kickedid is always ID 0
Re: Id 0 always getting kicked/banned/warned instead of correct id. -
hydravink - 27.08.2015
DelayedBan is the same, but Ban(bannedid)
Nope, nevermind. I tested using id 0, it still doesn't work. BUMP
Re: Id 0 always getting kicked/banned/warned instead of correct id. -
Jefff - 27.08.2015
and this is wrong because bannedid is always 0, remove playerid part from public DelayedBan and DelayedKick
Re: Id 0 always getting kicked/banned/warned instead of correct id. -
hydravink - 27.08.2015
No, I did it, still doesn't work. I didn't use a good player to test. It had id 0 ... Please help.
Re: Id 0 always getting kicked/banned/warned instead of correct id. -
madma - 27.08.2015
Try
Код:
public DelayedBan(playerid, reason[])
{
BanEx(playerid, reason);
}
Re: Id 0 always getting kicked/banned/warned instead of correct id. -
hydravink - 27.08.2015
I deleted my sscanf, reinstalled, and now it seems to work. Looks like my sscanf was corrupted, but I did nothing to it. Its good now, thanks for everyone and sorry for this post, kind of worthless.