Detectar parбmetros usados, de una manera mejor
#9

Quote:
Originally Posted by GranaT3
Посмотреть сообщение
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;
}
Que funciona perfectamente.
Yo solo te enseсe las deficiencias de lo que publicaste; estas asignando valores a las variables, luego haces que los variables sean inutiles si cuentas los parametros antes de usar los valores en los variables, y para que? No es necesario. En todo caso, si solamente quieres contar los parametros utilizados, fijate en el codigo de DesingMyCry, y puedes ver https://sampforum.blast.hk/showthread.php?tid=573744 para mas informacion sobre el tema. Solo te di el codigo que publique primeramente para apoyarte en la forma en que lo querias lograr.

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;
}
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)