SA-MP Forums Archive
[Ajuda] Como definir varias coordenadas em uma mesma funзгo ? - 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: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Como definir varias coordenadas em uma mesma funзгo ? (/showthread.php?tid=601005)



Como definir varias coordenadas em uma mesma funзгo ? - iTouchS - 15.02.2016

Eu queria saber como eu posso fazer uma mesma funзгo, porem com varias coords



PHP код:
-50.630831639.2331519.29217
160.12793
1183.9127213.94220
200.24226
1048.9649720.80203
352.39798
1062.1397726.79083 
Exemplo:

PHP код:
if(IsPlayerInRangeOfPoint(playerid40.0300.919591949.0045216.60519,))
 {
    print(
"Voce esta em uma das coords !")
    return 
1;
 } 
Porem isso funcionasse com todas as coords a cima, sem precisar ficar usando IsPlayerInRangeOfPoint. alguйm poderia me ajudar ?


Re: Como definir varias coordenadas em uma mesma funзгo ? - RodrigoMSR - 15.02.2016

Код:
//4 й o numero total dos conjuntos os quais possuem 3 coordenadas dentro
new Float:Coords[4][3] = {
{-50.63083, 1639.23315, 19.29217},
{160.12793, 1183.91272, 13.94220},
{200.24226, 1048.96497, 20.80203},
{352.39798, 1062.13977, 26.79083}};

for(new i = 0; i < sizeof(Coords); i++) //Iniciamos um loop de 0 atй 3 se baseando no sizeof de Coords que й o numero total dos conjuntos (4)
{
	if(IsPlayerInRangeOfPoint(playerid, 40.0, Coords[i][0], Coords[i][1], Coords[i][2]))
 	{
    	print("Voce esta em uma das coords !")
    	return 1;
 	}
}



Re: Como definir varias coordenadas em uma mesma funзгo ? - iTouchS - 15.02.2016

So algumas duvidas:

porque temos que usar um loop. pra que ele realmente e necessбrio e quando saber se devo ou nгo usar um ?
Porque i = 0; ?


Re: Como definir varias coordenadas em uma mesma funзгo ? - RodrigoMSR - 15.02.2016

Um loop dб "voltas" em uma funзгo o nъmero de vezes desejado e mudando algo especifico a cada uma delas:

Код:
for(new i = 0; i < sizeof(Coords); i++)
Traduзгo: Execute um loop iniciando com "i" que й 0; cheque a cada execuзгo se "i" й menor que 4; caso for execute a funзгo abaixo sу que aumentando mais um i (i++),

Ou seja isso seria o mesmo que fazer isso:

Код:
if(IsPlayerInRangeOfPoint(playerid, 40.0, Coords[0][0], Coords[0][1], Coords[0][2]))
 	{
    	print("Voce esta em uma das coords !")
    	return 1;
 	}
if(IsPlayerInRangeOfPoint(playerid, 40.0, Coords[1][0], Coords[1][1], Coords[1][2]))
 	{
    	print("Voce esta em uma das coords !")
    	return 1;
 	}
if(IsPlayerInRangeOfPoint(playerid, 40.0, Coords[2][0], Coords[2][1], Coords[2][2]))
 	{
    	print("Voce esta em uma das coords !")
    	return 1;
 	}
if(IsPlayerInRangeOfPoint(playerid, 40.0, Coords[3][0], Coords[3][1], Coords[3][2]))
 	{
    	print("Voce esta em uma das coords !")
    	return 1;
 	}
O "i = 0" й por costume mesmo, porque quando se cria uma variбvel ela jб vem com valor 0, mas vocк tambйm pode definir o "i" para um nъmero que deseja comeзar o loop


Re: Como definir varias coordenadas em uma mesma funзгo ? - iTouchS - 15.02.2016

entгo eu posso colocar

Код:
for(new Aleatorio = 0; i < 30; Aleatorio++)
Quando eu for fazer um loop por exemplo


Re: Como definir varias coordenadas em uma mesma funзгo ? - RodrigoMSR - 15.02.2016

Quote:
Originally Posted by iTouchS
Посмотреть сообщение
entгo eu posso colocar

Код:
for(new Aleatorio = 0; i < 30; Aleatorio++)
Quando eu for fazer um loop por exemplo
Sim, errou no "i < 30" seria "Aleatorio < 30", faзa um teste para entender melhor:

Код:
public OnGameModeInit()
{
for(new Aleatorio = 0; Aleatorio < 30; Aleatorio++)
{
printf("Loop aleatorio: %d", Aleatorio);
}
return 1;
}
Код:
public OnGameModeInit()
{
for(new Aleatorio = 5; Aleatorio < 21; Aleatorio++)
{
printf("Loop aleatorio: %d", Aleatorio);
}
return 1;
}



Re: Como definir varias coordenadas em uma mesma funзгo ? - matheusspohr - 15.02.2016

Pode fazer mais fбcil utilizando os operadores lуgicos "||"(ou) ou "&&"(e).