їAlguno sabe como crear comandos con "Espacios"?
#6

Aqui un esquema casi completo:
pawn Код:
if(!strcmp(cmdtext, "/micomando", true, strlen("/micomando")))//comparamos solo la primer parte del string => ver funcionamiento de strcmp
{
    new
        idx = strlen("/micomando") + 1;//Indicamos en una variable la posicion a partir de la cual leeremos
       
    print(cmdtext[idx]);
    if(!strcmp(cmdtext[idx], "opcion 1", true))
    {
        //accion 1
        printf("opcion 1");
    }
    else if(!strcmp(cmdtext[idx], "opcion 2", true))
    {
        //accion 2
        printf("opcion 2");
    }
    else
    {
        //accion 3
        printf("error");
    }
    return 1;
}
La idea es evitar el uso de strtok y a su vez poder tener opciones de textos con espacios si quisieramos, por este motivo, accedemos directamente al string desde la posicion que nos interesa, en este caso omitiriamos todo el texto en rojo: "/micomando {este texto que sigue a lo rojo es variable}"

PD: podrias tranquilamente crear un comando que sea: "/hola a todos" de la siguiente forma:
pawn Код:
if(!strcmp(cmdtext, "/hola a todos", true))
Esto se debe a que la funcion strcmp compara texto caracter a caracter y los espacios, son caracteres validos.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)