Subparametros en zcmd y sscanf2. -
mcreed - 03.03.2017
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.
Respuesta: Subparametros en zcmd y sscanf2. -
ErickV - 04.03.2017
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;
}
Respuesta: Subparametros en zcmd y sscanf2. -
mcreed - 04.03.2017
Obligatoriamente se deben crear todos los parametros que se vaya a tener el comando ? aunque algunos de esos parametros no se usen?
Respuesta: Subparametros en zcmd y sscanf2. -
ErickV - 04.03.2017
no necesariamente, puedes volverlo opcional pero solo los ъltimos parбmetros.
Respuesta: Subparametros en zcmd y sscanf2. -
OTACON - 04.03.2017
Код:
if(sscanf(params, "s[15]S(15)S[50]", parametro1, opcional2, opcional3))
Respuesta: Subparametros en zcmd y sscanf2. -
mcreed - 04.03.2017
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;
}