[Include] Checar obstaculo entre dois pontos
#1

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


Reply
#2

Parece уtimo como sempre, parabйns!
Reply
#3

Bela .inc

Atй outra hora.
Reply
#4

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

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

On > Belo conteudo !
Reply
#6

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

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

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.
Reply
#9

Excelente trabalho ! +REP ^^
Reply
#10

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


Forum Jump:


Users browsing this thread: 1 Guest(s)