SA-MP Forums Archive
optimizar esta funciуn. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: optimizar esta funciуn. (/showthread.php?tid=602271)



optimizar esta funciуn. - Fagrinht - 05.03.2016

Buenas, hice algo para que bбsicamente si eres nivel 2 de camionero, o 3 te pague cierta cantidad de dinero como muestra la funciуn dependiendo del nivel їhay alguna forma de hacerla mбs optimizada? уsea que no sea tanto cуdigo, veo que se puede hacer mejor... mi nivel de programaciуn es bajo, y se que se puede hacer mejor mбs no tengo idea como, gracias de antemano y darй reputaciуn.

Код:
	 		else if(GetPVarInt(playerid,"PasoEntrega") == 2)
	 		{
	 		    new Float: VehHP, Percent_damage = floatround(VehHP/10);
				GetVehicleHealth(VehID, VehHP);
				switch(InfoJugador[playerid][jNivelTrabajo])
				{
					case 1:
					{
						new  Dinero_inicial = 1050;
						Dinero_inicial -= (300-(Percent_damage*3));
						GivePlayerMoney(playerid, Dinero_inicial);
						MensajeF(playerid,C_PAGA,"* Felicidades, se te pagу $1050 y se te descontу $%d por los daсos del camiуn.", (300-(Percent_damage*3)));
					}
					case 2:
					{
						new  Dinero_inicial = 1250;
						Dinero_inicial -= (300-(Percent_damage*3));
						GivePlayerMoney(playerid, Dinero_inicial);
						MensajeF(playerid,C_PAGA,"* Felicidades, se te pagу $1250 y se te descontу $%d por los daсos del camiуn.", (300-(Percent_damage*3)));
					}
					case 3:
					{
						new  Dinero_inicial = 1400;
						Dinero_inicial -= (300-(Percent_damage*3));
						GivePlayerMoney(playerid, Dinero_inicial);
						MensajeF(playerid,C_PAGA,"* Felicidades, se te pagу $1400 y se te descontу $%d por los daсos del camiуn.", (300-(Percent_damage*3)));
					}
					case 4:
					{
						new  Dinero_inicial = 1600;
						Dinero_inicial -= (300-(Percent_damage*3));
						GivePlayerMoney(playerid, Dinero_inicial);
						MensajeF(playerid,C_PAGA,"* Felicidades, se te pagу $1600 y se te descontу $%d por los daсos del camiуn.", (300-(Percent_damage*3)));
					}
					case 5:
					{
						new  Dinero_inicial = 1750;
						Dinero_inicial -= (300-(Percent_damage*3));
					    GivePlayerMoney(playerid, Dinero_inicial);
				   	    MensajeF(playerid,C_PAGA,"* Felicidades, se te pagу $1750 y se te descontу $%d por los daсos del camiуn.", (300-(Percent_damage*3)));
					}
					case 6:
					{
						new  Dinero_inicial = 1950;
						Dinero_inicial -= (300-(Percent_damage*3));
						GivePlayerMoney(playerid, Dinero_inicial);
						MensajeF(playerid,C_PAGA,"* Felicidades, se te pagу $1950 y se te descontу $%d por los daсos del camiуn.", (300-(Percent_damage*3)));
					}
				}



Respuesta: optimizar esta funciуn. - FelipeAndres - 05.03.2016

Asi como tienes el codigo esta bien optimizado


Respuesta: optimizar esta funciуn. - aoEXE - 05.03.2016

Код:
else if(GetPVarInt(playerid,"PasoEntrega") == 2)
{
	new Float:VehHP, Percent_damage;
	GetVehicleHealth(VehID, VehHP);
	Percent_damage = floatround(VehHP/10); //aquн tenнas un error pon cuidado cuando hagas copy&paste xd
	static const _pay[][] =
	{
		{1050},
		{1250},
		{1400},
		{1600},
		{1750},
		{1950}
	}
	new _money = _pay[InfoJugador[playerid][jNivelTrabajo]-1][0];
	new _desc = (300-(Percent_damage*3));
	_money -= _desc;
	GivePlayerMoney(playerid, _money);
	MesangeF(playerid,C_PAGA,"* Felicidades, se te pagу $%d y se te descontу $%d por los daсos del camiуn.",(_money+_desc),_desc);
}
Asн estб mбs corto... quizбs hay una mejor forma de calcular el pago para no crear la variable pero asн debe ir bien xd


Re: Respuesta: optimizar esta funciуn. - Jastak - 05.03.2016

Quote:
Originally Posted by aoEXE
Посмотреть сообщение
Код:
else if(GetPVarInt(playerid,"PasoEntrega") == 2)
{
	new Float:VehHP, Percent_damage;
	GetVehicleHealth(VehID, VehHP);
	Percent_damage = floatround(VehHP/10); //aquн tenнas un error pon cuidado cuando hagas copy&paste xd
	static const _pay[][] =
	{
		{1050},
		{1250},
		{1400},
		{1600},
		{1750},
		{1950}
	}
	new _money = _pay[InfoJugador[playerid][jNivelTrabajo]-1][0];
	new _desc = (300-(Percent_damage*3));
	_money -= _desc;
	GivePlayerMoney(playerid, _money);
	MesangeF(playerid,C_PAGA,"* Felicidades, se te pagу $%d y se te descontу $%d por los daсos del camiуn.",(_money+_desc),_desc);
}
Asн estб mбs corto... quizбs hay una mejor forma de calcular el pago para no crear la variable pero asн debe ir bien xd
Estб muy bien la verdad, pero es bastante innecesario que uses un array de 2 dimensiones en este caso, lo mejor serнa solo usar 1.
Код:
else if(GetPVarInt(playerid,"PasoEntrega") == 2)
{
	new Float:VehHP, Percent_damage;
	GetVehicleHealth(VehID, VehHP);
	Percent_damage = floatround(VehHP/10); //aquн tenнas un error pon cuidado cuando hagas copy&paste xd

	static const _pay[] = {1050,1250,1400,1600,1750,1950}; // Creo que tampoco hay tanta diferencia

	new _money = _pay[InfoJugador[playerid][jNivelTrabajo]-1];
	new _desc = (300-(Percent_damage*3));
	_money -= _desc;
	GivePlayerMoney(playerid, _money);
	MesangeF(playerid,C_PAGA,"* Felicidades, se te pagу $%d y se te descontу $%d por los daсos del camiуn.",(_money+_desc),_desc);
}



Respuesta: optimizar esta funciуn. - Fagrinht - 05.03.2016

Gracias a ambos, ya les di la reputaciуn.


Respuesta: Re: Respuesta: optimizar esta funciуn. - aoEXE - 05.03.2016

Quote:
Originally Posted by Jastak
Посмотреть сообщение
Estб muy bien la verdad, pero es bastante innecesario que uses un array de 2 dimensiones en este caso, lo mejor serнa solo usar 1.
Код:
else if(GetPVarInt(playerid,"PasoEntrega") == 2)
{
	new Float:VehHP, Percent_damage;
	GetVehicleHealth(VehID, VehHP);
	Percent_damage = floatround(VehHP/10); //aquн tenнas un error pon cuidado cuando hagas copy&paste xd

	static const _pay[] = {1050,1250,1400,1600,1750,1950}; // Creo que tampoco hay tanta diferencia

	new _money = _pay[InfoJugador[playerid][jNivelTrabajo]-1];
	new _desc = (300-(Percent_damage*3));
	_money -= _desc;
	GivePlayerMoney(playerid, _money);
	MesangeF(playerid,C_PAGA,"* Felicidades, se te pagу $%d y se te descontу $%d por los daсos del camiуn.",(_money+_desc),_desc);
}
si, es mejor. Estaba medio dormido xD