Problem with sscanf and zcmd
#1

Hi
I am trying to make an admin system
so i added a command called "/adminlevel" to set the admin level of player
but i am having problem
when i do the command it's just show the error syntex i mean correct usage.....

CODE:
Код:
CMD:adminlevel(playerid, params[])
{
		if(PlayerInfo[playerid][pAdmin] < 3&& !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not an admin.");
			new targetid,level;
			if(sscanf(params,"ui", targetid,level)) return SendClientMessage(playerid, COLOR_RED,"Correct usage: /adminlevel [PlayerID] [Level]");
			if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_RED,"That player is not connected to the server!");
			if(level <4)
			{
				PlayerInfo[targetid][pAdmin] = level;
				new msg[126],aname[MAX_PLAYER_NAME];
				GetPlayerName(playerid,aname,sizeof(aname));
				format(msg,sizeof(msg),"Admin ~r~%s ~w~Set You To Admin Level ~b~%i",aname,level);
				GameTextForPlayer(playerid, msg, 5000, 5);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED,"Level Must Be Between 1-3");
			}
		return 1;
}
Reply
#2

dafaq no zcmd command working -_-
Reply
#3

Your code is correct. What do you mean by "no zcmd command working" ?
Reply
#4

Quote:
Originally Posted by Dayrion
Посмотреть сообщение
Your code is correct. What do you mean by "no zcmd command working" ?
Thanks for reply!

i have many zcmd and sscanf commands
Код:
CMD:adminlevel(playerid, params[])
{
		if(PlayerInfo[playerid][pAdmin] < 3&& !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"You are not an admin.");
			new targetid,level;
			if(sscanf(params,"ui", targetid,level)) return SendClientMessage(playerid, COLOR_RED,"Correct usage: /adminlevel [PlayerID] [Level]");
			if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_RED,"That player is not connected to the server!");
			if(level <4)
			{
				PlayerInfo[targetid][pAdmin] = level;
				new msg[126],aname[MAX_PLAYER_NAME];
				GetPlayerName(playerid,aname,sizeof(aname));
				format(msg,sizeof(msg),"Admin ~r~%s ~w~Set You To Admin Level ~b~%i",aname,level);
				GameTextForPlayer(playerid, msg, 5000, 5);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED,"Level Must Be Between 1-3");
			}
		return 1;
}

CMD:kick(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 1&& !IsPlayerAdmin(playerid)) return 1;
	new targetid,reason[126],pName[MAX_PLAYERS];
	if(sscanf(params,"us", targetid,reason)) return SendClientMessage(playerid, -1 , "Correct Usage: /kick [Playerid][Reason]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,COLOR_RED,"Player not connected.");
	GetPlayerName(targetid,pName,sizeof(pName));
	new msg[126];
	format(msg,sizeof(msg),"[Kick]%s has beed kicked by an admin.Reason : %s",pName,reason);
	SendClientMessageToAll(COLOR_RED,msg);
	SetTimer("KickPlayer", 10, false);
	return 1;
}

CMD:ban(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 2&& !IsPlayerAdmin(playerid)) return 1;
	new targetid,reason[126],pName[MAX_PLAYERS];
	if(sscanf(params,"us", targetid,reason)) return SendClientMessage(playerid, -1 , "Correct Usage: /kick [Playerid][Reason]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,COLOR_RED,"Player not connected.");
	GetPlayerName(targetid,pName,sizeof(pName));
	new msg[126];
	format(msg,sizeof(msg),"[Ban]%s has beed banned by an admin.Reason : %s",pName,reason);
	SendClientMessageToAll(COLOR_RED,msg);
	SetTimer("BanPlayer", 10, false);
	return 1;
}

CMD:getplayer(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 1&& !IsPlayerAdmin(playerid)) return 1;
	new targetid,pName[MAX_PLAYERS];
	if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, -1 , "Correct Usage: /kick [Playerid][Reason]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,COLOR_RED,"Player not connected.");
	GetPlayerName(playerid,pName,sizeof(pName));
	new float:x,float:y,float:z;
	GetPlayerPos(playerid,x,y,z);
	SetPlayerPos(targetid,x,y,z);
	new msg[126];
	format(msg,sizeof(msg),"[Teleport]You have been teleported to Admin %s",pName);
	SendClientMessage(targetid,COLOR_RED,msg);
	return 1;
}

CMD:goto(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 1&& !IsPlayerAdmin(playerid)) return 1;
	new targetid,pName[MAX_PLAYERS];
	if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, -1 , "Correct Usage: /kick [Playerid][Reason]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,COLOR_RED,"Player not connected.");
	GetPlayerName(targetid,pName,sizeof(pName));
	new float:x,float:y,float:z;
	GetPlayerPos(targetid,x,y,z);
	SetPlayerPos(playerid,x,y,z);
    new msg[126];
	format(msg,sizeof(msg),"[Teleport]You have been teleported to player %s",pName);
	SendClientMessage(playerid,COLOR_RED,msg);
	return 1;
}

