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(playeridparams[])
{
    if(
IsPlayerConnected(playerid))
    {
        new 
parametro1[15], parametro2[15], parametro3[50];
        if(
sscanf(params"s[15]s(15)s[50]"parametro1parametro2parametro3))
        {
            
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(playeridCOLOR_RED"Modo de uso: /Zona [crear/borrar]").
    if(!
strcmp(p_opc"crear"true))
    {
        new 
strNombre[50], intColorIDintTipo;
        if(
sscanf(params"s[50]dd"strNombreintColorIDintTipo)) // aqui estaria el problema
            
return SendClientMessage(playeridCOLOR_RED"Modo de uso: /Zona Crear [Nombre] [ColorID] [Tipo]");
        
CrearZona(strNombreintColorIdTipo)
    }
    return 
true;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)