24.11.2015, 01:10
Quote:
Veamos, yo no sй para donde te has saltado tu, pero lo que colocas no es lo que intento. Bбsicamente estoy contando los parбmetros que estoy usando, para ello uso
Код:
// 3 parametros opcionales (valor defecto 0) stock Parametros_Locos(playerid, valor=0,valor2=0,valor3=0) { new parametros_usados; // valor de la variable 0 // luego checkeo que el valor del primer parametro de la funcion sea igual o mayor a 1 // en caso de ser asi, le suma a la variable "parametro_usados", asi sucesivamente por todos los parametros valor = (valor >= 1) ? parametros_usados ++ : 0; valor2 = (valor2 >= 1) ? parametros_usados ++ : 0; valor3 = (valor3 >= 1) ? parametros_usados ++ : 0; // luego checkeo el valor que tenga la variable parametro_usado, eso determinara cuantos parбmetros use if(parametros_usados == 1) { SendClientMessage(playerid, -1, "usaste 1 parametro"); } else if(parametros_usados == 2) { SendClientMessage(playerid, -1, "Usastes 2 parametros"); } else if(parametros_usados == 3) { SendClientMessage(playerid, -1, "Usastes 3 parametros"); } else { SendClientMessage(playerid, -1, "no usaste ningun parametro"); } return -1; } |
pawn Код:
#define plural_singular(%0,%1,%2) ((%0) == 1) ? ((#%1)) : ((#%2))
stock Parametros_Locos(playerid, ...)
{
new arguments = numargs() - 1;
if(!arguments)
{
SendClientMessage(playerid, -1, "No usaste ningun parametro.");
}
else
{
new string[128];
format(string, sizeof(string), "Usaste %d %s.", arguments, plural_singular(arguments, "parametro", "parametros"));
SendClientMessage(playerid, -1, string);
}
return 1;
}