29.07.2014, 15:28
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.
representam a posiзгo do ponto A
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
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:nx, Float:ny, Float: nz
PHP код:
Float:px, Float:py, Float:pz,
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