CMD:spec(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 1&& !IsPlayerAdmin(playerid)) return 1;
	new targetid,pName[MAX_PLAYERS];
	if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, -1 , "Correct Usage: /kick [Playerid][Reason]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,COLOR_RED,"Player not connected.");
	GetPlayerName(targetid,pName,sizeof(pName));
	TogglePlayerSpectating(targetid, 1);
	new msg[126];
	format(msg,sizeof(msg),"[Spectate]You are spectating player %s",pName);
	SendClientMessage(playerid,COLOR_RED,msg);
	return 1;
}

CMD:specoff(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 1&& !IsPlayerAdmin(playerid)) return 1;
	new targetid,pName[MAX_PLAYERS];
	if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, -1 , "Correct Usage: /kick [Playerid][Reason]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,COLOR_RED,"Player not connected.");
	GetPlayerName(targetid,pName,sizeof(pName));
	TogglePlayerSpectating(targetid, 0);
	new msg[126];
	format(msg,sizeof(msg),"[Spectate]You are no more spectating player %s",pName);
	SendClientMessage(playerid,COLOR_RED,msg);
	return 1;
}

CMD:jail(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 1&& !IsPlayerAdmin(playerid)) return 1;
	new id,time,reason[100],PlayerName[MAX_PLAYER_NAME],GPlayerName[MAX_PLAYER_NAME],msg[128];
	if(sscanf(params,"dds",id,time,reason)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /jail [playerid] [time] [reason]");
	if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected.");
	if(Jailed[id] == 1) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is already jailed.");
	GetPlayerName(id, PlayerName, sizeof(PlayerName));// the jailed person id
	GetPlayerName(playerid, GPlayerName, sizeof(GPlayerName));// the admin id
    format(msg, sizeof(msg), "[Jail]: %s (ID:%d) has been jailed for %d minutes; Reason: %s", PlayerName, id, time, reason);
	SendClientMessageToAll(COLOR_RED, msg);//%s = name . %d = number
	SetPlayerInterior(id, 3);//sets player interior
	SetPlayerVirtualWorld(id, 10);//sets player vw
	SetPlayerFacingAngle(id, 360.0);//player angle
	SetPlayerPos(id, 197.5662, 175.4800, 1004.0);//player pos
	SetPlayerHealth(id, 9999999999.0);//player cannot be killed
	ResetPlayerWeapons(id);//resets his weapons
	JailTimer[id] = SetTimerEx("Unjail",time*60000, false, "i", id);//jail timer
	return 1;
}


CMD:unjail(playerid,params[]) {
    	new id;
    	if(PlayerInfo[playerid][pAdmin] < 1&& !IsPlayerAdmin(playerid)) return 1;
		if(sscanf(params,"u",id)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /unjail [playerid]");//sscanf routine
		if (!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected.");//checks if the targetid is connected
		if(Jailed[id] == 0) return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not jailed.");//checks if the id is jailed and if he isnt it will send an error.
  		Jailed[id] = 0;// sets his jail to 0 = unjailed
		SetPlayerInterior(id, 0);//normal int
		SetPlayerVirtualWorld(id, 0);//normal vw
		SpawnPlayer(id);//respawns player
		SetPlayerHealth(id, 100);//sets his health back as 100
		KillTimer(JailTimer[id]);//kills the timer
	    return 1;
}

CMD:setpresident(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] < 2&& !IsPlayerAdmin(playerid)) return 1;
	new targetid,pName[MAX_PLAYERS];
	if(sscanf(params,"u", targetid)) return SendClientMessage(playerid, -1 , "Correct Usage: /setpresident [Playerid]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,COLOR_RED,"Player not connected.");
	GetPlayerName(targetid,pName,sizeof(pName));
	new msg[126];
	format(msg,sizeof(msg),"[President]You maded player %s as a president.",pName);
	PlayerInfo[playerid][pJob] = 1;
	SendClientMessage(playerid,COLOR_GREEN,msg);
	new msg2[126],msg3[126],admin[MAX_PLAYERS];
	GetPlayerName(playerid,admin,sizeof(admin));
	format(msg2,sizeof(msg2),"[President]'You are now president of this RP.'-Admin %",admin);
	SendClientMessage(targetid,COLOR_GREEN,msg2);
	format(msg3,sizeof(msg3),"[President]New president is Mr.%s",pName);
	SendClientMessageToAll(COLOR_GREEN,msg3);
	return 1;
}
all commands giving me error
Reply
#5

The pName[MAX_PLAYERS] is wrong, it should be pName[MAX_PLAYER_NAME]. And also tthe float should be uppercase (Float: x, Float:y, Float:z)
Reply
#6

What error have you?
Reply
#7

guys fixed! i was having problem with sscanf include
i replaced it and it is fixed!
thanks for you replies bro
Reply
#8

No problem. Also, check out what Hreesang wrote.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)