SA-MP Forums Archive
Id 0 always getting kicked/banned/warned instead of correct id. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Id 0 always getting kicked/banned/warned instead of correct id. (/showthread.php?tid=586990)



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.