SA-MP Forums Archive
[Ajuda] com SSCANF! - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] com SSCANF! (/showthread.php?tid=519284)



com SSCANF! - SuperChock - 13.06.2014

Aн pessoal.. venho de novo pedir a ajuda com o SSCANF... quero fazer um comano com parвmetros e sub-parвmetros, alguйm pode me ajudar?

Por exemplo:

/vender [arma/droga/remйdio]

aн os sub-parвmetros pra droga e remйdio sгo [quantidade] e [preзo]

Porйm, para arma, os sub-parвmetros sгo [nome] e [preзo].

Algo mais ou menos assim:

pawn Код:
YCMD:vender(playerid, params[], pHELPS) // TERMINAR
{
    new Fun[15];

    if(sscanf(params, "s[12]", Fun))
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender [droga/medicamento/arma]");
        return 1;
    }
    if(!strcmp(Fun, "droga"))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender droga [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(!strcmp(Fun, "medicamento"))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender medicamento [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(!strcmp(Fun, "arma"))
    {
        new nome[15], price;

        if(sscanf(params, "s[15]d", nome, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender arma [nome] [preзo]");
            return 1;
        }
        return 1;
    }
    return 1;
}
Sу que dessa maneira nгo funciona... help?!

Muito obrigado.


Respuesta: Ajuda com SSCANF! - merloch - 13.06.2014

Quote:
Originally Posted by SuperChock
Посмотреть сообщение
Aн pessoal.. venho de novo pedir a ajuda com o SSCANF... quero fazer um comano com parвmetros e sub-parвmetros, alguйm pode me ajudar?

Por exemplo:

/vender [arma/droga/remйdio]

aн os sub-parвmetros pra droga e remйdio sгo [quantidade] e [preзo]

Porйm, para arma, os sub-parвmetros sгo [nome] e [preзo].

Algo mais ou menos assim:

pawn Код:
YCMD:vender(playerid, params[], pHELPS) // TERMINAR
{
    new Fun[15];

    if(sscanf(params, "s[12]", Fun))
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender [droga/medicamento/arma]");
        return 1;
    }
    if(!strcmp(Fun, "droga"))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender droga [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(!strcmp(Fun, "medicamento"))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender medicamento [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(!strcmp(Fun, "arma"))
    {
        new nome[15], price;

        if(sscanf(params, "s[15]d", nome, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender arma [nome] [preзo]");
            return 1;
        }
        return 1;
    }
    return 1;
}
Sу que dessa maneira nгo funciona... help?!

Muito obrigado.
/vender medicamento [quantidade] quando funciona?


Re: Ajuda com SSCANF! - SuperChock - 13.06.2014

Nгo entendi...

vocк entendeu o que eu preciso?


Re: com SSCANF! - MultiKill - 13.06.2014

pawn Код:
YCMD:vender(playerid, params[], pHELPS) // TERMINAR
{
    new Fun[15];

    if(sscanf(params, "s", Fun))
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender [droga/medicamento/arma]");
        return 1;
    }
    if(!strcmp(Fun, "droga"))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender droga [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(!strcmp(Fun, "medicamento"))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender medicamento [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(!strcmp(Fun, "arma"))
    {
        new nome[15], price;

        if(sscanf(params, "s[15]d", nome, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender arma [nome] [preзo]");
            return 1;
        }
        return 1;
    }
    return 1;
}



Re: com SSCANF! - SuperChock - 14.06.2014

Que tipo de flood й esse cara? Sу copiou e colou o que eu jб tinha sugerido. Jб disse acima que esse mйtodo nгo funciona.


Re: com SSCANF! - MultiKill - 14.06.2014

Eu modifiquei essa linha:
pawn Код:
if(sscanf(params, "s", Fun))
Funcionou?
@Edit
Tente:
pawn Код:
YCMD:vender(playerid, params[], pHELPS) // TERMINAR
{
    new Fun[15];

    if(sscanf(params, "s[12]", Fun))
    {
        SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender [droga/medicamento/arma]");
        return 1;
    }
    if(strcmp(Fun, "droga",true))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender droga [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(strcmp(Fun, "medicamento",true))
    {
        new qntd, price;

        if(sscanf(params, "dd", qntd, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender medicamento [quantidade] [preзo]");
            return 1;
        }
        return 1;
    }
    if(strcmp(Fun, "arma",true))
    {
        new nome[15], price;

        if(sscanf(params, "s[15]d", nome, price))
        {
            SendClientMessage(playerid, 0xFFFFFFFF, "USE: /vender arma [nome] [preзo]");
            return 1;
        }
        return 1;
    }
    return 1;
}



Re: com SSCANF! - SuperChock - 14.06.2014

Mesma coisa amigo.. deve ter alguma espйcie de "truque", parece que sу aceita um sscanf por comando. Apenas o primeiro й executado. Й o que dб a entender... talvez os servers que vi isso usam strcmp/strtok nos comandos @.@


Re: com SSCANF! - SuperChock - 14.06.2014

alguйm?!


Re: com SSCANF! - Dolby - 14.06.2014

A forma mais conveniente de se fazer isto й utilizando Dialogs.


Re: com SSCANF! - SuperChock - 15.06.2014

Quote:
Originally Posted by Dolby
Посмотреть сообщение
A forma mais conveniente de se fazer isto й utilizando Dialogs.
Concordo... porйm e a preguiзa? kkkk Jб tenho muitos dialogs bastante personalizados, tenho uma infinidade de PVars por causa disso. Mutias etapas em dialogs e tal.