[Ajuda] Como definir varias coordenadas em uma mesma funзгo ?
#1

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 ?
Reply
#2

Код:
//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;
 	}
}
Reply
#3

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; ?
Reply
#4

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
Reply
#5

entгo eu posso colocar

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

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

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


Forum Jump:


Users browsing this thread: 1 Guest(s)