[Ajuda] strcmp + sscanf
#1

Estou ajudando um amigo em um sistema mas nгo sei como utilizar sscanf + strcmp..
Eu fiz um comando para testar mas ele nгo funciona..
pawn Код:
//topo
#define Parametro   cmdtext[(strfind(cmdtext, " ") + 1)]
//OnPlayerCommandText
    if(strcmp(cmd, "/testesscanf", true) == 0){
        new msg[128];
        if(sscanf(Parametro,"s",msg))
            return SendClientMessage(playerid, COLOR_GRAD1, "Use: /testesscanf (texto)");
        format(string,sizeof(string),"%s",msg);
        SendClientMessageToAll(COLOR_YELLOW2,string);
        return 1;
    }
Help-me
Reply
#2

Simplesmente pq nгo tem como.
Reply
#3

Quote:
Originally Posted by mau.tito
Посмотреть сообщение
Simplesmente pq nгo tem como.
O Paulor disse que tem como e me passou uma formula de base.. mas ela nгo funciona, e sscanf pode ser utilizado com strcmp sim!
Reply
#4

Quote:
Originally Posted by mau.tito
Посмотреть сообщение
Simplesmente pq nгo tem como.
Precipitando-se novamente...


pawn Код:
public OnPlayerCommandText(playerid, cmdtext[]) {

    static
        cmd[128],
        params[128];
       
    sscanf(cmdtext, "s[128]S( )[128]", cmd, params);
   
    // Exemplo
    if(!strcmp("/dinheiro", cmd)) {
   
        if(!IsPlayerAdmin(playerid))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Somente administradores rcon.");
           
        static id, quantia;
        if(sscanf(params, "ud", id, quantia))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Sintaxe: /dinheiro [ID] [Quantia]");
           
        GivePlayerMoney(id, quantia);
        return 1;
    }

    // Outros comandos
    return 0;
}
Acho que funciona.
Reply
#5

#edit

Desculpem pela postagem dupla.
Reply
#6

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
Precipitando-se novamente...


pawn Код:
public OnPlayerCommandText(playerid, cmdtext[]) {

    static
        cmd[128],
        params[128];
       
    sscanf(cmdtext, "s[128]S( )[128]", cmd, params);
   
    // Exemplo
    if(!strcmp("/dinheiro", cmd)) {
   
        if(!IsPlayerAdmin(playerid))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Somente administradores rcon.");
           
        static id, quantia;
        if(sscanf(params, "ud", id, quantia))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Sintaxe: /dinheiro [ID] [Quantia]");
           
        GivePlayerMoney(id, quantia);
        return 1;
    }

    // Outros comandos
    return 0;
}
Acho que funciona.
Miranda_Pedro,
nгo precisamos daquela definiзгo acima
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[]) {
    // Exemplo
    if(!strcmp(cmdtext,"/dinheiro", true)) {
   
        if(!IsPlayerAdmin(playerid))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Somente administradores rcon.");
           
        static id, quantia;
        if(sscanf(params, "ud", id, quantia))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Sintaxe: /dinheiro [ID] [Quantia]");
           
        GivePlayerMoney(id, quantia);
        return 1;
    }

    // Outros comandos
    return 0;
}
Reply
#7

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
Miranda_Pedro,
nгo precisamos daquela definiзгo acima
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[]) {
    // Exemplo
    if(!strcmp(cmdtext,"/dinheiro", true)) {
   
        if(!IsPlayerAdmin(playerid))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Somente administradores rcon.");
           
        static id, quantia;
        if(sscanf(params, "ud", id, quantia))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Sintaxe: /dinheiro [ID] [Quantia]");
           
        GivePlayerMoney(id, quantia);
        return 1;
    }

    // Outros comandos
    return 0;
}
E o undefined symbol ...?
Reply
#8

Pelo visto tem como

Mas aconselho a usar ZCMD ou bCMD pelo seu transparecer dinвmico e mais eficaz.
Reply
#9

Quote:
Originally Posted by Pedro_Miranda
Посмотреть сообщение
E o undefined symbol ...?
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[]) {
    // Exemplo
    if(!strcmp(cmdtext,"/dinheiro", true)) {
   
        if(!IsPlayerAdmin(playerid))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Somente administradores rcon.");
           
        static id, quantia;
        if(sscanf(cmdtext, "ud", id, quantia))
            return SendClientMessage(playerid, 0x1E90FFFF, ">> Sintaxe: /dinheiro [ID] [Quantia]");
           
        GivePlayerMoney(id, quantia);
        return 1;
    }

    // Outros comandos
    return 0;
}
б й mesmo auehuaheuahueha
Reply
#10

Nunca cheguei a testar desse modo, mas se funcional, realmente й melhor.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)