Sscanf problem -
Sreadon - 11.12.2011
Hi, I have never use sscanf before and I've tried to convert a ZCMD command to strcmp but I've a problem with Sscanf:
pawn Код:
if(strcmp(cmd, "/gotodealership", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!(PlayerInfo[playerid][pAdmin] > 3)) return SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas accиs а cette commande!");
new dealerid, msg[128];
if(sscanf(cmd, "d", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /gotodealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Erreur!");
SetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
format(msg, sizeof(msg), "Teleported to dealership id %d", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
}
return 1;
}
Here, no error in compil, but In Game, when I typed /gotodealership 1, that return me the usage, even if the syntax is correct, someone know why?
Thanks.
Re: Sscanf problem -
Kingunit - 11.12.2011
pawn Код:
if(strcmp(cmd, "/gotodealership", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!(PlayerInfo[playerid][pAdmin] > 3)) return SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas accиs а cette commande!");
new dealerid, msg[128];
if(sscanf(cmd, "i", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /gotodealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Erreur!");
SetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
format(msg, sizeof(msg), "Teleported to dealership id %d", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
}
return 1;
}
Re : Sscanf problem -
Sreadon - 11.12.2011
Don't work, but thanks, any others suggestions? I've already tried with "s" to.
Re: Sscanf problem -
Kingunit - 11.12.2011
dealerid is a INT, so you need to use: I. Try the one with zcmd.
pawn Код:
CMD:gotodealership(playerid, params[])
{
if(!(PlayerInfo[playerid][pAdmin] > 3)) return SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas accиs а cette commande!");
new dealerid, msg[128];
if(sscanf(params, "i", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /gotodealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Erreur!");
SetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
format(msg, sizeof(msg), "Teleported to dealership id %d", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
Re : Sscanf problem -
Sreadon - 11.12.2011
As I said before, this work without problems with "d" in ZCMD, here the original code with ZCMD, I've converted it in strcmp.
pawn Код:
CMD:gotodealership(playerid, params[])
{
if(!IsAdmin(playerid, 1)) return SendClientMessage(playerid, COLOR_RED, "Vous n'кtes pas administrateur!");
new dealerid, msg[128];
if(sscanf(params, "d", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /gotodealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Invalid dealerid!");
SetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
format(msg, sizeof(msg), "Teleported to dealership id %d", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
return 1;
}
EDIT: Solved
pawn Код:
if(strcmp(cmd, "/gotodealership", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!(PlayerInfo[playerid][pAdmin] > 3)) return SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas accиs а cette commande!");
new dealerid, msg[128];
if(sscanf(tmp, "d", dealerid)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /gotodealership [dealerid]");
if(!IsValidDealership(dealerid)) return SendClientMessage(playerid, COLOR_RED, "Erreur!");
SetPlayerPos(playerid, DealershipPos[dealerid][0], DealershipPos[dealerid][1], DealershipPos[dealerid][2]);
format(msg, sizeof(msg), "Teleported to dealership id %d", dealerid);
SendClientMessage(playerid, COLOR_WHITE, msg);
}
return 1;
}