O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[Sistema] Detecção de Inimigos - ADD-ON ABS

Iniciado por MayLeone, 17/11/2013 às 15:31

[ADD-ON ABS] Detecção de Inimigos
Por MayLeone




[box class=catbg2]
Introdução:
[/box]
Depois da criação de um tópico de dúvidas na MRM, me veio a ideia de criar este sistema de detecção de inimigos, através de uma possível solução que eu dei ao membro em questão, no tópico.
Estou tentando ''desenferrujar'' e voltar a criar sistemas, por isso qualquer ideia para a criação de novos sistemas, serão sempre bem vindas.




[box class=catbg2]
Explicação do sistema:
[/box]
Este sistema fará com que quando você estiver no raio de visão de determinado inimigo, ao pressionar a tecla de ataque, o personagem irá detectar o evento do inimigo e irá destruí-lo, independente do inimigo estar próximo ou longe do herói, basta o personagem estar no raio de visão (em linha reta) do mesmo.
Fiz o teste na DEMO com dois tipos de inimigos: Um em rota horizontal e outro com rota vertical, para mostrar à vocês que a posição da rota do inimigo não influência em nada na detecção.
Eu chamei este sistema de add-on abs, pois ele poderá ser utilizado como uma skill do herói ou algo do tipo.
Porém eu sei que para a maioria de vocês o sistema só irá servir para estudos, mas isso é bom também.
O sistema só funciona com eventos estáticos ou em rotas definidas. Eventos configurados em rotas de movimentos aleatórios não se adequam a este tipo de sistema.




[box class=catbg2]
Como configurar:
[/box]

Conforme a screen de um dos eventos:

Spoiler
[close]

1. Altere as variáveis para as coordenadas dos inimigos, e a constante da variável da ID do mapa,conforme a ID do mapa onde o sistema se encontra no seu projeto.
2. Altere a condição de verificação de coordenada Y com o herói e personagem: Verifica-se as coordenadas Y de ambos, se o evento estiver num rota horizontal, e verifica-se as coordenadas X de ambos se o evento estiver na rota vertical.
3. Altere o raio de visão do inimigo (2ª condição).
No exemplo da DEMO o raio de visão deste inimigo é 6,7,8,9,10 nas coordenadas X, ou seja, 5 tiles de distância. Mas você poderá alterar este número, conforme desejado.
Veja esta screen:



No sistema, os tiles pintados em vermelho representam o raio de visão dos inimigos, logo, se o herói estiver em qualquer local vermelho do mapa e pressionar a tecla de ataque, ele destruirá o evento do inimigo automaticamente, independente da distância do inimigo para o herói.

4. Altere conforme desejado, a tecla de ação para o ataque do herói. No sistema a tecla a ser pressionada é A, mas você poderá altera-la.
5. A partir daqui (Switch local A) acontecerá as animações de ataque do herói sobre o inimigo. Algo que você também poderá configurar e alterar.
Todas as configurações desta área estarão na segunda página do evento, com a switch local A do mesmo ativada.


Primeiro o herói irá se teleportar para as mesmas coordenadas do inimigo, então no evento de teleporte adicione a variável de ID do mapa, e altere as variáveis das coordenadas X e Y do inimigo desejado.
Depois adicione o que você quiser que aconteça quando o herói for destruir o inimigo. No caso da DEMO, uma animação ocorre e depois o evento desaparece do mapa.

6. Voltando para a primeira página do evento: Agora esta próxima condição servirá para que o sistema verifique se o herói e o inimigo estão nas mesmas coordenadas X e Y no mapa.
Ou seja, aqui é a parte do sistema onde o herói irá sofrer danos do inimigo, se o mesmo não utilizar a detecção, por isto, a partir do comentário ''Dano no herói'' você irá configurar o que irá acontecer com o herói caso este não ataque o inimigo.

Fim das alterações.




[box class=catbg2]
Screens:
[/box]
Não perceptível por meras imagens.




[box class=catbg2]
Download:
[/box]




Como eu odeio ter que fazer esse sistema, nunca gostei de mexer com variáveis porque me dá uma dor de cabeça do caramba. Mas não estamos aqui para falar de mim. Testei o sistema e não notei nenhum bug. Eu acho que seria uma boa fazer um que envolvesse as duas direções com monstros se movimentando aleatoriamente para deixá-lo mais completo. De qualquer forma já é uma boa ajuda para um membro novato e basta ele ter a vontade de aprender que pegará o jeito do sistema rapidinho. Valeu por postá-lo, May!

Viva a lenda!



Há bastante tempo que não via um sistema seu!
Bem é um sistema um pouco complexo xD se fosse eu metia coordenada a coordenada e bastava um simples > xP

Parabéns =D