SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 11/06/2019, 03:35 PM   #1
ImNext
Little Clucker
 
ImNext's Avatar
 
Join Date: Jul 2018
Posts: 29
Reputation: 0
Default Pegar distância entre dois pontos

O título é auto-explicativo, dei uma vasculhada em tópicos com essa mesma dúvida mas nenhum foi essencial comigo.

O sistema é o seguinte:

Imagine que existe dois pontos com coordenadas diferentes, vou colocar as coordenadas do primeiro ponto de x1, y1, z1 e as coordenadas do segundo ponto de x2, y2, z2. Ao usar a função ela retornaria a distância entre esses dois pontos(Como, por exemplo, o IsPlayerInRangeOfPoint).

Fiz alguns testes utilizando esse:

PHP Code:
stock GetDistance(Float:x1Float:y1Float:z1Float:x2Float:y2Float:z2)
    return 
floatround(floatsqroot(((x1 x2) * (x1 x2)) + ((y1 y2) * (y1 y2)) + ((z1 z2) * (z1 z2)))); 
Ele funciona mas esse não é o que eu busco, aí você me pergunta, porquê não é o que você busca? Simples, eu necessito de um que retorne a distância entre os objetos com valores parecidos com o IsPlayerInRangeOfPoint, enquanto no IsPlayerInRangeOfPoint ele diz que está a mais de 40(exemplo) de range, no GetDistance ele retorna 11 de range(exemplo).

Sei que estou a pedir muito mas agradeço quem ajudar.
__________________
ImNext is offline   Reply With Quote
Old 11/06/2019, 03:42 PM   #2
Andinho
Huge Clucker
 
Andinho's Avatar
 
Join Date: Apr 2016
Location: Bezerros PE
Posts: 260
Reputation: 13
Default Re: Pegar distância entre dois pontos

pawn Code:
// crie a variavel Float antes de chamar a função, vc vai salvar nela, a stock retorna o valor da distancia

new Float:distancia;
GetDistance( distancia, x1, y1,z1, x2, y2, z2 )




// joga isso na parte de baixo do GM

stock GetDistance( &Float:distt, Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2 )
{
    distt = floatsqroot(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2))+((z1-z2)*(z1-z2)));
}
__________________
Andinho is offline   Reply With Quote
Old 11/06/2019, 03:48 PM   #3
ImNext
Little Clucker
 
ImNext's Avatar
 
Join Date: Jul 2018
Posts: 29
Reputation: 0
Default Re: Pegar distância entre dois pontos

Enquanto fui testar seu código percebi o erro, não tinha nada haver com o código da distância mas sim por outro motivo. Testei e funcionou perfeitamente.

Obrigado pela ajuda, REP+
__________________
ImNext is offline   Reply With Quote
Old 12/06/2019, 05:10 AM   #4
rjjj
Huge Clucker
 
rjjj's Avatar
 
Join Date: Jan 2014
Location: Acre, Brasil
Posts: 238
Reputation: 197
Default Re: Pegar distância entre dois pontos

Atualmente há a função padrão VectorSize cuja forma pode ser encontrada em a_samp.inc:


pawn Code:
native Float:VectorSize(Float:x, Float:y, Float:z);


Basta aplicar a diferença (subtração) das coordenadas nos respectivos parâmetros acima .



Espero ter ajudado .
__________________


rjjj is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Como calcular a distancia entre 2 pontos? AdrianoStk Português/Portuguese 5 16/04/2018 03:09 AM
[Ajuda] Separação de pontos entre 3 zeros pWesley Português/Portuguese 1 24/08/2015 03:46 PM
[Ajuda] Usando o mesmo /equipar em dois pontos distintos. Clukin Português/Portuguese 11 07/07/2015 11:34 PM
[Include] Checar obstaculo entre dois pontos Sn0wk Lançamentos/Releases 13 31/07/2014 12:52 AM


All times are GMT. The time now is 11:11 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.