Sscanf problem
#1

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.
Reply
#2

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;
    }
Reply
#3

Don't work, but thanks, any others suggestions? I've already tried with "s" to.
Reply
#4

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;
}
Reply
#5

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;
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)