sscanf warning: Format specifier does not match parameter count.
#1

pawn Код:
COMMAND:bank(playerid, params[])
{
    new     action[30];
    new     integer;
    new     str[128];
   
    if(IsPlayerInRangeOfPoint(playerid, 5, BANK_X,BANK_Y,BANK_Z))
    {
        if(sscanf(params, "s[30]{i}", action))
        {
            SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /bank <action>");
            SendClientMessage(playerid, COLOR_WHITE, "ACTIONS: withdraw, deposit, balance.");
        }
        else
        {
                if (!strcmp(action, "withdraw", true))
                {
                    if(sscanf(params, "{s[30]}i",integer))
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /bank withdraw <amount>");
                    }
                    else
                    {
                        if(PlayerInfo[playerid][playerbank] >= integer)
                        {
                            format(str, 128, "You have withdrawn %i$ from your bank account", integer);
                            SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
                            GivePlayerMoney(playerid, value);
                            PlayerInfo[playerid][playerbank] -= integer;
                            format(str, 128, "New bank balance: %i$", PlayerInfo[playerid][playerbank]);
                            SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY, "Invalid amount");
                        }
                    }
                }
                if (!strcmp(action, "deposit", true))
                {
                    if(sscanf(params, "{s[30]}i",integer))
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "USAGE: /bank deposit <amount>");
                    }
                    else
                    {
                        if(GetPlayerMoney(playerid) <= integer)
                        {
                            format(str, 128, "You have deposited %i$ into your bank account", integer);
                            SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
                            GivePlayerMoney(playerid, -value);
                            PlayerInfo[playerid][playerbank] += integer;
                            format(str, 128, "New bank balance: %i$", PlayerInfo[playerid][playerbank]);
                            SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY, "Invalid amount");
                        }
                    }
                }
                if (!strcmp(action, "balance", true))
                {
                    format(str, 128, "You have %i$ into your bank account.", PlayerInfo[playerid][playerbank]);
                    SendClientMessage(playerid, COLOR_LIGHTGREEN, str);
                }
        }
    }
    else
    {
        SendClientMessage(playerid, COLOR_GREY, "You're not in bank.");
    }
    return true;
}
What could be causing this?
Note: Command works perfectly.

It shows that warning if i type /bank withdraw or /bank deposit
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)