Tituc

 tutoriel / partage [JAVA] Solution : Une IA qui veut utiliser ses PMs même au corps à corps

Recommended Posts

Attention :

- Dans ce tutoriel, l'émulateur montré pour la modification sera AR54.

 

Coucou,

 

J'ignore si ce problème a été résolu sur des dérivés d'Ancestra mais étant donné que j'ai du le résoudre sous AR54, j'estime que ce tutoriel pourra quand même être utile !

 

Résumé :

Donc pour résumer ce petit problème je pense qu'en majorité vous avez déjà tous été confronté au Double d'un sram qui, même en étant au corps à corps, essayait de bouger pour y revenir.

J'avais réussi à corriger ce problème il y a quelques temps et cette correction ne prend que deux petites lignes (pour une fois !)

 

Les modifications nécessaires pour faire ce tutoriel sont :

- En JAVA (IA.java)

 

Sans plus attendre, ouvrez IA.java qui se trouve dans common :

Une petite recherche s'impose !

Recherchez (via Ctrl+F) :

private static boolean moveNearIfPossible

 

C'est une petite fonction qui permet brièvement à un monstre de se déplacer vers une cellule X (en calculant la trajectoire) et d'indiquer si un déplacement est possible ou pas pour se rapprocher d'une cible.

Cette fonction retourne deux valeurs : true si le déplacement est possible, et false si il est impossible.

 

Le problème ici est que même quand le monstre est au corps à corps de l’ennemi, cette fonction retourne true.

 

Pour corriger ce problème, on va aller mettre après { bien évidement :

int dist = Pathfinding.getDistanceBetween(fight.get_map(), F.get_fightCell().getID(), T.get_fightCell().getID());
		if(dist == 1)return false; //Aucun mouvement si il est au cac.

 

Cette fonction va brièvement récupérer la distance qu'il y a entre le monstre et la cible.

Si la distance prouve que le monstre est au CAC de sa cible, alors moveNearIfPossible va retourner false et le monstre ne va pas perdre son temps à bouger pour essayer d'aller encore plus près que le corps à corps (ça existe, mais pas sur Dofus.. Ahem).

 

Voilou c'est déjà terminé !

  • Like 1

Share this post


Link to post
Share on other sites

J'ai été très peu de temps dans l'ému dofus dans le passé et ça m'a toujours fasciné de travailler sur l'ia des mobs ou invoques :P

 

Merci bien.

Share this post


Link to post
Share on other sites

Sympatoche tout ça ! Venant de passer une aprem sur l'IA, ça fait du bien de voir des corrections simples :D !

Merci.

Share this post


Link to post
Share on other sites