2.0 Bot Chasses au Trésor et maps bloquantes

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#21
Ya pas de newbie, certains sont nouveaux sur le forum mais déjà très expérimentés dans le domaine.
 
Inscrit
6 Mai 2020
Messages
10
Reactions
1
#22
Bonsoir à tous,

Je souhaite vous remercier tous encore une fois pour votre aide !

J'ai réussi en récupérant les .d2p des maps à extraire les .json et ainsi implémenter un algorithme A* (je ne sais pas si c'est le plus conseillé, mais peu importe pour le moment) qui me permet de trouver le chemin jusqu'à une cellule cible, ou à défaut, une cellule qui me permet d'effectuer le changement de map voulu (grâce à son paramètre ChangeMapData).

Le seul problème auquel je me heurte encore est qu'il faut que je connaisse le CellID de mon personnage afin de savoir d'où il part. J'ai remarqué que dans le MapComplementaryInformationDataMessage, chaque entité est caractérisée notamment par le CellID de la cellule où elle se trouve. Cependant, sauf erreur de ma part, la seule façon de savoir de quelle entité il s'agit est par son nom, or j'aimerais ne pas coder en dur le nom de mon personnage dans mon programme.

Sauriez-vous si je peux savoir d'une autre façon si une entité est la mienne, ou alors si le CellId de mon personnage est contenu dans un autre message (j'ai regardé et je n'ai pas l'impression que ce soit le cas), ou encore si je peux récupérer le pseudo de mon personnage à n'importe quel moment (le bot n'est pas forcément déjà lancé au démarrage de mon jeu) ?

Merci encore pour ceux qui prennent le temps de me lire, et je vous souhaite une bonne soirée ! :)
 
Dernière édition:
Inscrit
3 Mai 2020
Messages
40
Reactions
14
#23
Salut !

Dans le IdentificationSuccessMessage tu peux récupérer ton accountId qui te permettra de retrouver ton perso dans le tableaux d'actors du message MapComplementaryInformationsDataMessage.
 
Inscrit
6 Mai 2020
Messages
10
Reactions
1
#24
Salut !

Dans le IdentificationSuccessMessage tu peux récupérer ton accountId qui te permettra de retrouver ton perso dans le tableaux d'actors du message MapComplementaryInformationsDataMessage.
Bonjour, merci pour ta réponse.

Si j'en crois le nom du message IdentificationSuccessMessage, il est envoyé à la connexion du compte ?
Comme je l'ai dit, le programme n'est pas forcément déjà lancé quand je me connecte, il arrive que je lance le bot après la connexion du personnage pour une quelconque raison. N'y a-t-il pas d'autre façon d'obtenir mon acoountId ?
 
Inscrit
26 Janvier 2016
Messages
99
Reactions
34
#25
Bonjour, merci pour ta réponse.

Si j'en crois le nom du message IdentificationSuccessMessage, il est envoyé à la connexion du compte ?
Comme je l'ai dit, le programme n'est pas forcément déjà lancé quand je me connecte, il arrive que je lance le bot après la connexion du personnage pour une quelconque raison. N'y a-t-il pas d'autre façon d'obtenir mon acoountId ?
Je crois que c est la seule façon "Propre" d'associer un actorId à un compte.

Sinon au moment ou tu lances ton bot , il bouge 2 fois de map et si tu matches 2 fois le même actor id tu peux associer ce compte à un actorId ...
C est pas full propre + si quelqu'un fait le même mouvement au même moment c est pas ouf , mais c est une idée à toi de choisir ta méthode.
 
Inscrit
6 Mai 2020
Messages
10
Reactions
1
#26
Je crois que c est la seule façon "Propre" d'associer un actorId à un compte.

Sinon au moment ou tu lances ton bot , il bouge 2 fois de map et si tu matches 2 fois le même actor id tu peux associer ce compte à un actorId ...
C est pas full propre + si quelqu'un fait le même mouvement au même moment c est pas ouf , mais c est une idée à toi de choisir ta méthode.
D'accord, merci, je vais y réfléchir alors ! Pourquoi pas ouvrir mon Have-sac du coup, je serai seul dedans :)
 
Inscrit
18 Janvier 2016
Messages
1
Reactions
0
#28
J'ais réalisé un bot similaire a part la partie des donnees dans laquel j'utilise une librairy de reconnaissance de text pour detecter la pos actuelle et la prochaine indice.
Pour le trajet, y'as une idee que j'ai implementer, c'est d'avoir une dd autopilité et utiliser la commande /travel x,y
Ceci facilitra la tache
 
Inscrit
6 Mai 2020
Messages
10
Reactions
1
#29
J'ais réalisé un bot similaire a part la partie des donnees dans laquel j'utilise une librairy de reconnaissance de text pour detecter la pos actuelle et la prochaine indice.
Pour le trajet, y'as une idee que j'ai implementer, c'est d'avoir une dd autopilité et utiliser la commande /travel x,y
Ceci facilitra la tache
Oui j'y ai pensé, mais le soucis c'est que si tu fais ça pour chaque map, j'ai peur qu'à force de spammer la commande, je finisse par me faire cramer ^^'
Du coup je l'utilise seulement du Zaap jusqu'à la pos de départ de la chasse, et pour le reste, le programme simule des clics sur les différentes maps.
 
Inscrit
2 Juin 2020
Messages
57
Reactions
32
#30
Le /travel n'est pas géré par le client ?
 
Inscrit
6 Mai 2020
Messages
10
Reactions
1
#31
Le /travel n'est pas géré par le client ?
Ah c'est une bonne question, je sais pas vraiment comment son gérées les commandes, mais en effet si c'est seulement côté client (et c'est fort probable) y devrait pas y avoir de soucis à se faire !
 
Inscrit
22 Mars 2017
Messages
26
Reactions
12
#32
Je rebondis par rapport au World Path Finder, j'ai passé pas mal de temps à en construire un (commencé avant que les DD autopilotées arrivent) et je suis arrivé à quelque chose de respectable bien que le périmètre du truc ait ses limites.

C'est pas mal galère d'en avoir un qui prend en compte tous les détails du jeu et qui reste performant.

Il sait :
- Calculer un chemin pertinent entre deux maps, avec en option les cellules de départ et d'arrivée
- Gérer les maps séparées en plusieurs parties qui ne communiquent pas (en gros le problème principal de l'OP)
- Gérer certains changements de maps particuliers, du style cliquer sur un activable pour changer de map, ou les cases qui te TP direct
- Utiliser les Zaaps pour se rapprocher puis finir à pied
- Faire ça de manière à peu près performante (~1 seconde dans le pire des cas où il faut calculer un chemin de Brak à Bonta sans zaaps)

Il sait pas :
- Gérer tous les changements de worldmap, surtout les sous-terrains.
- Il y a des coords un peu galères où il y a plusieurs maps sur le même worldmap, et j'ai pas de solution implémentée pour le moment.

Je me disais que peut-être il y aurait un intérêt pour le forum que je package ça dans une API et que je la mette à dispo.
Hésitez pas à faire signe si ça vous intéresse, je pourrais me chauffer et le publier rapidement (en fonction de mes dispos) si il y a de la demande.
 
Haut Bas