SA-MP Forums Archive
[Include] Checar obstaculo entre dois pontos - 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)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] Checar obstaculo entre dois pontos (/showthread.php?tid=528732)



Checar obstaculo entre dois pontos - Sn0wk - 29.07.2014

Fiz uma funзгo para implementar no meu servidor de zumbis que estб em desenvolvimento. Pensei em colocar nos cуdigos ъteis, mas levei um bom tempo pra pensar em uma funзгo assim — sou burro mesmo, inclusive tentei fazк-la em meados de 2013 e nгo tive sucesso no meu gamemode de zumbis antigo, agora estб funcionando bem, porйm tem melhorias ainda a fazer.


Informaзхes sobre a funзгo:

A velocidade dela й bastante boa, dб pra colocar num loop de atй 300 ms.

Ela funciona com morros atualmente, contanto que nгo sejam muito ingrimes

Nгo detecta muros, arvores muito pequenas, postes, lixeiras e outros objetos pequenos, apenas casas ou grandes torres no meio do trajeto

Ъtil para implementar em diversas funзхes, verificar se um player enxerga o outro ou hб uma casa na frente, ou atй algorнtimos de path como zumbis e gps avanзados, ou qualquer coisa que envolva verificar se hб uma casa entre DOIS pontos




Como usar:


Para usar, hб os seguintes parвmetros.
PHP код:
Float:nxFloat:nyFloatnz 
representam a posiзгo do ponto A

PHP код:
Float:pxFloat:pyFloat:pz
representam a posiзгo do ponto B


Float: offset = 1.5

representarб o tamanho do incremento dado a cada nova verificada da funзгo, й interessante deixar aqui um valor de 1.0 que й o limite do MapAndreas.

Float: diffHeigth = 1.5

Representa altura do entre o ъltimo ponto verificado e o prуximo, caso for maior que 1.5 hб algum obstaculo GRANDE na frente do trajeto.




Como funciona?

Isto funciona de uma maneira bem simples, basicamente vocк pega dois pontos A e B, e traзa uma reta entre eles. Nessa reta, o MapAndeas vai executando a cada metro (definido por offset) verificando se a altura й diferente da altura anterior. Obviamente, se a altura for demasiadamente diferente, como 10 ou 20 metros, haverб um edifнcio naquela posiзгo ou algo do tipo, logo ela retorna false acusando de haver um obstaculo no meio do caminho. Simples, nгo?




Exemplo:

Aqui um vнdeo dos zumbis utilizando o sistema com a funзгo implementada, como eram mais de 350 pendurados deu um pouco de lag, mas atй que rodou tranquilo.

Com ela, eu verifico se hб uma casa ou muros gigantes entre o trajeto, caso nгo tiver, ir reto, caso nгo tiver fazer uma rota alternativa (que й outro cуdigo que nгo vou postar aqui por enquanto)



[ame]http://www.youtube.com/watch?v=B5rccvHY8Hk[/ame]

Favor salvar em route.inc


Cуdigo: http://pastebin.com/bpux0aT0





Re: Checar obstaculo entre dois pontos - Insidious - 29.07.2014

Parece уtimo como sempre, parabйns!


Re: Checar obstaculo entre dois pontos - Jardell - 29.07.2014

Bela .inc

Atй outra hora.


Re: Checar obstaculo entre dois pontos - darkxdll - 29.07.2014

Ficou bom , o cуdigo parece ser bem fбcil de entender bruno , quando chegar em casa vou tentar estudar e ver oque posso fazer de ъtil pra min , tenho algo em mente jб ... Thanks .
Funciona com qualquer tipo de posiзгo ?


Re: Checar obstaculo entre dois pontos - Rodrigo_Avenged - 29.07.2014

Pow ! deu atй uma vontade de comeзar um projeto .. ehehehhe Servidor de Zumbi .

On > Belo conteudo !


Respuesta: Checar obstaculo entre dois pontos - juandiegox - 29.07.2014

Wow, Muito bom contribua.... Obrigado! +rep,Saudaзхes


Re: Checar obstaculo entre dois pontos - SeV_ - 29.07.2014

Ficou bem elaborada, parabйns! Eu adoraria saber tudo sobre NPCґs adoro servidores Zumbi.


Re: Checar obstaculo entre dois pontos - PT - 29.07.2014

Bom trabalho.

Depois podes mudar a forma como os zombies correm, й estranha essa forma.

e poderias fazer attach de objetos nos zombies para os tornar diferentes.

Sao apenas ideias, Bom trabalho.


Re: Checar obstaculo entre dois pontos - Nenzittow - 29.07.2014

Excelente trabalho ! +REP ^^


Re: Checar obstaculo entre dois pontos - Bruno13 - 30.07.2014

Muito bom, ъtil para muitos esquemas, basta ter criatividade.