[Ajuda] Dъvida ZCMD e SSCANF De novo :(
#1

Para nгo ficar criando tуpicos sobre ZCMD e SSCANF, alguйm poderia me dar uma lista com uma breve explicaзгo sobre o que colocar: Por exemplo:

pawn Код:
if(sscanf(params, "ud", id, quantidade))
        return SendClientMessage(playerid, -1, "USO: /vida [ID] [PREЗO]");
U й usado para ID's (nъmeros inteiros nгo negativos) (NГO ACEITA ESPAЗOS)
D й usado para nъmeros inteiros negativos e positivos.. (NГO ACEITA ESPAЗOS)
S й usado para letras (ACEITA ESPAЗOS)

Iria me ajudar muito. Pois achei um site mas tava em ingles e nгo entendi muito bem.

Tipo assim....
Reply
#2

Aproveite e atualize...


Toda documentaзгo oficial e atualizada vocк encontra aqui... all moved to GitHub >> https://github.com/Y-Less/sscanf/wiki
Reply
#3

Place Holder / EspecificadorSignificado / Uso
%iInteiros
%dInteiros
%sStrings/Textos
%fFloat / Valor Flutuante
%cChar / Caractere
* Thanks PT

Exemplos:

Inteiro = 19
String = "Alguma coisa"
Float = 3.14
Caractere = A
Reply
#4

O %c irб contar espaзos ? e o (_) underline ?
Reply
#5

Quote:
Originally Posted by Miineiro
Посмотреть сообщение
O %c irб contar espaзos ? e o (_) underline ?
Nгo. Esse placeholder й utilizado para chars / caracteres.

Por exemplo:
pawn Код:
char a = 'A';
char b = 'B';
char under = '_';
Ele armazena uma unica letra, um caractere.

Lembrando que Pawn nгo tem a declaraзгo usando char, foi apenas um exemplo.
Reply
#6

Estou convertendo meu GM inteiro para ZCMD. Entгo como ficaria este comando ? Sу mesmo como exemplo

pawn Код:
if(strcmp(cmd, "/seditar", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        if(PlayerInfo[playerid][pAdmin] < 3000)
        {
            SendClientMessage(playerid, COLOR_GREY, "Voce nгo tem autorizaзгo para usar esse comando!");
            return 1;
        }
        if(admtrampando[playerid] < 1 && PlayerInfo[playerid][pAdmin] != 3000)
        {
            SendClientMessage(playerid, -1, "Vocк nгo estб trabalhando! {E31919}(/trabalhar)");
            return 1;
        }
        new x_Emprego[32];
        x_Emprego = strtok(cmdtext, idx);
        if(!strlen(x_Emprego)) {
            SendClientMessage(playerid, -1, "|______________ Editar ______________|");
            SendClientMessage(playerid, -1, "USE: /seditar [nome] [quantidade] (Use para casas e empresas)");
            SendClientMessage(playerid, COLOR_GREY, "Casas: Level, Preco, carro, descricao, chave(0 aberto - 1 fechado)");
            SendClientMessage(playerid, COLOR_GREY, "Empresas: Level, Preco, fundos, descricao, chave(0 aberto - 1 fechado)");
            return 1;
        }
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GRAD2, "USE: /seditar [nome] [quantidade]");
            return 1;
        }
        new proplev = strval(tmp);
        new novo[128];
        novo = strtok(cmdtext, idx);
        for(new i = 0; i < sizeof(HouseInfo); i++)
        {
            if(PlayerToPoint(3, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
            {
                format(string, sizeof(string), "Casa: %d", i);
                SendClientMessage(playerid, COLOR_GRAD2, string);
                if(proplev > 0)
                {
                    if(strcmp(x_Emprego,"level",true) == 0)
                    {
                        HouseInfo[i][hLevel] = proplev;
                    }
                    else if(strcmp(x_Emprego,"preco",true) == 0)
                    {
                        HouseInfo[i][hValue] = proplev;
                    }
                    else if(strcmp(x_Emprego,"carro",true) == 0)
                    {
                        HouseInfo[i][hVec] = proplev;
                    }
                    else if(strcmp(x_Emprego,"chave",true) == 0)
                    {
                        HouseInfo[i][hLock] = proplev;
                    }
                   
                }
            }
        }
        for(new i = 0; i < sizeof(BizzInfo); i++)
        {
            if(PlayerToPoint(3, playerid,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))
            {
                format(string, sizeof(string), "Empresa: %d (Empresa com interior)", i);
                SendClientMessage(playerid, COLOR_GRAD2, string);
                if(proplev > 0)
                {
                    if(strcmp(x_Emprego,"level",true) == 0)
                    {
                        BizzInfo[i][bLevelNeeded] = proplev;
                    }
                    else if(strcmp(x_Emprego,"preco",true) == 0)
                    {
                        BizzInfo[i][bBuyPrice] = proplev;
                    }
                    else if(strcmp(x_Emprego,"fundos",true) == 0)
                    {
                        BizzInfo[i][bTill] = proplev;
                    }
                    else if(strcmp(x_Emprego,"chave",true) == 0)
                    {
                        BizzInfo[i][bLocked] = proplev;
                    }
                    else if(strcmp(x_Emprego,"entrada",true) == 0)
                    {
                        BizzInfo[i][bEntranceCost] = proplev;
                    }
                    else if(strcmp(x_Emprego,"nome",true) == 0)
                    {
                        BizzInfo[i][bMessage] = novo;
                    }
                   
                }
            }
        }
        for(new i = 0; i < sizeof(SBizzInfo); i++)
        {
            if(PlayerToPoint(3, playerid,SBizzInfo[i][sbEntranceX], SBizzInfo[i][sbEntranceY], SBizzInfo[i][sbEntranceZ]))
            {
                format(string, sizeof(string), "SEmpresa: %d (Empresa sem interior)", i);
                SendClientMessage(playerid, COLOR_GRAD2, string);
                if(proplev > 0)
                {
                    if(strcmp(x_Emprego,"level",true) == 0)
                    {
                        SBizzInfo[i][sbLevel] = proplev;
                    }
                    else if(strcmp(x_Emprego,"preco",true) == 0)
                    {
                        SBizzInfo[i][sbBuyPrice] = proplev;
                    }
                    else if(strcmp(x_Emprego,"fundos",true) == 0)
                    {
                        SBizzInfo[i][sbTill] = proplev;
                    }
                    else if(strcmp(x_Emprego,"chave",true) == 0)
                    {
                        SBizzInfo[i][sbLocked] =  proplev;
                    }
                    else if(strcmp(x_Emprego,"entrada",true) == 0)
                    {
                        SBizzInfo[i][sbEntranceCost] = proplev;
                    }
                    else if(strcmp(x_Emprego,"nome",true) == 0)
                    {
                        SBizzInfo[i][sbMessage] = novo;
                    }
                }
            }
        }
        format(string, sizeof(string), "Vocк ajustou: %s", x_Emprego);
        SendClientMessage(playerid, -1, string);
        a3d();
        SalvarTudo();
    }
    return 1;
}
Pois devo deparar o Nome da Quantidade (/seditar [nome] [quantidade])

Como faria isso ? Pois se eu usasse a string %s ele iria contar os espaзos e os nъmeros da "quantidade"...
Reply
#7

@up. Nгo precisa de re-fazer o comando sу me dizer como fazer para a string nгo misturar com a "quantidade"
Reply
#8

Nesse caso, teria que deixar o nome como ъltimo parвmetro, ou delimitar seu tamanho. Й mais viбvel fazer isto por dialog, armazenando em variбveis.
Reply
#9

Quote:
Originally Posted by Dolby
Посмотреть сообщение
Place Holder / EspecificadorSignificado / Uso
%iInteiros
%dInteiros
%sStrings/Textos
%iFloat / Valor Flutuante
%cChar / Caractere
Exemplos:

Inteiro = 19
String = "Alguma coisa"
Float = 3.14
Caractere = A
A tabela contem um erro nas float

fica assim:

Place Holder / EspecificadorSignificado / Uso
%iInteiros
%dInteiros
%sStrings/Textos
%fFloat / Valor Flutuante
%cChar / Caractere
:P
Reply
#10

Quote:
Originally Posted by Dolby
Посмотреть сообщение
Nesse caso, teria que deixar o nome como ъltimo parвmetro, ou delimitar seu tamanho. Й mais viбvel fazer isto por dialog, armazenando em variбveis.
entгo й impossнvel fazer do jeito que eu queria ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)