sscanf inside strcmp
#1

Hello all,

I tried to make a sscanf parameter after the strcmp check but it didn't work

pawn Код:
COMMAND:gang(playerid, params[])
{
    new string[128], gName[128], Query[200], gID[5], DBResult:Result, pName[MAX_PLAYER_NAME];
    if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, Yellow, "Usage: /gang <create>");
    GetPlayerName(playerid, pName, sizeof(pName));
    if (!strcmp("create", params, true))
    {
        if(PlayerInfo[playerid][Gang] != 0) return SendClientMessage(playerid, Red, "..");
        if(sscanf(params, "s[128]", gName)) return SendClientMessage(playerid, Yellow, "Usage: /gang <create> <gangname>");
        if(CheckGangByName(gName)) return SendClientMessage(playerid, Yellow, "..");
        format(Query, sizeof(Query), "INSERT INTO `GANGS` (`ID`, `NAME`, `OWNER`) VALUES (NULL, '%s', '%s');", gName, pName);
        db_query(Database, Query);
        format(Query, sizeof(Query), "SELECT * FROM `USERS` WHERE `NAME` = '%s'", pName);
        Result = db_query(Database, Query);
        db_get_field_assoc(Result, "ID", gID, 5);
        PlayerInfo[playerid][Gang] = strval(gID);
        format(Query, sizeof(Query), "UPDATE `USERS` SET `GANG` = '%d' WHERE `NAME` = '%s'", PlayerInfo[playerid][Gang], pName);
        db_query(Database, Query);
        format(string, sizeof(string), "... Name: %s. ID: %d", gName, PlayerInfo[playerid][Gang]);
        SendClientMessage(playerid, Green, string);
    }
    return 1;
}
If I type /gang create, the gang name will be "create".. How to do it?
Reply
#2

lolz what you talking about?
You want command gang and then you type /gang create what... ?
Reply
#3

Does it Compile it or it has errors?
Reply
#4

@System64If you type /gang create, then the gangname parameter has towork, but it doesn't.. so it would be like this /gang <create> <gangname>.

@vassilis Yes, it compiles fine
Reply
#5

You don't need to use sscanf
pawn Код:
CMD:gang(playerid, params[])
{
   if(!strcmp(params,"create"))
Reply
#6

After a player has typed /gang create.. how would he able to write the gang name aswell ? Don't I need sscanf then?
Reply
#7

In that case:
pawn Код:
CMD:gang(playerid, params[])
{
    new gangname[128];
    if(!sscanf(params,"'create's",gangname))
    {
        //createganghere
Reply
#8

I think that in ZCMD and other procesors you can't use command than strcmp than somethig else...
Should look like this:
pawn Код:
COMMAND:gang create(playerid, params[])
{
    new string[128], gName[128], Query[200], gID[5], DBResult:Result, pName[MAX_PLAYER_NAME];
    if(sscanf(params, "s[128]", gName)) return SendClientMessage(playerid, Yellow, "Usage: /gang create <name>");
    GetPlayerName(playerid, pName, sizeof(pName));
    if(PlayerInfo[playerid][Gang] != 0) return SendClientMessage(playerid, Red, "..");
    if(CheckGangByName(gName)) return SendClientMessage(playerid, Yellow, "..");
    format(Query, sizeof(Query), "INSERT INTO `GANGS` (`ID`, `NAME`, `OWNER`) VALUES (NULL, '%s', '%s');", gName, pName);
    db_query(Database, Query);
    format(Query, sizeof(Query), "SELECT * FROM `USERS` WHERE `NAME` = '%s'", pName);
    Result = db_query(Database, Query);
    db_get_field_assoc(Result, "ID", gID, 5);
    PlayerInfo[playerid][Gang] = strval(gID);
    format(Query, sizeof(Query), "UPDATE `USERS` SET `GANG` = '%d' WHERE `NAME` = '%s'", PlayerInfo[playerid][Gang], pName);
    db_query(Database, Query);
    format(string, sizeof(string), "... Name: %s. ID: %d", gName, PlayerInfo[playerid][Gang]);
    SendClientMessage(playerid, Green, string);
    return 1;
}
Reply
#9

I'll try Varth.

@System64: I need some other things under "/gang <create/invite" etc, and I've heard it's possible. I tried to do some searching but I didn't find anything
Reply
#10

lol
just create more commands, /gang create, /gang invite...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)