Subparametros en zcmd y sscanf2.
#1

Hola, bueno creo que el titulo explica bien lo que les vengo a pedir ayuda.
Bueno en todo caso de que no sea asi, la idea es que quiero crear un comando con parametros y que esos parametros tengan sus propios parametros(subparametros) y que estos subparametros sean a mi gusto, osea los que desee utilizar.

Un ejemplo:
pawn Код:
CMD: zona.
Parametro: crear.
Subparametro: Nombre, Color, Tipo, etc.
y si aun no me explique bien, solo avisenme

Gracias.
Reply
#2

Aquн te hice uno para que te guнes:

PHP код:
CMD:zona(playerid, params[])
{
    if(
IsPlayerConnected(playerid))
    {
        new 
parametro1[15], parametro2[15], parametro3[50];
        if(
sscanf(params, "s[15]s(15)s[50]", parametro1, parametro2, parametro3))
        {
            
SendClientMessage(playerid, -1, "/zona [Parametro] [SubParametro] [Valor]");
            
SendClientMessage(playerid, -1, "Parametro: crear");
            
SendClientMessage(playerid, -1, "SubParametro: Nombre, Color, Tipo");
            return 
1;
        }
        else
        {
            if(
strcmp(parametro1, "crear", true) == 0)
            {
                if(
strcmp(parametro2, "Nombre", true) == 0)
                {
                    
printf("El nombre asignado a esta zona es: %s", parametro3);
                }
                else if(
strcmp(parametro2, "Color", true) == 0)
                {
                    
//el color lo puedes poner de varias maneras
                
}
                else if(
strcmp(parametro2, "Tipo", true) == 0)
                {
                    new 
z_tipo = strval(parametro3);
                    
printf("El tipo asignado a esta zona es: %d", z_tipo);
                }
             }
        }
    }
    return 
1;
} 
Reply
#3

Obligatoriamente se deben crear todos los parametros que se vaya a tener el comando ? aunque algunos de esos parametros no se usen?
Reply
#4

no necesariamente, puedes volverlo opcional pero solo los ъltimos parбmetros.
Reply
#5

Код:
if(sscanf(params, "s[15]S(15)S[50]", parametro1, opcional2, opcional3))
Reply
#6

No se puede hacer similar a esta forma?
PHP код:
CMD:zona(playerid,params[])
{
    new 
p_opc[30];
    if(
sscanf(params, "s[30]", p_opc))
        return 
SendClientMessage(playerid, COLOR_RED, "Modo de uso: /Zona [crear/borrar]").
    if(!
strcmp(p_opc, "crear", true))
    {
        new 
strNombre[50], intColorID, intTipo;
        if(
sscanf(params, "s[50]dd", strNombre, intColorID, intTipo)) // aqui estaria el problema
            
return SendClientMessage(playerid, COLOR_RED, "Modo de uso: /Zona Crear [Nombre] [ColorID] [Tipo]");
        
CrearZona(strNombre, intColorId, Tipo)
    }
    return 
true;
} 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)