Khas Pathfinder
by Khas Arcthunder
- Introdução:Precisa de ferramentas bacanas? Veja esta, um script de pathfinding! Este script encontra a menor rota entre dois pontos, e move o personagem com esta rota.
- Características:Caminhos inteligentes
Algorítmo rápido
Fácil de usar
Plug'n'Play
Compatível com objetos da Game_Character
Ferramenta de Log
- Como usar:Todas as instruções estão na demo.
Leia com atenção antes de usar.
- Links:Termos de uso: Português – Leia antes de usar (http://arcthunder.site40.net/termos/)
Download: Português – Última versão no final do post (http://arcthunder.site40.net/br-khas-pathfinder/)
- Créditos:Criado por Khas Arcthunder
Enjoy!
É um dos scripts que eu mais gosto, devido à função, e
portanto, acaba sendo o que eu mais uso também.
Como gosto de fazer os sistemas (como as batalhas)
por eventos, ele agiliza, e muitas vezes torna viável
o trabalho...
Muito, muito bom mesmo. E quase não há nada para
ter o que configurar... :ok:
#of : Eae raizen, quanto tempo mano :*-*: bom ?
Hey, to com um problemão com esse script :será:
Estou usando um mapa de 500 de altura, e quando coloco para o evento ir de uma ponta a outra, laga tanto mais tanto mais tanto que nem carrega o jogo... ( Eu sei que é lag porque tentei com numeros menores e o jogo carregou super lentamente ) ....
Teria como dar uma arrumada ? \:
Citação de: katumblo online 10/08/2014 às 19:27
#of : Eae raizen, quanto tempo mano :*-*: bom ?
Hey, to com um problemão com esse script :será:
Estou usando um mapa de 500 de altura, e quando coloco para o evento ir de uma ponta a outra, laga tanto mais tanto mais tanto que nem carrega o jogo... ( Eu sei que é lag porque tentei com numeros menores e o jogo carregou super lentamente ) ....
Teria como dar uma arrumada ? \:
pathfinder é um algoritmo pesado >_>, ele não foi feito para usar com uma distancia tão longa assim xD... Por exemplo o tibia que usa um pathfinder, limita acho que a 60-70 tiles e não 500 .-.
Tipo não tem como eu modificar esse para lagar menos, tem outros pathfinders com algoritmos mais leves, só que não será a menor rota, será simplesmente uma rota que serve.
Você pode quebrar a rota, isso vai reduzir muito o lag, tipo 50 tiles, depois mais 50... enfim.
Já tentei diminuir a rota mas o lag só para quando vou de 10 em 10 mais ou menos ... Assim ficarei um ano até chegar no final ;-; rs
Quais outros pathfinder mais leves ? Não achei nenhum :x ( Pode ser a rota que serve mesmo )
Lehanius PathFinder (http://arenalivre.net/index.php?topic=13225.0)
Citação de: katumblo online 10/08/2014 às 19:27
#of : Eae raizen, quanto tempo mano :*-*: bom ?
Hey, to com um problemão com esse script :será:
Estou usando um mapa de 500 de altura, e quando coloco para o evento ir de uma ponta a outra, laga tanto mais tanto mais tanto que nem carrega o jogo... ( Eu sei que é lag porque tentei com numeros menores e o jogo carregou super lentamente ) ....
Teria como dar uma arrumada ? \:
Cara um mapa com 500 de altura? Mesmo sem o pathfinder eu não recomendaria fazer um mapa tão grande no maker, não só por questões técnicas que já teria bastante, mas por não ficar legal também. Tenta diminuir o mapa e não achar um script que seja mais leve porque acho que o problema não ta nisso.
Uma pequena duvida que algum de vocês dois poderiam me responder ?
Em instruções do script, está assim :
Spoiler
INSTRUÇÕES
Existem dois modos de funcionamento deste pathfinder:
- mode 0: "ir para" - para ser usado em cenas, em direção a locais estáticos
(que não se movem), pois o personagem fará o caminho completo até o
objetivo, sem poder ser interrompido;
- mode 1: "ir para sem esperar" - funciona da mesma forma que o mode 0,
exceto pelo fato de que o movimento não precisa ser completado para que
se execute o próximo comando na lista do evento com o comando de script;
- mode 2: "seguir" - para ser usado repetidamente, até mesmo em processos
paralelos, geralmente em direção a objetivos móveis, pois cada vez que
um comando neste modo é chamado, o personagem avança um passo em direção
a seu objetivo, sem interromper as ações do jogador.
Para usar o pathfinder, use um comando de chamar script assim:
Script: pf = LET::PathFinder.new(<inteiro>)
: pf.find_path(<objetivo>, <distância>, <modo>, <alcance>)
Sendo que:
- <inteiro> pode ser: 0 para o personagem; negativo para um seguidor que
ocupa a posição '-<inteiro>' na fila; positivo para a ID de um evento.
Este será o personagem que irá andar até o objetivo especificado.
- <objetivo> pode receber a mesma entrada que <inteiro> além de uma
entrada da classe LET::Point, que é um ponto com valores de x e y, que
pode ser definido assim: ponto = LET::Point.new(<x><y>)
- <distância> a distância que o personagem deve manter de seu objetivo;
se for 0, ele irá pisar sobre o objetivo; se for maior que 0, manterá
alguma distância de seu objetivo. Padrão: 0
- <modo> 0, 1 ou 2, já explicado anteriormente. Padrão: 0
- <alcance> número máximo de tiles a serem percorridos até o objetivo;
se a distância for maior que o alcance, o personagem não irá tentar
seguir o objetivo; o valor padrão desse parâmetro pode ser modificado
pela variável PF_DEFAULT_RANGE do módulo LET.
No evento, eu pus assim :
pf = LET::PathFinder.new(3)
pf.find_path(13, 0, 0, 2, 600)
O que esta errado? ( Em "objetivo" é para por o x e y certo ? Então, teria que por deste jeito ... não ?
[user]NightWalker[/user]
Spoiler
Citar
Cara um mapa com 500 de altura? Mesmo sem o pathfinder eu não recomendaria fazer um mapa tão grande no maker, não só por questões técnicas que já teria bastante, mas por não ficar legal também. Tenta diminuir o mapa e não achar um script que seja mais leve porque acho que o problema não ta nisso.
Eu preciso 500 de altura ... E fiz pequeno ainda, levaria mais que 1000 de altura, mas vou dividi-lo em duas partes, melhor ...
Seu comando de modo correto:
pf = LET::PathFinder.new(0)
ponto = LET::Point.new(13,0)
pf.find_path(p, 2, 0, 600)
Compare com o seu e compreenda.
Citação de: JohnBolton online 11/08/2014 às 20:03
Seu comando de modo correto:
pf = LET::PathFinder.new(0)
ponto = LET::Point.new(13,0)
pf.find_path(p, 2, 0, 600)
Compare com o seu e compreenda.
Mas assim da o seguinte erro :
(http://i62.tinypic.com/34sruv9.png)
Vê assim ó:
pf = LET::PathFinder.new(3)
p = LET::Point.new(13, 0)
pf.find_path(p, 2, 0, 600)
Perfeito ! :*-*: Ao iniciar da uma pequena travada mas depois o lag gerado é totalmente nulo.
Muitissmo obrigado.